diff src/macterm.c @ 85114:5039706521c9

Merge from emacs--rel--22 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-875
author Miles Bader <miles@gnu.org>
date Tue, 09 Oct 2007 08:52:57 +0000
parents cd518430d431 c975fef407b4
children 75ad106491dd bdb3fe0ba9fa
line wrap: on
line diff
--- a/src/macterm.c	Tue Oct 09 08:44:02 2007 +0000
+++ b/src/macterm.c	Tue Oct 09 08:52:57 2007 +0000
@@ -2360,6 +2360,9 @@
 
   for (i = 0; i < h; i++)
     bits[i] = ~bits[i];
+
+  BLOCK_INPUT;
+
   provider = CGDataProviderCreateWithData (NULL, bits,
 					   sizeof (unsigned short) * h, NULL);
   if (provider)
@@ -2369,6 +2372,8 @@
 					     provider, NULL, 0);
       CGDataProviderRelease (provider);
     }
+
+  UNBLOCK_INPUT;
 }
 
 static void
@@ -2379,7 +2384,11 @@
     return;
 
   if (fringe_bmp[which])
-    CGImageRelease (fringe_bmp[which]);
+    {
+      BLOCK_INPUT;
+      CGImageRelease (fringe_bmp[which]);
+      UNBLOCK_INPUT;
+    }
   fringe_bmp[which] = 0;
 }
 #endif
@@ -8757,7 +8766,7 @@
 
       font_id = atsu_find_font_from_family_name (family);
       if (font_id == kATSUInvalidFontID)
-	return;
+	return NULL;
       size_fixed = Long2Fix (size);
       bold_p = (fontface & bold) != 0;
       italic_p = (fontface & italic) != 0;
@@ -12148,7 +12157,13 @@
 			     will be selected only when it is active.  */
 			  if (WINDOWP (window)
 			      && !EQ (window, last_window)
-			      && !EQ (window, selected_window))
+			      && !EQ (window, selected_window)
+			      /* For click-to-focus window managers
+			         create event iff we don't leave the
+			         selected frame.  */
+			      && (focus_follows_mouse
+				  || (EQ (XWINDOW (window)->frame,
+					  XWINDOW (selected_window)->frame))))
 			    {
 			      inev.kind = SELECT_WINDOW_EVENT;
 			      inev.frame_or_window = window;