[gnome-photos] application: Use gtk_application_add_accelerator for simple actions



commit 55c6b70aeb326cbd84baa47f44753ed2ba4995c2
Author: Debarshi Ray <debarshir gnome org>
Date:   Mon Nov 12 23:41:23 2012 +0100

    application: Use gtk_application_add_accelerator for simple actions
    
    ... instead of using custom code in a key press handler.
    
    Original patch from Cosimo Cecchi for gnome-documents.

 src/photos-application.c |    2 ++
 src/photos-main-window.c |   22 ++++++++--------------
 2 files changed, 10 insertions(+), 14 deletions(-)
---
diff --git a/src/photos-application.c b/src/photos-application.c
index 1fb1744..b718d9a 100644
--- a/src/photos-application.c
+++ b/src/photos-application.c
@@ -143,6 +143,8 @@ photos_application_startup (GApplication *application)
   g_menu_append (menu, _("Quit"), "app.quit");
 
   gtk_application_set_app_menu (GTK_APPLICATION (self), G_MENU_MODEL (menu));
+  gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>q", "app.quit", NULL);
+  gtk_application_add_accelerator (GTK_APPLICATION (self), "F11", "app.fullscreen", NULL);
 
   photos_mode_controller_set_window_mode (priv->mode_cntrlr, PHOTOS_WINDOW_MODE_OVERVIEW);
 }
diff --git a/src/photos-main-window.c b/src/photos-main-window.c
index 74dfa8a..df9e9b5 100644
--- a/src/photos-main-window.c
+++ b/src/photos-main-window.c
@@ -161,12 +161,6 @@ photos_main_window_handle_key_preview (PhotosMainWindow *self, GdkEventKey *even
   direction = gtk_widget_get_direction (GTK_WIDGET (self));
   fullscreen = photos_mode_controller_get_fullscreen (priv->controller);
 
-  if ((event->keyval == GDK_KEY_f || event->keyval == GDK_KEY_F11) && (event->state & GDK_CONTROL_MASK) == 0)
-    {
-      photos_mode_controller_toggle_fullscreen (priv->controller);
-      return TRUE;
-    }
-
   if ((fullscreen && event->keyval == GDK_KEY_Escape)
       || ((event->state & GDK_MOD1_MASK) != 0
           && ((direction == GTK_TEXT_DIR_LTR && event->keyval == GDK_KEY_Left)
@@ -188,18 +182,18 @@ photos_main_window_key_press_event (GtkWidget *widget, GdkEventKey *event)
   PhotosMainWindow *self = PHOTOS_MAIN_WINDOW (widget);
   PhotosMainWindowPrivate *priv = self->priv;
   PhotosWindowMode mode;
-
-  if ((event->keyval == GDK_KEY_q) && ((event->state & GDK_CONTROL_MASK) != 0))
-    {
-      gtk_widget_destroy (widget);
-      return TRUE;
-    }
+  gboolean handled;
 
   mode = photos_mode_controller_get_window_mode (priv->controller);
   if (mode == PHOTOS_WINDOW_MODE_PREVIEW)
-    return photos_main_window_handle_key_preview (self, event);
+    handled = photos_main_window_handle_key_preview (self, event);
   else
-    return photos_main_window_handle_key_overview (self, event);
+    handled = photos_main_window_handle_key_overview (self, event);
+
+  if (!handled)
+    handled = GTK_WIDGET_CLASS (photos_main_window_parent_class)->key_press_event (widget, event);
+
+  return handled;
 }
 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]