[empathy] live-search: fix keyboard navigation using Home/End (#632787)



commit c105d23a6dc033e281304a0032095f13e7fef63f
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Fri May 20 15:32:33 2011 +0200

    live-search: fix keyboard navigation using Home/End (#632787)

 libempathy-gtk/empathy-live-search.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/libempathy-gtk/empathy-live-search.c b/libempathy-gtk/empathy-live-search.c
index 7296eb7..21aefed 100644
--- a/libempathy-gtk/empathy-live-search.c
+++ b/libempathy-gtk/empathy-live-search.c
@@ -276,6 +276,16 @@ live_search_entry_key_pressed_cb (GtkEntry *entry,
        return fire_key_navigation_sig (self, event);
      }
 
+  if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End)
+    {
+      /* If the live search is visible, the entry should catch the Home/End
+       * events */
+      if (!gtk_widget_get_visible (GTK_WIDGET (self)))
+        {
+          return fire_key_navigation_sig (self, event);
+        }
+    }
+
   return FALSE;
 }
 
@@ -342,6 +352,14 @@ live_search_key_press_event_cb (GtkWidget *widget,
    if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down)
      return FALSE;
 
+   if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End)
+     {
+       /* Home/End keys have to be forwarded to the entry only if the live
+        * search is visible (to move the cursor inside the entry). */
+       if (!gtk_widget_get_visible (GTK_WIDGET (self)))
+         return FALSE;
+     }
+
   /* realize the widget if it is not realized yet */
   gtk_widget_realize (priv->search_entry);
   if (!gtk_widget_has_focus (priv->search_entry))



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