]> git.eshelyaron.com Git - emacs.git/commitdiff
* nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
authorJan Djärv <jan.h.d@swipnet.se>
Sun, 21 Jul 2013 11:47:07 +0000 (13:47 +0200)
committerJan Djärv <jan.h.d@swipnet.se>
Sun, 21 Jul 2013 11:47:07 +0000 (13:47 +0200)
frame have focus.

Fixes: debbugs:14895
src/ChangeLog
src/nsterm.m

index e97e07aac6097a87919b6bc03c16580b116c5348..fb2d875eb2603da9af8696d3c7972bd8cdac958f 100644 (file)
@@ -1,3 +1,8 @@
+2013-07-21  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
+       frame have focus (Bug#14895).
+
 2013-07-21  Paul Eggert  <eggert@cs.ucla.edu>
 
        Avoid vfork-related deadlock more cleanly.
index f3c35e95bfee86a39b7b9a306e86c573c23d29cd..6153879833715071100d56cea4df36a3372538aa 100644 (file)
@@ -4416,6 +4416,7 @@ ns_term_shutdown (int sig)
 {
   int type = [theEvent type];
   NSWindow *window = [theEvent window];
+
 /*  NSTRACE (sendEvent); */
 /*fprintf (stderr, "received event of type %d\t%d\n", type);*/
 
@@ -4469,6 +4470,23 @@ ns_term_shutdown (int sig)
         }
     }
 
+
+#ifdef NS_IMPL_COCOA
+  /* If no dialog and none of our frames have focus and it is a move, skip it.
+     It is a mouse move in an auxillary menu, i.e. on the top right on OSX,
+     such as Wifi, sound, date or similar.
+     This prevents "spooky" highlightning in the frame under the menu.  */
+  if (type == NSMouseMoved && [NSApp modalWindow] == nil)
+    {
+      struct ns_display_info *di;
+      BOOL has_focus = NO;
+      for (di = x_display_list; ! has_focus && di; di = di->next)
+        has_focus = di->x_focus_frame != 0;
+      if (! has_focus)
+        return;
+    }
+#endif
+
   [super sendEvent: theEvent];
 }