]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-live-search.c
Merge branch 'gnome-3-8'
[empathy.git] / libempathy-gtk / empathy-live-search.c
index f03aa9fe4c4c563568e1e35753dccce7b667edb2..51f6a2e07d7ac7abedc10c99e8a0cd1df726803c 100644 (file)
  *          Claudio Saavedra <csaavedra@igalia.com>
  */
 
-#include <config.h>
-#include <string.h>
-
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-
-#include <libempathy/empathy-utils.h>
-
+#include "config.h"
 #include "empathy-live-search.h"
 
+#include "empathy-utils.h"
+
 G_DEFINE_TYPE (EmpathyLiveSearch, empathy_live_search, GTK_TYPE_HBOX)
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyLiveSearch)
@@ -264,7 +259,8 @@ live_search_entry_key_pressed_cb (GtkEntry *entry,
 
   /* emit key navigation signal, so other widgets can respond to it properly */
   if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down
-      || event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down)
+      || event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down
+      || event->keyval == GDK_KEY_Menu)
      {
        return fire_key_navigation_sig (self, event);
      }
@@ -345,7 +341,8 @@ live_search_key_press_event_cb (GtkWidget *widget,
    * they are needed for navigation in the treeview and are not needed in
    * the search entry */
    if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down ||
-       event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down)
+       event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down ||
+       event->keyval == GDK_KEY_Menu)
      return FALSE;
 
    if (event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End ||
@@ -497,7 +494,9 @@ live_search_unmap (GtkWidget *widget)
   gtk_widget_hide (widget);
 
   gtk_entry_set_text (GTK_ENTRY (priv->search_entry), "");
-  gtk_widget_grab_focus (priv->hook_widget);
+
+  if (priv->hook_widget != NULL)
+    gtk_widget_grab_focus (priv->hook_widget);
 }
 
 static void