size updated bool

This commit is contained in:
Will McGugan
2023-02-18 09:29:27 +00:00
parent f5d64ebe8c
commit d8e17e98c2
2 changed files with 27 additions and 18 deletions

View File

@@ -435,25 +435,28 @@ class Screen(Widget):
exposed_widgets = self._compositor.reflow_visible(self, size) exposed_widgets = self._compositor.reflow_visible(self, size)
if exposed_widgets: if exposed_widgets:
layers = self._compositor.layers layers = self._compositor.layers
with timer("size events"):
for widget, ( for widget, (
region, region,
_order, _order,
_clip, _clip,
virtual_size, virtual_size,
container_size, container_size,
_, _,
) in layers: ) in layers:
if widget in exposed_widgets: if widget in exposed_widgets:
widget._size_updated( if widget._size_updated(
region.size, region.size,
virtual_size, virtual_size,
container_size, container_size,
layout=False, layout=False,
) ):
widget.post_message_no_wait( widget.post_message_no_wait(
ResizeEvent( ResizeEvent(
self, region.size, virtual_size, container_size self,
region.size,
virtual_size,
container_size,
) )
) )
else: else:

View File

@@ -2135,7 +2135,7 @@ class Widget(DOMNode):
def _size_updated( def _size_updated(
self, size: Size, virtual_size: Size, container_size: Size, layout: bool = True self, size: Size, virtual_size: Size, container_size: Size, layout: bool = True
) -> None: ) -> bool:
"""Called when the widget's size is updated. """Called when the widget's size is updated.
Args: Args:
@@ -2143,6 +2143,9 @@ class Widget(DOMNode):
virtual_size: Virtual (scrollable) size. virtual_size: Virtual (scrollable) size.
container_size: Container size (size of parent). container_size: Container size (size of parent).
layout: Perform layout if required. layout: Perform layout if required.
Returns:
True if anything changed, or False if nothing changed.
""" """
if ( if (
self._size != size self._size != size
@@ -2157,6 +2160,9 @@ class Widget(DOMNode):
self._container_size = container_size self._container_size = container_size
if self.is_scrollable: if self.is_scrollable:
self._scroll_update(virtual_size) self._scroll_update(virtual_size)
return True
else:
return False
def _scroll_update(self, virtual_size: Size) -> None: def _scroll_update(self, virtual_size: Size) -> None:
"""Update scrollbars visibility and dimensions. """Update scrollbars visibility and dimensions.