Dismiss this. 2012/5/10 Manuel Quiñones <ma...@laptop.org>: > Used the same approach than the solution for the Escape > capture when the activity is fullscreen mode. Refactored the > method to allow this keystrokes. > > This fixes http://dev.laptop.org/ticket/11836 and > http://bugs.sugarlabs.org/ticket/3222 . > > Signed-off-by: Manuel Quiñones <ma...@laptop.org> > Reviewed-by: James Cameron <qu...@laptop.org> > Tested-by: James Cameron <qu...@laptop.org> > > --- > terminal.py | 23 +++++++++++++++++++---- > 1 files changed, 19 insertions(+), 4 deletions(-) > > diff --git a/terminal.py b/terminal.py > index 6de7500..2488b5b 100644 > --- a/terminal.py > +++ b/terminal.py > @@ -380,15 +380,30 @@ class TerminalActivity(activity.Activity): > vt.fork_command("/bin/su", ('/bin/su', '-')) > > def __key_press_cb(self, window, event): > - # Escape keypresses are routed directly to the vte and then dropped. > - # This hack prevents Sugar from hijacking them and canceling > - # fullscreen mode. > - if gtk.gdk.keyval_name(event.keyval) == 'Escape': > + """Route some keypresses directly to the vte and then drom them. > + > + This prevents Sugar from hijacking events that are useful in > + the vte. > + > + """ > + > + def event_to_vt(event): > current_page = self._notebook.get_current_page() > vt = self._notebook.get_nth_page(current_page).vt > vt.event(event) > + > + key_name = gtk.gdk.keyval_name(event.keyval) > + > + # Escape is used in Sugar to cancel fullscreen mode. > + if key_name == 'Escape': > + event_to_vt(event) > return True > > + elif event.get_state() & gtk.gdk.CONTROL_MASK: > + if key_name in ['z', 'q']: > + event_to_vt(event) > + return True > + > return False > > def read_file(self, file_path): > -- > 1.7.7.6 >
-- .. manuq .. _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel