gdm r5915 - in trunk: . gui/simple-greeter gui/user-switch-applet
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5915 - in trunk: . gui/simple-greeter gui/user-switch-applet
- Date: Mon, 3 Mar 2008 16:57:05 +0000 (GMT)
Author: mccann
Date: Mon Mar 3 16:57:05 2008
New Revision: 5915
URL: http://svn.gnome.org/viewvc/gdm?rev=5915&view=rev
Log:
2008-03-03 William Jon McCann <jmccann redhat com>
* gui/simple-greeter/gdm-user.c: (gdm_user_collate):
* gui/user-switch-applet/applet.c: (sort_menu_comparedatafunc),
(sort_menu), (menu_style_set_cb), (fill_applet):
Order the users in the applet the same way we do for the greeter:
in order of login frequency.
Modified:
trunk/ChangeLog
trunk/gui/simple-greeter/gdm-user.c
trunk/gui/user-switch-applet/applet.c
Modified: trunk/gui/simple-greeter/gdm-user.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-user.c (original)
+++ trunk/gui/simple-greeter/gdm-user.c Mon Mar 3 16:57:05 2008
@@ -545,42 +545,53 @@
return user->login_frequency;
}
-gint
+int
gdm_user_collate (GdmUser *user1,
GdmUser *user2)
{
- const gchar *str1, *str2;
+ const char *str1;
+ const char *str2;
+ gulong num1;
+ gulong num2;
g_return_val_if_fail (user1 == NULL || GDM_IS_USER (user1), 0);
g_return_val_if_fail (user2 == NULL || GDM_IS_USER (user2), 0);
- if (!user1 && user2)
- return -1;
-
- if (user1 && !user2)
- return 1;
-
- if (!user1 && !user2)
- return 0;
-
- if (user1->real_name)
+ if (user1->real_name != NULL) {
str1 = user1->real_name;
- else
+ } else {
str1 = user1->user_name;
+ }
- if (user2->real_name)
+ if (user2->real_name != NULL) {
str2 = user2->real_name;
- else
+ } else {
str2 = user2->user_name;
+ }
- if (!str1 && str2)
+ num1 = user1->login_frequency;
+ num2 = user2->login_frequency;
+ g_debug ("Login freq 1=%u 2=%u", (guint)num1, (guint)num2);
+ if (num1 > num2) {
return -1;
+ }
- if (str1 && !str2)
+ if (num1 < num2) {
return 1;
+ }
+
+ /* if login frequency is equal try names */
+ if (str1 == NULL && str2 != NULL) {
+ return -1;
+ }
- if (!str1 && !str2)
+ if (str1 != NULL && str2 == NULL) {
+ return 1;
+ }
+
+ if (str1 == NULL && str2 == NULL) {
return 0;
+ }
return g_utf8_collate (str1, str2);
}
Modified: trunk/gui/user-switch-applet/applet.c
==============================================================================
--- trunk/gui/user-switch-applet/applet.c (original)
+++ trunk/gui/user-switch-applet/applet.c Mon Mar 3 16:57:05 2008
@@ -575,28 +575,35 @@
a_is_user = GDM_IS_USER_MENU_ITEM (a);
b_is_user = GDM_IS_USER_MENU_ITEM (b);
- if (a_is_user && !b_is_user)
+ if (a_is_user && !b_is_user) {
return -1;
+ }
- if (b_is_user && !a_is_user)
+ if (b_is_user && !a_is_user) {
return 1;
+ }
- if (a_is_user && b_is_user)
+ if (a_is_user && b_is_user) {
return gdm_user_collate (gdm_user_menu_item_get_user ((GdmUserMenuItem *) a),
gdm_user_menu_item_get_user ((GdmUserMenuItem *) b));
+ }
adata = data;
- if (a == adata->separator_item)
+ if (a == adata->separator_item) {
return -1;
+ }
- if (b == adata->separator_item)
+ if (b == adata->separator_item) {
return 1;
+ }
- if (a == adata->login_screen_item)
+ if (a == adata->login_screen_item) {
return -1;
+ }
- if (b == adata->login_screen_item)
+ if (b == adata->login_screen_item) {
return 1;
+ }
return 0;
}
@@ -605,15 +612,21 @@
sort_menu (GdmAppletData *adata)
{
GSList *items;
- guint n_items, n_rows, n_cols, row, column, count;
- gint screen_height;
+ guint n_items;
+ guint n_rows;
+ guint n_cols;
+ guint row;
+ guint column;
+ guint count;
+ int screen_height;
if (!gtk_widget_has_screen (adata->menu)) {
return;
}
adata->items = g_slist_sort_with_data (adata->items,
- sort_menu_comparedatafunc, adata);
+ sort_menu_comparedatafunc,
+ adata);
screen_height = gdk_screen_get_height (gtk_widget_get_screen (adata->menu));
@@ -680,10 +693,11 @@
}
if (!gtk_icon_size_lookup_for_settings (settings, adata->icon_size,
- &width, &height))
+ &width, &height)) {
adata->pixel_size = -1;
- else
+ } else {
adata->pixel_size = MAX (width, height);
+ }
sort_menu (adata);
}
@@ -1202,7 +1216,8 @@
NULL);
adata->items = g_slist_sort_with_data (adata->items,
- sort_menu_comparedatafunc, adata);
+ sort_menu_comparedatafunc,
+ adata);
if (gconf_client_get_bool (adata->client, LOCKDOWN_KEY, NULL)) {
gtk_widget_hide (GTK_WIDGET (applet));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]