From 4c22ba5b35fc2c818cf373ea2e3d30b063c73b35 Mon Sep 17 00:00:00 2001 From: James Cameron Date: Mon, 25 May 2015 12:41:24 +1000 Subject: [PATCH] Add escape key to palette windows Popdown a palette window in response to escape key. --- src/sugar3/graphics/palettewindow.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sugar3/graphics/palettewindow.py b/src/sugar3/graphics/palettewindow.py index ed96070c..30cb2afc 100644 --- a/src/sugar3/graphics/palettewindow.py +++ b/src/sugar3/graphics/palettewindow.py @@ -520,6 +520,7 @@ class PaletteWindow(GObject.GObject): self._widget.connect('destroy', self.__destroy_cb) self._widget.connect('enter-notify', self.__enter_notify_cb) self._widget.connect('leave-notify', self.__leave_notify_cb) + self._widget.connect('key-press-event', self.__key_press_event_cb) self._set_effective_group_id(self._group_id) self._widget.set_invoker(self._invoker) @@ -533,6 +534,7 @@ class PaletteWindow(GObject.GObject): self._widget.disconnect_by_func(self.__destroy_cb) self._widget.disconnect_by_func(self.__enter_notify_cb) self._widget.disconnect_by_func(self.__leave_notify_cb) + self._widget.disconnect_by_func(self.__key_press_event_cb) self._set_effective_group_id(None) def destroy(self): @@ -717,6 +719,10 @@ class PaletteWindow(GObject.GObject): if not self._invoker.locked: self.on_leave() + def __key_press_event_cb(self, window, event): + if event.keyval == Gdk.KEY_Escape: + self.popdown() + def __show_cb(self, widget): if self._invoker is not None: self._invoker.notify_popup()