Skip to content

Commit 7757828

Browse files
committed
roomwall.py: merge with master
1 parent 5ac84f2 commit 7757828

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

pynicotine/gtkgui/popovers/roomwall.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,36 +50,31 @@ def destroy(self):
5050
self.message_view.destroy()
5151
super().destroy()
5252

53-
def _update_message_list(self):
53+
def _update_message_list(self, tickers):
5454

5555
self.message_view.clear()
56-
self.message_entry.set_text("")
5756

58-
login_username = core.users.login_username
59-
60-
for username, message in list(core.chatrooms.joined_rooms[self.room].tickers.items()):
57+
for username, message in list(tickers.items()):
6158
self.message_view.add_line(f"> [{username}] {message}", prepend=True)
6259

63-
if username == login_username:
64-
self.message_entry.set_text(message)
65-
self.message_entry.select_region(0, -1)
66-
6760
self.message_view.place_cursor_at_line(0)
6861

6962
def on_set_room_wall_message(self, *_args):
7063

7164
entry_text = self.message_entry.get_text()
72-
old_ticker = core.chatrooms.joined_rooms[self.room].tickers.get(core.users.login_username, "")
65+
login_username = core.users.login_username
66+
tickers = core.chatrooms.joined_rooms[self.room].tickers
67+
old_ticker = tickers.get(login_username, "")
7368

7469
if entry_text == old_ticker:
7570
self.message_entry.select_region(0, -1)
7671
return
7772

78-
core.chatrooms.joined_rooms[self.room].tickers.pop(core.users.login_username, None)
79-
self._update_message_list()
73+
tickers.pop(core.users.login_username, None)
74+
self._update_message_list(tickers)
8075

8176
if entry_text:
82-
self.message_view.add_line(f"> [{core.users.login_username}] {entry_text}", prepend=True)
77+
self.message_view.add_line(f"> [{login_username}] {entry_text}", prepend=True)
8378

8479
core.chatrooms.request_update_ticker(self.room, entry_text)
8580

@@ -92,4 +87,15 @@ def on_icon_pressed(self, _entry, icon_pos, *_args):
9287
self.on_set_room_wall_message()
9388

9489
def _on_show(self, *_args):
95-
self._update_message_list()
90+
91+
login_username = core.users.login_username
92+
tickers = core.chatrooms.joined_rooms[self.room].tickers
93+
94+
self._update_message_list(tickers)
95+
96+
self.message_entry.set_text(tickers.get(login_username, ""))
97+
self.message_entry.select_region(0, -1)
98+
99+
if not tickers:
100+
# Focus message entry instead of list when no tickers are present
101+
self.message_entry.grab_focus()

0 commit comments

Comments
 (0)