- Check for multi-monitor capabilities, attempt to fallback

This commit is contained in:
trigg 2020-09-29 18:50:16 +01:00
parent da718bafc2
commit 1ee0d46cb8
6 changed files with 60 additions and 37 deletions

View file

@ -148,7 +148,6 @@ class DiscordConnector:
if j["evt"] == "READY":
self.req_auth()
elif j["evt"] == "VOICE_STATE_UPDATE":
print(j)
self.list_altered = True
thisuser = j["data"]["user"]
un = j["data"]["user"]["username"]

View file

@ -49,13 +49,20 @@ class DraggableWindow(Gtk.Window):
self.set_decorated(False)
self.set_keep_above(True)
display = Gdk.Display.get_default()
monitor = display.get_monitor(self.monitor)
geometry = monitor.get_geometry()
scale_factor = monitor.get_scale_factor()
w = scale_factor * geometry.width
h = scale_factor * geometry.height
x = geometry.x
y = geometry.y
if "get_monitor" in dir(display):
monitor = display.get_monitor(self.monitor)
geometry = monitor.get_geometry()
scale_factor = monitor.get_scale_factor()
w = scale_factor * geometry.width
h = scale_factor * geometry.height
x = geometry.x
y = geometry.y
else:
screen = display.get_default_screen()
w = screen.width()
h = screen.height()
x = 0
y = 0
#self.resize(400, h)
self.move(self.x, self.y)
self.resize(self.w, self.h)

View file

@ -75,19 +75,31 @@ class OverlayWindow(Gtk.Window):
self.set_decorated(False)
self.set_keep_above(True)
display = Gdk.Display.get_default()
monitor = display.get_monitor(self.monitor)
geometry = monitor.get_geometry()
scale_factor = monitor.get_scale_factor()
if not self.floating:
w = scale_factor * geometry.width
h = scale_factor * geometry.height
x = geometry.x
y = geometry.y
self.resize(w, h)
self.move(x, y)
if "get_monitor" in dir(display):
monitor = display.get_monitor(self.monitor)
geometry = monitor.get_geometry()
scale_factor = monitor.get_scale_factor()
if not self.floating:
w = scale_factor * geometry.width
h = scale_factor * geometry.height
x = geometry.x
y = geometry.y
self.resize(w, h)
self.move(x, y)
else:
self.move(self.x, self.y)
self.resize(self.w, self.h)
else:
self.move(self.x, self.y)
self.resize(self.w, self.h)
if not self.floating:
screen = display.get_default_screen()
w = screen.width()
h = screen.height()
x = 0
y = 0
else:
self.move(self.x, self.y)
self.resize(self.w, self.h)
self.redraw()
def redraw(self):

View file

@ -38,9 +38,10 @@ class SettingsWindow(Gtk.Window):
def get_monitor_index(self, name):
display = Gdk.Display.get_default()
for i in range(0, display.get_n_monitors()):
if display.get_monitor(i).get_model() == name:
return i
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 i
print("Could not find monitor : %s" % (name))
return 0

View file

@ -178,8 +178,9 @@ class TextSettingsWindow(SettingsWindow):
monitor_store = Gtk.ListStore(str)
display = Gdk.Display.get_default()
for i in range(0, display.get_n_monitors()):
monitor_store.append([display.get_monitor(i).get_model()])
if "get_n_monitors" in dir(display):
for i in range(0, display.get_n_monitors()):
monitor_store.append([display.get_monitor(i).get_model()])
monitor = Gtk.ComboBox.new_with_model(monitor_store)
monitor.set_active(self.get_monitor_index(self.monitor))
monitor.connect("changed", self.change_monitor)
@ -313,12 +314,13 @@ class TextSettingsWindow(SettingsWindow):
def change_monitor(self, button):
display = Gdk.Display.get_default()
mon = display.get_monitor(button.get_active())
m_s = mon.get_model()
self.overlay.set_monitor(button.get_active())
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.monitor = m_s
self.save_config()
self.monitor = m_s
self.save_config()
def change_align_x(self, button):
self.overlay.set_align_x(button.get_active() == 1)

View file

@ -169,8 +169,9 @@ class VoiceSettingsWindow(SettingsWindow):
monitor_store = Gtk.ListStore(str)
display = Gdk.Display.get_default()
for i in range(0, display.get_n_monitors()):
monitor_store.append([display.get_monitor(i).get_model()])
if "get_n_monitors" in dir(display):
for i in range(0, display.get_n_monitors()):
monitor_store.append([display.get_monitor(i).get_model()])
monitor = Gtk.ComboBox.new_with_model(monitor_store)
monitor.set_active(self.get_monitor_index(self.monitor))
monitor.connect("changed", self.change_monitor)
@ -366,12 +367,13 @@ class VoiceSettingsWindow(SettingsWindow):
def change_monitor(self, button):
display = Gdk.Display.get_default()
mon = display.get_monitor(button.get_active())
m_s = mon.get_model()
self.overlay.set_monitor(button.get_active())
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.monitor = m_s
self.save_config()
self.monitor = m_s
self.save_config()
def change_align_x(self, button):
self.overlay.set_align_x(button.get_active() == 1)