gnome-libs patch to fix session management bug



The ChangeLog should explain why this is necessary - currently, GNOME
apps can prevent a KDE session from logging out, since they make it
look like saving the session state failed, even when they have no such
state.

	John


Index: libgnomeui/ChangeLog
===================================================================
RCS file: /cvs/gnome/gnome-libs/libgnomeui/ChangeLog,v
retrieving revision 1.1161.4.104
diff -u -r1.1161.4.104 ChangeLog
--- libgnomeui/ChangeLog	2001/01/23 03:29:07	1.1161.4.104
+++ libgnomeui/ChangeLog	2001/02/06 00:15:12
@@ -1,3 +1,21 @@
+2001-01-29  John Harper  <jsh eazel com>
+
+	* gnome-client.c (client_save_yourself_callback): commented out
+	the code that sets client->save_successfull (sic) to false if
+	the "save_yourself" signal wasn't emitted.
+
+	Since the KDE session manager actually cares about the
+	`success' field of the SaveYourselfDone message (unlike
+	gnome-session, which totally ignores it), the original logic
+	had the effect of making KDE unable to shutdown when any GNOME
+	apps that haven't connected to the "save_yourself" signal are
+	running.
+
+	Perhaps a better fix would be to set success = False only if
+	"save_session" wasn't emitted _and_ there are functions
+	connected to this signal. But since it makes no difference to
+	gnome-session I'll leave it for now..
+
 2001-01-22  Miguel de Icaza  <miguel ximian com>
 
 	* gnome-dialog.c (gnome_dialog_set_default): Do not grab focus.
Index: libgnomeui/gnome-client.c
===================================================================
RCS file: /cvs/gnome/gnome-libs/libgnomeui/gnome-client.c,v
retrieving revision 1.80.4.2
diff -u -r1.80.4.2 gnome-client.c
--- libgnomeui/gnome-client.c	2000/05/04 10:51:24	1.80.4.2
+++ libgnomeui/gnome-client.c	2001/02/06 00:15:12
@@ -735,8 +735,16 @@
 		   fast,
 		   &ret);
 
+#ifdef BREAK_KDE_SESSION_MANAGER
+  /* <jsh> The KDE session manager actually cares about the `success'
+     field of the SaveYourselfDone message (unlike gnome-session, which
+     totally ignores it. Hence the code below has the effect of making
+     KDE unable to shutdown when any GNOME apps are running that haven't
+     connected to the "save_yourself" signal. */
+
   if (!client->save_yourself_emitted)
     client->save_successfull= FALSE;
+#endif
 
   client_save_yourself_possibly_done (client);
 }





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]