[gthumb/ext] allow to use the rotate keybindings in the viewer as well



commit bdd2a4975d49cfb9d8585a69cbd3875861ee5cdf
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Thu Sep 24 23:50:03 2009 +0200

    allow to use the rotate keybindings in the viewer as well
    
    [bug #594796]

 extensions/image_rotation/callbacks.c |   61 ++++++++++++++------------------
 extensions/image_rotation/callbacks.h |    6 ++-
 extensions/image_rotation/main.c      |    1 +
 3 files changed, 32 insertions(+), 36 deletions(-)
---
diff --git a/extensions/image_rotation/callbacks.c b/extensions/image_rotation/callbacks.c
index 3c71a0a..c7ff9e6 100644
--- a/extensions/image_rotation/callbacks.c
+++ b/extensions/image_rotation/callbacks.c
@@ -67,35 +67,6 @@ browser_data_free (BrowserData *data)
 }
 
 
-static gboolean
-gth_file_list_key_press_cb (GtkWidget   *widget,
-			    GdkEventKey *event,
-			    gpointer     user_data)
-{
-	GthBrowser *browser = user_data;
-	gboolean    result = FALSE;
-
-	if (! (event->state & GDK_CONTROL_MASK) && ! (event->state & GDK_MOD1_MASK)) {
-		switch (gdk_keyval_to_lower (event->keyval)) {
-		case GDK_bracketright:
-			gth_browser_activate_action_tool_rotate_right (NULL, browser);
-			result = TRUE;
-			break;
-
-		case GDK_bracketleft:
-			gth_browser_activate_action_tool_rotate_left (NULL, browser);
-			result = TRUE;
-			break;
-
-		default:
-			break;
-		}
-        }
-
-	return result;
-}
-
-
 void
 ir__gth_browser_construct_cb (GthBrowser *browser)
 {
@@ -118,11 +89,6 @@ ir__gth_browser_construct_cb (GthBrowser *browser)
 		g_clear_error (&error);
 	}
 
-	g_signal_connect (gth_browser_get_file_list (browser),
-			  "key_press_event",
-			  G_CALLBACK (gth_file_list_key_press_cb),
-			  browser);
-
 	g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free);
 }
 
@@ -147,3 +113,30 @@ ir__gth_browser_update_sensitivity_cb (GthBrowser *browser)
 	action = gtk_action_group_get_action (data->action_group, "Tool_RotateLeft");
 	g_object_set (action, "sensitive", sensitive, NULL);
 }
+
+
+gpointer
+ir__gth_browser_file_list_key_press_cb (GthBrowser  *browser,
+					GdkEventKey *event)
+{
+	gpointer result = NULL;
+
+	if (! (event->state & GDK_CONTROL_MASK) && ! (event->state & GDK_MOD1_MASK)) {
+		switch (gdk_keyval_to_lower (event->keyval)) {
+		case GDK_bracketright:
+			gth_browser_activate_action_tool_rotate_right (NULL, browser);
+			result = GINT_TO_POINTER (1);
+			break;
+
+		case GDK_bracketleft:
+			gth_browser_activate_action_tool_rotate_left (NULL, browser);
+			result = GINT_TO_POINTER (1);
+			break;
+
+		default:
+			break;
+		}
+        }
+
+	return result;
+}
diff --git a/extensions/image_rotation/callbacks.h b/extensions/image_rotation/callbacks.h
index f1991e8..2828c58 100644
--- a/extensions/image_rotation/callbacks.h
+++ b/extensions/image_rotation/callbacks.h
@@ -25,7 +25,9 @@
 
 #include <gthumb.h>
 
-void  ir__gth_browser_construct_cb          (GthBrowser *browser);
-void  ir__gth_browser_update_sensitivity_cb (GthBrowser *browser);
+void      ir__gth_browser_construct_cb           (GthBrowser  *browser);
+void      ir__gth_browser_update_sensitivity_cb  (GthBrowser  *browser);
+gpointer  ir__gth_browser_file_list_key_press_cb (GthBrowser  *browser,
+						  GdkEventKey *event);
 
 #endif /* CALLBACKS_H */
diff --git a/extensions/image_rotation/main.c b/extensions/image_rotation/main.c
index eeba6c7..321ce7e 100644
--- a/extensions/image_rotation/main.c
+++ b/extensions/image_rotation/main.c
@@ -41,6 +41,7 @@ gthumb_extension_activate (void)
 
 	gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (ir__gth_browser_construct_cb), NULL);
 	gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (ir__gth_browser_update_sensitivity_cb), NULL);
+	gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (ir__gth_browser_file_list_key_press_cb), NULL);
 }
 
 



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