static void add_user (GdmUserChooserWidget *widget, GdmUser *user) { GdkPixbuf *pixbuf; char *tooltip; gboolean is_logged_in; int size; if (!widget->priv->show_normal_users) { return; } size = get_icon_height_for_widget (widget); pixbuf = gdm_user_render_icon (user, size); if (pixbuf == NULL && widget->priv->stock_person_pixbuf != NULL) { pixbuf = g_object_ref (widget->priv->stock_person_pixbuf); } tooltip = g_strdup_printf (_("Log in as %s"), gdm_user_get_user_name (user)); is_logged_in = gdm_user_get_num_sessions (user) > 0; g_debug ("GdmUserChooserWidget: User added name:%s logged-in:%d pixbuf:%p", gdm_user_get_user_name (user), is_logged_in, pixbuf); gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), gdm_user_get_user_name (user), pixbuf, gdm_user_get_real_name (user), tooltip, gdm_user_get_login_frequency (user), is_logged_in, FALSE); g_free (tooltip); if (pixbuf != NULL) { g_object_unref (pixbuf); } }
static void reset_icon (ShellStatusMenu *status) { ShellStatusMenuPrivate *priv = status->priv; GdkPixbuf *pixbuf; if (priv->user == NULL) return; if (priv->user_icon != NULL) { pixbuf = gdm_user_render_icon (priv->user, 24); if (pixbuf == NULL) return; shell_clutter_texture_set_from_pixbuf (priv->user_icon, pixbuf); g_object_unref (pixbuf); } }