[gnome-control-center] region: Add "clear" secondary icon to search entry
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] region: Add "clear" secondary icon to search entry
- Date: Tue, 26 Apr 2011 13:40:04 +0000 (UTC)
commit 702fb777b11625abc9e3851a6d30a7d2fb3b789c
Author: Bastien Nocera <hadess hadess net>
Date: Tue Apr 26 14:38:30 2011 +0100
region: Add "clear" secondary icon to search entry
https://bugzilla.gnome.org/show_bug.cgi?id=647717
panels/region/gnome-region-panel-layout-chooser.ui | 3 ++
panels/region/gnome-region-panel-xkbltadd.c | 26 ++++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/panels/region/gnome-region-panel-layout-chooser.ui b/panels/region/gnome-region-panel-layout-chooser.ui
index 43341f2..7140d82 100644
--- a/panels/region/gnome-region-panel-layout-chooser.ui
+++ b/panels/region/gnome-region-panel-layout-chooser.ui
@@ -151,6 +151,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">â?¢</property>
+ <property name="secondary-icon-name">edit-find-symbolic</property>
+ <property name="secondary-icon-activatable">False</property>
+ <property name="secondary-icon-sensitive">False</property>
</object>
<packing>
<property name="expand">False</property>
diff --git a/panels/region/gnome-region-panel-xkbltadd.c b/panels/region/gnome-region-panel-xkbltadd.c
index 2cd588a..c2a3dc4 100644
--- a/panels/region/gnome-region-panel-xkbltadd.c
+++ b/panels/region/gnome-region-panel-xkbltadd.c
@@ -244,6 +244,15 @@ xkl_layout_add_to_list (XklConfigRegistry * config,
}
static void
+xkb_layout_filter_clear (GtkEntry *entry,
+ GtkEntryIconPosition icon_pos,
+ GdkEvent *event,
+ gpointer user_data)
+{
+ gtk_entry_set_text (entry, "");
+}
+
+static void
xkb_layout_filter_changed (GtkBuilder * chooser_dialog)
{
GtkTreeModelFilter *filtered_model =
@@ -254,6 +263,20 @@ xkb_layout_filter_changed (GtkBuilder * chooser_dialog)
gtk_entry_get_text (GTK_ENTRY (xkb_layout_filter));
gchar *upattern = g_utf8_strup (pattern, -1);
+ if (!g_strcmp0 (pattern, "")) {
+ g_object_set (G_OBJECT (xkb_layout_filter),
+ "secondary-icon-name", "edit-find-symbolic",
+ "secondary-icon-activatable", FALSE,
+ "secondary-icon-sensitive", FALSE,
+ NULL);
+ } else {
+ g_object_set (G_OBJECT (xkb_layout_filter),
+ "secondary-icon-name", "edit-clear-symbolic",
+ "secondary-icon-activatable", TRUE,
+ "secondary-icon-sensitive", TRUE,
+ NULL);
+ }
+
if (search_pattern_list != NULL)
g_strfreev (search_pattern_list);
@@ -363,6 +386,9 @@ xkb_layout_choose (GtkBuilder * dialog)
(xkb_layout_filter_changed),
chooser_dialog);
+ g_signal_connect (G_OBJECT (xkb_layout_filter), "icon-release",
+ G_CALLBACK (xkb_layout_filter_clear), NULL);
+
selection =
gtk_tree_view_get_selection (GTK_TREE_VIEW
(xkb_filtered_layouts_list));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]