Hello community, here is the log from the commit of package gdm for openSUSE:Factory checked in at Fri Feb 18 12:48:39 CET 2011. -------- --- GNOME/gdm/gdm.changes 2011-02-13 17:22:13.000000000 +0100 +++ /mounts/work_src_done/STABLE/gdm/gdm.changes 2011-02-15 13:33:03.000000000 +0100 @@ -1,0 +2,7 @@ +Tue Feb 15 13:31:41 CET 2011 - vuntz@opensuse.org + +- Add gdm-xdmcp-disconnect.patch: the Disconnect option should tell + the gdm daemon to disconnect, instead of just making the greeter + exit. And the daemon should exit. Taken from git. Fix bnc#669392. + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- gdm-xdmcp-disconnect.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gdm.spec ++++++ --- /var/tmp/diff_new_pack.Jf25MS/_old 2011-02-18 12:47:57.000000000 +0100 +++ /var/tmp/diff_new_pack.Jf25MS/_new 2011-02-18 12:47:57.000000000 +0100 @@ -42,7 +42,7 @@ License: GPLv2+ Group: System/GUI/GNOME Version: 2.32.0 -Release: 4 +Release: 11 Summary: The GNOME Display Manager Source: %{name}-%{version}.tar.bz2 Source1: gdm.pamd @@ -69,6 +69,8 @@ Patch9: gdm-passwordless-login.patch # PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH_FEATURE-SLED bnc#627575) Patch10: gdm-domain-logon.patch +# PATCH-FIX-UPSTREAM gdm-xdmcp-disconnect.patch vuntz@opensuse.org -- Make XDMCP disconnect work, taken from git. +Patch11: gdm-xdmcp-disconnect.patch # PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch) Patch15: gdm-greeter-greater-ui.patch # PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations. @@ -159,6 +161,7 @@ %patch8 -p1 %patch9 -p1 #%patch10 -p1 +%patch11 -p1 %patch15 -p1 %patch18 -p1 %patch20 -p1 ++++++ gdm-xdmcp-disconnect.patch ++++++
From 650465cb691a0eb52a84b0ff3eea64ac82168a43 Mon Sep 17 00:00:00 2001 From: Vincent Untz
Date: Thu, 03 Feb 2011 20:52:49 +0000 Subject: greeter: inform daemon when user disconnects
This is so the daemon knows the user is intentionally disconnecting and it's not just the greeter tanking. --- Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.c =================================================================== --- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-login-window.c +++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.c @@ -143,7 +143,6 @@ enum { QUERY_ANSWER, START_SESSION, USER_SELECTED, - DISCONNECTED, CANCELLED, LAST_SIGNAL }; @@ -1519,16 +1518,6 @@ gdm_greeter_login_window_class_init (Gdm NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); - signals [DISCONNECTED] = - g_signal_new ("disconnected", - G_TYPE_FROM_CLASS (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdmGreeterLoginWindowClass, disconnected), - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); signals [START_SESSION] = Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.h =================================================================== --- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-login-window.h +++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-login-window.h @@ -56,7 +56,6 @@ typedef struct void (* user_selected) (GdmGreeterLoginWindow *login_window, const char *text); void (* cancelled) (GdmGreeterLoginWindow *login_window); - void (* disconnected) (GdmGreeterLoginWindow *login_window); void (* start_session) (GdmGreeterLoginWindow *login_window); } GdmGreeterLoginWindowClass; Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.c =================================================================== --- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-panel.c +++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.c @@ -105,6 +105,7 @@ enum { LANGUAGE_SELECTED, LAYOUT_SELECTED, SESSION_SELECTED, + DISCONNECTED, NUMBER_OF_SIGNALS }; @@ -633,9 +634,10 @@ do_system_stop (void) } static void -do_disconnect (void) +do_disconnect (GtkWidget *widget, + GdmGreeterPanel *panel) { - gtk_main_quit (); + g_signal_emit (panel, signals[DISCONNECTED], 0); } static gboolean @@ -818,7 +820,7 @@ setup_panel (GdmGreeterPanel *panel) if (! panel->priv->display_is_local) { menu_item = gtk_menu_item_new_with_label ("Disconnect"); - g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_disconnect), NULL); + g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (do_disconnect), panel); gtk_menu_shell_append (GTK_MENU_SHELL (panel->priv->shutdown_menu), menu_item); } else if (get_show_restart_buttons (panel)) { if (can_suspend ()) { @@ -982,6 +984,17 @@ gdm_greeter_panel_class_init (GdmGreeter FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + signals [DISCONNECTED] = + g_signal_new ("disconnected", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GdmGreeterPanelClass, disconnected), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + g_type_class_add_private (klass, sizeof (GdmGreeterPanelPrivate)); } Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.h =================================================================== --- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-panel.h +++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-panel.h @@ -53,6 +53,7 @@ typedef struct void (* session_selected) (GdmGreeterPanel *panel, const char *text); + void (* disconnected) (GdmGreeterPanel *panel); } GdmGreeterPanelClass; GType gdm_greeter_panel_get_type (void); Index: gdm-2.32.0/gui/simple-greeter/gdm-greeter-session.c =================================================================== --- gdm-2.32.0.orig/gui/simple-greeter/gdm-greeter-session.c +++ gdm-2.32.0/gui/simple-greeter/gdm-greeter-session.c @@ -296,8 +296,7 @@ on_cancelled (GdmGreeterLoginWindow *log } static void -on_disconnected (GdmGreeterLoginWindow *login_window, - GdmGreeterSession *session) +on_disconnected (GdmGreeterSession *session) { gdm_greeter_client_call_disconnect (session->priv->client); } @@ -380,6 +379,11 @@ toggle_panel (GdmGreeterSession *session G_CALLBACK (on_select_session), session); + g_signal_connect_swapped (session->priv->panel, + "disconnected", + G_CALLBACK (on_disconnected), + session); + gtk_widget_show (session->priv->panel); } else { gtk_widget_destroy (session->priv->panel); @@ -427,10 +431,6 @@ toggle_login_window (GdmGreeterSession * G_CALLBACK (on_cancelled), session); g_signal_connect (session->priv->login_window, - "disconnected", - G_CALLBACK (on_disconnected), - session); - g_signal_connect (session->priv->login_window, "start-session", G_CALLBACK (on_start_session), session); Index: gdm-2.32.0/daemon/gdm-simple-slave.c =================================================================== --- gdm-2.32.0.orig/daemon/gdm-simple-slave.c +++ gdm-2.32.0/daemon/gdm-simple-slave.c @@ -921,6 +921,23 @@ on_greeter_connected (GdmGreeterServer * } static void +on_greeter_disconnected (GdmGreeterServer *greeter_server, + GdmSimpleSlave *slave) +{ + gboolean display_is_local; + + g_debug ("GdmSimpleSlave: Greeter disconnected"); + + g_object_get (slave, + "display-is-local", &display_is_local, + NULL); + + if ( ! display_is_local) { + gdm_slave_stopped (GDM_SLAVE (slave)); + } +} + +static void on_start_session_when_ready (GdmGreeterServer *session, GdmSimpleSlave *slave) { @@ -1116,6 +1133,10 @@ start_greeter (GdmSimpleSlave *slave) G_CALLBACK (on_greeter_connected), slave); g_signal_connect (slave->priv->greeter_server, + "disconnected", + G_CALLBACK (on_greeter_disconnected), + slave); + g_signal_connect (slave->priv->greeter_server, "cancelled", G_CALLBACK (on_greeter_cancel), slave); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org