]> code.delx.au - gnu-emacs/commitdiff
[USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sat, 10 Mar 2007 06:26:03 +0000 (06:26 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sat, 10 Mar 2007 06:26:03 +0000 (06:26 +0000)
mouse wheel movement on title bar or tool bar.

src/ChangeLog
src/macterm.c

index efb52506bdd77b2403cbb01ae37f33d31e67851f..48ff0cf1a2026632196bb70a17eab67054ee9032 100644 (file)
@@ -1,3 +1,8 @@
+2007-03-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
+       mouse wheel movement on title bar or tool bar.
+
 2007-03-10  Chong Yidong  <cyd@stupidchicken.com>
 
        * keyboard.c (help_form_saved_window_configs): New var.
index 3dbee62d2aac1c0fc61e05ec1542b00499733567..c85dc7da0132ac8fa186523f2a53fe2f69816800 100644 (file)
@@ -9988,23 +9988,30 @@ mac_handle_mouse_event (next_handler, event, data)
        if (err != noErr || axis != kEventMouseWheelAxisY)
          break;
 
-       err = GetEventParameter (event, kEventParamMouseWheelDelta,
-                                typeSInt32, NULL, sizeof (SInt32),
-                                NULL, &delta);
-       if (err != noErr)
-         break;
        err = GetEventParameter (event, kEventParamMouseLocation,
                                 typeQDPoint, NULL, sizeof (Point),
                                 NULL, &point);
        if (err != noErr)
          break;
+
+       SetPortWindowPort (wp);
+       GlobalToLocal (&point);
+       if (point.h < 0 || point.v < 0
+           || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1),
+                  f->tool_bar_window))
+         break;
+
+       err = GetEventParameter (event, kEventParamMouseWheelDelta,
+                                typeSInt32, NULL, sizeof (SInt32),
+                                NULL, &delta);
+       if (err != noErr)
+         break;
+
        read_socket_inev->kind = WHEEL_EVENT;
        read_socket_inev->code = 0;
        read_socket_inev->modifiers =
          (mac_event_to_emacs_modifiers (event)
           | ((delta < 0) ? down_modifier : up_modifier));
-       SetPortWindowPort (wp);
-       GlobalToLocal (&point);
        XSETINT (read_socket_inev->x, point.h);
        XSETINT (read_socket_inev->y, point.v);
        XSETFRAME (read_socket_inev->frame_or_window, f);