Make gtk_status_icon_set_name() work reliably

This commit is contained in:
Matthias Clasen 2011-08-27 01:26:48 -04:00
parent c07efad261
commit 627af13e74

View File

@ -3015,7 +3015,18 @@ 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
g_object_notify (G_OBJECT (status_icon), "name");