From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Date: Sat, 21 Oct 2023 15:03:35 +0200 Message-ID: <875y302km0.fsf@ledu-giraud.fr> References: <87zg4d56l8.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> <83edj3png3.fsf@gnu.org> <877cov7d7b.fsf@yahoo.com> <83bke7pm6m.fsf@gnu.org> <87y1hb5y0x.fsf@yahoo.com> <83a5trplax.fsf@gnu.org> <87pm2n5wyk.fsf@yahoo.com> <871qf22f5g.fsf@ledu-giraud.fr> <87wmvzkjaw.fsf@ledu-giraud.fr> <87wmvzc2qq.fsf@yahoo.com> <87sf6nn4km.fsf@ledu-giraud.fr> <87o7hbn3mo.fsf@ledu-giraud.fr> <87r0lo2s8a.fsf@ledu-giraud.fr> <874jik46cs.fsf@yahoo.com> <87mswc2q70.fsf@ledu-giraud.fr> <87zg0c2pua.fsf@yahoo.com> <87il702nfo.fsf@ledu-giraud.fr> <87v8b02mae.fsf@yahoo.com> <87a5sc2lh4.fsf@ledu-giraud.fr> <87mswc2lb1.fsf@yahoo.com> Reply-To: Manuel Giraud Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21390"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Oct 21 15:04:54 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1quBev-0005Kx-8j for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 21 Oct 2023 15:04:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1quBed-0000xU-UJ; Sat, 21 Oct 2023 09:04:35 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1quBec-0000s4-MG for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 09:04:34 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1quBec-0004jo-Bz for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 09:04:34 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1quBf3-00081A-N6 for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 09:05:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 13:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64440 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169789345630758 (code B ref 64440); Sat, 21 Oct 2023 13:05:01 +0000 Original-Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 13:04:16 +0000 Original-Received: from localhost ([127.0.0.1]:42532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBeG-0007zx-7G for submit@debbugs.gnu.org; Sat, 21 Oct 2023 09:04:16 -0400 Original-Received: from ledu-giraud.fr ([51.159.28.247]:7491) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBeA-0007zk-57 for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 09:04:10 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=fJHuk8wN GIc6zdtzeYIabjsUWB5uATBOnX1sYdbhcIY=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=pLgYY6b7xzqFWi4ahFV1zrVO6Ow/DN zcTGVsHydGxuZW422b6QgyfYkYlfbwK/aplysymjmTkYJKH/PpXeQkAw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=fJHuk8wNGIc6zdtz eYIabjsUWB5uATBOnX1sYdbhcIY=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=IfnEIaTNSYbsxcBsJzqCFzLUcTiXY0D+86cNO7 1aKaWtAFRdA8UkV1jdEy+79/82/8F4dYN+mUKEjut0LwF2vWUChDTrWctn39h6yKqn0lo6 +JDf/FPWLCflMGcJMfBTqCSuVq+SuFDNVAiMfkj/Bn/OO3SKKlBN4M5ajpx68WiqVnk0I4 75kfbwjODzvnWhLgBEdSvRljyU2qQq8t6PO6MDVUFodDPfeLLUpyuZ+7P8WPPloBtom9El i+OFLkuv1ZJ+uHAYMz/xgbXFxSOxXF5H/ZGgu01vsT1xP44YTiePffYPTyARgY8TduU+nZ AxW/eXo6lnt6le1r3HbzKsqw== Original-Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 876ffe71 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 15:03:36 +0200 (CEST) In-Reply-To: <87mswc2lb1.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 20:48:34 +0800") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:272891 Archived-At: --=-=-= Content-Type: text/plain Po Lu writes: > Better, thanks. Although the commit message must be filled to 64 > columns, and I'd rather callers passing true be enumerated there. What about this one? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Support-for-menu-bar-in-window_from_coordinates.patch >From d2ed7c704854082e5f84a717d18f29c92785a638 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Sat, 21 Oct 2023 14:36:24 +0200 Subject: [PATCH] Support for menu bar in window_from_coordinates * src/window.h: * src/window.c (window_from_coordinates): In the no toolkit build, add support for the menu bar window. Add a new 'menu_bar_p' argument so the function's signature has changed. All callers changed. * src/androidterm.c (handle_one_android_event): * src/haikuterm.c (haiku_read_socket): * src/keyboard.c (make_lispy_position): * src/nsterm.m ([EmacsView mouseDown:]): * src/pgtkterm.c (button_event): * src/w32term.c (w32_read_socket): * src/xdisp.c (note_mouse_highlight): * src/xterm.c (handle_one_xevent): All those callers have 'menu_bar_p' set to true. --- src/androidterm.c | 10 +++++----- src/haikuterm.c | 8 ++++---- src/keyboard.c | 2 +- src/msdos.c | 2 +- src/nsterm.m | 4 ++-- src/pgtkterm.c | 4 ++-- src/w32inevt.c | 2 +- src/w32term.c | 8 ++++---- src/window.c | 20 ++++++++++++++++++-- src/window.h | 2 +- src/xdisp.c | 4 ++-- src/xterm.c | 17 +++++++++-------- 12 files changed, 50 insertions(+), 33 deletions(-) diff --git a/src/androidterm.c b/src/androidterm.c index 9d6517cce2b..e95e854d1d7 100644 --- a/src/androidterm.c +++ b/src/androidterm.c @@ -1142,7 +1142,7 @@ handle_one_android_event (struct android_display_info *dpyinfo, Lisp_Object window = window_from_coordinates (f, event->xmotion.x, event->xmotion.y, 0, - false, false); + false, false, false); /* A window will be autoselected only when it is not selected now and the last mouse movement event was @@ -1291,7 +1291,7 @@ handle_one_android_event (struct android_display_info *dpyinfo, int x = event->xbutton.x; int y = event->xbutton.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tab_bar_p = EQ (window, f->tab_bar_window); if (tab_bar_p) @@ -1313,7 +1313,7 @@ handle_one_android_event (struct android_display_info *dpyinfo, int x = event->xbutton.x; int y = event->xbutton.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tool_bar_p = (EQ (window, f->tool_bar_window) && ((event->xbutton.type != ANDROID_BUTTON_RELEASE) @@ -1409,7 +1409,7 @@ handle_one_android_event (struct android_display_info *dpyinfo, int y = event->touch.y; window = window_from_coordinates (any, x, y, 0, true, - true); + true, true); /* If this touch has started in the tool bar, do not send it to Lisp. Instead, simulate a tool bar @@ -1606,7 +1606,7 @@ handle_one_android_event (struct android_display_info *dpyinfo, /* Figure out how much to scale the deltas by. */ window = window_from_coordinates (any, event->wheel.x, event->wheel.y, NULL, - false, false); + false, false, false); if (WINDOWP (window)) scroll_height = XWINDOW (window)->pixel_height; diff --git a/src/haikuterm.c b/src/haikuterm.c index b1a016b49a9..bcb5055ea42 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -3472,7 +3472,7 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) if (!NILP (Vmouse_autoselect_window)) { static Lisp_Object last_mouse_window; - Lisp_Object window = window_from_coordinates (f, b->x, b->y, 0, 0, 0); + Lisp_Object window = window_from_coordinates (f, b->x, b->y, 0, 0, 0, 0); if (WINDOWP (window) && !EQ (window, last_mouse_window) @@ -3555,7 +3555,7 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) int x = b->x; int y = b->y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tab_bar_p = EQ (window, f->tab_bar_window); if (tab_bar_p) @@ -3573,7 +3573,7 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) int x = b->x; int y = b->y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tool_bar_p = (EQ (window, f->tool_bar_window) && (type != BUTTON_UP || f->last_tool_bar_item != -1)); @@ -3834,7 +3834,7 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) BView_get_mouse (FRAME_HAIKU_VIEW (f), &x, &y); - wheel_window = window_from_coordinates (f, x, y, 0, false, false); + wheel_window = window_from_coordinates (f, x, y, 0, false, false, false); if (NILP (wheel_window)) { diff --git a/src/keyboard.c b/src/keyboard.c index 76dec637cb1..00e178f2b93 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5558,7 +5558,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, int xret = 0, yret = 0; /* The window or frame under frame pixel coordinates (x,y) */ Lisp_Object window_or_frame = f - ? window_from_coordinates (f, mx, my, &part, true, true) + ? window_from_coordinates (f, mx, my, &part, true, true, true) : Qnil; #ifdef HAVE_WINDOW_SYSTEM bool tool_bar_p = false; diff --git a/src/msdos.c b/src/msdos.c index 1b7f2d4ae21..5dd7c1573c4 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -2662,7 +2662,7 @@ dos_rawgetc (void) static Lisp_Object last_mouse_window; mouse_window = window_from_coordinates - (SELECTED_FRAME (), mouse_last_x, mouse_last_y, 0, 0, 0); + (SELECTED_FRAME (), mouse_last_x, mouse_last_y, 0, 0, 0, 0); /* A window will be selected only when it is not selected now, and the last mouse movement event was not in it. A minibuffer window will be selected iff diff --git a/src/nsterm.m b/src/nsterm.m index 11535f071eb..46a5e8870e8 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7412,7 +7412,7 @@ - (void)mouseDown: (NSEvent *)theEvent int x = lrint (p.x); int y = lrint (p.y); - window = window_from_coordinates (emacsframe, x, y, 0, true, true); + window = window_from_coordinates (emacsframe, x, y, 0, true, true, true); tab_bar_p = EQ (window, emacsframe->tab_bar_window); if (tab_bar_p) @@ -7518,7 +7518,7 @@ - (void)mouseMoved: (NSEvent *)e NSTRACE_MSG ("mouse_autoselect_window"); static Lisp_Object last_mouse_window; Lisp_Object window - = window_from_coordinates (emacsframe, pt.x, pt.y, 0, 0, 0); + = window_from_coordinates (emacsframe, pt.x, pt.y, 0, 0, 0, 0); if (WINDOWP (window) && !EQ (window, last_mouse_window) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index a7c687d811d..461c9d6d899 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5894,7 +5894,7 @@ motion_notify_event (GtkWidget *widget, GdkEvent *event, { static Lisp_Object last_mouse_window; Lisp_Object window = window_from_coordinates - (f, event->motion.x, event->motion.y, 0, false, false); + (f, event->motion.x, event->motion.y, 0, false, false, false); /* A window will be autoselected only when it is not selected now and the last mouse movement event was @@ -6047,7 +6047,7 @@ button_event (GtkWidget *widget, GdkEvent *event, int x = event->button.x; int y = event->button.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tab_bar_p = EQ (window, f->tab_bar_window); if (tab_bar_p) diff --git a/src/w32inevt.c b/src/w32inevt.c index 29717954cfd..630a9f4e5fb 100644 --- a/src/w32inevt.c +++ b/src/w32inevt.c @@ -496,7 +496,7 @@ do_mouse_event (MOUSE_EVENT_RECORD *event, if (!NILP (Vmouse_autoselect_window)) { Lisp_Object mouse_window = window_from_coordinates (f, mx, my, - 0, 0, 0); + 0, 0, 0, 0); /* A window will be selected only when it is not selected now, and the last mouse movement event was not in it. A minibuffer window will be selected iff diff --git a/src/w32term.c b/src/w32term.c index a5f17a18213..301d8f4ef12 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -3376,7 +3376,7 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg, if (w32_wheel_scroll_lines == UINT_MAX) { Lisp_Object window = window_from_coordinates (f, p.x, p.y, NULL, - false, false); + false, false, false); if (!WINDOWP (window)) { result->kind = NO_EVENT; @@ -5335,7 +5335,7 @@ w32_read_socket (struct terminal *terminal, { static Lisp_Object last_mouse_window; Lisp_Object window = window_from_coordinates - (f, LOWORD (msg.msg.lParam), HIWORD (msg.msg.lParam), 0, 0, 0); + (f, LOWORD (msg.msg.lParam), HIWORD (msg.msg.lParam), 0, 0, 0, 0); /* Window will be selected only when it is not selected now and last mouse movement event was @@ -5407,7 +5407,7 @@ w32_read_socket (struct terminal *terminal, int x = XFIXNAT (inev.x); int y = XFIXNAT (inev.y); - window = window_from_coordinates (f, x, y, 0, 1, 1); + window = window_from_coordinates (f, x, y, 0, 1, 1, 1); if (EQ (window, f->tab_bar_window)) { @@ -5435,7 +5435,7 @@ w32_read_socket (struct terminal *terminal, int x = XFIXNAT (inev.x); int y = XFIXNAT (inev.y); - window = window_from_coordinates (f, x, y, 0, 1, 1); + window = window_from_coordinates (f, x, y, 0, 1, 1, 1); if (EQ (window, f->tool_bar_window) /* Make sure the tool bar was previously diff --git a/src/window.c b/src/window.c index 968b982c135..e802ffb3fe2 100644 --- a/src/window.c +++ b/src/window.c @@ -1680,7 +1680,8 @@ check_window_containing (struct window *w, void *user_data) Lisp_Object window_from_coordinates (struct frame *f, int x, int y, - enum window_part *part, bool tab_bar_p, bool tool_bar_p) + enum window_part *part, bool menu_bar_p, + bool tab_bar_p, bool tool_bar_p) { Lisp_Object window; struct check_window_data cw; @@ -1693,6 +1694,21 @@ window_from_coordinates (struct frame *f, int x, int y, cw.window = &window, cw.x = x, cw.y = y; cw.part = part; foreach_window (f, check_window_containing, &cw); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* If not found above, see if it's in the menu bar window, if a menu + bar exists. */ + if (NILP (window) + && menu_bar_p + && WINDOWP (f->menu_bar_window) + && WINDOW_TOTAL_LINES (XWINDOW (f->menu_bar_window)) > 0 + && (coordinates_in_window (XWINDOW (f->menu_bar_window), x, y) + != ON_NOTHING)) + { + *part = ON_TEXT; + window = f->menu_bar_window; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* If not found above, see if it's in the tab bar window, if a tab bar exists. */ @@ -1746,7 +1762,7 @@ DEFUN ("window-at", Fwindow_at, Swindow_at, 2, 3, 0, + FRAME_INTERNAL_BORDER_WIDTH (f)), (FRAME_PIXEL_Y_FROM_CANON_Y (f, y) + FRAME_INTERNAL_BORDER_WIDTH (f)), - 0, false, false); + 0, false, false, false); } ptrdiff_t diff --git a/src/window.h b/src/window.h index 413293420fd..9ef8434af18 100644 --- a/src/window.h +++ b/src/window.h @@ -1111,7 +1111,7 @@ #define WINDOW_TEXT_TO_FRAME_PIXEL_X(W, X) \ extern Lisp_Object make_window (void); extern Lisp_Object window_from_coordinates (struct frame *, int, int, - enum window_part *, bool, bool); + enum window_part *, bool, bool, bool); extern void resize_frame_windows (struct frame *, int, bool); extern void restore_window_configuration (Lisp_Object); extern void delete_all_child_windows (Lisp_Object); diff --git a/src/xdisp.c b/src/xdisp.c index b9009df5df9..578131a4005 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2778,7 +2778,7 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect) goto virtual_glyph; } else if (!f->glyphs_initialized_p - || (window = window_from_coordinates (f, gx, gy, &part, false, false), + || (window = window_from_coordinates (f, gx, gy, &part, false, false, false), NILP (window))) { width = FRAME_SMALLEST_CHAR_WIDTH (f); @@ -35438,7 +35438,7 @@ note_mouse_highlight (struct frame *f, int x, int y) return; /* Which window is that in? */ - window = window_from_coordinates (f, x, y, &part, true, true); + window = window_from_coordinates (f, x, y, &part, true, true, true); /* If displaying active text in another window, clear that. */ if (! EQ (window, hlinfo->mouse_face_window) diff --git a/src/xterm.c b/src/xterm.c index 517bdf57aab..d5ca60089d7 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -21161,7 +21161,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, } Lisp_Object window = window_from_coordinates - (f, xmotion.x, xmotion.y, 0, false, false); + (f, xmotion.x, xmotion.y, 0, false, false, false); /* A window will be autoselected only when it is not selected now and the last mouse movement event was @@ -21892,7 +21892,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = event->xbutton.x; int y = event->xbutton.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tab_bar_p = EQ (window, f->tab_bar_window); if (tab_bar_p) @@ -21913,7 +21913,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = event->xbutton.x; int y = event->xbutton.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tool_bar_p = (EQ (window, f->tool_bar_window) && (event->xbutton.type != ButtonRelease || f->last_tool_bar_item != -1)); @@ -22646,7 +22646,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, continue; window = window_from_coordinates (f, real_x, real_y, NULL, - false, false); + false, false, false); if (WINDOWP (window)) scroll_height = XWINDOW (window)->pixel_height; @@ -23089,7 +23089,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, || !NILP (focus_follows_mouse))) { static Lisp_Object last_mouse_window; - Lisp_Object window = window_from_coordinates (f, ev.x, ev.y, 0, false, false); + Lisp_Object window = window_from_coordinates (f, ev.x, ev.y, 0, false, false, + false); /* A window will be autoselected only when it is not selected now and the last mouse movement event was @@ -23667,7 +23668,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = bv.x; int y = bv.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); tab_bar_p = EQ (window, f->tab_bar_window); if (tab_bar_p) @@ -23688,7 +23689,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = bv.x; int y = bv.y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); /* Ignore button release events if the mouse wasn't previously pressed on the tool bar. We do this because otherwise selecting some @@ -24694,7 +24695,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, int x = xev->event_x; int y = xev->event_y; - window = window_from_coordinates (f, x, y, 0, true, true); + window = window_from_coordinates (f, x, y, 0, true, true, true); /* Ignore button release events if the mouse wasn't previously pressed on the tool bar. We do this because otherwise selecting some -- 2.42.0 --=-=-= Content-Type: text/plain -- Manuel Giraud --=-=-=--