summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2017-04-26 15:20:09 +0200
committerMartin Rudalics <rudalics@gmx.at>2017-04-26 15:20:09 +0200
commit7a4851e11b3bbc0fbfc7ea021b69374ab23eb882 (patch)
tree0e7e840a859c02e5bd6d50af7277d03ead6af4a3
parentb780f16953355e931a70f7b0fd666fa7f9dad795 (diff)
downloademacs-7a4851e11b3bbc0fbfc7ea021b69374ab23eb882.tar.gz
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.
-rw-r--r--src/w32term.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/w32term.c b/src/w32term.c
index f02201c9d76..6b0da0cb3e9 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -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;
+ }
+ }
}
}