Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
gnome-desktop2
gnome-desktop2-recently-used-apps.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-desktop2-recently-used-apps.patch of Package gnome-desktop2
Index: gnome-desktop-2.28.1/libgnome-desktop/gnome-desktop-item.c =================================================================== --- gnome-desktop-2.28.1.orig/libgnome-desktop/gnome-desktop-item.c +++ gnome-desktop-2.28.1/libgnome-desktop/gnome-desktop-item.c @@ -52,6 +52,8 @@ #include <gtk/gtk.h> #endif +#include <gtk/gtkrecentmanager.h> + #define sure_string(s) ((s)!=NULL?(s):"") #define GNOME_DESKTOP_USE_UNSTABLE_API @@ -136,6 +138,8 @@ static GnomeDesktopItem *gnome_desktop_i GnomeDesktopItemLoadFlags flags, GError **error); +static void update_recently_used_apps (const GnomeDesktopItem *item); + static int readbuf_getc (ReadBuf *rb) { @@ -2111,6 +2115,8 @@ gnome_desktop_item_launch_on_screen_with (flags & GNOME_DESKTOP_ITEM_LAUNCH_DO_NOT_REAP_CHILD), error); + update_recently_used_apps (item); + return ret; } @@ -3873,3 +3879,39 @@ gnome_desktop_item_error_quark (void) return q; } + +static void +update_recently_used_apps (const GnomeDesktopItem *item) +{ + GtkRecentManager *manager; + GtkRecentData recent_data; + + if (!item || !gnome_desktop_item_get_location (item)) + return; + + manager = gtk_recent_manager_get_default (); + + if (!manager) + return; + + recent_data.display_name = gnome_desktop_item_get_localestring (item, GNOME_DESKTOP_ITEM_NAME); + recent_data.description = gnome_desktop_item_get_localestring (item, GNOME_DESKTOP_ITEM_COMMENT); + recent_data.mime_type = "application/x-desktop"; + recent_data.is_private = TRUE; + + recent_data.app_name = g_get_application_name (); + if (!recent_data.app_name) + recent_data.app_name = "libgnomedesktop"; + + recent_data.app_exec = gnome_desktop_item_get_string (item, GNOME_DESKTOP_ITEM_EXEC); + if (!recent_data.app_exec) + recent_data.app_exec = "gnome-open %u"; + + recent_data.groups = g_new0 (gchar *, 2); + recent_data.groups [0] = "recently-used-apps"; + recent_data.groups [1] = NULL; + + gtk_recent_manager_add_full (manager, gnome_desktop_item_get_location (item), &recent_data); + + g_free (recent_data.groups); +}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor