quartz: include all buttons' states in GdkEventButton.state

(cherry picked from commit a381e8ea62441b6715ba9bcb0e04332fd914f8b1)
This commit is contained in:
Michael Natterer 2011-11-09 00:25:01 +01:00
parent 264241eb11
commit 5f6c70f211

View File

@ -802,9 +802,9 @@ fill_button_event (GdkWindow *window,
{ {
GdkEventType type; GdkEventType type;
gint state; gint state;
gint button;
state = get_keyboard_modifiers_from_ns_event (nsevent); state = get_keyboard_modifiers_from_ns_event (nsevent) |
_gdk_quartz_events_get_current_mouse_modifiers ();
switch ([nsevent type]) switch ([nsevent type])
{ {
@ -812,18 +812,19 @@ fill_button_event (GdkWindow *window,
case NSRightMouseDown: case NSRightMouseDown:
case NSOtherMouseDown: case NSOtherMouseDown:
type = GDK_BUTTON_PRESS; type = GDK_BUTTON_PRESS;
state &= ~get_mouse_button_modifiers_from_ns_event (nsevent);
break; break;
case NSLeftMouseUp: case NSLeftMouseUp:
case NSRightMouseUp: case NSRightMouseUp:
case NSOtherMouseUp: case NSOtherMouseUp:
type = GDK_BUTTON_RELEASE; type = GDK_BUTTON_RELEASE;
state |= get_mouse_button_modifiers_from_ns_event (nsevent); state |= get_mouse_button_modifiers_from_ns_event (nsevent);
break; break;
default: default:
g_assert_not_reached (); g_assert_not_reached ();
} }
button = get_mouse_button_from_ns_event (nsevent);
event->any.type = type; event->any.type = type;
event->button.window = window; event->button.window = window;
@ -834,7 +835,7 @@ fill_button_event (GdkWindow *window,
event->button.y_root = y_root; event->button.y_root = y_root;
/* FIXME event->axes */ /* FIXME event->axes */
event->button.state = state; event->button.state = state;
event->button.button = button; event->button.button = get_mouse_button_from_ns_event (nsevent);
event->button.device = _gdk_display->core_pointer; event->button.device = _gdk_display->core_pointer;
} }