diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-08-27 01:26:48 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-08-27 01:26:48 -0400 |
commit | c8e8cdaaf49a6fc67d3e5c99cb9a0d266c748584 (patch) | |
tree | 0b184c299add58c07b549a0cbaf773fc8d0588b0 | |
parent | 8f3e43326bcc601c47390db9c583a51b3c4a13fe (diff) | |
download | gtk+-c8e8cdaaf49a6fc67d3e5c99cb9a0d266c748584.tar.gz |
Make gtk_status_icon_set_name() work reliably
-rw-r--r-- | gtk/gtkstatusicon.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gtk/gtkstatusicon.c b/gtk/gtkstatusicon.c index 6e53bc9f71..8d5a0efbb2 100644 --- a/gtk/gtkstatusicon.c +++ b/gtk/gtkstatusicon.c @@ -2964,6 +2964,17 @@ gtk_status_icon_set_name (GtkStatusIcon *status_icon, priv = status_icon->priv; #ifdef GDK_WINDOWING_X11 - gtk_window_set_wmclass (GTK_WINDOW (priv->tray_icon), name, name); + if (gtk_widget_get_realized (priv->tray_icon)) + { + /* gtk_window_set_wmclass() only operates on non-realized windows, + * so temporarily unrealize the tray here + */ + gtk_widget_hide (priv->tray_icon); + gtk_widget_unrealize (priv->tray_icon); + gtk_window_set_wmclass (GTK_WINDOW (priv->tray_icon), name, name); + gtk_widget_show (priv->tray_icon); + } + else + gtk_window_set_wmclass (GTK_WINDOW (priv->tray_icon), name, name); #endif } |