diff options
author | Kristian Rietveld <kris@lanedo.com> | 2011-11-05 22:53:22 +0100 |
---|---|---|
committer | Kristian Rietveld <kris@lanedo.com> | 2011-11-06 10:12:24 +0100 |
commit | 7269cdf315ffb72918e364aa2dd9f8fc06cd0ca8 (patch) | |
tree | 785bb3b44275ccdc5a604e67565d6cf7d9a69daa /gdk/quartz/gdkevents-quartz.c | |
parent | 6a7280ce1a25400826bef660c56946ecf4ae524e (diff) | |
download | gtk+-7269cdf315ffb72918e364aa2dd9f8fc06cd0ca8.tar.gz |
quartz: Factor out toplevel from NSEvent code into function
Diffstat (limited to 'gdk/quartz/gdkevents-quartz.c')
-rw-r--r-- | gdk/quartz/gdkevents-quartz.c | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c index cba9e4aa9c..22a8f285c5 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c @@ -323,6 +323,29 @@ get_window_point_from_screen_point (GdkWindow *window, *y = window->height - point.y; } +static GdkWindow * +get_toplevel_from_ns_event (NSEvent *nsevent, + NSPoint *screen_point, + gint *x, + gint *y) +{ + GdkQuartzView *view; + GdkWindow *toplevel; + NSPoint point; + + view = (GdkQuartzView *)[[nsevent window] contentView]; + + toplevel = [view gdkWindow]; + + point = [nsevent locationInWindow]; + *screen_point = [[nsevent window] convertBaseToScreen:point]; + + *x = point.x; + *y = toplevel->height - point.y; + + return toplevel; +} + static GdkEvent * create_focus_event (GdkWindow *window, gboolean in) @@ -652,20 +675,13 @@ find_window_for_ns_event (NSEvent *nsevent, gint *y_root) { GdkQuartzView *view; - NSPoint point; + GdkWindow *toplevel; NSPoint screen_point; NSEventType event_type; - GdkWindow *toplevel; view = (GdkQuartzView *)[[nsevent window] contentView]; - toplevel = [view gdkWindow]; - - point = [nsevent locationInWindow]; - screen_point = [[nsevent window] convertBaseToScreen:point]; - - *x = point.x; - *y = toplevel->height - point.y; + toplevel = get_toplevel_from_ns_event (nsevent, &screen_point, x, y); _gdk_quartz_window_nspoint_to_gdk_xy (screen_point, x_root, y_root); event_type = [nsevent type]; |