From 5bc21f358c94be373e23c7ab6f2dcce7d5b67baf Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Sat, 10 Mar 2007 06:26:03 +0000 Subject: [PATCH] [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore mouse wheel movement on title bar or tool bar. --- src/ChangeLog | 5 +++++ src/macterm.c | 21 ++++++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index efb52506bdd..48ff0cf1a20 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-03-10 YAMAMOTO Mitsuharu + + * macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore + mouse wheel movement on title bar or tool bar. + 2007-03-10 Chong Yidong * keyboard.c (help_form_saved_window_configs): New var. diff --git a/src/macterm.c b/src/macterm.c index 3dbee62d2aa..c85dc7da013 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -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); -- 2.39.2