diff --git a/gajim/chat_control_base.py b/gajim/chat_control_base.py index 3ee8b519d48dfa5466ad0b818e029f9a5bbb9bbb..071e025d44c8234cebfc59c763300ca12256f205 100644 --- a/gajim/chat_control_base.py +++ b/gajim/chat_control_base.py @@ -176,11 +176,9 @@ def __init__(self, parent_win, widget_name, jid, acct, self._scrolled_view.add(self.conversation_view) self._scrolled_view.set_focus_vadjustment(Gtk.Adjustment()) - overlay = Gtk.Overlay() - overlay.add(self._scrolled_view) - overlay.add_overlay(self.xml.jump_to_end_button) - self.xml.textview_box.add(overlay) - self.xml.textview_box.reorder_child(overlay, 2) + self.xml.conv_view_overlay.add(self._scrolled_view) + self.xml.conv_view_overlay.add_overlay(self.xml.jump_to_end_button) + self._scrolled_view.connect('autoscroll-changed', self._on_autoscroll_changed) self._scrolled_view.connect('request-history', diff --git a/gajim/common/modules/contacts.py b/gajim/common/modules/contacts.py index 334dd6f4e0007f680dc300449030d3123c3b4a60..3f08c9ac3b34ad8073921189dff0cb3b4b1ed3bc 100644 --- a/gajim/common/modules/contacts.py +++ b/gajim/common/modules/contacts.py @@ -391,6 +391,8 @@ def update_avatar(self, *args): @property def is_joined(self): muc_data = self._module('MUC').get_muc_data(self._jid) + if muc_data is None: + return False return muc_data.state.is_joined def set_not_joined(self): diff --git a/gajim/data/gui/chat_control.ui b/gajim/data/gui/chat_control.ui index a3039e0d92e9e3ac453367595d9efda6a12dbf2c..7fbba4a93a3a4ae8ad26ba425732c61d417dbc66 100644 --- a/gajim/data/gui/chat_control.ui +++ b/gajim/data/gui/chat_control.ui @@ -629,7 +629,18 @@ </packing> </child> <child> - <placeholder/> + <object class="GtkOverlay" id="conv_view_overlay"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> </child> <child> <object class="GtkSeparator"> diff --git a/gajim/data/gui/groupchat_control.ui b/gajim/data/gui/groupchat_control.ui index 96da1706c5091ce252830b83d7bd5a0680ac6f73..479993d310d52dd8a2a274a68bf72585aa4cbe54 100644 --- a/gajim/data/gui/groupchat_control.ui +++ b/gajim/data/gui/groupchat_control.ui @@ -341,7 +341,18 @@ </packing> </child> <child> - <placeholder/> + <object class="GtkOverlay" id="conv_view_overlay"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> </child> <child> <object class="GtkSeparator"> @@ -597,7 +608,6 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="transition-type">none</property> - <property name="reveal-child">True</property> <child> <placeholder/> </child> diff --git a/gajim/groupchat_control.py b/gajim/groupchat_control.py index 91a557f2c21723ab78981c932cd9431b60adc303..2d531d18fba3c0725e22f31365fff999171325c6 100644 --- a/gajim/groupchat_control.py +++ b/gajim/groupchat_control.py @@ -200,8 +200,10 @@ def __init__(self, parent_win, jid, muc_data, acct): self.xml.settings_menu.set_menu_model(self.control_menu) - app.settings.connect_signal('gc_print_join_left_default', self.update_actions) - app.settings.connect_signal('gc_print_status_default', self.update_actions) + app.settings.connect_signal('gc_print_join_left_default', + self.update_actions) + app.settings.connect_signal('gc_print_status_default', + self.update_actions) self.register_events([ ('bookmarks-received', ged.GUI1, self._on_bookmarks_received), @@ -216,10 +218,6 @@ def __init__(self, parent_win, jid, muc_data, acct): self.update_ui() self.widget.show_all() - if app.settings.get('hide_groupchat_occupants_list'): - # Roster is shown by default, so toggle the roster button to hide it - self.show_roster() - # PluginSystem: adding GUI extension point for this GroupchatControl # instance object app.plugin_manager.gui_extension_point('groupchat_control', self) @@ -254,6 +252,7 @@ def _on_muc_state_changed(self, _contact, _signal_name): state = self.contact.state if state == MUCJoinedState.JOINED: self._set_control_active() + self.show_roster() elif state == MUCJoinedState.NOT_JOINED: self._set_control_inactive()