changeset 190d65f8d94b in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=190d65f8d94b description: fix resizing of the MUC occupant treeview when we resize chat window. Fixes #5433
diffstat:
src/groupchat_control.py | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)
diffs (43 lines):
diff -r dbdc410611bb -r 190d65f8d94b src/groupchat_control.py --- a/src/groupchat_control.py Fri Nov 20 13:49:56 2009 +0100 +++ b/src/groupchat_control.py Fri Nov 20 22:09:05 2009 +0100 @@ -317,6 +317,7 @@ id_ = self.list_treeview.connect('style-set', self.on_list_treeview_style_set) self.handlers[id_] = self.list_treeview + self.resize_from_another_muc = False # we want to know when the the widget resizes, because that is # an indication that the hpaned has moved... # FIXME: Find a better indicator that the hpaned has moved. @@ -446,17 +447,29 @@
menu.show_all()
+ def resize_occupant_treeview(self, position): + self.resize_from_another_muc = True + self.hpaned.set_position(position) + def reset_flag(): + self.resize_from_another_muc = False + # Reset the flag when everything will be redrawn, and in particular when + # on_treeview_size_allocate will have been called. + gobject.idle_add(reset_flag) + def on_treeview_size_allocate(self, widget, allocation): '''The MUC treeview has resized. Move the hpaned in all tabs to match''' + if self.resize_from_another_muc: + # Don't send the event to other MUC + return hpaned_position = self.hpaned.get_position() for account in gajim.gc_connected: for room_jid in [i for i in gajim.gc_connected[account] if \ - gajim.gc_connected[account][i]]: + gajim.gc_connected[account][i] and i != self.room_jid]: ctrl = gajim.interface.msg_win_mgr.get_gc_control(room_jid, account) if not ctrl: ctrl = gajim.interface.minimized_controls[account][room_jid] if ctrl: - ctrl.hpaned.set_position(hpaned_position) + ctrl.resize_occupant_treeview(hpaned_position)
def iter_contact_rows(self): '''iterate over all contact rows in the tree model'''