diff --git a/discover_overlay/discover_overlay.py b/discover_overlay/discover_overlay.py
index 302e141..4176bcb 100755
--- a/discover_overlay/discover_overlay.py
+++ b/discover_overlay/discover_overlay.py
@@ -245,7 +245,10 @@ class Discover:
self.voice_overlay.set_order(
config.getint("main", "order", fallback=0))
self.voice_overlay.set_hide_on_mouseover(
- config.getboolean("text", "autohide", fallback=False))
+ config.getboolean("main", "autohide", fallback=False))
+ self.voice_overlay.set_mouseover_timer(
+ config.getint("main", "autohide_timer", fallback=1))
+
self.voice_overlay.set_horizontal(config.getboolean(
"main", "horizontal", fallback=False))
self.voice_overlay.set_guild_ids(self.parse_guild_ids(
@@ -320,6 +323,8 @@ class Discover:
config.getint("text", "line_limit", fallback=20))
self.text_overlay.set_hide_on_mouseover(
config.getboolean("text", "autohide", fallback=False))
+ self.text_overlay.set_mouseover_timer(
+ config.getint("text", "autohide_timer", fallback=1))
self.text_overlay.set_monitor(monitor)
self.text_overlay.set_floating(
diff --git a/discover_overlay/glade/settings.glade b/discover_overlay/glade/settings.glade
index 430d652..379235c 100644
--- a/discover_overlay/glade/settings.glade
+++ b/discover_overlay/glade/settings.glade
@@ -117,6 +117,13 @@
1
10
+
+
@@ -1469,7 +1548,7 @@
-
+
text_grid
True
@@ -1800,6 +1879,32 @@
2
+
+
+ text_hide_mouseover_label
+ True
+ False
+ Hide Overlay on Mouseover
+ 0
+
+
+ 0
+ 13
+
+
+
+
+ text_show_mouseover_label
+ True
+ False
+ Show again after (seconds)
+ 0
+
+
+ 0
+ 14
+
+
Reset Text Settings
@@ -1809,11 +1914,40 @@
True
+
+ 1
+ 15
+
+
+
+
+ text_hide_mouseover
+ True
+ True
+ False
+ True
+
+
1
13
+
+
+ text_show_mouseover
+ True
+ True
+ 1
+ text_show_mouseover_adj
+ 1
+
+
+
+ 1
+ 14
+
+
diff --git a/discover_overlay/locales/base.pot b/discover_overlay/locales/base.pot
index ec35460..ef51d9e 100644
--- a/discover_overlay/locales/base.pot
+++ b/discover_overlay/locales/base.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-28 19:09+0200\n"
+"POT-Creation-Date: 2024-02-23 11:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -298,6 +298,12 @@ msgstr ""
msgid "Reset Voice Settings"
msgstr ""
+msgid "Hide Overlay on Mouseover"
+msgstr ""
+
+msgid "Show again after (seconds)"
+msgstr ""
+
msgid "Voice"
msgstr ""
@@ -334,6 +340,9 @@ msgstr ""
msgid "Reset Text Settings"
msgstr ""
+msgid "1"
+msgstr ""
+
msgid "Text"
msgstr ""
diff --git a/discover_overlay/locales/cy/LC_MESSAGES/default.po b/discover_overlay/locales/cy/LC_MESSAGES/default.po
index d7a5eaa..d5618bc 100644
--- a/discover_overlay/locales/cy/LC_MESSAGES/default.po
+++ b/discover_overlay/locales/cy/LC_MESSAGES/default.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-28 19:09+0200\n"
+"POT-Creation-Date: 2024-02-23 11:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,7 +65,7 @@ msgstr "Symud y defnyddiwr i ystafell lais, yn ôl ID Ystafell"
msgid ""
"If tray icon is enabled, start with only tray icon and no configuration "
"window"
-msgstr ""
+msgstr "If tray icon is enabled, start with only tray icon and no configuration window"
msgid "For gamescope compatibility ensure ENV has 'GDK_BACKEND=x11'"
msgstr "Ar gyfer cydnawsedd gamescope sicrhau bod gan ENV 'GDK_BACKEND=x11'"
@@ -228,7 +228,7 @@ msgid "Avatar"
msgstr "Avatar"
msgid "Show Names"
-msgstr ""
+msgstr "Dangos Enwau"
msgid "Font"
msgstr "Ffont"
@@ -255,7 +255,7 @@ msgid "Show Test Content"
msgstr "Dangos cynnwys y prawf"
msgid "Test Data Count"
-msgstr ""
+msgstr "Profi Cyfrif Data"
msgid "Show While Disconnected"
msgstr "Dangos Wrth Ddatgysylltu"
@@ -267,7 +267,7 @@ msgid "Limit text length"
msgstr "Cyfyngu ar hyd y testun"
msgid "Show Avatar"
-msgstr ""
+msgstr "Dangos Avatar"
msgid "Square Avatar"
msgstr "Avatar Sgwâr"
@@ -285,13 +285,13 @@ msgid "Display Speakers Only"
msgstr "Dangos siaradwyr yn unig"
msgid "Speakers Grace Period"
-msgstr ""
+msgstr "Amser Siaradwr"
msgid "Overflow Style"
msgstr "Arddull gorlifo"
msgid "Order Users By"
-msgstr ""
+msgstr "Gorchmynion Defnyddwyr gan"
msgid "Highlight Self"
msgstr "Tynnu sylw at eich hunan"
@@ -300,10 +300,16 @@ msgid "Border width"
msgstr "lled y ffin"
msgid "Padding between users"
-msgstr ""
+msgstr "Padio rhwng defnyddwyr"
msgid "Reset Voice Settings"
-msgstr ""
+msgstr "Ailosod Gosodiadau Llais"
+
+msgid "Hide Overlay on Mouseover"
+msgstr "Cuddio troshaenu ar mouseover"
+
+msgid "Show again after (seconds)"
+msgstr "Dangoswch eto ar ôl"
msgid "Voice"
msgstr "LLais"
@@ -336,10 +342,13 @@ msgid "Server"
msgstr "Gweinydd"
msgid "Popup time limit"
-msgstr ""
+msgstr "Terfyn amser popup"
msgid "Reset Text Settings"
-msgstr ""
+msgstr "Ailosod Gosodiadau Testun"
+
+msgid "1"
+msgstr "1"
msgid "Text"
msgstr "Testun"
@@ -375,7 +384,7 @@ msgid "Unknown"
msgstr "Anhysbys"
msgid "Reset Notification Settings"
-msgstr ""
+msgstr "Ailosodwch Gosodiadau Hysbysu "
msgid "Notification"
msgstr "Hysbysiad"
@@ -399,7 +408,7 @@ msgid "Hide Overlays"
msgstr "Cuddio troslun"
msgid "Reset Core Settings"
-msgstr ""
+msgstr "Ailosod Gosodiadau Craidd"
msgid "Core"
msgstr "Craidd"
diff --git a/discover_overlay/locales/de/LC_MESSAGES/default.po b/discover_overlay/locales/de/LC_MESSAGES/default.po
index ea985d3..df8a5ec 100644
--- a/discover_overlay/locales/de/LC_MESSAGES/default.po
+++ b/discover_overlay/locales/de/LC_MESSAGES/default.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: unnamed project\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-28 19:09+0200\n"
+"POT-Creation-Date: 2024-02-23 11:44+0000\n"
"PO-Revision-Date: 2022-09-23 23:05+0200\n"
"Last-Translator: Baumfinder \n"
"Language-Team: German \n"
@@ -314,6 +314,12 @@ msgstr ""
msgid "Reset Voice Settings"
msgstr ""
+msgid "Hide Overlay on Mouseover"
+msgstr ""
+
+msgid "Show again after (seconds)"
+msgstr ""
+
msgid "Voice"
msgstr "Sprache"
@@ -350,6 +356,9 @@ msgstr ""
msgid "Reset Text Settings"
msgstr ""
+msgid "1"
+msgstr ""
+
msgid "Text"
msgstr "Text"
diff --git a/discover_overlay/locales/en/LC_MESSAGES/default.po b/discover_overlay/locales/en/LC_MESSAGES/default.po
index 71df261..d9a21c5 100644
--- a/discover_overlay/locales/en/LC_MESSAGES/default.po
+++ b/discover_overlay/locales/en/LC_MESSAGES/default.po
@@ -279,6 +279,12 @@ msgstr ""
msgid "Reset Voice Settings"
msgstr ""
+msgid "Hide Overlay on Mouseover"
+msgstr ""
+
+msgid "Show again after (seconds)"
+msgstr ""
+
msgid "Voice"
msgstr ""
@@ -315,6 +321,9 @@ msgstr ""
msgid "Reset Text Settings"
msgstr ""
+msgid "1"
+msgstr ""
+
msgid "Text"
msgstr ""
diff --git a/discover_overlay/locales/fr/LC_MESSAGES/default.po b/discover_overlay/locales/fr/LC_MESSAGES/default.po
index 78839f5..67d057d 100644
--- a/discover_overlay/locales/fr/LC_MESSAGES/default.po
+++ b/discover_overlay/locales/fr/LC_MESSAGES/default.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-28 19:09+0200\n"
+"POT-Creation-Date: 2024-02-23 11:44+0000\n"
"PO-Revision-Date: 2023-07-28 19:06+0200\n"
"Last-Translator: Noé Lopez \n"
"Language-Team: English \n"
@@ -307,6 +307,12 @@ msgstr "Espace entre les utilisateurs"
msgid "Reset Voice Settings"
msgstr "Réinitialiser les paramètres de voix"
+msgid "Hide Overlay on Mouseover"
+msgstr ""
+
+msgid "Show again after (seconds)"
+msgstr ""
+
msgid "Voice"
msgstr "Voix"
@@ -343,6 +349,9 @@ msgstr "Limite de temps du popup"
msgid "Reset Text Settings"
msgstr "Réinitialiser les paramètres de texte"
+msgid "1"
+msgstr ""
+
msgid "Text"
msgstr "Texte"
diff --git a/discover_overlay/locales/tr/LC_MESSAGES/default.po b/discover_overlay/locales/tr/LC_MESSAGES/default.po
index 17962a2..0718f1f 100644
--- a/discover_overlay/locales/tr/LC_MESSAGES/default.po
+++ b/discover_overlay/locales/tr/LC_MESSAGES/default.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-28 19:09+0200\n"
+"POT-Creation-Date: 2024-02-23 11:44+0000\n"
"PO-Revision-Date: 2023-04-17 15:44+0300\n"
"Last-Translator: Ahmet Arda Kavakcı \n"
"Language-Team: Turkish \n"
@@ -306,6 +306,12 @@ msgstr "Kullanıcılar arası iç boşluk"
msgid "Reset Voice Settings"
msgstr ""
+msgid "Hide Overlay on Mouseover"
+msgstr ""
+
+msgid "Show again after (seconds)"
+msgstr ""
+
msgid "Voice"
msgstr "Ses"
@@ -342,6 +348,9 @@ msgstr ""
msgid "Reset Text Settings"
msgstr ""
+msgid "1"
+msgstr ""
+
msgid "Text"
msgstr "Yazı"
diff --git a/discover_overlay/overlay.py b/discover_overlay/overlay.py
index aca6ba5..d8a908e 100644
--- a/discover_overlay/overlay.py
+++ b/discover_overlay/overlay.py
@@ -65,6 +65,7 @@ class OverlayWindow(Gtk.Window):
self.hidden = False
self.enabled = False
self.set_size_request(50, 50)
+ self.hide_on_mouseover = True
self.connect('draw', self.overlay_draw_pre)
# Set RGBA
screen = self.get_screen()
@@ -97,9 +98,10 @@ class OverlayWindow(Gtk.Window):
self.floating = False
self.force_xshape = False
self.context = None
- self.autohide = False
self.redraw_id = None
+ self.draw_blank = False
+ self.timeout_mouse_over = 1
self.timer_after_draw = None
if piggyback:
@@ -108,6 +110,11 @@ class OverlayWindow(Gtk.Window):
self.get_screen().connect("composited-changed", self.check_composite)
self.get_screen().connect("monitors-changed", self.screen_changed)
self.get_screen().connect("size-changed", self.screen_changed)
+ self.get_window().set_events(self.get_window().get_events() | Gdk.EventMask.ENTER_NOTIFY_MASK)
+ self.connect("enter-notify-event", self.mouseover)
+ self.connect("leave-notify-event", self.mouseout)
+ self.mouse_over_timer = None
+
def set_gamescope_xatom(self, enabled):
if self.piggyback_parent:
@@ -163,6 +170,26 @@ class OverlayWindow(Gtk.Window):
else:
if not self.hidden and self.enabled:
self.set_gamescope_xatom(1)
+ # If we're hiding on mouseover, allow mouse-in
+ if self.hide_on_mouseover:
+ # We've mouse-overed
+ if self.draw_blank:
+ self.set_untouchable()
+ context.set_source_rgba(0.0, 0.0, 0.0, 0.0)
+ context.set_operator(cairo.OPERATOR_SOURCE)
+ context.paint()
+ return
+ else:
+ (width, height) = self.get_size()
+ surface = cairo.ImageSurface(
+ cairo.FORMAT_ARGB32, width, height)
+ surface_ctx = cairo.Context(surface)
+ self.overlay_draw(None, surface_ctx)
+ reg = Gdk.cairo_region_create_from_surface(surface)
+ self.input_shape_combine_region(reg)
+
+
+
self.overlay_draw(_w, context, data)
def overlay_draw(self, _w, context, data=None):
@@ -203,6 +230,16 @@ class OverlayWindow(Gtk.Window):
reg = Gdk.cairo_region_create_from_surface(surface)
self.input_shape_combine_region(reg)
+ def set_hide_on_mouseover(self, hide):
+ self.hide_on_mouseover = hide
+ if self.hide_on_mouseover:
+ self.set_needs_redraw()
+ else:
+ self.set_untouchable()
+
+ def set_mouseover_timer(self, time):
+ self.timeout_mouse_over = time
+
def unset_shape(self):
"""
Remove XShape (not input shape)
@@ -375,12 +412,6 @@ class OverlayWindow(Gtk.Window):
self.set_gamescope_xatom(0)
self.hide()
- def set_hide_on_mouseover(self, hide):
- """
- Set Mouseover hide
- """
- self.autohide = hide
-
def set_task(self, visible):
self.set_skip_pager_hint(not visible)
self.set_skip_taskbar_hint(not visible)
@@ -390,3 +421,17 @@ class OverlayWindow(Gtk.Window):
def screen_changed(self, screen=None):
self.set_monitor(self.monitor)
+
+ def mouseover(self, a=None, b=None):
+ self.draw_blank = True
+ self.set_needs_redraw()
+ return True
+
+ def mouseout(self, a=None, b=None):
+ GLib.timeout_add_seconds(self.timeout_mouse_over, self.mouseout_timed)
+
+ return True
+
+ def mouseout_timed(self, a=None, b=None):
+ self.draw_blank = False
+ self.set_needs_redraw()
\ No newline at end of file
diff --git a/discover_overlay/settings_window.py b/discover_overlay/settings_window.py
index bc8916f..6282ee3 100644
--- a/discover_overlay/settings_window.py
+++ b/discover_overlay/settings_window.py
@@ -1132,3 +1132,17 @@ class MainSettingsWindow():
def notification_reset_all(self, button):
self.config_remove_section("notification")
self.read_config()
+
+ def voice_hide_mouseover_changed(self, button):
+ self.config_set("main", "autohide", "%s" % (button.get_active()))
+
+ def text_hide_mouseover_changed(self,button):
+ self.config_set("text", "autohide", "%s" % (button.get_active()))
+
+ def voice_mouseover_timeout_changed(self, button):
+ self.config_set("main", "autohide_timer", "%s" %
+ (int(button.get_value())))
+
+ def text_mouseover_timeout_changed(self, button):
+ self.config_set("text", "autohide_timer", "%s" %
+ (int(button.get_value())))
\ No newline at end of file