ShellWindowTracker: fix reference counting of ShellApp
All get_app_from_*() helpers are transfer full, but get_app_from_gapplication_id() was directly returning the result of lookup_app(), which is transfer none. https://bugzilla.gnome.org/show_bug.cgi?id=721439
This commit is contained in:
parent
a23c206ccb
commit
6544326ffd
@ -256,6 +256,17 @@ get_app_from_window_wmclass (MetaWindow *window)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_app_from_gapplication_id:
|
||||||
|
* @monitor: a #ShellWindowTracker
|
||||||
|
* @window: a #MetaWindow
|
||||||
|
*
|
||||||
|
* Looks only at the given window, and attempts to determine
|
||||||
|
* an application based on _GTK_APPLICATION_ID. If one can't be determined,
|
||||||
|
* return %NULL.
|
||||||
|
*
|
||||||
|
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
|
||||||
|
*/
|
||||||
static ShellApp *
|
static ShellApp *
|
||||||
get_app_from_gapplication_id (MetaWindow *window)
|
get_app_from_gapplication_id (MetaWindow *window)
|
||||||
{
|
{
|
||||||
@ -268,10 +279,12 @@ get_app_from_gapplication_id (MetaWindow *window)
|
|||||||
|
|
||||||
id = meta_window_get_gtk_application_id (window);
|
id = meta_window_get_gtk_application_id (window);
|
||||||
if (!id)
|
if (!id)
|
||||||
return FALSE;
|
return NULL;
|
||||||
|
|
||||||
desktop_file = g_strconcat (id, ".desktop", NULL);
|
desktop_file = g_strconcat (id, ".desktop", NULL);
|
||||||
app = shell_app_system_lookup_app (appsys, desktop_file);
|
app = shell_app_system_lookup_app (appsys, desktop_file);
|
||||||
|
if (app)
|
||||||
|
g_object_ref (app);
|
||||||
|
|
||||||
g_free (desktop_file);
|
g_free (desktop_file);
|
||||||
return app;
|
return app;
|
||||||
|
Loading…
Reference in New Issue
Block a user