From 4106ff0f55f2db4f153841c5d33ae04e3d23bd92 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Tue, 18 May 2004 23:39:11 +0000 Subject: [PATCH] elect all rows when escape is pressed or when we click under all rows --- plugins/gtkgui/gtkgui.glade | 1 + plugins/gtkgui/gtkgui.py | 47 +++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/plugins/gtkgui/gtkgui.glade b/plugins/gtkgui/gtkgui.glade index 0c48fed0c..ec067b21d 100644 --- a/plugins/gtkgui/gtkgui.glade +++ b/plugins/gtkgui/gtkgui.glade @@ -236,6 +236,7 @@ + diff --git a/plugins/gtkgui/gtkgui.py b/plugins/gtkgui/gtkgui.py index 4409f467d..bb830a5a4 100644 --- a/plugins/gtkgui/gtkgui.py +++ b/plugins/gtkgui/gtkgui.py @@ -697,24 +697,35 @@ class roster_Window: def on_treeview_event(self, widget, event): """popup user's group's or agent menu""" - if (event.button == 3) & (event.type == gtk.gdk.BUTTON_PRESS): - try: - path, column, x, y = self.tree.get_path_at_pos(int(event.x), \ - int(event.y)) - except TypeError: - return - model = self.tree.get_model() - iter = model.get_iter(path) - type = model.get_value(iter, 2) - if type == 'group': - self.mk_menu_g(event) - elif type == 'agent': - self.mk_menu_agent(event, iter) - elif type == 'user': - self.mk_menu_user(event, iter) - elif type == 'account': - self.mk_menu_account(event, iter) - return gtk.TRUE + if event.type == gtk.gdk.BUTTON_PRESS: + if event.button == 3: + try: + path, column, x, y = self.tree.get_path_at_pos(int(event.x), \ + int(event.y)) + except TypeError: + self.tree.get_selection().unselect_all() + return + model = self.tree.get_model() + iter = model.get_iter(path) + type = model.get_value(iter, 2) + if type == 'group': + self.mk_menu_g(event) + elif type == 'agent': + self.mk_menu_agent(event, iter) + elif type == 'user': + self.mk_menu_user(event, iter) + elif type == 'account': + self.mk_menu_account(event, iter) + return gtk.TRUE + if event.button == 1: + try: + path, column, x, y = self.tree.get_path_at_pos(int(event.x), \ + int(event.y)) + except TypeError: + self.tree.get_selection().unselect_all() + if event.type == gtk.gdk.KEY_RELEASE: + if event.keyval == gtk.keysyms.Escape: + self.tree.get_selection().unselect_all() return gtk.FALSE def on_req_usub(self, widget, user, account):