From fa0268f35a720552b6c00315e7f35ece358e2232 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 23 Aug 2011 12:03:56 -0400 Subject: [PATCH] ShellApp: Avoid crashing during state transition for window-backed apps During a state transition from running to not-running for window-backend apps, it's possible we get a request for the icon. Avoid asserting here and just return an empty image. https://bugzilla.gnome.org/show_bug.cgi?id=656546 --- src/shell-app.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/shell-app.c b/src/shell-app.c index a0bddeafe..75444b655 100644 --- a/src/shell-app.c +++ b/src/shell-app.c @@ -133,8 +133,22 @@ static ClutterActor * window_backed_app_get_icon (ShellApp *app, int size) { - MetaWindow *window = window_backed_app_get_window (app); - ClutterActor *actor = st_texture_cache_bind_pixbuf_property (st_texture_cache_get_default (), + MetaWindow *window; + ClutterActor *actor; + + /* During a state transition from running to not-running for + * window-backend apps, it's possible we get a request for the icon. + * Avoid asserting here and just return an empty image. + */ + if (app->running_state == NULL) + { + actor = clutter_texture_new (); + g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL); + return actor; + } + + window = window_backed_app_get_window (app); + actor = st_texture_cache_bind_pixbuf_property (st_texture_cache_get_default (), G_OBJECT (window), "icon"); g_object_set (actor, "width", (float) size, "height", (float) size, NULL);