- Consider piggyback content in has_content

- Allow set_needs_redraw to push through disabled window
- Set enable/disable should only redraw piggyback windows
This commit is contained in:
trigg 2024-04-06 16:32:44 +01:00
parent 2becfb5204
commit b8ef07c943
3 changed files with 13 additions and 9 deletions

View file

@ -67,7 +67,7 @@ class DraggableWindowWayland(Gtk.Window):
self.set_steamos_window_size()
self.show_all()
# self.force_location()
self.force_location()
def set_steamos_window_size(self):
# Huge bunch of assumptions.

View file

@ -313,10 +313,10 @@ class OverlayWindow(Gtk.Window):
self.height = height
self.set_needs_redraw()
def set_needs_redraw(self):
if not self.hidden and self.enabled:
def set_needs_redraw(self, be_pushy=False):
if (not self.hidden and self.enabled) or be_pushy:
if self.piggyback_parent:
self.piggyback_parent.set_needs_redraw()
self.piggyback_parent.set_needs_redraw(be_pushy=True)
if self.redraw_id == None:
self.redraw_id = GLib.idle_add(self.redraw)
@ -425,14 +425,16 @@ class OverlayWindow(Gtk.Window):
Set if this overlay should be visible
"""
self.enabled = enabled
if enabled and not self.hidden and not self.piggyback_parent:
if self.piggyback_parent or self.piggyback:
self.set_needs_redraw()
if not self.piggyback_parent:
self.set_gamescope_xatom(1 if enabled else 0)
return
if enabled and not self.hidden:
self.show_all()
self.set_untouchable()
if self.discover.steamos:
self.set_gamescope_xatom(1)
else:
if self.discover.steamos:
self.set_gamescope_xatom(0)
self.hide()
def set_task(self, visible):

View file

@ -197,6 +197,8 @@ class TextOverlayWindow(OverlayWindow):
self.set_needs_redraw()
def has_content(self):
if self.piggyback and self.piggyback.has_content():
return True
if not self.enabled:
return False
if self.hidden: