diff --git a/discover_overlay/discord_connector.py b/discover_overlay/discord_connector.py index 8ef8f5e..32966d4 100644 --- a/discover_overlay/discord_connector.py +++ b/discover_overlay/discord_connector.py @@ -109,6 +109,8 @@ class DiscordConnector: self.unsub_voice_channel(self.current_voice) self.current_voice = "0" self.current_guild = "0" + self.discover.voice_overlay.set_blank() + self.in_room = [] return if channel != self.current_voice: if self.current_voice != "0": @@ -298,6 +300,8 @@ class DiscordConnector: if j["data"]["user"]["id"] == self.user["id"]: self.in_room = [] self.find_user() + self.discover.voice_overlay.set_channel_title(None) + self.discover.voice_overlay.set_channel_icon(None) # User might have been forcibly moved room elif j["evt"] == "SPEAKING_START": self.list_altered = True @@ -436,10 +440,11 @@ class DiscordConnector: elif j["cmd"] == "GET_VOICE_SETTINGS": return log.warning(j) - + def dump_channel_data(self): with open(self.discover.channel_file, 'w') as f: - f.write(json.dumps({'channels': self.channels, 'guild': self.guilds})) + f.write(json.dumps( + {'channels': self.channels, 'guild': self.guilds})) def on_connected(self): """ @@ -781,7 +786,6 @@ class DiscordConnector: return self.rate_limited_channels.append(guild_id) - def connect(self): """ Attempt to connect to websocket diff --git a/discover_overlay/voice_overlay.py b/discover_overlay/voice_overlay.py index 3c48676..71b5833 100644 --- a/discover_overlay/voice_overlay.py +++ b/discover_overlay/voice_overlay.py @@ -77,6 +77,7 @@ class VoiceOverlayWindow(OverlayWindow): self.def_avatar = None self.channel_icon = None self.channel_mask = None + self.channel_icon_url = None self.overflow = None self.use_dummy = False self.dummy_count = 10 @@ -112,6 +113,8 @@ class VoiceOverlayWindow(OverlayWindow): self.redraw() def set_icon_transparency(self, trans): + if self.icon_transparency == trans: + return self.icon_transparency = trans get_surface(self.recv_avatar, "share/icons/hicolor/256x256/apps/discover-overlay-default.png", @@ -127,6 +130,9 @@ class VoiceOverlayWindow(OverlayWindow): def set_blank(self): self.userlist = [] + self.channel_icon = None + self.channel_icon_url = None + self.channel_title = None self.needsredraw = True def set_title_font(self, font): @@ -360,9 +366,11 @@ class VoiceOverlayWindow(OverlayWindow): """ if not url: self.channel_icon = None + self.channel_icon_url = None else: get_surface(self.recv_avatar, url, "channel", self.avatar_size, self.icon_transparency) + self.channel_icon_url = url def set_user_list(self, userlist, alt): """ @@ -472,7 +480,7 @@ class VoiceOverlayWindow(OverlayWindow): if self.show_connection: users_to_draw.insert(0, None) doConnection = True - if self.show_title: + if self.show_title and self.channel_title: users_to_draw.insert(0, None) doTitle = True @@ -645,6 +653,9 @@ class VoiceOverlayWindow(OverlayWindow): pos_x, pos_y, None, avatar_size) else: self.blank_avatar(context, pos_x, pos_y, avatar_size) + if self.channel_icon_url: + get_surface(self.recv_avatar, self.channel_icon_url, "channel", + self.avatar_size, self.icon_transparency) return tw def unused_fn_needed_translations(self):