void _wnck_application_load_icons (WnckApplication *app) { g_return_if_fail (WNCK_IS_APPLICATION (app)); get_icons (app); if (app->priv->need_emit_icon_changed) emit_icon_changed (app); }
/** * wnck_application_get_mini_icon: * @app: a #WnckApplication. * * Gets the mini-icon to be used for @app. If no mini-icon is set for @app, * a suboptimal heuristic is used to find an appropriate icon. If no mini-icon * was found, a fallback mini-icon is used. * * Return value: the mini-icon for @app. The caller should reference the * returned <classname>GdkPixbuf</classname> if it needs to keep the mini-icon * around. **/ GdkPixbuf* wnck_application_get_mini_icon (WnckApplication *app) { g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); get_icons (app); if (app->priv->need_emit_icon_changed) emit_icon_changed (app); if (app->priv->mini_icon) return app->priv->mini_icon; else { WnckWindow *w = find_icon_window (app); if (w) return wnck_window_get_mini_icon (w); else return NULL; } }
void _wnck_application_process_property_notify (WnckApplication *app, XEvent *xevent) { /* This prop notify is on the leader window */ if (xevent->xproperty.atom == XA_WM_NAME || xevent->xproperty.atom == _wnck_atom_get ("_NET_WM_NAME") || xevent->xproperty.atom == _wnck_atom_get ("_NET_WM_VISIBLE_NAME")) { /* FIXME should change the name */ } else if (xevent->xproperty.atom == XA_WM_ICON_NAME || xevent->xproperty.atom == _wnck_atom_get ("_NET_WM_ICON_NAME") || xevent->xproperty.atom == _wnck_atom_get ("_NET_WM_VISIBLE_ICON_NAME")) { /* FIXME */ } else if (xevent->xproperty.atom == _wnck_atom_get ("_NET_WM_ICON") || xevent->xproperty.atom == _wnck_atom_get ("KWM_WIN_ICON") || xevent->xproperty.atom == _wnck_atom_get ("WM_NORMAL_HINTS")) { _wnck_icon_cache_property_changed (app->priv->icon_cache, xevent->xproperty.atom); emit_icon_changed (app); } else if (xevent->xproperty.atom == _wnck_atom_get ("_NET_STARTUP_ID")) { /* FIXME update startup id */ } }
void _wnck_application_remove_window (WnckApplication *app, WnckWindow *window) { g_return_if_fail (WNCK_IS_APPLICATION (app)); g_return_if_fail (WNCK_IS_WINDOW (window)); g_return_if_fail (wnck_window_get_application (window) == app); app->priv->windows = g_list_remove (app->priv->windows, window); _wnck_window_set_application (window, NULL); g_signal_handlers_disconnect_by_func (G_OBJECT (window), window_name_changed, app); /* emits signals, so do it last */ reset_name (app); update_name (app); /* see if we're using icon from a window */ if (app->priv->icon == NULL || app->priv->mini_icon == NULL) emit_icon_changed (app); }
void _wnck_application_add_window (WnckApplication *app, WnckWindow *window) { g_return_if_fail (WNCK_IS_APPLICATION (app)); g_return_if_fail (WNCK_IS_WINDOW (window)); g_return_if_fail (wnck_window_get_application (window) == NULL); app->priv->windows = g_list_prepend (app->priv->windows, window); _wnck_window_set_application (window, app); g_signal_connect (G_OBJECT (window), "name_changed", G_CALLBACK (window_name_changed), app); /* emits signals, so do it last */ reset_name (app); update_name (app); /* see if we're using icon from a window */ if (app->priv->icon == NULL || app->priv->mini_icon == NULL) emit_icon_changed (app); }