Forward keyboard events to current window from shell
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 3 Dec 2009 15:43:40 +0000 (16:43 +0100)
committerJose Dapena Paz <jdapena@igalia.com>
Thu, 3 Dec 2009 15:43:40 +0000 (16:43 +0100)
src/gtk/modest-shell.c
src/widgets/modest-window.c

index 4aca7be..dc1703f 100644 (file)
@@ -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 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;
 
 
 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);
 
                                    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
 }
 
 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;
+       
+}
index 9e17941..9c7e64c 100644 (file)
@@ -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));
                        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;
        }
        
                break;
        }