diff --git a/discover_overlay/overlay.py b/discover_overlay/overlay.py index 8c0e5ef..06b6292 100644 --- a/discover_overlay/overlay.py +++ b/discover_overlay/overlay.py @@ -54,6 +54,7 @@ class OverlayWindow(Gtk.Window): self.align_vert = 1 self.floating = False self.force_xshape= False + self.context=None def set_wayland_state(self): if self.is_wayland: @@ -152,8 +153,12 @@ class OverlayWindow(Gtk.Window): gdkwin.shape_combine_region(None, 0, 0) self.queue_draw() - def set_monitor(self, idx): + def set_monitor(self, idx=None, mon=None): self.monitor = idx + if self.is_wayland: + print(self) + if mon: + GtkLayerShell.set_monitor(self, mon) self.force_location() self.redraw() diff --git a/discover_overlay/settings.py b/discover_overlay/settings.py index f3cd426..d37c34c 100644 --- a/discover_overlay/settings.py +++ b/discover_overlay/settings.py @@ -44,5 +44,15 @@ class SettingsWindow(Gtk.VBox): "Could not find monitor : %s" % (name)) return 0 + def get_monitor_obj(self, name): + display = Gdk.Display.get_default() + if "get_n_monitors" in dir(display): + for i in range(0, display.get_n_monitors()): + if display.get_monitor(i).get_model() == name: + return display.get_monitor(i) + logging.info( + "Could not find monitor : %s" % (name)) + return None + def present(self): self.show_all() diff --git a/discover_overlay/settings_window.py b/discover_overlay/settings_window.py index 41ece10..3e1b4da 100644 --- a/discover_overlay/settings_window.py +++ b/discover_overlay/settings_window.py @@ -37,6 +37,7 @@ class MainSettingsWindow(Gtk.Window): nb.append_page(self.core_settings) nb.set_tab_label_text(self.core_settings, "Core") self.add(nb) + self.nb=nb def close_window(self,a=None,b=None): self.text_settings.close_window(a,b) @@ -49,4 +50,5 @@ class MainSettingsWindow(Gtk.Window): self.voice_settings.present() self.text_settings.present() self.core_settings.present() - self.show_all() \ No newline at end of file + self.nb.show() + self.show() \ No newline at end of file diff --git a/discover_overlay/text_settings.py b/discover_overlay/text_settings.py index 43f7d59..1324191 100644 --- a/discover_overlay/text_settings.py +++ b/discover_overlay/text_settings.py @@ -81,7 +81,7 @@ class TextSettingsWindow(SettingsWindow): else: self.align_x_widget.hide() self.align_y_widget.hide() - self.align_monitor_widget.hide() + self.align_monitor_widget.show() self.align_placement_widget.show() if self.popup_style: @@ -170,7 +170,7 @@ class TextSettingsWindow(SettingsWindow): self.overlay.set_enabled(self.enabled) self.overlay.set_align_x(self.align_x) self.overlay.set_align_y(self.align_y) - self.overlay.set_monitor(self.get_monitor_index(self.monitor)) + self.overlay.set_monitor(self.get_monitor_index(self.monitor),self.get_monitor_obj(self.monitor)) self.overlay.set_floating( self.floating, self.floating_x, self.floating_y, self.floating_w, self.floating_h) self.overlay.set_bg(self.bg_col) @@ -450,7 +450,7 @@ class TextSettingsWindow(SettingsWindow): if "get_monitor" in dir(display): mon = display.get_monitor(button.get_active()) m_s = mon.get_model() - self.overlay.set_monitor(button.get_active()) + self.overlay.set_monitor(button.get_active(), mon) self.monitor = m_s self.save_config() diff --git a/discover_overlay/voice_overlay.py b/discover_overlay/voice_overlay.py index be2438d..d0308b9 100644 --- a/discover_overlay/voice_overlay.py +++ b/discover_overlay/voice_overlay.py @@ -224,6 +224,7 @@ class VoiceOverlayWindow(OverlayWindow): self.def_avatar = pix else: self.avatars[id] = pix + self.redraw() def delete_avatar(self, id): if id in self.avatars: diff --git a/discover_overlay/voice_settings.py b/discover_overlay/voice_settings.py index 79130f7..776052c 100644 --- a/discover_overlay/voice_settings.py +++ b/discover_overlay/voice_settings.py @@ -31,7 +31,7 @@ class VoiceSettingsWindow(SettingsWindow): else: self.align_x_widget.hide() self.align_y_widget.hide() - self.align_monitor_widget.hide() + self.align_monitor_widget.show() self.align_placement_widget.show() def read_config(self): @@ -85,7 +85,7 @@ class VoiceSettingsWindow(SettingsWindow): self.overlay.set_only_speaking(self.only_speaking) self.overlay.set_highlight_self(self.highlight_self) self.overlay.set_icon_only(self.icon_only) - self.overlay.set_monitor(self.get_monitor_index(self.monitor)) + self.overlay.set_monitor(self.get_monitor_index(self.monitor),self.get_monitor_obj(self.monitor)) self.overlay.set_vert_edge_padding(self.vert_edge_padding) self.overlay.set_horz_edge_padding(self.horz_edge_padding) self.overlay.set_order(self.order) @@ -446,7 +446,8 @@ class VoiceSettingsWindow(SettingsWindow): if "get_monitor" in dir(display): mon = display.get_monitor(button.get_active()) m_s = mon.get_model() - self.overlay.set_monitor(button.get_active()) + self.overlay.set_monitor(button.get_active(), mon) + self.monitor = m_s self.save_config()