* debian/patches:

- 04_default-gtk-greeter-config refreshed.
  - 05_add-enter-shortcut-switch-login-password-fields dropped, included
    upstream.
  -06_support-session-select-before-authentication dropped, included
    upstream.
This commit is contained in:
Yves-Alexis Perez
2013-12-29 14:25:00 +00:00
parent e0e01218ce
commit de11205241
5 changed files with 9 additions and 164 deletions

6
debian/changelog vendored
View File

@ -1,6 +1,12 @@
lightdm-gtk-greeter (1.7.0-1) UNRELEASED; urgency=medium
* New upstream development release.
* debian/patches:
- 04_default-gtk-greeter-config refreshed.
- 05_add-enter-shortcut-switch-login-password-fields dropped, included
upstream.
-06_support-session-select-before-authentication dropped, included
upstream.
-- Yves-Alexis Perez <corsac@debian.org> Sun, 29 Dec 2013 14:59:07 +0100

View File

@ -20,9 +20,9 @@ Forwarded: not-needed
# xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr)
# show-language-selector (true or false)
# show-indicators = semi-colon ";" separated list of allowed indicator modules (e.g. libsoundmenu.so)
@@ -14,15 +14,15 @@
# keyboard = command to launch on-screen keyboard
#
@@ -16,15 +16,15 @@
# default-user-image = Image used as default user icon, path or #icon-name
#
[greeter]
-#background=
-#theme-name=

View File

@ -1,46 +0,0 @@
=== modified file 'lightdm-gtk-greeter/src/lightdm-gtk-greeter.c'
--- lightdm-gtk-greeter/src/lightdm-gtk-greeter.c 2013-09-24 18:24:20 +0000
+++ lightdm-gtk-greeter/src/lightdm-gtk-greeter.c 2013-10-31 01:27:51 +0000
@@ -707,25 +707,30 @@
gboolean
username_key_press_cb (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
- if (gtk_widget_get_visible(GTK_WIDGET(user_combo)))
- {
#if GTK_CHECK_VERSION (3, 0, 0)
- if (event->keyval == GDK_KEY_Tab)
+ if (event->keyval == GDK_KEY_Tab || event->keyval == GDK_KEY_Return)
#else
- if (event->keyval == GDK_Tab)
+ if (event->keyval == GDK_Tab || event->keyval == GDK_Return)
#endif
+ {
+ /* If Shift+Tab, Cycle backwards to previous widget */
+ if (event->state & GDK_SHIFT_MASK)
{
- if (event->state & GDK_SHIFT_MASK)
+ if (gtk_widget_get_visible(GTK_WIDGET(user_combo)))
+ {
+ gtk_widget_grab_focus(GTK_WIDGET(user_combo));
+ }
+ else
{
gtk_window_present(panel_window);
gtk_widget_grab_focus(GTK_WIDGET(menubar));
}
- else
- {
- gtk_widget_grab_focus(GTK_WIDGET(password_entry));
- }
- return TRUE;
- }
+ }
+ else
+ {
+ gtk_widget_grab_focus(GTK_WIDGET(password_entry));
+ }
+ return TRUE;
}
return FALSE;
}

View File

@ -1,113 +0,0 @@
--- a/src/lightdm-gtk-greeter.c
+++ b/src/lightdm-gtk-greeter.c
@@ -67,6 +67,10 @@ static int a11y_kbd_pid = 0;
static GPid *a11y_keyboard_pid = &a11y_kbd_pid;
static GError *a11y_keyboard_error;
+/* Current choices */
+static gchar *current_session;
+static gchar *current_language;
+
#if GTK_CHECK_VERSION (3, 0, 0)
static GdkRGBA *default_background_color = NULL;
#else
@@ -271,6 +275,10 @@ get_session (void)
{
GList *menu_items, *menu_iter;
+ /* if the user manually selected a session, use it */
+ if (current_session)
+ return current_session;
+
menu_items = gtk_container_get_children(GTK_CONTAINER(session_menu));
for (menu_iter = menu_items; menu_iter != NULL; menu_iter = g_list_next(menu_iter))
@@ -305,6 +313,7 @@ set_session (const gchar *session)
if (matched)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_iter->data), TRUE);
+ current_session = g_strdup(session);
return;
}
}
@@ -336,6 +345,10 @@ static gchar *
get_language (void)
{
GList *menu_items, *menu_iter;
+
+ /* if the user manually selected a language, use it */
+ if (current_language)
+ return current_language;
menu_items = gtk_container_get_children(GTK_CONTAINER(language_menu));
for (menu_iter = menu_items; menu_iter != NULL; menu_iter = g_list_next(menu_iter))
@@ -369,6 +382,7 @@ set_language (const gchar *language)
if (matched)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_iter->data), TRUE);
+ current_language = g_strdup(language);
return;
}
}
@@ -602,8 +616,10 @@ start_authentication (const gchar *usern
user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
if (user)
{
- set_session (lightdm_user_get_session (user));
- set_language (lightdm_user_get_language (user));
+ if (!current_session)
+ set_session (lightdm_user_get_session (user));
+ if (!current_language)
+ set_language (lightdm_user_get_language (user));
}
else
{
@@ -690,6 +706,32 @@ start_session (void)
g_free (session);
}
+void
+session_selected_cb(GtkMenuItem *menuitem, gpointer user_data);
+G_MODULE_EXPORT
+void
+session_selected_cb(GtkMenuItem *menuitem, gpointer user_data)
+{
+ if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)))
+ {
+ gchar *session = g_object_get_data (G_OBJECT (menuitem), "session-key");
+ set_session(session);
+ }
+}
+
+void
+language_selected_cb(GtkMenuItem *menuitem, gpointer user_data);
+G_MODULE_EXPORT
+void
+language_selected_cb(GtkMenuItem *menuitem, gpointer user_data)
+{
+ if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)))
+ {
+ gchar *language = g_object_get_data (G_OBJECT (menuitem), "language-code");
+ set_language(language);
+ }
+}
+
gboolean
username_focus_out_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data);
G_MODULE_EXPORT
@@ -1731,6 +1773,7 @@ main (int argc, char **argv)
radiomenuitem = gtk_radio_menu_item_new_with_label (sessions, lightdm_session_get_name (session));
g_object_set_data (G_OBJECT (radiomenuitem), "session-key", (gpointer) lightdm_session_get_key (session));
sessions = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (radiomenuitem));
+ g_signal_connect(G_OBJECT(radiomenuitem), "activate", G_CALLBACK(session_selected_cb), NULL);
gtk_menu_shell_append (GTK_MENU_SHELL(session_menu), radiomenuitem);
gtk_widget_show (GTK_WIDGET (radiomenuitem));
}
@@ -1779,6 +1822,7 @@ main (int argc, char **argv)
radiomenuitem = gtk_radio_menu_item_new_with_label (languages, label);
g_object_set_data (G_OBJECT (radiomenuitem), "language-code", (gpointer) code);
languages = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (radiomenuitem));
+ g_signal_connect(G_OBJECT(radiomenuitem), "activate", G_CALLBACK(language_selected_cb), NULL);
gtk_menu_shell_append (GTK_MENU_SHELL(language_menu), radiomenuitem);
gtk_widget_show (GTK_WIDGET (radiomenuitem));
}

View File

@ -1,3 +1 @@
04_default-gtk-greeter-config.patch
05_add-enter-shortcut-switch-login-password-fields.patch
06_support-session-select-before-authentication.patch