[Sugar-devel] [PATCH Terminal] Prevent Sugar capture <Ctrl>z and <Ctrl>q send them to vte SL #3222 OLPC #11836
Manuel Quiñones
manuq at laptop.org
Thu May 10 10:06:54 EDT 2012
Dismiss this.
2012/5/10 Manuel Quiñones <manuq at 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 <manuq at laptop.org>
> Reviewed-by: James Cameron <quozl at laptop.org>
> Tested-by: James Cameron <quozl at 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 ..
More information about the Sugar-devel
mailing list