summaryrefslogtreecommitdiff
blob: 2c7bb4795248403b55f2df864164746c2bb3136d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
http://bugs.gentoo.org/411949
http://bugs.ganymede.ch/
http://lionel.lefolgoc.net/misc/01_port-to-xfcerc.patch

--- panel-plugin/linelight.c
+++ panel-plugin/linelight.c
@@ -207,7 +207,7 @@ void linelight_add_list_entry(LineLightD
     remove_newline(entry);
 
     GtkTreeIter iter;
-    char *icon;
+    const gchar *icon = NULL;
     GdkPixbuf *pixbuf;
 
     gtk_list_store_insert(data->list, &iter, data->listPointer[sec]);
@@ -218,13 +218,15 @@ void linelight_add_list_entry(LineLightD
     //icon
     if (g_file_query_exists (file, NULL) && sec == BIN_SECTION )
     {
-        XfceDesktopEntry* app = xfce_desktop_entry_new(entry,categories,3);
+        XfceRc* app = xfce_rc_simple_open(entry, TRUE);
 
-        if (app != NULL && xfce_desktop_entry_get_string(app, "Icon", TRUE, &icon)  && NULL != (pixbuf= load_icon(icon)))
+        if (app != NULL)
         {
-            gtk_list_store_set(data->list, &iter, ICON_COL, pixbuf, -1);
-            g_object_unref(app);
-            free(icon);
+            xfce_rc_set_group(app, G_KEY_FILE_DESKTOP_GROUP);
+            icon = xfce_rc_read_entry(app, G_KEY_FILE_DESKTOP_KEY_ICON, NULL);
+            if (icon != NULL && NULL != (pixbuf= load_icon(icon)))
+                gtk_list_store_set(data->list, &iter, ICON_COL, pixbuf, -1);
+            xfce_rc_close(app);
         }
     }
     else if (file != NULL)
--- panel-plugin/main.c
+++ panel-plugin/main.c
@@ -155,14 +155,15 @@ static void cell_renderer(GtkTreeViewCol
     }
     else if (strstr(name,".desktop") != NULL) //Application names based on .desktop files
     {
-        XfceDesktopEntry *application = xfce_desktop_entry_new(path,categories,3);
-        if (XFCE_IS_DESKTOP_ENTRY(application))
+        XfceRc *application = xfce_rc_simple_open(path, TRUE);
+        if (application != NULL)
         {
-            char* app_name;
-            xfce_desktop_entry_get_string(application, "Name", TRUE, &app_name);
-            g_object_unref(application);
-            g_object_set(cell,"text", app_name,NULL);
-            free(app_name);
+            const gchar* app_name = NULL;
+            xfce_rc_set_group(application, G_KEY_FILE_DESKTOP_GROUP);
+            app_name = xfce_rc_read_entry(application, G_KEY_FILE_DESKTOP_KEY_NAME, NULL);
+            if (app_name != NULL)
+                g_object_set(cell,"text", app_name, NULL);
+            xfce_rc_close(application);
         }
     }
     else