@@ -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