[Xfce4-commits] <xfce4-appfinder:master> Add keybinds to switch modes.

Nick Schermer noreply at xfce.org
Tue Dec 27 15:30:03 CET 2011


Updating branch refs/heads/master
         to 25313fd53100c3d2bce626dcfeaaad672bfd6b09 (commit)
       from 30518c8a496bab6b912b3dbff9a2bf9be858e0fb (commit)

commit 25313fd53100c3d2bce626dcfeaaad672bfd6b09
Author: Nick Schermer <nick at xfce.org>
Date:   Tue Dec 27 15:28:38 2011 +0100

    Add keybinds to switch modes.
    
    Add Ctrl-1 and Ctrl-2 to switch between icon and treeview.
    
    Add Ctrl-{+,-,0} to set icon size of item view.

 src/appfinder-window.c |   52 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/src/appfinder-window.c b/src/appfinder-window.c
index 4cf1133..06d9106 100644
--- a/src/appfinder-window.c
+++ b/src/appfinder-window.c
@@ -420,22 +420,54 @@ static gboolean
 xfce_appfinder_window_key_press_event (GtkWidget   *widget,
                                        GdkEventKey *event)
 {
-  GtkWidget *entry;
+  XfceAppfinderWindow   *window = XFCE_APPFINDER_WINDOW (widget);
+  GtkWidget             *entry;
+  XfceAppfinderIconSize  icon_size = XFCE_APPFINDER_ICON_SIZE_DEFAULT_ITEM;
 
   if (event->keyval == GDK_Escape)
     {
       gtk_widget_destroy (widget);
       return TRUE;
     }
-  else if (event->keyval == GDK_l
-           && (event->state & GDK_CONTROL_MASK) != 0)
-    {
-      entry = XFCE_APPFINDER_WINDOW (widget)->entry;
+  else if ((event->state & GDK_CONTROL_MASK) != 0)
+    {g_message ("%d", event->keyval);
+      switch (event->keyval)
+        {
+        case GDK_l:
+          entry = XFCE_APPFINDER_WINDOW (widget)->entry;
 
-      gtk_widget_grab_focus (entry);
-      gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
+          gtk_widget_grab_focus (entry);
+          gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
 
-      return TRUE;
+          return TRUE;
+
+        case GDK_1:
+        case GDK_2:
+          /* toggle between icon and tree view */
+          xfconf_channel_set_bool (window->channel, "/icon-view",
+                                   event->keyval == GDK_1);
+          return TRUE;
+
+        case GDK_plus:
+        case GDK_minus:
+        case GDK_KP_Add:
+        case GDK_KP_Subtract:
+          g_object_get (G_OBJECT (window->model), "icon-size", &icon_size, NULL);
+          if ((event->keyval == GDK_plus || event->keyval == GDK_KP_Add))
+            {
+              if (icon_size < XFCE_APPFINDER_ICON_SIZE_LARGEST)
+                icon_size++;
+            }
+          else if (icon_size > XFCE_APPFINDER_ICON_SIZE_SMALLEST)
+            {
+              icon_size--;
+            }
+
+        case GDK_0:
+        case GDK_KP_0:
+          g_object_set (G_OBJECT (window->model), "icon-size", icon_size, NULL);
+          return TRUE;
+        }
     }
 
   return  (*GTK_WIDGET_CLASS (xfce_appfinder_window_parent_class)->key_press_event) (widget, event);


More information about the Xfce4-commits mailing list