[recipes] Refine reordering by keynav for ingredients



commit badc65903fe4e2ead0ae3659bf007f1cb2538364
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu May 11 21:48:41 2017 -0400

    Refine reordering by keynav for ingredients
    
    Use Alt-Up/Down, and don't require focus on the drag handle.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=782522

 src/gr-ingredients-viewer-row.c  |   11 +++++------
 src/gr-ingredients-viewer-row.ui |    1 +
 2 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/src/gr-ingredients-viewer-row.c b/src/gr-ingredients-viewer-row.c
index 3edbb58..de4d9e8 100644
--- a/src/gr-ingredients-viewer-row.c
+++ b/src/gr-ingredients-viewer-row.c
@@ -372,9 +372,8 @@ entry_key_press (GrIngredientsViewerRow *row,
 }
 
 static gboolean
-drag_key_press (GtkButton              *button,
-                GdkEventKey            *event,
-                GrIngredientsViewerRow *source)
+drag_key_press (GrIngredientsViewerRow *source,
+                GdkEventKey            *event)
 {
         GtkWidget *list;
         GtkWidget *target;
@@ -383,16 +382,16 @@ drag_key_press (GtkButton              *button,
         list = gtk_widget_get_parent (GTK_WIDGET (source));
         index = gtk_list_box_row_get_index (GTK_LIST_BOX_ROW (source));
 
-        if (event->keyval == GDK_KEY_Up)
+        if ((event->state & GDK_MOD1_MASK) != 0 && event->keyval == GDK_KEY_Up)
                 target = GTK_WIDGET (gtk_list_box_get_row_at_index (GTK_LIST_BOX (list), index - 1));
-        else if (event->keyval == GDK_KEY_Down)
+        else if ((event->state & GDK_MOD1_MASK) != 0 && event->keyval == GDK_KEY_Down)
                 target = GTK_WIDGET (gtk_list_box_get_row_at_index (GTK_LIST_BOX (list), index + 1));
         else
                 return GDK_EVENT_PROPAGATE;
 
         if (target) {
                 g_signal_emit (source, signals[MOVE], 0, target);
-                gtk_widget_grab_focus (GTK_WIDGET (button));
+                gtk_widget_grab_focus (GTK_WIDGET (source));
         }
 
         return GDK_EVENT_STOP;
diff --git a/src/gr-ingredients-viewer-row.ui b/src/gr-ingredients-viewer-row.ui
index 9ecbad3..613f3db 100644
--- a/src/gr-ingredients-viewer-row.ui
+++ b/src/gr-ingredients-viewer-row.ui
@@ -3,6 +3,7 @@
   <template class="GrIngredientsViewerRow" parent="GtkListBoxRow">
     <property name="visible">1</property>
     <signal name="focus-in-event" handler="edit_unit_or_focus_out" swapped="yes"/>
+    <signal name="key-press-event" handler="drag_key_press" swapped="yes"/>
     <child>
       <object class="GtkBox" id="box">
         <property name="visible">1</property>


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