[Xfce4-commits] <midori:master> Don't show clear in inline find if there's no text

Christian Dywan noreply at xfce.org
Sun Oct 9 12:44:02 CEST 2011


Updating branch refs/heads/master
         to 09d19500297f233d681a773b259196c98a4730ea (commit)
       from 3e60f4424b97cae7c460759bf10591e46b2342de (commit)

commit 09d19500297f233d681a773b259196c98a4730ea
Author: Robert Roth <evfool at gmail.com>
Date:   Sun Oct 9 12:41:46 2011 +0200

    Don't show clear in inline find if there's no text
    
    Fixes: https://bugs.launchpad.net/midori/+bug/772841

 toolbars/midori-findbar.c |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/toolbars/midori-findbar.c b/toolbars/midori-findbar.c
index ae3e8c5..86828bf 100644
--- a/toolbars/midori-findbar.c
+++ b/toolbars/midori-findbar.c
@@ -54,9 +54,19 @@ midori_findbar_set_icon (MidoriFindbar*       findbar,
                          GtkIconEntryPosition icon_pos,
                          const gchar*         icon_name)
 {
-    gchar* symbolic_icon_name = g_strconcat (icon_name, "-symbolic", NULL);
+    #if !HAVE_HILDON
     GdkScreen* screen = gtk_widget_get_screen (findbar->find_text);
     GtkIconTheme* icon_theme = gtk_icon_theme_get_for_screen (screen);
+    gchar* symbolic_icon_name;
+
+    if (icon_name == NULL)
+    {
+        gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (findbar->find_text),
+                                                icon_pos, NULL);
+        return;
+    }
+
+    symbolic_icon_name = g_strconcat (icon_name, "-symbolic", NULL);
     if (gtk_icon_theme_has_icon (icon_theme, symbolic_icon_name))
         gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (findbar->find_text),
                                                 icon_pos, symbolic_icon_name);
@@ -64,6 +74,7 @@ midori_findbar_set_icon (MidoriFindbar*       findbar,
         gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (findbar->find_text),
                                                 icon_pos, icon_name);
     g_free (symbolic_icon_name);
+    #endif
 }
 
 static void
@@ -104,7 +115,13 @@ midori_findbar_entry_clear_icon_released_cb (GtkIconEntry* entry,
                                              gpointer      user_data)
 {
     if (icon_pos == GTK_ICON_ENTRY_SECONDARY)
+    {
         gtk_entry_set_text (GTK_ENTRY (entry), "");
+        #if !HAVE_HILDON
+        gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (entry),
+                                            GTK_ICON_ENTRY_PRIMARY, GTK_STOCK_FIND);
+        #endif
+    }
 }
 
 static gboolean
@@ -155,10 +172,8 @@ midori_findbar_invoke (MidoriFindbar* findbar)
         GtkWidget* view = midori_browser_get_current_tab (browser);
         const gchar* text;
 
-        #if !HAVE_HILDON
         midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_PRIMARY, "edit-find");
         gtk_widget_show (GTK_WIDGET (findbar->find_case));
-        #endif
         gtk_widget_show (GTK_WIDGET (findbar->find_highlight));
         gtk_widget_show (GTK_WIDGET (findbar->find_close));
         if ((text = midori_view_get_selected_text (MIDORI_VIEW (view))))
@@ -197,8 +212,13 @@ midori_findbar_preedit_changed_cb (GtkWidget*     entry,
     MidoriBrowser* browser = midori_browser_get_for_widget (entry);
     GtkWidget* view = midori_browser_get_current_tab (browser);
     midori_view_unmark_text_matches (MIDORI_VIEW (view));
-    if (g_utf8_strlen (preedit, -1) > 1)
+    if (g_utf8_strlen (preedit, -1) >= 1)
+    {
+        midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_SECONDARY, "edit-clear");
         midori_findbar_find_text (findbar, preedit, TRUE);
+    }
+    else
+        midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_SECONDARY, NULL);
 }
 
 static void
@@ -247,12 +267,9 @@ midori_findbar_init (MidoriFindbar* findbar)
         gtk_label_new_with_mnemonic (_("_Inline Find:")));
     gtk_toolbar_insert (GTK_TOOLBAR (findbar), toolitem, -1);
     findbar->find_text = gtk_icon_entry_new ();
-    #if !HAVE_HILDON
     midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_PRIMARY, "edit-find");
-    midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_SECONDARY, "edit-clear");
     gtk_icon_entry_set_icon_highlight (GTK_ICON_ENTRY (findbar->find_text),
                                        GTK_ICON_ENTRY_SECONDARY, TRUE);
-    #endif
     g_signal_connect (findbar->find_text, "icon-release",
         G_CALLBACK (midori_findbar_entry_clear_icon_released_cb), NULL);
     g_signal_connect (findbar->find_text, "activate",
@@ -333,9 +350,7 @@ midori_findbar_search_text (MidoriFindbar* findbar,
     gboolean case_sensitive;
     gboolean highlight;
 
-    #if !HAVE_HILDON
     midori_findbar_set_icon (findbar, GTK_ICON_ENTRY_PRIMARY, found ? "edit-find" : "stop");
-    #endif
 
     if (typing)
     {


More information about the Xfce4-commits mailing list