- Do not create text window in gamescope -> only one window is possible

- Come back to this later to maybe merge the two into a single window
- Catch file not found
This commit is contained in:
Trigg 2022-03-09 16:19:35 +00:00
parent cf0eed8022
commit 2f4e6f671e
5 changed files with 38 additions and 27 deletions

View file

@ -424,9 +424,10 @@ class DiscordConnector:
self.sub_server()
self.find_user()
self.voice_overlay.set_enabled(True)
self.text_overlay.set_enabled(self.text_settings.enabled)
if self.last_text_channel:
self.sub_text_channel(self.last_text_channel)
if self.text_overlay:
self.text_overlay.set_enabled(self.text_settings.enabled)
if self.last_text_channel:
self.sub_text_channel(self.last_text_channel)
def on_error(self, error):
"""
@ -440,7 +441,8 @@ class DiscordConnector:
"""
logging.info("Connection closed")
self.voice_overlay.hide()
self.text_overlay.hide()
if self.text_overlay:
self.text_overlay.hide()
self.websocket = None
def req_auth(self):
@ -603,21 +605,22 @@ class DiscordConnector:
self.voice_overlay.set_connection(self.last_connection)
self.list_altered = False
# Update text list
if self.text_overlay.popup_style:
self.text_altered = True
if self.text_altered:
self.text_overlay.set_text_list(self.text, self.text_altered)
self.text_altered = False
# Update guilds
self.text_settings.set_guilds(self.guilds)
# Check for changed channel
if self.authed:
self.set_text_channel(self.text_settings.get_channel())
if self.text_overlay:
if self.text_overlay.popup_style:
self.text_altered = True
if self.text_altered:
self.text_overlay.set_text_list(self.text, self.text_altered)
self.text_altered = False
# Update guilds
self.text_settings.set_guilds(self.guilds)
# Check for changed channel
if self.authed:
self.set_text_channel(self.text_settings.get_channel())
if self.voice_overlay.needsredraw:
self.voice_overlay.redraw()
if self.text_overlay.needsredraw:
if self.text_overlay and self.text_overlay.needsredraw:
self.text_overlay.redraw()
if len(self.rate_limited_channels) > 0:

View file

@ -46,7 +46,6 @@ class Discover:
if "GAMESCOPE_WAYLAND_DISPLAY" in os.environ:
logging.info("GameScope session detected. Enabling steam and gamescope integration")
self.steamos = True
self.show_settings_delay = True
self.create_gui()
@ -96,7 +95,6 @@ class Discover:
sys.exit(0)
if "--steamos" in data or "-s" in data:
self.steamos=True
self.show_settings_delay=True
if "--hide" in data:
if self.voice_overlay:
self.voice_overlay.set_hidden(True)
@ -124,8 +122,11 @@ class Discover:
"""
Create Systray & associated menu, overlays & settings windows
"""
if self.steamos:
self.text_overlay = None
else:
self.text_overlay = TextOverlayWindow(self)
self.voice_overlay = VoiceOverlayWindow(self)
self.text_overlay = TextOverlayWindow(self)
self.menu = self.make_menu()
self.make_sys_tray_icon(self.menu)
self.settings = MainSettingsWindow(self)
@ -135,6 +136,8 @@ class Discover:
Attempt to create an AppIndicator icon, failing that attempt to make
a systemtray icon
"""
if self.steamos:
return
try:
gi.require_version('AppIndicator3', '0.1')
# pylint: disable=import-outside-toplevel
@ -196,7 +199,8 @@ class Discover:
Set if XShape should be forced
"""
self.voice_overlay.set_force_xshape(force)
self.text_overlay.set_force_xshape(force)
if self.text_overlay:
self.text_overlay.set_force_xshape(force)
def set_sys_tray_icon_visible(self, visible):
"""

View file

@ -110,8 +110,8 @@ class SurfaceGetter():
logging.error("Unable to read %s", self.url)
except PIL.UnidentifiedImageError:
logging.error("Unknown image type")
except FileNotFoundError:
logging.error("Unable to load file %s", self.url)
def from_pil(self, image, alpha=1.0):
"""

View file

@ -98,11 +98,11 @@ class OverlayWindow(Gtk.Window):
topw = display.create_resource_object("window", self.get_toplevel().get_window().get_xid())
topw.change_property(atom,
Xatom.CARDINAL,8,
Xatom.CARDINAL,32,
[1], X.PropModeReplace)
topw.change_property(opaq,
Xatom.CARDINAL,32,
[0xffffffff], X.PropModeReplace)
Xatom.CARDINAL,16,
[0xffff], X.PropModeReplace)
logging.info("Setting STEAM_EXTERNAL_OVERLAY")
display.sync()

View file

@ -63,9 +63,9 @@ class TextSettingsWindow(SettingsWindow):
self.set_size_request(400, 200)
self.connect("destroy", self.close_window)
self.connect("delete-event", self.close_window)
self.init_config()
self.create_gui()
if overlay:
self.init_config()
self.create_gui()
def update_channel_model(self):
"""
@ -114,6 +114,8 @@ class TextSettingsWindow(SettingsWindow):
"""
Show contents of tab and update lists
"""
if not self.overlay:
return
self.show_all()
if not self.floating:
self.align_x_widget.show()
@ -197,6 +199,8 @@ class TextSettingsWindow(SettingsWindow):
"""
Read in the 'text' section of the config
"""
if not self.overlay:
return
config = ConfigParser(interpolation=None)
config.read(self.config_file)
self.enabled = config.getboolean("text", "enabled", fallback=False)