6bdd276d05
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
111 lines
4.2 KiB
Diff
111 lines
4.2 KiB
Diff
From 7e06599edaf97a91943e992f412116e6513c0c7e Mon Sep 17 00:00:00 2001
|
|
From: Kristian Rietveld <kris@lanedo.com>
|
|
Date: Sat, 23 Feb 2013 00:52:43 +0100
|
|
Subject: [PATCH 32/68] Add momentum_phase to GdkEventScroll
|
|
|
|
We need this for the detection of legacy mice that do emit precise
|
|
deltas.
|
|
---
|
|
gdk/gdkevents.h | 1 +
|
|
gdk/gdkwindow.c | 1 +
|
|
gdk/quartz/gdkevents-quartz.c | 16 ++++++++++++----
|
|
3 files changed, 14 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h
|
|
index 765b520..1cbfc58 100644
|
|
--- a/gdk/gdkevents.h
|
|
+++ b/gdk/gdkevents.h
|
|
@@ -349,6 +349,7 @@ struct _GdkEventScroll
|
|
gdouble delta_x;
|
|
gdouble delta_y;
|
|
GdkEventScrollPhase phase;
|
|
+ GdkEventScrollPhase momentum_phase;
|
|
};
|
|
|
|
struct _GdkEventKey
|
|
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
|
|
index 1dac543..7a3732c 100644
|
|
--- a/gdk/gdkwindow.c
|
|
+++ b/gdk/gdkwindow.c
|
|
@@ -10898,6 +10898,7 @@ proxy_button_event (GdkEvent *source_event,
|
|
event->scroll.delta_x = source_event->scroll.delta_x;
|
|
event->scroll.delta_y = source_event->scroll.delta_y;
|
|
event->scroll.phase = source_event->scroll.phase;
|
|
+ event->scroll.momentum_phase = source_event->scroll.momentum_phase;
|
|
return TRUE;
|
|
|
|
default:
|
|
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
|
|
index bb4da70..f3ba2c8 100644
|
|
--- a/gdk/quartz/gdkevents-quartz.c
|
|
+++ b/gdk/quartz/gdkevents-quartz.c
|
|
@@ -63,6 +63,7 @@ static GdkWindow *find_toplevel_under_pointer (GdkDisplay *display,
|
|
- (CGFloat) scrollingDeltaX;
|
|
- (CGFloat) scrollingDeltaY;
|
|
- (int) phase;
|
|
+- (int) momentumPhase;
|
|
@end
|
|
|
|
|
|
@@ -992,6 +993,7 @@ fill_scroll_event (GdkWindow *window,
|
|
gdouble delta_x,
|
|
gdouble delta_y,
|
|
GdkEventScrollPhase phase,
|
|
+ GdkEventScrollPhase momentum_phase,
|
|
GdkScrollDirection direction)
|
|
{
|
|
GdkWindowObject *private;
|
|
@@ -1015,6 +1017,7 @@ fill_scroll_event (GdkWindow *window,
|
|
event->scroll.delta_x = delta_x;
|
|
event->scroll.delta_y = delta_y;
|
|
event->scroll.phase = phase;
|
|
+ event->scroll.momentum_phase = momentum_phase;
|
|
}
|
|
|
|
static void
|
|
@@ -1516,7 +1519,7 @@ gdk_event_translate (GdkEvent *event,
|
|
if (gdk_quartz_osx_version() >= GDK_OSX_LION &&
|
|
[(id <PreciseDeltas>) nsevent hasPreciseScrollingDeltas])
|
|
{
|
|
- GdkEventScrollPhase phase;
|
|
+ GdkEventScrollPhase phase, momentum_phase;
|
|
dx = [(id <PreciseDeltas>) nsevent scrollingDeltaX];
|
|
dy = [(id <PreciseDeltas>) nsevent scrollingDeltaY];
|
|
|
|
@@ -1536,9 +1539,10 @@ gdk_event_translate (GdkEvent *event,
|
|
}
|
|
|
|
phase = gdk_event_scroll_phase_from_ns_event_phase ([(id <PreciseDeltas>) nsevent phase]);
|
|
+ momentum_phase = gdk_event_scroll_phase_from_ns_event_phase ([(id <PreciseDeltas>) nsevent momentumPhase]);
|
|
|
|
fill_scroll_event (window, event, nsevent, x, y, x_root, y_root,
|
|
- TRUE, -dx, -dy, phase, direction);
|
|
+ TRUE, -dx, -dy, phase, momentum_phase, direction);
|
|
}
|
|
else
|
|
{
|
|
@@ -1553,7 +1557,9 @@ gdk_event_translate (GdkEvent *event,
|
|
direction = GDK_SCROLL_UP;
|
|
|
|
fill_scroll_event (window, event, nsevent, x, y, x_root, y_root,
|
|
- FALSE, 0.0, fabs (dy), GDK_EVENT_SCROLL_PHASE_NONE,
|
|
+ FALSE, 0.0, fabs (dy),
|
|
+ GDK_EVENT_SCROLL_PHASE_NONE,
|
|
+ GDK_EVENT_SCROLL_PHASE_NONE,
|
|
direction);
|
|
}
|
|
else if (dx != 0.0)
|
|
@@ -1564,7 +1570,9 @@ gdk_event_translate (GdkEvent *event,
|
|
direction = GDK_SCROLL_LEFT;
|
|
|
|
fill_scroll_event (window, event, nsevent, x, y, x_root, y_root,
|
|
- FALSE, fabs (dx), 0.0, GDK_EVENT_SCROLL_PHASE_NONE,
|
|
+ FALSE, fabs (dx), 0.0,
|
|
+ GDK_EVENT_SCROLL_PHASE_NONE,
|
|
+ GDK_EVENT_SCROLL_PHASE_NONE,
|
|
direction);
|
|
}
|
|
}
|
|
--
|
|
1.7.10.2 (Apple Git-33)
|