diff options
author | Robin Gareus <robin@gareus.org> | 2020-02-23 14:51:56 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-02-23 16:21:50 +0100 |
commit | 96ef1dc0ed9862bf4937d182f789edd20c17581f (patch) | |
tree | 6851918f213f836e3e4de0bb6cccfa5a270b0ca2 /tools/patches/GdkQuartzWindow.patch | |
parent | 3e77680a57ee28571ec5558845df2ad82246741a (diff) |
Cleanup cource tree: collect patches
Diffstat (limited to 'tools/patches/GdkQuartzWindow.patch')
-rw-r--r-- | tools/patches/GdkQuartzWindow.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/patches/GdkQuartzWindow.patch b/tools/patches/GdkQuartzWindow.patch new file mode 100644 index 0000000000..217c010ffb --- /dev/null +++ b/tools/patches/GdkQuartzWindow.patch @@ -0,0 +1,44 @@ +--- old/gtk+-2.24.23/gdk/quartz/GdkQuartzWindow.c 2013-10-16 11:29:55.000000000 -0400 ++++ new/gtk+-2.24.23/gdk/quartz/GdkQuartzWindow.c 2015-07-20 15:05:40.000000000 -0400 +@@ -625,6 +625,41 @@ + event.dnd.send_event = FALSE; + event.dnd.context = _gdk_quartz_drag_source_context; + ++ /* Check to see if the coordinates are inside a known GdkWindow */ ++ ++ GdkScreen* screen = gdk_window_get_screen (event.dnd.window); ++ ++ if (screen) ++ { ++ GList* windows, *list; ++ gint gx, gy; ++ ++ event.dnd.context->dest_window = NULL; ++ ++ windows = gdk_screen_get_toplevel_windows (screen); ++ _gdk_quartz_window_nspoint_to_gdk_xy (aPoint, &gx, &gy); ++ ++ for (list = windows; list; list = list->next) ++ { ++ GdkWindow* win = (GdkWindow*) list->data; ++ gint wx, wy; ++ gint ww, wh; ++ ++ gdk_window_get_root_origin (win, &wx, &wy); ++ ww = gdk_window_get_width (win); ++ wh = gdk_window_get_height (win); ++ ++ if (gx > wx && ++ gy > wy && ++ gx <= wx + ww && ++ gy <= wy + wh) ++ { ++ /* found a toplevel GdkWindow at the drop position */ ++ event.dnd.context->dest_window = win; ++ } ++ } ++ } ++ + (*_gdk_event_func) (&event, _gdk_event_data); + + g_object_unref (event.dnd.window); |