diff src/xterm.c @ 52298:1a4bd2bec861

Create and initialize a client leader window so session management doesn't restart Emacs twice.
author Jan Dj?rv <jan.h.d@swipnet.se>
date Thu, 21 Aug 2003 19:54:47 +0000
parents 280be897db0d
children 2415f47f227a
line wrap: on
line diff
--- a/src/xterm.c	Thu Aug 21 17:24:58 2003 +0000
+++ b/src/xterm.c	Thu Aug 21 19:54:47 2003 +0000
@@ -10136,7 +10136,7 @@
   if (!x_initialized)
     {
       x_initialize ();
-      x_initialized = 1;
+      ++x_initialized;
     }
 
 #ifdef USE_GTK
@@ -10152,8 +10152,6 @@
     if (x_initialized > 1)
       return 0;
 
-    x_initialized++;
-
     for (argc = 0; argc < NUM_ARGV; ++argc)
       argv[argc] = 0;
 
@@ -10343,6 +10341,7 @@
   dpyinfo->height = HeightOfScreen (dpyinfo->screen);
   dpyinfo->width = WidthOfScreen (dpyinfo->screen);
   dpyinfo->root_window = RootWindowOfScreen (dpyinfo->screen);
+  dpyinfo->client_leader_window = 0;
   dpyinfo->grabbed = 0;
   dpyinfo->reference_count = 0;
   dpyinfo->icon_bitmap_id = -1;
@@ -10412,6 +10411,8 @@
     = XInternAtom (dpyinfo->display, "WM_CONFIGURE_DENIED", False);
   dpyinfo->Xatom_wm_window_moved
     = XInternAtom (dpyinfo->display, "WM_MOVED", False);
+  dpyinfo->Xatom_wm_client_leader
+    = XInternAtom (dpyinfo->display, "WM_CLIENT_LEADER", False);
   dpyinfo->Xatom_editres
     = XInternAtom (dpyinfo->display, "Editres", False);
   dpyinfo->Xatom_CLIPBOARD
@@ -10566,6 +10567,12 @@
 #endif
   }
 
+#ifdef HAVE_X_SM
+  /* Only do this for the first display.  */
+  if (x_initialized == 1)
+    x_session_initialize (dpyinfo);
+#endif
+
   UNBLOCK_INPUT;
 
   return dpyinfo;
@@ -10779,10 +10786,6 @@
 #endif /* SIGWINCH */
 
   signal (SIGPIPE, x_connection_signal);
-
-#ifdef HAVE_X_SM
-  x_session_initialize ();
-#endif
 }