From: Jose Dapena Paz Date: Thu, 3 Dec 2009 15:43:40 +0000 (+0100) Subject: Forward keyboard events to current window from shell X-Git-Tag: jdapena-ppa-3.90.4-modest0~132 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=ec696712d45993f82656ab29c47715156a3f9271 Forward keyboard events to current window from shell --- diff --git a/src/gtk/modest-shell.c b/src/gtk/modest-shell.c index 4aca7be..dc1703f 100644 --- a/src/gtk/modest-shell.c +++ b/src/gtk/modest-shell.c @@ -44,6 +44,7 @@ static void on_back_button_clicked (GtkToolButton *button, ModestShell *self); static void on_title_button_clicked (GtkToolButton *button, ModestShell *self); static void on_new_msg_button_clicked (GtkToolButton *button, ModestShell *self); static void on_style_set (GtkWidget *widget, GtkStyle *old_style, ModestShell *shell); +static gboolean on_key_pressed (GtkWidget *widget, GdkEventKey *event, ModestShell *shell); typedef struct _ModestShellPrivate ModestShellPrivate; @@ -209,6 +210,10 @@ modest_shell_instance_init (ModestShell *obj) accel_key, accel_mods, 0); gtk_window_add_accel_group (GTK_WINDOW (obj), accel_group); + g_signal_connect (G_OBJECT (obj), + "key-press-event", + G_CALLBACK (on_key_pressed), obj); + } static void @@ -536,3 +541,22 @@ on_style_set (GtkWidget *widget, } } + +static gboolean +on_key_pressed (GtkWidget *widget, + GdkEventKey *event, + ModestShell *shell) +{ + ModestShellPrivate *priv; + gboolean retval; + GtkWidget *current_window; + + priv = MODEST_SHELL_GET_PRIVATE (shell); + + current_window = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), -1); + + g_signal_emit_by_name (current_window, "key-press-event", event, &retval); + + return retval; + +} diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index 9e17941..9c7e64c 100644 --- a/src/widgets/modest-window.c +++ b/src/widgets/modest-window.c @@ -614,6 +614,8 @@ on_key_pressed (GtkWidget *self, modest_ui_actions_on_change_fullscreen (NULL, MODEST_WINDOW(self)); else if (MODEST_IS_MSG_VIEW_WINDOW (self)) modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (self)); + else + return FALSE; break; }