GdkWin32: Fix mouse events in presence of transparent windows on the desktop

Merged Luca Bacci requested to merge lb90/gtk:gdk-win32-use-window-from-point-api into gtk-3-24

Unlike ChildWindowFromPoint(Ex), WindowFromPoint finds exactly which window receives mouse input.

For example, mouse input on transparent areas of layered windows goes to the windows underneath. WindowFromPoint is able to detect that and continues searching in the windows underneath. The other API's instead return the layered window, which is not what we want.

Always use WindowFromPoint to detect which window gets mouse input at a specific location.

This MR is a comprehensive fix for all known issues related to pointer events on Windows.

Fixes: #370 (closed), #417 (closed), gimp#1082 (closed)

Edited by Luca Bacci

Merge request reports