- Detect Wayland & throw extra flags at it.

This commit is contained in:
trigg 2020-10-13 14:37:45 +00:00
parent 377787ef29
commit a31062251c

View file

@ -7,8 +7,19 @@ import sys
class OverlayWindow(Gtk.Window):
def detect_type(self):
window = Gtk.Window()
screen = window.get_screen()
screen_type = "%s" % (screen)
if "Wayland" in screen_type:
print("Using Wayland GDK. Expect bugs")
return Gtk.WindowType.TOPLEVEL
return Gtk.WindowType.POPUP
def __init__(self):
Gtk.Window.__init__(self, type=Gtk.WindowType.POPUP)
Gtk.Window.__init__(self, type=self.detect_type())
screen = self.get_screen()
screen_type = "%s" % (screen)
self.set_size_request(50, 50)
self.connect('draw', self.draw)
@ -16,6 +27,7 @@ class OverlayWindow(Gtk.Window):
self.compositing = False
# Set RGBA
screen = self.get_screen()
screen_type = "%s" % (screen)
visual = screen.get_rgba_visual()
if not self.get_display().supports_input_shapes():
logging.info(
@ -31,6 +43,9 @@ class OverlayWindow(Gtk.Window):
self.set_untouchable()
self.set_skip_pager_hint(True)
self.set_skip_taskbar_hint(True)
self.set_keep_above(True)
self.set_decorated(True)
self.set_accept_focus(False)
self.show_all()
self.monitor = 0
@ -137,4 +152,4 @@ class OverlayWindow(Gtk.Window):
self.context.set_source_rgba(c[0], c[1], c[2], c[3] * a)
def set_force_xshape(self, force):
self.force_xshape = force
self.force_xshape = force