- Added Wayland multimonitor
- Redraw after avatar downloaded - Show monitor select for free-placed overlay
This commit is contained in:
parent
188237e3eb
commit
060fc11818
6 changed files with 27 additions and 8 deletions
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
self.nb.show()
|
||||
self.show()
|
||||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue