static void update_name (WnckApplication *app) { g_assert (app->priv->name_from_leader || app->priv->name == NULL); if (app->priv->name == NULL) { /* if only one window, get name from there. If more than one and * they all have the same res_class, use that. Else we want to * use the fallback name, since using the title of one of the * windows would look wrong. */ if (app->priv->windows && app->priv->windows->next == NULL) { app->priv->name = g_strdup (wnck_window_get_name (app->priv->windows->data)); app->priv->name_window = app->priv->windows->data; emit_name_changed (app); } else if (app->priv->windows) { /* more than one */ app->priv->name = _wnck_get_res_class_utf8 (wnck_window_get_xid (app->priv->windows->data)); if (app->priv->name) { app->priv->name_window = app->priv->windows->data; emit_name_changed (app); } } } }
void _wnck_workspace_update_name (WnckWorkspace *space, const char *name) { char *old; g_return_if_fail (WNCK_IS_WORKSPACE (space)); old = space->priv->name; space->priv->name = g_strdup (name); if (space->priv->name == NULL) space->priv->name = g_strdup_printf (_("Workspace %d"), space->priv->number + 1); if ((old && !name) || (!old && name) || (old && name && strcmp (old, name) != 0)) emit_name_changed (space); g_free (old); }