Update to 2.91.91

This commit is contained in:
Ray Strode 2011-02-23 09:40:35 -05:00
parent e2a10420d3
commit 4b6f239462
18 changed files with 51 additions and 7908 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ gdm-2.30.2.tar.bz2
/gdm-2.32.0.tar.bz2
/gdm-2.91.4.tar.bz2
/gdm-2.91.6.tar.bz2
/gdm-2.91.91.tar.bz2

View File

@ -1,26 +0,0 @@
From 408d82df9e264e37d0dec7f049b2a64ea22032ab Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 7 Feb 2011 16:24:27 +0000
Subject: [PATCH] Make sure to disable g-s-d plugins in greeter
By grepping for the right plugins.
---
data/make-dconf-override-db.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/data/make-dconf-override-db.sh b/data/make-dconf-override-db.sh
index 6fd7cbd..07de694 100755
--- a/data/make-dconf-override-db.sh
+++ b/data/make-dconf-override-db.sh
@@ -38,7 +38,7 @@ gsettings set org.gnome.settings-daemon.plugins.media-keys search '""'
gsettings set org.gnome.settings-daemon.plugins.media-keys stop '""'
gsettings set org.gnome.settings-daemon.plugins.media-keys www '""'
-gsettings list-schemas | egrep '^org\.gnome\.gnome-settings-daemon\.plugins\.' | while read schema; do
+gsettings list-schemas | egrep '^org\.gnome\.settings-daemon\.plugins\.' | while read schema; do
gsettings set $schema active false
done
--
1.7.4

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
From 3462ace9fee97f0db3af126a22cd8526b7125d94 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 14 Jan 2010 09:18:48 -0500
Subject: [PATCH] Add missing locale.alias file
---
data/locale.alias | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
create mode 100644 data/locale.alias
diff --git a/data/locale.alias b/data/locale.alias
new file mode 100644
index 0000000..7cabea6
--- /dev/null
+++ b/data/locale.alias
@@ -0,0 +1,7 @@
+# You could insert none UTF-8 locales likes C, ja_JP.eucJP
+# The format is language label, space and locale name but
+# the language label is no longer used.
+#
+# This file will be removed in the future once gdm setup tool is generated.
+#
+#Unspecified C,POSIX
--
1.6.6

View File

