1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-18 00:50:44 -08:00

Try to fix latest fix of w32_mouse_position

* src/w32term.c (w32_mouse_position): Fix a bug introduced by
latest fix and try to make the affected code more rigorous.
This commit is contained in:
Martin Rudalics 2017-04-26 15:20:09 +02:00
parent b780f16953
commit 7a4851e11b

View file

@ -3464,25 +3464,25 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
f1 = dpyinfo->last_mouse_frame;
else
{
/* Try to check for a child window first. */
HWND wfp = ChildWindowFromPoint (wfp, pt);
HWND wfp = WindowFromPoint (pt);
if (wfp)
{
struct frame *f2 = x_any_window_to_frame (dpyinfo, wfp);
f1 = x_any_window_to_frame (dpyinfo, wfp);
if (f1)
{
HWND cwfp = ChildWindowFromPoint (wfp, pt);
/* If f2 is one of our frames, make sure it's a child
frame (Bug#26615, maybe). */
if (f2 && FRAME_PARENT_FRAME (f2))
f1 = f2;
}
if (cwfp)
{
struct frame *f2 = x_any_window_to_frame (dpyinfo, cwfp);
if (!f1)
{
/* Check for a top-level window second. */
wfp = WindowFromPoint (pt);
if (wfp)
f1 = x_any_window_to_frame (dpyinfo, wfp);
/* If a child window was found, make sure that its
frame is a child frame (Bug#26615, maybe). */
if (f2 && FRAME_PARENT_FRAME (f2))
f1 = f2;
}
}
}
}