Do not set sizeReq on the widgetInstance itself (parent should take care)

This commit is contained in:
Francisco Vallarino 2020-12-03 15:29:08 -03:00
parent c5b2a7721e
commit c39ae86d09
3 changed files with 4 additions and 16 deletions

View File

@ -418,9 +418,7 @@ compositeGetSizeReq comp state wenv widgetComp = newSizeReq where
_cpsRoot = newRoot
}
newComp = widgetComp {
_wiWidget = createComposite comp newState,
_wiSizeReqW = childReqW,
_wiSizeReqH = childReqH
_wiWidget = createComposite comp newState
}
newSizeReq = WidgetSizeReq newComp childReqW childReqH
@ -574,11 +572,7 @@ resizeResult comp state wenv result widgetComp = resizedResult where
model = getModel comp wenv
cwenv = convertWidgetEnv wenv _cpsGlobalKeys model
widgetRoot = _wrWidget result
sizeReq = widgetGetSizeReq (_wiWidget widgetRoot) cwenv widgetRoot
reqRoot = sizeReq ^. L.widget
& L.sizeReqW .~ sizeReq ^. L.sizeReqW
& L.sizeReqH .~ sizeReq ^. L.sizeReqH
tempRoot = widgetResize (_wiWidget reqRoot) cwenv viewport renderArea reqRoot
tempRoot = resizeWidget cwenv viewport renderArea widgetRoot
newRoot = tempRoot {
_wiViewport = viewport,
_wiRenderArea = renderArea

View File

@ -543,9 +543,7 @@ getSizeReqWrapper container wenv inst = newSizeReq & L.widget .~ newInst where
newSizeReq = sizeReqAddStyle style (WidgetSizeReq inst sizeReqW sizeReqH)
newInst
| resizeRequired = inst {
_wiChildren = newChildren,
_wiSizeReqW = newSizeReq ^. L.sizeReqW,
_wiSizeReqH = newSizeReq ^. L.sizeReqH
_wiChildren = newChildren
}
| otherwise = inst

View File

@ -225,15 +225,11 @@ getSizeReqWrapper
-> WidgetEnv s e
-> WidgetInstance s e
-> WidgetSizeReq s e
getSizeReqWrapper single wenv inst = newSizeReq & L.widget .~ newInst where
getSizeReqWrapper single wenv inst = newSizeReq where
handler = singleGetSizeReq single
style = activeStyle wenv inst
(sizeReqW, sizeReqH) = handler wenv inst
newSizeReq = sizeReqAddStyle style (WidgetSizeReq inst sizeReqW sizeReqH)
newInst = inst {
_wiSizeReqW = newSizeReq ^. L.sizeReqW,
_wiSizeReqH = newSizeReq ^. L.sizeReqH
}
defaultResize :: SingleResizeHandler s e
defaultResize wenv viewport renderArea inst = inst