aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy-gtk/empathy-individual-view.c19
-rw-r--r--libempathy-gtk/empathy-individual-view.h2
-rw-r--r--src/empathy-main-window.c10
-rw-r--r--src/empathy-main-window.ui7
4 files changed, 34 insertions, 4 deletions
diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c
index ebc71a10a..b75e2a1e6 100644
--- a/libempathy-gtk/empathy-individual-view.c
+++ b/libempathy-gtk/empathy-individual-view.c
@@ -1223,10 +1223,7 @@ individual_view_start_search_cb (EmpathyIndividualView *view,
if (priv->search_widget == NULL)
return FALSE;
- if (gtk_widget_get_visible (GTK_WIDGET (priv->search_widget)))
- gtk_widget_grab_focus (GTK_WIDGET (priv->search_widget));
- else
- gtk_widget_show (GTK_WIDGET (priv->search_widget));
+ empathy_individual_view_start_search (view);
return TRUE;
}
@@ -2579,3 +2576,17 @@ empathy_individual_view_set_store (EmpathyIndividualView *self,
G_CALLBACK (individual_view_store_row_deleted_cb), self, 0);
}
}
+
+void
+empathy_individual_view_start_search (EmpathyIndividualView *self)
+{
+ EmpathyIndividualViewPriv *priv = GET_PRIV (self);
+
+ g_return_if_fail (EMPATHY_IS_INDIVIDUAL_VIEW (self));
+ g_return_if_fail (priv->search_widget != NULL);
+
+ if (gtk_widget_get_visible (GTK_WIDGET (priv->search_widget)))
+ gtk_widget_grab_focus (GTK_WIDGET (priv->search_widget));
+ else
+ gtk_widget_show (GTK_WIDGET (priv->search_widget));
+}
diff --git a/libempathy-gtk/empathy-individual-view.h b/libempathy-gtk/empathy-individual-view.h
index 51a487d94..79f279f94 100644
--- a/libempathy-gtk/empathy-individual-view.h
+++ b/libempathy-gtk/empathy-individual-view.h
@@ -133,5 +133,7 @@ EmpathyIndividualStore *empathy_individual_view_get_store (
void empathy_individual_view_set_store (EmpathyIndividualView *self,
EmpathyIndividualStore *store);
+void empathy_individual_view_start_search (EmpathyIndividualView *self);
+
G_END_DECLS
#endif /* __EMPATHY_INDIVIDUAL_VIEW_H__ */
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index 85a64a365..a62c9cd41 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -954,6 +954,15 @@ main_window_notify_contact_list_size_cb (GSettings *gsettings,
}
static void
+main_window_view_search_contacts_cb (GtkCheckMenuItem *item,
+ EmpathyMainWindow *window)
+{
+ EmpathyMainWindowPriv *priv = GET_PRIV (window);
+
+ empathy_individual_view_start_search (priv->individual_view);
+}
+
+static void
main_window_view_show_map_cb (GtkCheckMenuItem *item,
EmpathyMainWindow *window)
{
@@ -1601,6 +1610,7 @@ empathy_main_window_init (EmpathyMainWindow *window)
"view_show_protocols", "toggled", main_window_view_show_protocols_cb,
"view_sort_by_name", "changed", main_window_view_sort_contacts_cb,
"view_normal_size_with_avatars", "changed", main_window_view_contacts_list_size_cb,
+ "view_search_contacts", "activate", main_window_view_search_contacts_cb,
"view_show_map", "activate", main_window_view_show_map_cb,
"edit", "activate", main_window_edit_cb,
"edit_accounts", "activate", main_window_edit_accounts_cb,
diff --git a/src/empathy-main-window.ui b/src/empathy-main-window.ui
index 1d06b3edd..a328eacfe 100644
--- a/src/empathy-main-window.ui
+++ b/src/empathy-main-window.ui
@@ -166,6 +166,12 @@
<accelerator key="3" modifiers="GDK_CONTROL_MASK"/>
</child>
<child>
+ <object class="GtkAction" id="view_search_contacts">
+ <property name="name">view_search_contacts</property>
+ <property name="label" translatable="yes">Find in Contact _List</property>
+ </object>
+ </child>
+ <child>
<object class="GtkAction" id="room">
<property name="name">room</property>
<property name="label" translatable="yes">_Room</property>
@@ -248,6 +254,7 @@
<menuitem action="view_normal_size"/>
<menuitem action="view_compact_size"/>
<separator/>
+ <menuitem action="view_search_contacts"/>
<menuitem action="view_history"/>
<menuitem action="view_show_ft_manager"/>
<menuitem action="view_show_map"/>