changeset 25921:eb5839cbfb16

(XTread_socket) <ClientMessage, WM_TAKE_FOCUS>: Don't call XSetInputFocus because that can generate additional FocusIn events.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 08 Oct 1999 11:32:09 +0000
parents 4d1e8a450aef
children 919a9742fa00
files src/xterm.c
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Fri Oct 08 10:30:45 1999 +0000
+++ b/src/xterm.c	Fri Oct 08 11:32:09 1999 +0000
@@ -8723,6 +8723,19 @@
 			if (f && FRAME_XIC (f))
 			  XSetICFocus (FRAME_XIC (f));
 #endif
+#if 0 /* Emacs sets WM hints whose `input' field is `true'.  This
+	 instructs the WM to set the input focus automatically for
+	 Emacs with a call to XSetInputFocus.  Setting WM_TAKE_FOCUS
+	 tells the WM to send us a ClientMessage WM_TAKE_FOCUS after
+	 it has set the focus.  So, XSetInputFocus below is not
+	 needed.
+
+	 The call to XSetInputFocus below has also caused trouble.  In
+	 cases where the XSetInputFocus done by the WM and the one
+	 below are temporally close (on a fast machine), the call
+	 below can generate additional FocusIn events which confuse
+	 Emacs.  */
+			
 			/* Since we set WM_TAKE_FOCUS, we must call
 			   XSetInputFocus explicitly.  But not if f is null,
 			   since that might be an event for a deleted frame.  */
@@ -8743,6 +8756,7 @@
 			    x_uncatch_errors (d, count);
 			  }  
 			/* Not certain about handling scroll bars here */
+#endif /* 0 */
 		      }
 		    else if (event.xclient.data.l[0]
 			     == dpyinfo->Xatom_wm_save_yourself)