From b8ef07c943896722a549cc86b1b37d655bd044ef Mon Sep 17 00:00:00 2001 From: trigg Date: Sat, 6 Apr 2024 16:32:44 +0100 Subject: [PATCH] - Consider piggyback content in has_content - Allow set_needs_redraw to push through disabled window - Set enable/disable should only redraw piggyback windows --- discover_overlay/draggable_window_wayland.py | 2 +- discover_overlay/overlay.py | 18 ++++++++++-------- discover_overlay/text_overlay.py | 2 ++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/discover_overlay/draggable_window_wayland.py b/discover_overlay/draggable_window_wayland.py index 5c8da71..e380437 100644 --- a/discover_overlay/draggable_window_wayland.py +++ b/discover_overlay/draggable_window_wayland.py @@ -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. diff --git a/discover_overlay/overlay.py b/discover_overlay/overlay.py index cbe9c4c..ce2041c 100644 --- a/discover_overlay/overlay.py +++ b/discover_overlay/overlay.py @@ -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): diff --git a/discover_overlay/text_overlay.py b/discover_overlay/text_overlay.py index 33e0e0a..dc042e8 100644 --- a/discover_overlay/text_overlay.py +++ b/discover_overlay/text_overlay.py @@ -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: