[gnome-utils] [gsearchtool] Always show application icons



commit 229303385439d94f1a3196c0ab12ee885c6a72b2
Author: Dennis Cranston <dennis_cranston yahoo com>
Date:   Wed Aug 26 21:45:23 2009 -0700

    [gsearchtool] Always show application icons
    
    2009-08-26  Dennis Cranston  <dennis_cranston yahoo com>
    
            * gsearchtool-callbacks.c:  Always show application icons
            for open with items.

 gsearchtool/ChangeLog               |    5 +++
 gsearchtool/gsearchtool-callbacks.c |   56 +++++++++++++++++++++++-----------
 2 files changed, 43 insertions(+), 18 deletions(-)
---
diff --git a/gsearchtool/ChangeLog b/gsearchtool/ChangeLog
index 99de879..9984487 100644
--- a/gsearchtool/ChangeLog
+++ b/gsearchtool/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-26  Dennis Cranston  <dennis_cranston yahoo com>
+
+	* gsearchtool-callbacks.c:  Always show application icons
+	for open with items.
+
 2009-08-10  Dennis Cranston  <dennis_cranston yahoo com>
 
 	* gsearchtool-callbacks.c:  Rework 'Open With' menu layout
diff --git a/gsearchtool/gsearchtool-callbacks.c b/gsearchtool/gsearchtool-callbacks.c
index b8e7058..47efe0d 100644
--- a/gsearchtool/gsearchtool-callbacks.c
+++ b/gsearchtool/gsearchtool-callbacks.c
@@ -1071,17 +1071,20 @@ build_popup_menu_for_file (GSearchWindow * gsearch,
 			g_signal_connect ((gpointer) new1, "activate", G_CALLBACK (open_file_cb),
 					  (gpointer) gsearch);
 
-			file_icon = g_object_ref (g_app_info_get_icon ((GAppInfo *)list->data));
+			if (g_app_info_get_icon ((GAppInfo *)list->data) != NULL) {
+				file_icon = g_object_ref (g_app_info_get_icon ((GAppInfo *)list->data));
+				gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (new1), file_icon != NULL);
 
-			if (file_icon == NULL) {
-				file_icon = g_themed_icon_new (GTK_STOCK_OPEN);
-			}
+				if (file_icon == NULL) {
+					file_icon = g_themed_icon_new (GTK_STOCK_OPEN);
+				}
 
-			image1 = gtk_image_new_from_gicon (file_icon, GTK_ICON_SIZE_MENU);
-			g_object_unref (file_icon);
-			gtk_widget_show (image1);
-			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image1);
-		
+				image1 = gtk_image_new_from_gicon (file_icon, GTK_ICON_SIZE_MENU);
+				g_object_unref (file_icon);
+				gtk_widget_show (image1);
+				gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image1);
+			}
+			
 			separatormenuitem1 = gtk_separator_menu_item_new ();
 			gtk_widget_show (separatormenuitem1);
 			gtk_container_add (GTK_CONTAINER (gsearch->search_results_popup_menu), separatormenuitem1);
@@ -1105,17 +1108,20 @@ build_popup_menu_for_file (GSearchWindow * gsearch,
 
 				if (list_length >= 4) {
 
-					file_icon = g_object_ref (g_app_info_get_icon ((GAppInfo *)list->data));
+					if (g_app_info_get_icon ((GAppInfo *)list->data) != NULL) {
+						file_icon = g_object_ref (g_app_info_get_icon ((GAppInfo *)list->data));
+						gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (new1), file_icon != NULL);
 
-					if (file_icon == NULL) {
-						file_icon = g_themed_icon_new (GTK_STOCK_OPEN);
-					}
+						if (file_icon == NULL) {
+							file_icon = g_themed_icon_new (GTK_STOCK_OPEN);
+						}
 				
-					image1 = gtk_image_new_from_gicon (file_icon, GTK_ICON_SIZE_MENU);
-					g_object_unref (file_icon);
-					gtk_widget_show (image1);
-					gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image1);
-
+						image1 = gtk_image_new_from_gicon (file_icon, GTK_ICON_SIZE_MENU);
+						g_object_unref (file_icon);
+						gtk_widget_show (image1);
+						gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image1);
+					}
+					
 					if (i == 0) {
 						gsearch->search_results_popup_submenu = gtk_menu_new ();
 
@@ -1136,6 +1142,20 @@ build_popup_menu_for_file (GSearchWindow * gsearch,
 					                  (gpointer) gsearch);
 				}
 				else {
+					if (g_app_info_get_icon ((GAppInfo *)list->data) != NULL) {
+
+						file_icon = g_object_ref (g_app_info_get_icon ((GAppInfo *)list->data));
+						gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (new1), file_icon != NULL);
+
+						if (file_icon == NULL) {
+							file_icon = g_themed_icon_new (GTK_STOCK_OPEN);
+						}
+				
+						image1 = gtk_image_new_from_gicon (file_icon, GTK_ICON_SIZE_MENU);
+						g_object_unref (file_icon);
+						gtk_widget_show (image1);
+						gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new1), image1);
+					}
 					gtk_container_add (GTK_CONTAINER (gsearch->search_results_popup_menu), new1);
 					g_signal_connect ((gpointer) new1, "activate", G_CALLBACK (open_file_cb),
 					                  (gpointer) gsearch);



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