diff options
author | Ted Gould <ted@canonical.com> | 2009-08-19 22:29:40 -0500 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-08-19 22:29:40 -0500 |
commit | 17745461f669047872c12a6c7db7b05a9ccb0417 (patch) | |
tree | 0f3387efe54194db3be3a090192030f9cb3d6096 /src/launcher-menu-item.c | |
parent | 99744b30f0ebf4c7054b8274c30af063ec52b248 (diff) | |
download | ayatana-indicator-messages-17745461f669047872c12a6c7db7b05a9ccb0417.tar.gz ayatana-indicator-messages-17745461f669047872c12a6c7db7b05a9ccb0417.tar.bz2 ayatana-indicator-messages-17745461f669047872c12a6c7db7b05a9ccb0417.zip |
Big commit. Trying to check for eclipses, but first both objects needed to track their desktop file paths. So I had to add that little nugget in as well.
Diffstat (limited to 'src/launcher-menu-item.c')
-rw-r--r-- | src/launcher-menu-item.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/launcher-menu-item.c b/src/launcher-menu-item.c index b869a40..4f05ae6 100644 --- a/src/launcher-menu-item.c +++ b/src/launcher-menu-item.c @@ -39,6 +39,7 @@ typedef struct _LauncherMenuItemPrivate LauncherMenuItemPrivate; struct _LauncherMenuItemPrivate { GAppInfo * appinfo; + gchar * desktop; }; #define LAUNCHER_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LAUNCHER_MENU_ITEM_TYPE, LauncherMenuItemPrivate)) @@ -81,6 +82,7 @@ launcher_menu_item_init (LauncherMenuItem *self) LauncherMenuItemPrivate * priv = LAUNCHER_MENU_ITEM_GET_PRIVATE(self); priv->appinfo = NULL; + priv->desktop = NULL; return; } @@ -102,6 +104,12 @@ launcher_menu_item_finalize (GObject *object) if (priv->appinfo != NULL) { g_object_unref(priv->appinfo); + priv->appinfo = NULL; + } + + if (priv->desktop != NULL) { + g_free(priv->desktop); + priv->desktop = NULL; } G_OBJECT_CLASS (launcher_menu_item_parent_class)->finalize (object); @@ -118,6 +126,7 @@ launcher_menu_item_new (const gchar * desktop_file) LauncherMenuItemPrivate * priv = LAUNCHER_MENU_ITEM_GET_PRIVATE(self); priv->appinfo = G_APP_INFO(g_desktop_app_info_new_from_filename(desktop_file)); + priv->desktop = g_strdup(desktop_file); g_debug("\tName: %s", launcher_menu_item_get_name(self)); dbusmenu_menuitem_property_set(DBUSMENU_MENUITEM(self), "label", launcher_menu_item_get_name(self)); @@ -156,6 +165,14 @@ activate_cb (LauncherMenuItem * self, gpointer data) return; } +const gchar * +launcher_menu_item_get_desktop (LauncherMenuItem * launchitem) +{ + g_return_val_if_fail(IS_LAUNCHER_MENU_ITEM(launchitem), NULL); + LauncherMenuItemPrivate * priv = LAUNCHER_MENU_ITEM_GET_PRIVATE(launchitem); + return priv->desktop; +} + /* Hides the menu item based on whether it is eclipsed or not. */ void |