@ -1,289 +0,0 @@
From 11139d9e693ecb1e5dcf6b538f0873a3e97730c8 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 17 Feb 2011 11:09:10 -0500
Subject: [PATCH] greeter: add session chooser to dialog
Since we don't have it in the panel anymore, put it in the dialog.
---
gui/simple-greeter/Makefile.am | 4 +
gui/simple-greeter/gdm-greeter-login-window.c | 78 +++++++++++++++++++++++-
gui/simple-greeter/gdm-greeter-login-window.h | 4 +
gui/simple-greeter/gdm-greeter-login-window.ui | 4 +-
gui/simple-greeter/gdm-greeter-session.c | 10 +++-
gui/simple-greeter/gdm-session-option-widget.c | 1 -
6 files changed, 95 insertions(+), 6 deletions(-)
diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am
index 74edd01..aa78504 100644
--- a/gui/simple-greeter/Makefile.am
+++ b/gui/simple-greeter/Makefile.am
@@ -75,6 +75,10 @@ test_greeter_login_window_SOURCES = \
gdm-sessions.c \
gdm-cell-renderer-timer.h \
gdm-cell-renderer-timer.c \
+ gdm-option-widget.h \
+ gdm-option-widget.c \
+ gdm-session-option-widget.h \
+ gdm-session-option-widget.c \
gdm-user-chooser-widget.h \
gdm-user-chooser-widget.c \
gdm-user-chooser-dialog.h \
diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c
index 6dc201a..c220dc4 100644
--- a/gui/simple-greeter/gdm-greeter-login-window.c
+++ b/gui/simple-greeter/gdm-greeter-login-window.c
@@ -56,6 +56,7 @@
#include "gdm-greeter-login-window.h"
#include "gdm-user-chooser-widget.h"
+#include "gdm-session-option-widget.h"
#ifdef HAVE_PAM
#include <security/pam_appl.h>
@@ -85,6 +86,7 @@
#define LSB_RELEASE_COMMAND "lsb_release -d"
#define GDM_GREETER_LOGIN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_LOGIN_WINDOW, GdmGreeterLoginWindowPrivate))
+#define GDM_CUSTOM_SESSION "custom"
enum {
MODE_UNDEFINED = 0,
@@ -102,6 +104,7 @@ enum {
struct GdmGreeterLoginWindowPrivate
{
GtkBuilder *builder;
+ GtkWidget *session_option_widget;
GtkWidget *user_chooser;
GtkWidget *auth_banner_label;
GtkWidget *current_button;
@@ -143,6 +146,7 @@ enum {
QUERY_ANSWER,
START_SESSION,
USER_SELECTED,
+ SESSION_SELECTED,
CANCELLED,
LAST_SIGNAL
};
@@ -505,12 +509,15 @@ switch_mode (GdmGreeterLoginWindow *login_window,
switch (number) {
case MODE_SELECTION:
set_log_in_button_mode (login_window, LOGIN_BUTTON_HIDDEN);
+ gtk_widget_hide (login_window->priv->session_option_widget);
break;
case MODE_TIMED_LOGIN:
set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN);
+ gtk_widget_show (login_window->priv->session_option_widget);
break;
case MODE_AUTHENTICATION:
set_log_in_button_mode (login_window, LOGIN_BUTTON_ANSWER_QUERY);
+ gtk_widget_show (login_window->priv->session_option_widget);
break;
default:
g_assert_not_reached ();
@@ -878,6 +885,7 @@ gdm_greeter_login_window_info_query (GdmGreeterLoginWindow *login_window,
gtk_label_set_text (GTK_LABEL (label), text);
show_widget (login_window, "auth-input-box", TRUE);
+
set_sensitive (GDM_GREETER_LOGIN_WINDOW (login_window), TRUE);
set_ready (GDM_GREETER_LOGIN_WINDOW (login_window));
set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
@@ -908,6 +916,7 @@ gdm_greeter_login_window_secret_info_query (GdmGreeterLoginWindow *login_window,
gtk_label_set_text (GTK_LABEL (label), text);
show_widget (login_window, "auth-input-box", TRUE);
+ gtk_widget_show (login_window->priv->session_option_widget);
set_sensitive (GDM_GREETER_LOGIN_WINDOW (login_window), TRUE);
set_ready (GDM_GREETER_LOGIN_WINDOW (login_window));
set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
@@ -1049,6 +1058,46 @@ on_user_unchosen (GdmUserChooserWidget *user_chooser,
}
static void
+on_session_activated (GdmSessionOptionWidget *session_option_widget,
+ GdmGreeterLoginWindow *login_window)
+{
+ char *session;
+
+ session = gdm_session_option_widget_get_current_session (GDM_SESSION_OPTION_WIDGET (login_window->priv->session_option_widget));
+ if (session == NULL) {
+ return;
+ }
+
+ g_signal_emit (login_window, signals[SESSION_SELECTED], 0, session);
+
+ g_free (session);
+}
+
+void
+gdm_greeter_login_window_set_default_session_name (GdmGreeterLoginWindow *login_window,
+ const char *session_name)
+{
+ g_return_if_fail (GDM_IS_GREETER_LOGIN_WINDOW (login_window));
+
+ if (session_name != NULL && !gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (login_window->priv->session_option_widget),
+ session_name, NULL, NULL, NULL)) {
+ if (strcmp (session_name, GDM_CUSTOM_SESSION) == 0) {
+ gdm_option_widget_add_item (GDM_OPTION_WIDGET (login_window->priv->session_option_widget),
+ GDM_CUSTOM_SESSION,
+ C_("customsession", "Custom"),
+ _("Custom session"),
+ GDM_OPTION_WIDGET_POSITION_TOP);
+ } else {
+ g_warning ("Default session is not available");
+ return;
+ }
+ }
+
+ gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (login_window->priv->session_option_widget),
+ session_name);
+}
+
+static void
rotate_computer_info (GdmGreeterLoginWindow *login_window)
{
GtkWidget *notebook;
@@ -1264,7 +1313,7 @@ load_theme (GdmGreeterLoginWindow *login_window)
box = GTK_WIDGET (gtk_builder_get_object (login_window->priv->builder, "window-frame"));
gtk_container_add (GTK_CONTAINER (login_window), box);
- /* FIXME: user chooser should implement GtkBuildable and this should get dropped
+ /* FIXME: user and session chooser should get loaded from ui file instead
*/
login_window->priv->user_chooser = gdm_user_chooser_widget_new ();
box = GTK_WIDGET (gtk_builder_get_object (login_window->priv->builder, "selection-box"));
@@ -1273,6 +1322,7 @@ load_theme (GdmGreeterLoginWindow *login_window)
gdm_user_chooser_widget_set_show_only_chosen (GDM_USER_CHOOSER_WIDGET (login_window->priv->user_chooser), TRUE);
+
g_signal_connect (login_window->priv->user_chooser,
"loaded",
G_CALLBACK (on_users_loaded),
@@ -1291,6 +1341,22 @@ load_theme (GdmGreeterLoginWindow *login_window)
G_CALLBACK (on_user_chooser_visibility_changed),
login_window);
+ login_window->priv->session_option_widget = gdm_session_option_widget_new ();
+ box = GTK_WIDGET (gtk_builder_get_object (login_window->priv->builder, "buttonbox"));
+ g_object_set (G_OBJECT (login_window->priv->session_option_widget),
+ "xscale", 0.0,
+ "yscale", 0.0,
+ "xalign", 0.0,
+ "yalign", 1.0,
+ NULL);
+ gtk_container_add (GTK_CONTAINER (box), login_window->priv->session_option_widget);
+ gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (box), login_window->priv->session_option_widget, TRUE);
+
+ g_signal_connect (login_window->priv->session_option_widget,
+ "activated",
+ G_CALLBACK (on_session_activated),
+ login_window);
+
login_window->priv->auth_banner_label = GTK_WIDGET (gtk_builder_get_object (login_window->priv->builder, "auth-banner-label"));
/*make_label_small_italic (login_window->priv->auth_banner_label);*/
@@ -1560,6 +1626,16 @@ gdm_greeter_login_window_class_init (GdmGreeterLoginWindowClass *klass)
g_cclosure_marshal_VOID__STRING,
G_TYPE_NONE,
1, G_TYPE_STRING);
+ signals [SESSION_SELECTED] =
+ g_signal_new ("session-selected",
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, session_selected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
signals [CANCELLED] =
g_signal_new ("cancelled",
G_TYPE_FROM_CLASS (object_class),
diff --git a/gui/simple-greeter/gdm-greeter-login-window.h b/gui/simple-greeter/gdm-greeter-login-window.h
index a5e68ae..c8b1167 100644
--- a/gui/simple-greeter/gdm-greeter-login-window.h
+++ b/gui/simple-greeter/gdm-greeter-login-window.h
@@ -55,6 +55,8 @@ typedef struct
const char *text);
void (* user_selected) (GdmGreeterLoginWindow *login_window,
const char *text);
+ void (* session_selected) (GdmGreeterLoginWindow *login_window,
+ const char *text);
void (* cancelled) (GdmGreeterLoginWindow *login_window);
void (* start_session) (GdmGreeterLoginWindow *login_window);
@@ -75,6 +77,8 @@ gboolean gdm_greeter_login_window_info (GdmGreeterLogin
const char *text);
gboolean gdm_greeter_login_window_problem (GdmGreeterLoginWindow *login_window,
const char *text);
+void gdm_greeter_login_window_set_default_session_name (GdmGreeterLoginWindow *login_window,
+ const char *text);
void gdm_greeter_login_window_request_timed_login (GdmGreeterLoginWindow *login_window,
const char *username,
diff --git a/gui/simple-greeter/gdm-greeter-login-window.ui b/gui/simple-greeter/gdm-greeter-login-window.ui
index 9f1bc69..8409166 100644
--- a/gui/simple-greeter/gdm-greeter-login-window.ui
+++ b/gui/simple-greeter/gdm-greeter-login-window.ui
@@ -277,8 +277,8 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
index 14f518e..7be5acd 100644
--- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -163,6 +163,7 @@ on_default_session_name_changed (GdmGreeterClient *client,
GdmGreeterSession *session)
{
g_debug ("GdmGreeterSession: default session name changed: %s", text);
+ gdm_greeter_login_window_set_default_session_name (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), text);
}
static void
@@ -238,8 +239,9 @@ on_query_answer (GdmGreeterLoginWindow *login_window,
}
static void
-on_select_session (GdmGreeterSession *session,
- const char *text)
+on_select_session (GdmGreeterLoginWindow *login_window,
+ const char *text,
+ GdmGreeterSession *session)
{
gdm_greeter_client_call_select_session (session->priv->client,
text);
@@ -387,6 +389,10 @@ toggle_login_window (GdmGreeterSession *session,
G_CALLBACK (on_select_user),
session);
g_signal_connect (session->priv->login_window,
+ "session-selected",
+ G_CALLBACK (on_select_session),
+ session);
+ g_signal_connect (session->priv->login_window,
"cancelled",
G_CALLBACK (on_cancelled),
session);
diff --git a/gui/simple-greeter/gdm-session-option-widget.c b/gui/simple-greeter/gdm-session-option-widget.c
index fb10098..d504d7c 100644
--- a/gui/simple-greeter/gdm-session-option-widget.c
+++ b/gui/simple-greeter/gdm-session-option-widget.c
@@ -160,7 +160,6 @@ gdm_session_option_widget_new (void)
object = g_object_new (GDM_TYPE_SESSION_OPTION_WIDGET,
"label-text", _("Session"),
- "icon-name", "session-properties",
NULL);
return GTK_WIDGET (object);
--
1.7.4.1

View File

@ -1,191 +0,0 @@
From 6450a2100767b9d37ebe504e87d9fd5aec5111ff Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 14 Feb 2011 11:45:13 -0500
Subject: [PATCH 1/2] greeter: drop child_adjustments_stale thing
When the greeter went to gtk3, the bit of code that toggled this
boolean got dropped, so it was never TRUE. That means all the places
that check the boolean are dead code that can be pruned.
---
gui/simple-greeter/gdm-scrollable-widget.c | 7 -------
1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/gui/simple-greeter/gdm-scrollable-widget.c b/gui/simple-greeter/gdm-scrollable-widget.c
index 1f8e807..dc464af 100644
--- a/gui/simple-greeter/gdm-scrollable-widget.c
+++ b/gui/simple-greeter/gdm-scrollable-widget.c
@@ -61,8 +61,6 @@ struct GdmScrollableWidgetPrivate
int forced_height;
GQueue *key_event_queue;
-
- guint child_adjustments_stale : 1;
};
struct GdmScrollableWidgetAnimation
@@ -260,10 +258,6 @@ gdm_scrollable_widget_needs_scrollbar (GdmScrollableWidget *widget)
return FALSE;
}
- if (widget->priv->child_adjustments_stale) {
- return FALSE;
- }
-
child = gtk_bin_get_child (GTK_BIN (widget));
if (child != NULL) {
int available_height;
@@ -463,7 +457,6 @@ gdm_scrollable_widget_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate (child,
&child_allocation);
- scrollable_widget->priv->child_adjustments_stale = FALSE;
}
}
--
1.7.4
From b37803d0436a5ff651415cb4fbb20813b91f4940 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 14 Feb 2011 11:51:20 -0500
Subject: [PATCH 2/2] greeter: more gtk3 fixes
This commit drops use of the deprecated xthickness
and ythickness properties throughout, and fixes
padding and border calculations in various places,
---
gui/simple-greeter/gdm-scrollable-widget.c | 66 +++++++++++++++++++++-------
1 files changed, 50 insertions(+), 16 deletions(-)
diff --git a/gui/simple-greeter/gdm-scrollable-widget.c b/gui/simple-greeter/gdm-scrollable-widget.c
index dc464af..da813f1 100644
--- a/gui/simple-greeter/gdm-scrollable-widget.c
+++ b/gui/simple-greeter/gdm-scrollable-widget.c
@@ -135,10 +135,20 @@ on_animation_tick (GdmScrollableWidgetAnimation *animation,
if (animation->step_func != NULL) {
GdmTimer *timer;
+ GtkStyleContext *context;
+ GtkStateFlags state;
+ GtkBorder padding, border;
height = animation->desired_height;
- height -= gtk_widget_get_style (animation->widget)->ythickness * 2;
+ context = gtk_widget_get_style_context (animation->widget);
+ state = gtk_widget_get_state_flags (animation->widget);
+
+ gtk_style_context_get_padding (context, state, &padding);
+ gtk_style_context_get_border (context, state, &border);
+
+ height -= padding.top + padding.bottom;
+ height -= border.top + border.bottom;
timer = g_object_ref (animation->timer);
animation->step_func (GDM_SCROLLABLE_WIDGET (animation->widget),
@@ -147,7 +157,8 @@ on_animation_tick (GdmScrollableWidgetAnimation *animation,
animation->step_func_user_data);
if (gdm_timer_is_started (timer)) {
- height += gtk_widget_get_style (animation->widget)->ythickness * 2;
+ height += padding.top + padding.bottom;
+ height += border.top + border.bottom;
animation->desired_height = height;
}
@@ -259,11 +270,23 @@ gdm_scrollable_widget_needs_scrollbar (GdmScrollableWidget *widget)
}
child = gtk_bin_get_child (GTK_BIN (widget));
- if (child != NULL) {
+ if (child != NULL && GTK_IS_SCROLLABLE (child)) {
+ GtkStyleContext *context;
+ GtkStateFlags state;
+ GtkBorder padding, border;
int available_height;
int child_scrolled_height;
+ context = gtk_widget_get_style_context (GTK_WIDGET (widget));
+ state = gtk_widget_get_state_flags (GTK_WIDGET (widget));
+
+ gtk_style_context_get_padding (context, state, &padding);
+ gtk_style_context_get_border (context, state, &border);
+
available_height = gtk_widget_get_allocated_height (GTK_WIDGET (widget));
+ available_height -= padding.top + padding.bottom;
+ available_height -= border.top + border.bottom;
+
gtk_widget_get_preferred_height (child, NULL, &child_scrolled_height);
needs_scrollbar = child_scrolled_height > available_height;
} else {
@@ -295,10 +318,21 @@ gdm_scrollable_widget_get_preferred_size (GtkWidget *widget,
gtk_style_context_get_border (context, state, &border);
scrollable_widget = GDM_SCROLLABLE_WIDGET (widget);
+
+ minimum_req.width = padding.left + padding.right;
+ minimum_req.width += border.left + border.right;
+ minimum_req.height = padding.top + padding.bottom;
+ minimum_req.height += border.top + border.bottom;
+
+ natural_req.width = padding.left + padding.right;
+ natural_req.width += border.left + border.right;
+ natural_req.height = padding.top + padding.bottom;
+ natural_req.height += border.top + border.bottom;
+
if (orientation == GTK_ORIENTATION_VERTICAL
&& scrollable_widget->priv->forced_height >= 0) {
- minimum_req.height = scrollable_widget->priv->forced_height;
- natural_req.height = scrollable_widget->priv->forced_height;
+ minimum_req.height += scrollable_widget->priv->forced_height;
+ natural_req.height += scrollable_widget->priv->forced_height;
} else {
child = gtk_bin_get_child (GTK_BIN (widget));
@@ -306,16 +340,6 @@ gdm_scrollable_widget_get_preferred_size (GtkWidget *widget,
&scrollbar_requisition,
NULL);
- minimum_req.width = padding.left + padding.right;
- minimum_req.width = border.left + border.right;
- minimum_req.height = padding.top + padding.bottom;
- minimum_req.height = border.top + border.bottom;
-
- natural_req.width = padding.left + padding.right;
- natural_req.width = border.left + border.right;
- natural_req.height = padding.top + padding.bottom;
- natural_req.height = border.top + border.bottom;
-
if (child && gtk_widget_get_visible (child)) {
if (orientation == GTK_ORIENTATION_HORIZONTAL) {
gtk_widget_get_preferred_width (child,
@@ -815,6 +839,9 @@ gdm_scrollable_widget_slide_to_height (GdmScrollableWidget *scrollable_widget,
GtkWidget *widget;
gboolean input_redirected;
GtkAllocation widget_allocation;
+ GtkStyleContext *context;
+ GtkStateFlags state;
+ GtkBorder padding, border;
g_return_if_fail (GDM_IS_SCROLLABLE_WIDGET (scrollable_widget));
widget = GTK_WIDGET (scrollable_widget);
@@ -841,7 +868,14 @@ gdm_scrollable_widget_slide_to_height (GdmScrollableWidget *scrollable_widget,
return;
}
- height += gtk_widget_get_style (widget)->ythickness * 2;
+ context = gtk_widget_get_style_context (widget);
+ state = gtk_widget_get_state_flags (widget);
+
+ gtk_style_context_get_padding (context, state, &padding);
+ gtk_style_context_get_border (context, state, &border);
+
+ height += padding.top + padding.bottom;
+ height += border.top + border.bottom;
gtk_widget_get_allocation (widget, &widget_allocation);
--
1.7.4

View File

@ -1,35 +0,0 @@
From 4f63038e588f334ec062a38c620fcf8f8c0fa222 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 22 Feb 2011 17:42:35 -0500
Subject: [PATCH] user-chooser-widget: zero idle id when done with it
Because we weren't zeroing it, it could never get queued
after it finished its first run.
This fixes a bug that prevents the users from showing up
in the user list.
---
gui/simple-greeter/gdm-user-chooser-widget.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c
index 7b0445c..be756a6 100644
--- a/gui/simple-greeter/gdm-user-chooser-widget.c
+++ b/gui/simple-greeter/gdm-user-chooser-widget.c
@@ -873,7 +873,12 @@ add_users (GdmUserChooserWidget *widget)
gdm_chooser_widget_loaded (GDM_CHOOSER_WIDGET (widget));
}
- return (widget->priv->users_to_add != NULL);
+ if (widget->priv->users_to_add == NULL) {
+ widget->priv->add_users_idle_id = 0;
+ return FALSE;
+ }
+
+ return TRUE;
}
static void
--
1.7.4.1

View File

@ -1,31 +0,0 @@
From 6bb88258c9ce7c9b2a0477c697d64e2a36f42dfd Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 4 Feb 2011 15:06:11 -0500
Subject: [PATCH] greeter: don't call render_frame if there's no frame
If the theme lacks a frame gtk_render_frame will throw
a fit and make the greeter nose dive.
---
gui/simple-greeter/gdm-scrollable-widget.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/gui/simple-greeter/gdm-scrollable-widget.c b/gui/simple-greeter/gdm-scrollable-widget.c
index 8a9ea25..1f8e807 100644
--- a/gui/simple-greeter/gdm-scrollable-widget.c
+++ b/gui/simple-greeter/gdm-scrollable-widget.c
@@ -598,8 +598,10 @@ gdm_scrollable_widget_draw (GtkWidget *widget,
height = widget_allocation.height;
height -= padding.top + padding.bottom;
- gtk_render_frame (context, cr,
- x, y, width, height);
+ if (width > 0 && height > 0) {
+ gtk_render_frame (context, cr,
+ x, y, width, height);
+ }
return GTK_WIDGET_CLASS (gdm_scrollable_widget_parent_class)->draw (widget, cr);
}
--
1.7.4

View File

@ -1,119 +0,0 @@
diff -up gdm-2.23.92/daemon/gdm-simple-slave.c.save-root-window gdm-2.23.92/daemon/gdm-simple-slave.c
--- gdm-2.23.92/daemon/gdm-simple-slave.c.save-root-window 2008-09-03 16:52:53.000000000 -0400
+++ gdm-2.23.92/daemon/gdm-simple-slave.c 2008-09-19 18:18:50.000000000 -0400
@@ -825,6 +825,15 @@ setup_server (GdmSimpleSlave *slave)
{
/* Set the busy cursor */
gdm_slave_set_busy_cursor (GDM_SLAVE (slave));
+
+ /* The root window has a background that may be useful
+ * to cross fade or transition from when setting the
+ * login screen background. We read it here, and stuff
+ * it into the standard _XROOTPMAP_ID root window property,
+ * so gnome-settings-daemon can get at it.
+ */
+ gdm_slave_save_root_windows (GDM_SLAVE (slave));
+
}
static void
diff -up gdm-2.23.92/daemon/gdm-slave.c.save-root-window gdm-2.23.92/daemon/gdm-slave.c
--- gdm-2.23.92/daemon/gdm-slave.c.save-root-window 2008-08-26 15:04:00.000000000 -0400
+++ gdm-2.23.92/daemon/gdm-slave.c 2008-09-22 11:06:36.000000000 -0400
@@ -42,6 +42,7 @@
#include <dbus/dbus-glib-lowlevel.h>
#include <X11/Xlib.h> /* for Display */
+#include <X11/Xatom.h> /* for XA_PIXMAP */
#include <X11/cursorfont.h> /* for watch cursor */
#include "gdm-common.h"
@@ -341,6 +342,77 @@ gdm_slave_run_script (GdmSlave *slave,
return ret;
}
+static void
+gdm_slave_save_root_window_of_screen (GdmSlave *slave,
+ Atom id_atom,
+ int screen_number)
+{
+ Window root_window;
+ GC gc;
+ XGCValues values;
+ Pixmap pixmap;
+ int width, height, depth;
+
+ root_window = RootWindow (slave->priv->server_display,
+ screen_number);
+
+ width = DisplayWidth (slave->priv->server_display, screen_number);
+ height = DisplayHeight (slave->priv->server_display, screen_number);
+ depth = DefaultDepth (slave->priv->server_display, screen_number);
+ pixmap = XCreatePixmap (slave->priv->server_display,
+ root_window,
+ width, height, depth);
+
+ values.function = GXcopy;
+ values.plane_mask = AllPlanes;
+ values.fill_style = FillSolid;
+ values.subwindow_mode = IncludeInferiors;
+
+ gc = XCreateGC (slave->priv->server_display,
+ root_window,
+ GCFunction | GCPlaneMask | GCFillStyle | GCSubwindowMode,
+ &values);
+
+ if (XCopyArea (slave->priv->server_display,
+ root_window, pixmap, gc, 0, 0,
+ width, height, 0, 0)) {
+
+ long pixmap_as_long;
+
+ pixmap_as_long = (long) pixmap;
+
+ XChangeProperty (slave->priv->server_display,
+ root_window, id_atom, XA_PIXMAP,
+ 32, PropModeReplace, (guchar *) &pixmap_as_long,
+ 1);
+
+ }
+
+ XFreeGC (slave->priv->server_display, gc);
+}
+
+void
+gdm_slave_save_root_windows (GdmSlave *slave)
+{
+ int i, number_of_screens;
+ Atom atom;
+
+ number_of_screens = ScreenCount (slave->priv->server_display);
+
+ atom = XInternAtom (slave->priv->server_display,
+ "_XROOTPMAP_ID", False);
+
+ if (atom == 0) {
+ return;
+ }
+
+ for (i = 0; i < number_of_screens; i++) {
+ gdm_slave_save_root_window_of_screen (slave, atom, i);
+ }
+
+ XSync (slave->priv->server_display, False);
+}
+
void
gdm_slave_set_busy_cursor (GdmSlave *slave)
{
diff -up gdm-2.23.92/daemon/gdm-slave.h.save-root-window gdm-2.23.92/daemon/gdm-slave.h
--- gdm-2.23.92/daemon/gdm-slave.h.save-root-window 2008-08-26 15:04:00.000000000 -0400
+++ gdm-2.23.92/daemon/gdm-slave.h 2008-09-19 18:18:50.000000000 -0400
@@ -69,6 +69,7 @@ gboolean gdm_slave_switch_to_
gboolean gdm_slave_connect_to_x11_display (GdmSlave *slave);
void gdm_slave_set_busy_cursor (GdmSlave *slave);
+void gdm_slave_save_root_windows (GdmSlave *slave);
gboolean gdm_slave_run_script (GdmSlave *slave,
const char *dir,
const char *username);

View File

@ -1,13 +0,0 @@
diff -up gdm-2.29.6/configure.ac.libs gdm-2.29.6/configure.ac
--- gdm-2.29.6/configure.ac.libs 2010-02-11 19:25:51.485272530 -0500
+++ gdm-2.29.6/configure.ac 2010-02-11 19:27:05.805022498 -0500
@@ -145,6 +145,9 @@ PKG_CHECK_MODULES(SIMPLE_GREETER,
fontconfig >= $FONTCONFIG_REQUIRED_VERSION
x11
)
+
+SIMPLE_GREETER_LIBS="$SIMPLE_GREETER_LIBS -lm"
+
AC_SUBST(SIMPLE_GREETER_CFLAGS)
AC_SUBST(SIMPLE_GREETER_LIBS)

View File

@ -1,4 +1,4 @@
From d8945b88ee774a96db43ef743db49d1a91f44d33 Mon Sep 17 00:00:00 2001
From 36b2793ae523ca4195d2a0afdc133f21b8d29f44 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 22 Jul 2010 13:38:09 -0400
Subject: [PATCH 01/35] Revert "Don't wait a mandatory 2 seconds when resetting greeter"
@ -28,7 +28,7 @@ index e6b3c98..9ea5bc9 100644
1.7.4.1
From 9f8735086e8b32b64460797183595d058203ebf1 Mon Sep 17 00:00:00 2001
From aba8bd3130970aac450d5adf7913c2ae359e2fe3 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 7 Jul 2010 17:16:38 -0400
Subject: [PATCH 02/35] Don't set list-visible unless the widget is visible
@ -62,7 +62,7 @@ index ebbfdb9..e81bd77 100644
1.7.4.1
From 95513b3697900f71e769b5a1948be557ecd64757 Mon Sep 17 00:00:00 2001
From 0635e6be3672381ed6ea905e76c19a60e6266640 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 28 Jun 2010 14:35:35 -0400
Subject: [PATCH 03/35] Add user chooser to ui file
@ -157,7 +157,7 @@ index 8409166..7ce166b 100644
1.7.4.1
From b18cc72457e6abde22a8423a80cde831efd677c5 Mon Sep 17 00:00:00 2001
From a3329ba6104839630943cc8ea65f1b2b2940f3e5 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 20 Feb 2009 14:05:20 -0500
Subject: [PATCH 04/35] Add new api to ask when chooser widget is done loading items
@ -213,7 +213,7 @@ index 11a6456..3f6fea3 100644
1.7.4.1
From f54cca866610069e51ef4bcdb7c0fe1f9ba76964 Mon Sep 17 00:00:00 2001
From 9df125300e779247912864871e7c3c7054db7a5a Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Mar 2009 11:19:40 -0500
Subject: [PATCH 05/35] Create session settings object up front
@ -249,7 +249,7 @@ index 3dd714f..9adb0de 100644
1.7.4.1
From 0ab65e8c6ca52f4785f2466cce7f7507d88fc9c3 Mon Sep 17 00:00:00 2001
From a94d8297fba9cdb4d7a37dc57bc221a01aaff9d2 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 13 Jul 2010 22:42:43 -0400
Subject: [PATCH 06/35] disconnect signal handlers in destroy session
@ -388,7 +388,7 @@ index 9ea5bc9..d37cc79 100644
1.7.4.1
From acdd83e5a3fd6e135eed33706824123d53ba3357 Mon Sep 17 00:00:00 2001
From 28741da90c7c3913f29b9c4d47dbb6764ca5d2bf Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 16 Jan 2009 11:00:08 -0500
Subject: [PATCH 07/35] Introduce new Conversation object
@ -1458,7 +1458,7 @@ index 8bed085..9bfda86 100644
1.7.4.1
From be4f83a6b936d7f73614accd78cf10c78e4b257b Mon Sep 17 00:00:00 2001
From aa670cd4c15c594d12390496372e669178c9bf34 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Feb 2009 10:55:03 -0500
Subject: [PATCH 08/35] Rename session worker to the service it's managing
@ -1647,7 +1647,7 @@ index d24f025..4833f23 100644
1.7.4.1
From 791bd408970f023cca1211d21400e7f73d3a557c Mon Sep 17 00:00:00 2001
From a746997c009382cb4500674dd7d1431ba5f6f9d2 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 16 Jan 2009 13:01:48 -0500
Subject: [PATCH 09/35] Make greeter/autologin session explicitly request PAM conversation
@ -2008,7 +2008,7 @@ index 7be5acd..ed20884 100644
1.7.4.1
From 90eb845b64bb5668aeb2d54eb78a7c2d4892778d Mon Sep 17 00:00:00 2001
From 58ff5c51c6f48d797320584b2b2ce0f6618f7cb9 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 16 Jan 2009 15:18:31 -0500
Subject: [PATCH 10/35] Store multiple conversations in the session
@ -6615,7 +6615,7 @@ index ed20884..16f8db5 100644
1.7.4.1
From 9f4212f9ea630e7b30b00ccf86a882b91e3b5c17 Mon Sep 17 00:00:00 2001
From b221145b95a6b612091f5d81db9fbff796351c32 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 28 Oct 2009 16:05:14 -0400
Subject: [PATCH 11/35] Return a different error code for "service won't work" than "auth failed"
@ -6675,7 +6675,7 @@ index ee5465a..b1c8285 100644
1.7.4.1
From 9e9a68065a829025da372b034868cfc0ca4971a1 Mon Sep 17 00:00:00 2001
From 8501846fa24735fe6195b9ca5a05f7aa5a96d887 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 28 Oct 2009 21:32:00 -0400
Subject: [PATCH 12/35] Emit "service-unavailable" from session when pam service refuses to work
@ -6914,7 +6914,7 @@ index 9e72f89..ab16031 100644
1.7.4.1
From 12dbb74e8cd44eb579587469d6e376f419056ff4 Mon Sep 17 00:00:00 2001
From ae83626e9eeee53245d672bb76d9a5383669740f Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 28 Oct 2009 21:38:52 -0400
Subject: [PATCH 13/35] Bubble service-unavailable up to greeter
@ -7048,7 +7048,7 @@ index 396007f..7d967b3 100644
1.7.4.1
From 8c7b68952240df1c40a7f14c5868665a365ff64f Mon Sep 17 00:00:00 2001
From 6de8d9fe6bf18e73ff141dbe67000fdf5462efa4 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 28 Oct 2009 21:46:39 -0400
Subject: [PATCH 14/35] Catch service-unavailable from server in client and propagate it
@ -7127,7 +7127,7 @@ index 868b496..63bd4b5 100644
1.7.4.1
From 6489e96641ee835a7c0fb22010e66fbf82ce3db8 Mon Sep 17 00:00:00 2001
From 1d67919214c2dbc2072ef4f41cd53f82bca08a6b Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Thu, 5 Feb 2009 15:20:25 -0500
Subject: [PATCH 15/35] Queue a greeter reset when the user clicks cancel
@ -7252,7 +7252,7 @@ index 7d967b3..2ecf0a4 100644
1.7.4.1
From e3efa1719fdb78952cf57e28647cc52fe7844957 Mon Sep 17 00:00:00 2001
From dee01922148f640ad46e441a0630554c4e977492 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Nov 2009 13:35:26 -0500
Subject: [PATCH 16/35] Don't delay login for passwd -d users
@ -7281,7 +7281,7 @@ index a64bbc2..d689d91 100644
1.7.4.1
From b0a3cad225154377fa0e5429ebe4525d5f7e291e Mon Sep 17 00:00:00 2001
From 09d46952fd2ff07333101bb408a9bfa4cd4fc502 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 30 Jan 2009 23:57:31 -0500
Subject: [PATCH 17/35] Add a plugin based extension system to greeter
@ -7356,7 +7356,7 @@ index d5455e1..d8a9e72 100644
VOID:DOUBLE
+BOOLEAN:STRING
diff --git a/configure.ac b/configure.ac
index 48be019..2a2e37b 100644
index b907340..211bdcd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,6 +18,22 @@ AC_PROG_CXX
@ -10937,7 +10937,7 @@ index 0000000..cc377bd
+
+#endif /* __GDM_TASK_LIST_H */
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c
index a385218..8414313 100644
index be756a6..9b409b3 100644
--- a/gui/simple-greeter/gdm-user-chooser-widget.c
+++ b/gui/simple-greeter/gdm-user-chooser-widget.c
@@ -635,9 +635,30 @@ gdm_user_chooser_widget_set_show_user_auto (GdmUserChooserWidget *widget,
@ -12297,11 +12297,11 @@ index 0000000..9b87c67
+ return GDM_GREETER_EXTENSION (extension);
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8a4997a..2f9af97 100644
index 67383d6..524d817 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -81,6 +81,7 @@ gui/simple-greeter/gdm-timer.c
gui/simple-greeter/gdm-user.c
@@ -80,6 +80,7 @@ gui/simple-greeter/gdm-simple-greeter.schemas.in
gui/simple-greeter/gdm-timer.c
gui/simple-greeter/gdm-user-chooser-widget.c
gui/simple-greeter/greeter-main.c
+gui/simple-greeter/plugins/password/gdm-password-extension.c
@ -12312,7 +12312,7 @@ index 8a4997a..2f9af97 100644
1.7.4.1
From a659374376aa864925143b7b58847aca9e830345 Mon Sep 17 00:00:00 2001
From 0cb46cd5674ee353419bcf2993c5ddf99a6ae4cd Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Aug 2010 18:25:50 -0400
Subject: [PATCH 18/35] squash with password
@ -12377,7 +12377,7 @@ index 255283e..11a171c 100644
1.7.4.1
From 047ceabcb1fa549e9a6bb7197c5e12cdd4e49296 Mon Sep 17 00:00:00 2001
From d7cf879cd7a93b752767faba110885ca4448e571 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Aug 2010 11:13:10 -0400
Subject: [PATCH 19/35] task list fix
@ -12427,7 +12427,7 @@ index 5fdc2b8..3e49fb7 100644
1.7.4.1
From 1055ba4d586d4f61a22faca0d968ddb8816b5569 Mon Sep 17 00:00:00 2001
From 2b95e4ed4c0b6ebba9e70feecca779d26178597e Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 29 Jun 2010 14:13:35 -0400
Subject: [PATCH 20/35] Show cancel button after first message
@ -12471,7 +12471,7 @@ index 9844af9..938e523 100644
1.7.4.1
From 72355ea96c482d015422b327c5ecca3b3766478d Mon Sep 17 00:00:00 2001
From 74b5fbd516671be45a6305ef19147458f713148c Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 28 Oct 2009 11:13:10 -0400
Subject: [PATCH 21/35] Prevent start session signal handler from getting called multiple times
@ -12507,7 +12507,7 @@ index 938e523..0fb6c64 100644
1.7.4.1
From 889691316c708a787a5f60e91e380c658893542d Mon Sep 17 00:00:00 2001
From a06fdd650307ecf5b88c2cf38de3752cd46a85fb Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Feb 2009 16:25:47 -0500
Subject: [PATCH 22/35] Add fingerprint plugin
@ -12543,7 +12543,7 @@ fingerprint scans.
create mode 100644 gui/simple-greeter/plugins/fingerprint/plugin.c
diff --git a/configure.ac b/configure.ac
index 2a2e37b..98a8bf6 100644
index 211bdcd..d753d77 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1440,6 +1440,10 @@ gui/simple-greeter/libgdmsimplegreeter/Makefile
@ -13262,10 +13262,10 @@ index 0000000..5ea9925
+ return GDM_GREETER_EXTENSION (extension);
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 2f9af97..4f5b317 100644
index 524d817..3e0b163 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -82,6 +82,7 @@ gui/simple-greeter/gdm-user.c
@@ -81,6 +81,7 @@ gui/simple-greeter/gdm-timer.c
gui/simple-greeter/gdm-user-chooser-widget.c
gui/simple-greeter/greeter-main.c
gui/simple-greeter/plugins/password/gdm-password-extension.c
@ -13277,7 +13277,7 @@ index 2f9af97..4f5b317 100644
1.7.4.1
From 65dd58cf8a77e2df4e517d23aefc7e7f2a186231 Mon Sep 17 00:00:00 2001
From 97315dd4efc474d3c62b558f7647c182447eb726 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Feb 2009 16:25:47 -0500
Subject: [PATCH 23/35] Add smartcard plugin
@ -13323,7 +13323,7 @@ smartcards are inserted.
create mode 100644 gui/simple-greeter/plugins/smartcard/plugin.c
diff --git a/configure.ac b/configure.ac
index 98a8bf6..5f370ab 100644
index d753d77..c850ea2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,7 @@ LIBCANBERRA_GTK_REQUIRED_VERSION=0.4
@ -16776,10 +16776,10 @@ index 0000000..fffbd50
+ return GDM_GREETER_EXTENSION (extension);
+}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4f5b317..48634f1 100644
index 3e0b163..69eb449 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -83,6 +83,9 @@ gui/simple-greeter/gdm-user-chooser-widget.c
@@ -82,6 +82,9 @@ gui/simple-greeter/gdm-user-chooser-widget.c
gui/simple-greeter/greeter-main.c
gui/simple-greeter/plugins/password/gdm-password-extension.c
gui/simple-greeter/plugins/fingerprint/gdm-fingerprint-extension.c
@ -16793,7 +16793,7 @@ index 4f5b317..48634f1 100644
1.7.4.1
From d52b686f0869887997864ea0553f3f5785f65b94 Mon Sep 17 00:00:00 2001
From 2c9f10758c955238fb7a4b2b60c743292072eb85 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Aug 2010 18:26:01 -0400
Subject: [PATCH 24/35] squash with smartcard
@ -16834,7 +16834,7 @@ index b925f5e..b40a21c 100644
1.7.4.1
From 6977055677ac889d204d17391327261e7dd1757f Mon Sep 17 00:00:00 2001
From 839f3be0ea63df3db33e9e4327ef99a88d040ec3 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 21 Apr 2009 10:25:18 -0400
Subject: [PATCH 25/35] When one PAM conversation wins, stop the others
@ -16966,7 +16966,7 @@ index 2ecf0a4..ff1f3af 100644
1.7.4.1
From 78949a4384dc2aae51bb8835520075bcc9793ef6 Mon Sep 17 00:00:00 2001
From 1f55b2efed2d819679724c19f6ea297c628e666a Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 24 Jul 2009 14:41:48 -0400
Subject: [PATCH 26/35] KILL stuck processes if they don't die on TERM
@ -17090,7 +17090,7 @@ index be85f30..8b93663 100644
1.7.4.1
From 2316076b232cd4efd6e6e6f22c6af206ff7bb581 Mon Sep 17 00:00:00 2001
From 774c9b9bf574849f8994d2e227b40a9d6cc3c97a Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 13 Jul 2010 22:36:19 -0400
Subject: [PATCH 27/35] add better debug spew (needs squash)
@ -17143,7 +17143,7 @@ index 0f0c053..23812d2 100644
1.7.4.1
From b98e46ec2d16d390c5fecf0b18471583ca54670f Mon Sep 17 00:00:00 2001
From 3243e64db6f142c404b33a2f1773810cebb7d1e9 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 13 Jul 2010 22:37:35 -0400
Subject: [PATCH 28/35] switch to proper mode when going to timed login
@ -17169,7 +17169,7 @@ index 0fb6c64..adcd71f 100644
1.7.4.1
From 16c4f635f7442808d4f3f7f9232097b8bb093345 Mon Sep 17 00:00:00 2001
From 095989310331c8f848a1e4271d7a05b4585f3053 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Tue, 3 Aug 2010 15:21:26 -0400
Subject: [PATCH 29/35] Drop "Cancelling" message for plugin initiated cancels
@ -17198,7 +17198,7 @@ index adcd71f..cd1941e 100644
1.7.4.1
From 40114bb382490be345b04004082c85d55cf53691 Mon Sep 17 00:00:00 2001
From 47242b775c34ae5102bc223adede52a0ee86cd61 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Aug 2010 18:11:27 -0400
Subject: [PATCH 30/35] drop code for label that doesn't exist anymore
@ -17234,7 +17234,7 @@ index cd1941e..f3f89b2 100644
1.7.4.1
From 5cb876a52cd54a895dc925fc8625a4b4c490f4e9 Mon Sep 17 00:00:00 2001
From 159cd5a6cf4d110f9adbbd6b5a953692911fb02b Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Aug 2010 18:03:52 -0400
Subject: [PATCH 31/35] Add delay when showing messages (needs split)
@ -17699,7 +17699,7 @@ index b40a21c..5e234b9 100644
1.7.4.1
From 438a429d75d0af77649901c2421e2898a504f831 Mon Sep 17 00:00:00 2001
From 8a06dfeaca172cab52ca61de7e9daf546d697b53 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 4 Aug 2010 19:27:14 -0400
Subject: [PATCH 32/35] Drop cancelling message
@ -17726,7 +17726,7 @@ index e43449e..cb03d06 100644
1.7.4.1
From 6720d05d54ec542dc9031f13462438fa5b8ebdf4 Mon Sep 17 00:00:00 2001
From cdbeecaa9f11cf2f1c5036fe9cd01287f8d470d1 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 6 Aug 2010 11:14:23 -0400
Subject: [PATCH 33/35] manage tasks outside of task list
@ -18527,7 +18527,7 @@ index cb03d06..627a6f9 100644
1.7.4.1
From 62d27058a556a1e27099684470f9b24c97f011eb Mon Sep 17 00:00:00 2001
From 9fdf58cb6dd87a378f2138ae533e965afd7f812d Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 9 Aug 2010 18:09:19 -0400
Subject: [PATCH 34/35] hide task actions more aggressively
@ -18562,7 +18562,7 @@ index 627a6f9..8772fdd 100644
1.7.4.1
From 9255529aa654bd240db39888d1fd452d44ec9df3 Mon Sep 17 00:00:00 2001
From 5cdb54c609ee56d3fd1c4733562a59bd9b6af0de Mon Sep 17 00:00:00 2001
From: Gal Hammer <ghammer@redhat.com>
Date: Thu, 21 Oct 2010 10:14:32 -0400
Subject: [PATCH 35/35] smartcard: don't show extension if disabled in authconfig

View File

@ -1,119 +0,0 @@
#
# Description: Get default keyboard layout from hal
# Ubuntu: https://bugs.launchpad.net/bugs/395103
# Fedora: http://cvs.fedoraproject.org/viewvc//devel/gdm/gdm-system-keyboard.patch?view=markup
#
diff -Nur -x '*.orig' -x '*~' gdm-2.28.0/configure.ac gdm-2.28.0.new/configure.ac
--- gdm-2.28.0/configure.ac 2009-09-21 22:06:40.000000000 +0200
+++ gdm-2.28.0.new/configure.ac 2009-10-01 12:35:50.345762314 +0200
@@ -70,6 +70,7 @@
dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
gobject-2.0 >= $GLIB_REQUIRED_VERSION
gio-2.0 >= $GLIB_REQUIRED_VERSION
+ hal
)
AC_SUBST(DAEMON_CFLAGS)
AC_SUBST(DAEMON_LIBS)
diff -Nur -x '*.orig' -x '*~' gdm-2.28.0/daemon/gdm-session-direct.c gdm-2.28.0.new/daemon/gdm-session-direct.c
--- gdm-2.28.0/daemon/gdm-session-direct.c 2009-09-21 22:05:27.000000000 +0200
+++ gdm-2.28.0.new/daemon/gdm-session-direct.c 2009-10-01 12:34:43.000000000 +0200
@@ -45,6 +45,8 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
+#include <libhal.h>
+
#include "gdm-session-direct.h"
#include "gdm-session.h"
#include "gdm-session-private.h"
@@ -598,14 +600,87 @@
return setlocale (LC_MESSAGES, NULL);
}
+static char *
+get_system_default_layout (GdmSessionDirect *session)
+{
+ DBusConnection *connection;
+ LibHalContext *ctx;
+ char **devices;
+ int n_devices;
+ char *layout;
+ char *variant;
+ char *result;
+
+ result = NULL;
+
+ connection = dbus_g_connection_get_connection (session->priv->connection);
+ ctx = libhal_ctx_new ();
+ libhal_ctx_set_dbus_connection (ctx, connection);
+
+ if (!libhal_ctx_init (ctx, NULL)) {
+ goto out;
+ }
+
+ devices = libhal_find_device_by_capability (ctx,
+ "input.keyboard",
+ &n_devices,
+ NULL);
+ if (n_devices > 0) {
+ layout = libhal_device_get_property_string (ctx,
+ devices[0],
+ "input.x11_options.XkbLayout",
+ NULL);
+ if (!layout) {
+ layout = libhal_device_get_property_string (ctx,
+ devices[0],
+ "input.xkb.layout",
+ NULL);
+ }
+ if (!layout)
+ goto out;
+
+ variant = libhal_device_get_property_string (ctx,
+ devices[0],
+ "input.x11_options.XkbVariant",
+ NULL);
+ if (!variant) {
+ variant = libhal_device_get_property_string (ctx,
+ devices[0],
+ "input.xkb.variant",
+ NULL);
+ }
+
+ if (variant != NULL && variant[0] != '\0') {
+ result = g_strdup_printf("%s\t%s", layout, variant);
+ libhal_free_string (variant);
+ } else {
+ result = g_strdup (layout);
+ }
+ libhal_free_string (layout);
+ }
+
+ libhal_free_string_array (devices);
+
+ libhal_ctx_shutdown (ctx, NULL);
+ libhal_ctx_free (ctx);
+
+out:
+ if (!result) {
+ result = g_strdup ("us");
+ }
+
+ g_debug ("GdmSessionDirect: System default keyboard layout: '%s'", result);
+ return result;
+}
+
static const char *
get_default_layout_name (GdmSessionDirect *session)
{
- if (session->priv->saved_layout != NULL) {
- return session->priv->saved_layout;
+ if (!session->priv->saved_layout) {
+ session->priv->saved_layout = get_system_default_layout (session);
}
- return "us";
+ return session->priv->saved_layout;
}
static char *

View File

@ -14,14 +14,14 @@
Summary: The GNOME Display Manager
Name: gdm
Version: 2.91.6
Release: 11%{?dist}
Version: 2.91.91
Release: 1%{?dist}
Epoch: 1
License: GPLv2+
Group: User Interface/X
URL: http://download.gnome.org/sources/gdm
#VCS: git:git://git.gnome.org/gdm
Source: http://download.gnome.org/sources/gdm/2.32/gdm-%{version}.tar.bz2
Source: http://download.gnome.org/sources/gdm/2.91/gdm-%{version}.tar.bz2
Source1: gdm-pam
Source2: gdm-autologin-pam
Source3: gdm-password.pam
@ -89,13 +89,7 @@ Provides: service(graphical-login) = %{name}
Requires: audit-libs >= %{libauditver}
Patch1: 0001-Make-sure-to-disable-g-s-d-plugins-in-greeter.patch
Patch2: plymouth.patch
Patch3: fix-theme-related-crash.patch
Patch4: fix-crasher.patch
Patch5: add-session-chooser.patch
Patch6: move-to-accounts-library.patch
Patch7: fix-empty-userlist.patch
Patch96: gdm-multistack.patch
# Fedora-specific
@ -125,13 +119,7 @@ The GDM fingerprint plugin provides functionality necessary to use a fingerprint
%prep
%setup -q
%patch1 -p1 -b .gsd-plugins
%patch2 -p1 -b .plymouth
%patch3 -p1 -b .fix-theme-related-crash
%patch4 -p1 -b .fix-crasher
%patch5 -p1 -b .add-session-chooser
%patch6 -p1 -b .move-to-accounts-library
%patch7 -p1 -b .fix-empty-user-list
%patch96 -p1 -b .multistack
%patch99 -p1 -b .fedora-logo

View File

@ -1,80 +0,0 @@
From 951e72405640b1682072a846118077e927affaaf Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 19 Jan 2011 12:06:42 -0500
Subject: [PATCH] user-chooser: try to find fallback icon more aggressively
Some themes won't give you the nearest icon at the requested size,
so first look up the available sizes and choose the closest
available one ourselves.
If it fails, just fallback to an empty square of the right size.
---
gui/simple-greeter/gdm-user-chooser-widget.c | 35 ++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c
index 8df255f..6d03c38 100644
--- a/gui/simple-greeter/gdm-user-chooser-widget.c
+++ b/gui/simple-greeter/gdm-user-chooser-widget.c
@@ -833,6 +833,9 @@ get_pixbuf_from_icon_names (GdmUserChooserWidget *widget,
int size;
const char *icon_name;
va_list argument_list;
+ gint *sizes;
+ gint candidate_size;
+ int i;
array = g_ptr_array_new ();
@@ -849,9 +852,29 @@ get_pixbuf_from_icon_names (GdmUserChooserWidget *widget,
size = get_icon_height_for_widget (GTK_WIDGET (widget));
+ sizes = gtk_icon_theme_get_icon_sizes (widget->priv->icon_theme, first_name);
+
+ candidate_size = 0;
+ for (i = 0; sizes[i] != 0; i++) {
+
+ /* scalable */
+ if (sizes[i] == -1) {
+ candidate_size = sizes[i];
+ break;
+ }
+
+ if (ABS (size - sizes[i]) < ABS (size - candidate_size)) {
+ candidate_size = sizes[i];
+ }
+ }
+
+ if (candidate_size == 0) {
+ candidate_size = size;
+ }
+
icon_info = gtk_icon_theme_choose_icon (widget->priv->icon_theme,
(const char **) array->pdata,
- size,
+ candidate_size,
GTK_ICON_LOOKUP_GENERIC_FALLBACK);
g_ptr_array_free (array, FALSE);
@@ -868,8 +891,16 @@ get_pixbuf_from_icon_names (GdmUserChooserWidget *widget,
g_error_free (error);
}
} else {
+ GdkPixbuf *scaled_pixbuf;
+
+ guchar pixel = 0x00000000;
+
g_warning ("Could not find icon '%s' or fallbacks", first_name);
- pixbuf = NULL;
+ pixbuf = gdk_pixbuf_new_from_data (&pixel, GDK_COLORSPACE_RGB,
+ TRUE, 8, 1, 1, 1, NULL, NULL);
+ scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf, size, size, GDK_INTERP_NEAREST);
+ g_object_unref (pixbuf);
+ pixbuf = scaled_pixbuf;
}
return pixbuf;
--
1.7.3.4

View File

@ -1,31 +0,0 @@
From 1eb1f09bcfa3f7c3c33da0ef24c5a528e53528cd Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Wed, 19 Jan 2011 13:32:28 -0500
Subject: [PATCH] user-chooser-widget: fix ref counting issue on user pixbuf
---
gui/simple-greeter/gdm-user-chooser-widget.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/gui/simple-greeter/gdm-user-chooser-widget.c b/gui/simple-greeter/gdm-user-chooser-widget.c
index 6d03c38..9447e59 100644
--- a/gui/simple-greeter/gdm-user-chooser-widget.c
+++ b/gui/simple-greeter/gdm-user-chooser-widget.c
@@ -949,7 +949,14 @@ update_icons (GdmChooserWidget *widget,
IconUpdateData *data)
{
if (data->old_icon == *image) {
+ if (*image != NULL) {
+ g_object_unref (*image);
+ }
*image = data->new_icon;
+
+ if (*image != NULL) {
+ g_object_ref (*image);
+ }
return TRUE;
}
--
1.7.3.4

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
d1a6313d9ea4da24c6399bece989fdd9 gdm-2.91.6.tar.bz2
44e2f162e97451fd2957078c1877257f gdm-2.91.91.tar.bz2

View File

@ -1,62 +0,0 @@
From 51669cb03613b36b0b1798b1f8d2bba85b3e2a49 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Mon, 18 Jan 2010 16:09:58 +0100
Subject: [PATCH] Fix crash in getting system keyboard layout
In get_system_default_layout(), use a static variable for
xkl_engine_get_instance() result, and don't close the X Display.
This fixes the crash that happens at the second call of
get_system_default_layout(): xkl_engine_get_instance() returns a singleton
which saves the passed X Display instance, so we must never close it.
https://launchpad.net/bugs/505972
---
daemon/gdm-session-direct.c | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c
index 011a919..d2e1a83 100644
--- a/daemon/gdm-session-direct.c
+++ b/daemon/gdm-session-direct.c
@@ -601,16 +601,19 @@ get_default_language_name (GdmSessionDirect *session)
static char *
get_system_default_layout (GdmSessionDirect *session)
{
- char *result;
- Display *display;
+ char *result = NULL;
+ static XklEngine *engine = NULL;
- result = NULL;
- display = XOpenDisplay (session->priv->display_name);
- if (display) {
- XklConfigRec *config;
- XklEngine *engine = xkl_engine_get_instance (display);
- if (engine)
- {
+ if (engine == NULL) {
+ Display *display = XOpenDisplay (session->priv->display_name);
+ if (display != NULL) {
+ engine = xkl_engine_get_instance (display);
+ }
+ /* do NOT call XCloseDisplay (display) here;
+ * xkl_engine_get_instance() is a singleton which saves the display */
+ }
+
+ if (engine != NULL) {
XklConfigRec *config = xkl_config_rec_new ();
if (xkl_config_rec_get_from_server (config, engine) && config->layouts && config->layouts[0]) {
if (config->variants && config->variants[0] && config->variants[0][0])
@@ -619,8 +622,6 @@ get_system_default_layout (GdmSessionDirect *session)
result = g_strdup (config->layouts[0]);
}
g_object_unref (config);
- }
- XCloseDisplay (display);
}
if (!result)
--
1.6.6