commit dd5f5a280bf07a6fb799ac2595c41f8c47c04595
Author: Ajay Garg <ajay@activitycentral.com>
Date: Wed Dec 12 14:45:39 2012 +0530
sdxo#2687: Now, when we are in "My Settings" (or any section thereof), the function-keys (as present in src/jarabe/view/keyhandler.py) won't work.
diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py
index a941faf..6b0f240 100644
a
|
b
|
class ControlPanel(Gtk.Window): |
365 | 365 | self._update(query) |
366 | 366 | |
367 | 367 | def __stop_clicked_cb(self, widget): |
| 368 | # Now, since we are exiting the "modal" "My Settings", |
| 369 | # re-enable the Function-key-handlers. |
| 370 | from jarabe.view.keyhandler import set_key_handlers_active |
| 371 | set_key_handlers_active(True) |
| 372 | |
368 | 373 | self.destroy() |
369 | 374 | |
370 | 375 | def __close_request_cb(self, widget, event=None): |
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index b117be9..71d7f0e 100644
a
|
b
|
class BuddyMenu(Palette): |
180 | 180 | frame = jarabe.frame.get_view() |
181 | 181 | frame.hide() |
182 | 182 | |
| 183 | # Now, since we are entering the "modal" "My Settings", |
| 184 | # disable the Function-key-handlers. |
| 185 | from jarabe.view.keyhandler import set_key_handlers_active |
| 186 | set_key_handlers_active(False) |
| 187 | |
183 | 188 | # show the control panel |
184 | 189 | panel = ControlPanel() |
185 | 190 | panel.show() |
diff --git a/src/jarabe/view/keyhandler.py b/src/jarabe/view/keyhandler.py
index cb47d17..517f30b 100644
a
|
b
|
class KeyHandler(object): |
74 | 74 | self._key_pressed = None |
75 | 75 | self._keycode_pressed = 0 |
76 | 76 | self._keystate_pressed = 0 |
| 77 | self._key_handlers_active = True |
77 | 78 | |
78 | 79 | self._key_grabber = SugarExt.KeyGrabber() |
79 | 80 | self._key_grabber.connect('key-pressed', |
… |
… |
class KeyHandler(object): |
163 | 164 | journalactivity.get_journal().show_journal() |
164 | 165 | |
165 | 166 | def _key_pressed_cb(self, grabber, keycode, state, event_time): |
| 167 | if not self._key_handlers_active: |
| 168 | return |
| 169 | |
166 | 170 | key = grabber.get_key(keycode, state) |
167 | 171 | logging.debug('_key_pressed_cb: %i %i %s', keycode, state, key) |
168 | 172 | if key is not None: |
… |
… |
class KeyHandler(object): |
197 | 201 | return False |
198 | 202 | |
199 | 203 | def _key_released_cb(self, grabber, keycode, state, event_time): |
| 204 | if not self._key_handlers_active: |
| 205 | return |
| 206 | |
200 | 207 | logging.debug('_key_released_cb: %i %i', keycode, state) |
201 | 208 | if self._tabbing_handler.is_tabbing(): |
202 | 209 | # We stop tabbing and switch to the new window as soon as the |
… |
… |
def setup(frame): |
215 | 222 | del _instance |
216 | 223 | |
217 | 224 | _instance = KeyHandler(frame) |
| 225 | |
| 226 | |
| 227 | def set_key_handlers_active(active): |
| 228 | """ |
| 229 | The setup(frame) is already run at sugar-session startup. |
| 230 | So, we can safely assume the "_instance" is fully-grown up. |
| 231 | """ |
| 232 | |
| 233 | _instance._key_handlers_active = active |