From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Jul 2023 16:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 64440 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 64440@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.168839998721173 (code B ref -1); Mon, 03 Jul 2023 16:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 3 Jul 2023 15:59:47 +0000 Received: from localhost ([127.0.0.1]:34333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGLxq-0005VQ-9H for submit@debbugs.gnu.org; Mon, 03 Jul 2023 11:59:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:34478) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGLxm-0005VG-N6 for submit@debbugs.gnu.org; Mon, 03 Jul 2023 11:59:44 -0400 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 1qGLxm-0006F6-7x for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2023 11:59:42 -0400 Received: from ledu-giraud.fr ([51.159.28.247]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGLxg-00054D-KA for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2023 11:59:41 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=XLDAjpL4 RABi16gAr7uN+qnVZgP3J4M2AAiGpjalqXI=; h=date:subject:to:from; d=ledu-giraud.fr; b=wWrXz7t8cD+k54vYLS5QR05kPpBGx3f+67BOHoSt0Z0PBg0Z90 +7zqIHeckh6WHLL3SIhHQPvNCQjgL0BwAABQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=XLDAjpL4RABi16gA r7uN+qnVZgP3J4M2AAiGpjalqXI=; h=date:subject:to:from; d=ledu-giraud.fr; b=QWA4rDIfseC1dxc21ggL2KV2eypnQBqXuf4w2iku/g9qAyzyQ4 9s+ASmm7B+9PxMZFUFqUhj61df1cdBl/fBLEmSeJ+qGzpFGcvmnXgWqL36zu6l22r6DcR9 EHkzoEi8BpANfOXWsy3z1zPf9EsrRAb6l++49wPK2KKIpsywbn3Jubdss5u1v1PB+Ypvjr 9fSvQNg2Xt6vRJ+pbWti/mU/8q7e/VlVPxyseNDa24/mJElcQLsLQN/K4c1AEur7tjuTo0 rcJQ9HSCm3/+9NAponSQ6Va0pvNhgjI+2uCb4KhI8C9mhVBdt9zPTElEktg79e3qVQWHtQ h7E9h+HSCFzw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 1d49d609 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Mon, 3 Jul 2023 17:59:33 +0200 (CEST) From: Manuel Giraud Date: Mon, 03 Jul 2023 17:59:31 +0200 Message-ID: <87zg4d56l8.fsf@ledu-giraud.fr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=51.159.28.247; envelope-from=manuel@ledu-giraud.fr; helo=ledu-giraud.fr X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain Hi, Here is a set of patches to have highlighting on the menu bar items (for the non toolkit build only). The first patch is a bit "intrusive" because it adds a menu_bar_p selector to 'window_from_coordinates'. Maybe it is not needed and I could drop this selector and make 'window_from_coordinates' return f->menu_bar_window when the mouse is on it. The second patch is the real meat and is modeled after other "note_*_highlight" functions. It seems to work as expected but now I think I need to define another face (I'm using MENU_FACE_ID now so it is not really visual) or maybe we should be able to propertize the menu bar entries. WDYT? --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >From ceb818090de83fe216af3e9b6bcc198eba9188e3 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Sat, 1 Jul 2023 21:19:06 +0200 Subject: [PATCH 1/2] Possibility to get enter event from menu_bar window --- src/haikuterm.c | 8 ++++---- src/keyboard.c | 2 +- src/msdos.c | 2 +- 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 +++++++++-------- 10 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/haikuterm.c b/src/haikuterm.c index ed28a806ff2..0af9aa746a9 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 b61b1766856..4cc0c70b11e 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5414,7 +5414,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 75a39045cee..6e779ffb2e2 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -2655,7 +2655,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/pgtkterm.c b/src/pgtkterm.c index dc2d6477bb5..788d4a7bdfb 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5891,7 +5891,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 @@ -6044,7 +6044,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 57dc6b465e4..9c5a298a645 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 2a0c62f5d53..af7dcfdd423 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 2f793ebe438..4f4a0a79216 100644 --- a/src/window.h +++ b/src/window.h @@ -1092,7 +1092,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 85ece901111..4c02a217cef 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2739,7 +2739,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); @@ -35124,7 +35124,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 f84eaeb8cbd..e58e6276aae 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -20925,7 +20925,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 @@ -21656,7 +21656,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) @@ -21677,7 +21677,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)); @@ -22398,7 +22398,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; @@ -22841,7 +22841,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 @@ -23419,7 +23420,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) @@ -23440,7 +23441,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 @@ -24300,7 +24301,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.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Highlight-on-non-toolkit-menu-bar-items.patch >From d5ddf8e04d06730917f94cb7d2fcb026c4437788 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Mon, 3 Jul 2023 17:35:06 +0200 Subject: [PATCH 2/2] Highlight on non toolkit menu bar items * src/xdisp.c (get_menu_bar_item, note_menu_bar_highlight): New functions to highlight item in the menu-bar. (note_mouse_highlight): Use it. --- src/xdisp.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 4c02a217cef..25b33e3a8c4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13859,6 +13859,122 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) return hooks_run; } +/* Get information about the menu-bar item at position X/Y on frame F. + Return menu-bar's item char position in H_START/H_END and pixel + position in X_START/X_END. Value is + + -1 if X/Y is not on a menu-bar item + 0 if X/Y is on the same item that was highlighted before. + 1 otherwise. */ + +static int +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, + int *x_start, int *x_end, int *vpos) +{ + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + struct window *w = XWINDOW (f->menu_bar_window); + struct glyph_row *row; + int dummy; + Lisp_Object items; + int i; + + /* Find glyph's hpos and vpos under X/Y. */ + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) == NULL) + return -1; + + /* Compute h_start and h_end for this menu bar item. */ + items = FRAME_MENU_BAR_ITEMS (f); + for (i = 0; i < ASIZE (items); i += 4) + { + Lisp_Object pos, string; + string = AREF (items, i + 1); + pos = AREF (items, i + 3); + if (NILP (string)) + return -1; + if (*h_start >= XFIXNUM (pos) + && *h_start < XFIXNUM (pos) + SCHARS (string)) + { + *h_start = XFIXNUM (pos); + *h_end = *h_start + SCHARS (string); + break; + } + } + + /* Convert to pixels bounds. */ + row = MATRIX_ROW (w->current_matrix, *vpos); + *x_start = 0; + for (i = 0; i < *h_start; ++i) + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end = *x_start; + for (i = *h_start; i < *h_end; ++i) + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; + + /* Is mouse on the highlighted item? */ + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) + && *vpos >= hlinfo->mouse_face_beg_row + && *vpos <= hlinfo->mouse_face_end_row + && (*vpos > hlinfo->mouse_face_beg_row + || *h_start >= hlinfo->mouse_face_beg_col) + && (*vpos < hlinfo->mouse_face_end_row + || *h_end < hlinfo->mouse_face_end_col + || hlinfo->mouse_face_past_end)) + return 0; + + return 1; +} + +/* Possibly highlight a menu-bar item on frame F when mouse moves to + menu-bar window-relative coordinates X/Y. Called from + note_mouse_highlight. */ + +static void +note_menu_bar_highlight (struct frame *f, int x, int y) +{ + Lisp_Object window = f->menu_bar_window; + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + int h_start, h_end, vpos, x_start, x_end; + int rc; + + /* Function note_mouse_highlight is called with negative X/Y + values when mouse moves outside of the frame. */ + if (x <= 0 || y <= 0) + { + clear_mouse_face (hlinfo); + return; + } + + h_start = h_end = 0; + rc = get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &vpos); + if (rc < 0) + { + /* Not on menu-bar item. */ + clear_mouse_face (hlinfo); + return; + } + else if (rc == 0) + /* On same menu-bar item as before. */ + return; + + if (!NILP (Vmouse_highlight)) + { + /* Record this as the current active region. */ + hlinfo->mouse_face_beg_col = h_start; + hlinfo->mouse_face_beg_row = vpos; + hlinfo->mouse_face_beg_x = x_start; + hlinfo->mouse_face_past_end = false; + + hlinfo->mouse_face_end_col = h_end; + hlinfo->mouse_face_end_row = vpos; + hlinfo->mouse_face_end_x = x_end; + hlinfo->mouse_face_window = window; + hlinfo->mouse_face_face_id = MENU_FACE_ID; + + /* Display it as active. */ + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); + } +} + /*********************************************************************** @@ -35223,6 +35339,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + note_menu_bar_highlight (f, x, y); + return; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-= Content-Type: text/plain In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.3, cairo version 1.17.8) of 2023-07-03 built on computer Repository revision: ceb818090de83fe216af3e9b6bcc198eba9188e3 Repository branch: mgi/menu Windowing system distributor 'The X.Org Foundation', version 11.0.12101006 System Description: OpenBSD computer 7.3 GENERIC.MP#1125 amd64 Configured using: 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin --with-x-toolkit=no --with-toolkit-scroll-bars=no --without-sound --without-compress-install CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Dired by name Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t gnus-dired-mode: t display-time-mode: t display-battery-mode: t server-mode: t shell-dirtrack-mode: t override-global-mode: t repeat-mode: t desktop-save-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/manuel/.el/nov hides /home/manuel/.emacs.d/elpa/nov-20230421.1548/nov /home/manuel/.emacs.d/elpa/ef-themes-1.1.1/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs Features: (shadow sort mail-extr emacsbug whitespace magit-patch misearch multi-isearch pulse magit-extras face-remap magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-section magit-utils dash org-agenda emacs-news-mode org-indent css-mode sgml-mode facemenu imenu vc-cvs vc-rcs log-view pcvs-util make-mode pascal vc-hg conf-mode org-element org-persist org-id org-refile avl-tree oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-version org-compat org-macs view sh-script smie treesit executable gnus-dired paredit mule-util vc-git diff-mode vc-svn vc vc-dispatcher bug-reference time battery cus-load exwm-randr xcb-randr exwm-config ido exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug server modus-operandi-theme modus-themes zone speed-type url-http url-auth url-gw nsm compat ytdious mingus libmpdee reporter edebug debug backtrace detached-init detached autorevert filenotify transmission color calc-bin calc-ext calc calc-loaddefs rect calc-macs supercite regi ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr wid-edit ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe find-func eieio-base pcase timezone icalendar visual-basic-mode cl web-mode derived disp-table erlang-start smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp tramp rx tramp-loaddefs trampver tramp-integration files-x tramp-compat xdg shell pcomplete parse-time iso8601 time-date format-spec slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree advice slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl slime-parse slime apropos compile text-property-search etags fileloop generator xref project arc-mode archive-mode noutline outline icons pp comint ansi-osc ansi-color ring hyperspec thingatpt slime-autoloads edmacro kmacro use-package-bind-key bind-key appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs dired-x dired-aux dired dired-loaddefs notifications dbus xml cl-extra help-mode use-package-core repeat easy-mmode desktop frameset debbugs-autoloads detached-autoloads ebdb-autoloads ef-themes-autoloads exwm-autoloads hyperbole-autoloads magit-autoloads git-commit-autoloads finder-inf magit-section-autoloads dash-autoloads nov-autoloads esxml-autoloads kv-autoloads osm-autoloads paredit-autoloads rust-mode-autoloads speed-type-autoloads transmission-autoloads visual-fill-column-autoloads with-editor-autoloads info compat-autoloads ytdious-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind kqueue lcms2 dynamic-setting system-font-setting font-render-setting cairo xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 1679605 226472) (symbols 48 60222 5) (strings 32 194847 17038) (string-bytes 1 6134459) (vectors 16 117354) (vector-slots 8 2341200 178993) (floats 8 591 3029) (intervals 56 239858 3338) (buffers 984 165)) -- Manuel Giraud --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Jul 2023 16:15:02 +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 To: 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.168848724930559 (code B ref 64440); Tue, 04 Jul 2023 16:15:02 +0000 Received: (at 64440) by debbugs.gnu.org; 4 Jul 2023 16:14:09 +0000 Received: from localhost ([127.0.0.1]:36471 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGifI-0007wo-KG for submit@debbugs.gnu.org; Tue, 04 Jul 2023 12:14:09 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:15885) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGifF-0007wa-96 for 64440@debbugs.gnu.org; Tue, 04 Jul 2023 12:14:07 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=WWCMXuZk J+pOora43ItqgkhjNwKmqD6PSmFwACXCvE4=; h=date:references:in-reply-to: subject:to:from; d=ledu-giraud.fr; b=X/DoXFZH5AK0fKeMP7jh7JOjXBJYvl/+5 Idgnc1y14y0rzR3I2yo6tUlJx+zbfZ6YAPFnNgtWSvFXofV/UiUCQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=WWCMXuZkJ+pOora4 3ItqgkhjNwKmqD6PSmFwACXCvE4=; h=date:references:in-reply-to:subject: to:from; d=ledu-giraud.fr; b=ZNnS43Kce3lqBInUyUGpH9lnIITGp9HL4GDFHg28x bKTze734r9D6B2TFmgo/Zr9/96EozHU5c0aC1LIwQT96FBBhpdg4n7L/O4ibn1DWkdFscG 43QiAu7KpKUFAooAP1pUno5nCj6pr5+5oTqUZCvE442osW5jgyHN84dBKalGfzTnaeo8Jo xlHUMbhVLz8n98PmsflI9cczfKQ+4zSxu9yNFXppbhezLh1asggVeMf83W3zkNttTC5DYD ZkPjPVJ2Cv98W4AGWOv54oS9U7SarKyQoQBrr+jdvNWCq/IninBbhfITN1hxyZBs6QEqBq xzisDBCNvHnDacYdHmVqw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id ed857867 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for <64440@debbugs.gnu.org>; Tue, 4 Jul 2023 18:14:03 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87zg4d56l8.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Mon, 03 Jul 2023 17:59:31 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> Date: Tue, 04 Jul 2023 18:14:02 +0200 Message-ID: <87ilaz1wol.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi, Here is a new set of patches with two more on top of the previous ones (ie. Number 1 and 2 should be the same as before). Number 3 sets the default mouse cursor to be an arrow on the default menu bar area. Number 4 fixes a flickering I had while moving the mouse pointer *into* a menu bar entry. Best regards, -- Manuel Giraud --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >From ceb818090de83fe216af3e9b6bcc198eba9188e3 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Sat, 1 Jul 2023 21:19:06 +0200 Subject: [PATCH 1/4] Possibility to get enter event from menu_bar window --- src/haikuterm.c | 8 ++++---- src/keyboard.c | 2 +- src/msdos.c | 2 +- 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 +++++++++-------- 10 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/haikuterm.c b/src/haikuterm.c index ed28a806ff2..0af9aa746a9 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 b61b1766856..4cc0c70b11e 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5414,7 +5414,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 75a39045cee..6e779ffb2e2 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -2655,7 +2655,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/pgtkterm.c b/src/pgtkterm.c index dc2d6477bb5..788d4a7bdfb 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5891,7 +5891,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 @@ -6044,7 +6044,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 57dc6b465e4..9c5a298a645 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 2a0c62f5d53..af7dcfdd423 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 2f793ebe438..4f4a0a79216 100644 --- a/src/window.h +++ b/src/window.h @@ -1092,7 +1092,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 85ece901111..4c02a217cef 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2739,7 +2739,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); @@ -35124,7 +35124,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 f84eaeb8cbd..e58e6276aae 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -20925,7 +20925,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 @@ -21656,7 +21656,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) @@ -21677,7 +21677,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)); @@ -22398,7 +22398,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; @@ -22841,7 +22841,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 @@ -23419,7 +23420,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) @@ -23440,7 +23441,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 @@ -24300,7 +24301,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.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Highlight-on-non-toolkit-menu-bar-items.patch >From d5ddf8e04d06730917f94cb7d2fcb026c4437788 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Mon, 3 Jul 2023 17:35:06 +0200 Subject: [PATCH 2/4] Highlight on non toolkit menu bar items * src/xdisp.c (get_menu_bar_item, note_menu_bar_highlight): New functions to highlight item in the menu-bar. (note_mouse_highlight): Use it. --- src/xdisp.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 4c02a217cef..25b33e3a8c4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13859,6 +13859,122 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) return hooks_run; } +/* Get information about the menu-bar item at position X/Y on frame F. + Return menu-bar's item char position in H_START/H_END and pixel + position in X_START/X_END. Value is + + -1 if X/Y is not on a menu-bar item + 0 if X/Y is on the same item that was highlighted before. + 1 otherwise. */ + +static int +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, + int *x_start, int *x_end, int *vpos) +{ + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + struct window *w = XWINDOW (f->menu_bar_window); + struct glyph_row *row; + int dummy; + Lisp_Object items; + int i; + + /* Find glyph's hpos and vpos under X/Y. */ + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) == NULL) + return -1; + + /* Compute h_start and h_end for this menu bar item. */ + items = FRAME_MENU_BAR_ITEMS (f); + for (i = 0; i < ASIZE (items); i += 4) + { + Lisp_Object pos, string; + string = AREF (items, i + 1); + pos = AREF (items, i + 3); + if (NILP (string)) + return -1; + if (*h_start >= XFIXNUM (pos) + && *h_start < XFIXNUM (pos) + SCHARS (string)) + { + *h_start = XFIXNUM (pos); + *h_end = *h_start + SCHARS (string); + break; + } + } + + /* Convert to pixels bounds. */ + row = MATRIX_ROW (w->current_matrix, *vpos); + *x_start = 0; + for (i = 0; i < *h_start; ++i) + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end = *x_start; + for (i = *h_start; i < *h_end; ++i) + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; + + /* Is mouse on the highlighted item? */ + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) + && *vpos >= hlinfo->mouse_face_beg_row + && *vpos <= hlinfo->mouse_face_end_row + && (*vpos > hlinfo->mouse_face_beg_row + || *h_start >= hlinfo->mouse_face_beg_col) + && (*vpos < hlinfo->mouse_face_end_row + || *h_end < hlinfo->mouse_face_end_col + || hlinfo->mouse_face_past_end)) + return 0; + + return 1; +} + +/* Possibly highlight a menu-bar item on frame F when mouse moves to + menu-bar window-relative coordinates X/Y. Called from + note_mouse_highlight. */ + +static void +note_menu_bar_highlight (struct frame *f, int x, int y) +{ + Lisp_Object window = f->menu_bar_window; + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + int h_start, h_end, vpos, x_start, x_end; + int rc; + + /* Function note_mouse_highlight is called with negative X/Y + values when mouse moves outside of the frame. */ + if (x <= 0 || y <= 0) + { + clear_mouse_face (hlinfo); + return; + } + + h_start = h_end = 0; + rc = get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &vpos); + if (rc < 0) + { + /* Not on menu-bar item. */ + clear_mouse_face (hlinfo); + return; + } + else if (rc == 0) + /* On same menu-bar item as before. */ + return; + + if (!NILP (Vmouse_highlight)) + { + /* Record this as the current active region. */ + hlinfo->mouse_face_beg_col = h_start; + hlinfo->mouse_face_beg_row = vpos; + hlinfo->mouse_face_beg_x = x_start; + hlinfo->mouse_face_past_end = false; + + hlinfo->mouse_face_end_col = h_end; + hlinfo->mouse_face_end_row = vpos; + hlinfo->mouse_face_end_x = x_end; + hlinfo->mouse_face_window = window; + hlinfo->mouse_face_face_id = MENU_FACE_ID; + + /* Display it as active. */ + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); + } +} + /*********************************************************************** @@ -35223,6 +35339,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + note_menu_bar_highlight (f, x, y); + return; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-nontext-cursor-on-the-menu-bar-by-default.patch >From 08279c0754c49b567fda0adedc3ecfd4e11a7ec5 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Tue, 4 Jul 2023 17:48:42 +0200 Subject: [PATCH 3/4] nontext cursor on the menu bar by default * src/xdisp.c (show_mouse_face): Arrow for DRAW_NORMAL_TEXT on the menu bar --- src/xdisp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 25b33e3a8c4..e1c4c9ee7b9 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -33878,6 +33878,9 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) if (FRAME_WINDOW_P (f) && NILP (track_mouse)) { if (draw == DRAW_NORMAL_TEXT +#ifndef HAVE_EXT_MENU_BAR + && !EQ (hlinfo->mouse_face_window, f->menu_bar_window) +#endif #ifndef HAVE_EXT_TOOL_BAR && !EQ (hlinfo->mouse_face_window, f->tool_bar_window) #endif -- 2.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-Avoid-mouse-cursor-flicker.patch >From 159ae74ed2ec452902913690f6d462767aa3a96d Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Tue, 4 Jul 2023 17:57:39 +0200 Subject: [PATCH 4/4] Avoid mouse cursor flicker * src/dispextern.h (Mouse_HLInfo): Introduce a mouse_cursor_update set to true by default. * src/xdisp.c (show_mouse_face): Take it into account. (note_menu_bar_highlight, note_tab_bar_highlight) (note_tool_bar_highlight): Don't update the mouse cursor from here. --- src/dispextern.h | 5 +++++ src/xdisp.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/dispextern.h b/src/dispextern.h index ece128949f5..ed03a7c244e 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -2876,6 +2876,10 @@ #define PRODUCE_GLYPHS(IT) \ /* True means that the mouse highlight should not be shown. */ bool_bf mouse_face_hidden : 1; + + /* True means that the mouse highlight should update the mouse + cursor. */ + bool_bf mouse_cursor_update : 1; } Mouse_HLInfo; INLINE void @@ -2892,6 +2896,7 @@ reset_mouse_highlight (Mouse_HLInfo *hlinfo) hlinfo->mouse_face_past_end = false; hlinfo->mouse_face_hidden = false; hlinfo->mouse_face_defer = false; + hlinfo->mouse_cursor_update = true; } /*********************************************************************** diff --git a/src/xdisp.c b/src/xdisp.c index e1c4c9ee7b9..86bb1be9240 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13956,6 +13956,11 @@ note_menu_bar_highlight (struct frame *f, int x, int y) /* On same menu-bar item as before. */ return; + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update = false; + clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update = true; + if (!NILP (Vmouse_highlight)) { /* Record this as the current active region. */ @@ -14838,7 +14843,10 @@ note_tab_bar_highlight (struct frame *f, int x, int y) /* On same tab-bar item as before. */ goto set_help_echo; + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update = false; clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update = true; bool mouse_down_p = false; /* Mouse is down, but on different tab-bar item? Or alternatively, @@ -15793,7 +15801,10 @@ note_tool_bar_highlight (struct frame *f, int x, int y) /* On same tool-bar item as before. */ goto set_help_echo; + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update = false; clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update = true; /* Mouse is down, but on different tool-bar item? */ mouse_down_p = (gui_mouse_grabbed (dpyinfo) @@ -33875,7 +33886,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) #ifdef HAVE_WINDOW_SYSTEM /* Change the mouse cursor. */ - if (FRAME_WINDOW_P (f) && NILP (track_mouse)) + if (FRAME_WINDOW_P (f) && NILP (track_mouse) && hlinfo->mouse_cursor_update) { if (draw == DRAW_NORMAL_TEXT #ifndef HAVE_EXT_MENU_BAR -- 2.40.0 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 01 Sep 2023 18:56: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 To: Manuel Giraud , Po Lu Cc: 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169359454722475 (code B ref 64440); Fri, 01 Sep 2023 18:56:01 +0000 Received: (at 64440) by debbugs.gnu.org; 1 Sep 2023 18:55:47 +0000 Received: from localhost ([127.0.0.1]:33905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qc9J4-0005qQ-UC for submit@debbugs.gnu.org; Fri, 01 Sep 2023 14:55:47 -0400 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]:54332) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qc9J2-0005qA-LG for 64440@debbugs.gnu.org; Fri, 01 Sep 2023 14:55:45 -0400 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-5009d4a4897so4243883e87.0 for <64440@debbugs.gnu.org>; Fri, 01 Sep 2023 11:55:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693594529; x=1694199329; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=b6818RE1MF+xcbiek5MXesQloojJJc3hjCfBab5VxyA=; b=PkYJRIHCPNohDOu7l72LN56xU/oy1t1k4tEFtaxnkYYssC5ekm2c/cNIVNauAUhiwt chlRG1r4hjIXx5KGQYbM+H9AbpZnaSNZGIxGopu+K2LT6s/1oCkSBDzI28xP+SOEse85 gRzKaUPSSic5X4vU5i1dvJo1UJ2OCh+QHlVd0IeKFQ/+Etl3WQEqLHx0XpAOCZBGI6rx lwOT61NIE8xK8ffzTTg1SJKi8aHKtYKB1cCXU0kniXCbVIajkUrWkg2Q7Myb18dqaW1/ eSOx4z8P8urEC9hFt97Sgldz7DWQjHoZNf4E6baTTnk/gtBsdefEotWdMejVVVFzLurZ Jr5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693594529; x=1694199329; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=b6818RE1MF+xcbiek5MXesQloojJJc3hjCfBab5VxyA=; b=ZEWQo2zRIPdVdgKx41Kbeg7ry1R4GVHAFc0O0panknALWKc+TE4uTPSi/3hcidjDkm N0Qi4fG/slpgLqGRXMpolo1PNPsA+iqz2keSAlSCGMZuyILb/kLN65Xf0K2U0IJJHByQ 0kpQFFxS5ANae+y43nT7lAAD0oUbjYfOqodc6bxjTVUndNRT+WknhMpscp8J/lgM6aGs +JzLXFlpgUjJevsfrgRvu7xnfnb70eulLY5P/hNumFD4GtVbN3IsMgR90/kS687bmY9X 9ppPmPrX+xcR0mKmwp7eLcxh+tcOl16fgpLTaJO1tlg9Px4G4lYaoKYwLrVMGB5ZnZtC E2bw== X-Gm-Message-State: AOJu0YzRvIP+28g5A4OsWBo2+I+XX1If+WFgzgq0BKNbadLDX6FwVwNK mZY1KLYK7IlJrd60Mj8jzEN6WofxBiXLgJiJCgk= X-Google-Smtp-Source: AGHT+IEKrS6mfZ0YIxlsp2I5Hwj5v5rWrsNzzIxwTvuscKfbAggEru1xCxeyRIsuoEGXl2ARPeENsfINzG4apFSTzKw= X-Received: by 2002:a05:6512:3994:b0:4f9:570c:7b28 with SMTP id j20-20020a056512399400b004f9570c7b28mr2902075lfu.32.1693594529146; Fri, 01 Sep 2023 11:55:29 -0700 (PDT) MIME-Version: 1.0 References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> In-Reply-To: <87ilaz1wol.fsf@ledu-giraud.fr> From: Stefan Kangas Date: Fri, 1 Sep 2023 20:55:17 +0200 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Here is a new set of patches with two more on top of the previous ones > (ie. Number 1 and 2 should be the same as before). > > Number 3 sets the default mouse cursor to be an arrow on the default > menu bar area. Number 4 fixes a flickering I had while moving the mouse > pointer *into* a menu bar entry. Po Lu, do you have any comments on this patch series? Thanks in advance. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Sep 2023 00:45: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 To: Stefan Kangas Cc: 64440@debbugs.gnu.org, Manuel Giraud Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169361548420870 (code B ref 64440); Sat, 02 Sep 2023 00:45:01 +0000 Received: (at 64440) by debbugs.gnu.org; 2 Sep 2023 00:44:44 +0000 Received: from localhost ([127.0.0.1]:34561 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcEkm-0005QX-9U for submit@debbugs.gnu.org; Fri, 01 Sep 2023 20:44:44 -0400 Received: from sonic313-9.consmr.mail.ne1.yahoo.com ([66.163.185.32]:42909) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcEkk-0005QI-3b for 64440@debbugs.gnu.org; Fri, 01 Sep 2023 20:44:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1693615465; bh=H4qKGl2vBbhhF0p4mjL0kjFGZ+X4hCAViElJJ0Ib0lw=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=TszHRlO2+0398nlBLcXS3vltCFW8HQQKiGsz1uB/ptU+FtvbHM/3S4yZXxH281LKLW//sxycQF7N9k8V5/A86XA7GAFvASxPghdqj08nbCrcCmYDXT6nzR0T5MBBRyYOPxXbbjPyFbofyGMXYBmXsIQFoihthmyB7drIQf76yXLjbt4Dnf1BA/uxckJQSEKpc+D3wawZTTj4sM20sf2eAmV4bLpiou8Ge6mOFRSU7VkpfIFsJ/nVFUou0MZIOS5SocC7PxY5blAxRWHOg4uOTedazoZ581HBZa+0OSbTpXU+1rtuvHHHYhFHMoMzj3U8UqUQF3pIGjyC+tHAMWmBaw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1693615465; bh=z2lErbueunm7xoAn42X0gEWnwNFG3DZpxXeO+Ud02Eh=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=k9Z1WT30RBLQNMEMl4MzgmDpHf+znH2md4SpIqF4f6TYbN6AZZmNK/OROZdceQB/bLi1te1SZyIkKJ5bpbHpMprBkpYd9Uhj4ZlpISTkCIlNuOfS7RmE+h12BPJDqto8YmlrYO/zlHE5OYgH5+Qz9BQ0ATfMV5YJ19GsDe3fEVBBqCMc/kvDMPAeDV8pJzfGcS1H/VSPDMI8LlUU6J9ppoyxc754Q3j2jV6T2Cek74Z1P2OZ4afpwjKA0TR6D1FNQADIDL781RlFIgj6DsZ8jvSNA5I1XfAoACAX3m/Asz5LjFWM+JMO4kRtOs5XuKFbvB+Qbk4h2gFdA8feDnaLPQ== X-YMail-OSG: gFEvQtgVM1k_B4WhGVnNtyMR.tCvm1G5unJpCSodhn8LrEdoTuJR0.e2Md5cwRG 1vs.AuUpfy9UfnmMmlNSseKpW1S2jjWdE3qDAd4vk2FiStAZL1Q3ZIAtX7sKm0IxQuv4MNrpv2Qh 3i3R5yWwePhSKe2UOw3ozkz1qXQDXnh9AP379SgY_7a9SQhXLRx28liBfdEG73866i6SF575RiZ6 nzmQVhfMYM2BROsObRY1_HI.EJumisembqireZRSIl0kcRSRd3tQdTM3OCMiScnbvnKJVMT4oro3 2jSh4EXsTIzvA7Z65jjnsqwIMINvcr6VL3kbMOoryeIwlWWORLf7jQX8DxEbqQZ_jqUdCZf2S0bf euhDzMD9r3xdCaxA1fT0Drw1t0UYJoSkfPvkZq2YxsZ0luTyQwOL9zhQw47FtV_HhgUnfm2MDYbg kAK10cOOpCp8e_9y_BWHEGlWG8dXjQCrGtVR3MrXXWDxIIOHUsOYVdu2pkdA.f99o66JuMOn3Sh6 O1ZqFm0XkydvNfuATaJk8eXNdii59AMezmTq5CErgnxPrPmZqRUbkelza__yLW4JfUfTAvyoxqdJ 0VpmZRiLhM3o6vx4dXOh_JtYck4oilZF27wBvEnrNfy4q_DWGgGohkMsynuFeg1I5RL_CRVdHDOu LJzBQg0UQxKk8PLCsY09c9miqMYqdHkAiSK3Yp_c7DQMx8jIw4Ma4iRNktG0xcmZ28p7Hxe6dXCt AR5YoewymZvd5n9kTptv5JXaY7ZTzsE2k436sPuGHuxXqSFJlhtvCCox_dj57PjxzpD.dNav9FsL 1_BvjsdDqVk9jHBGxwCwUaZARzeGnFu4wEeQHYKZK1A9RCuzw0N9qJSLpVfHstw3WRI9RVGRDjw5 fiWufUB.qPLodyBZR32iHEafTmQDx8LZLeNqynjFXoumWRW4Dr6LHPYcatwrdeU5ef35cr2W.pRt 0KG836qbR4Dg556NReW_J5yfwjIYxjosFanMb8NdtZ6zkfbnrKi2WmBGD9jW2bNimilTvqDUakFL SIK8DMmovTjxP3OBQ2uIqomhToqk1gGi8Ba1_zacYbBpUrTrO.HiYOyXw3mEWn5y9FqCKOkwr_4L D0EutEfJXJ_fMCZ2D7zhsrSTNOwx6HimnmjVTK7rcqRU4PLSMsLBOyN_Kd67BDeqpJOeeywwlN3T BfqMtjNhypqsD2RHVs0264kXB_fZmk1TCez42_6_uObAj4cQZaRj6rK_Cf4vlTcK0CM_r2_NY8qn O_D1OqkCuA17WPINgBh9xjfxQ5H3uDauTPqaMgUut_WZnI2hy499eG5PZiLyPyxLD5G_my5XCxf0 6dU8MEtSwF.iSOtcuApG2Lx7MvrUKXhnvfJN5ZQol6brQaYh72Gn4GSK3wBp00u.o1o9sLva0uX5 cJKSwHGOqAOUlAPi8RCSzRBFTb2tatImKPZlc4F3gLLCRWgapKaDvHw_XwNxJpobN1yUV_tlbcm4 EOKvYrJjG5oqB0gM5nnCJTkzGQmey7tM2o_E4hV8guEf7Wszafv.EEGlTOaykkw7d5Z_FFEINL8q CElHqQWVEi2VYHEozAaJMTE74r3qHUMYn9L.YWu0w4pBWnHLLr0K_XvQOAYA_SUCnzulXbnqYU3m oM_IU60oltO8Nzyj1TCh7hVnXw.JjqHi2W3MYQNjdVkm1H.vUbwnQGvE9G.l7kDQZs9hVeBDg3nw T06KIqJq12Cdv9jWu54zINpod.D3dzvp1CrZiO.inYSyCZP.nxWFMiqk6XFAFODa8ut..BqIOy2M p3xmIP3cvck3..E3._CK.7UZ2AA6e.77E.jkYL.u31CHFlckriek7n1NOxqPzKP7_rbKK65pMs0I IQh.eZ_URr4Z3w93DZ3g9cFJBDK9JRJ6caQDZnz1ABT8qWqC6L1zXQKJSTL45t56dT7VtT.ST6Ym 4OYHcnvw6.KN_yPwctiahQjopZ5z0.mK7ucxScGForLfMOsmTm6N9LIaBL_z97Xa9P.VFUTDBqLR LidxNGg7xBRBLrlYvIB.s_LHlS8alRuakdxBSZwbROC0_ODhGCMHc7PlyJN.M9jnO1SF_nQrphkS Mt0QVMqWP01EvS8KLnKDCRrBGqR4Xa_yo8Bk2d93zk4UvwefiEO3qamsKjwlBBfe81qhBTjamwBI WA3HNWj2uUGUapNK1viwKvKLjOvl08xbKbLUuDWD4CVu9ZyI1XI4U3GG2L2wcxysOC2tr5Ufb6Ja IdRhnjdbsoyeDuhbTSbnpn66TXGdARjsVK1THvBXOFs1QT5nuWnA9tkDqEvH2iUbuqHBA2GaWEXY - X-Sonic-MF: X-Sonic-ID: 86d3ece5-1634-453b-aae3-3b0e5f944c96 Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Sat, 2 Sep 2023 00:44:25 +0000 Received: by hermes--production-sg3-69654d8bd-752gm (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID ec39cc56a4972a4b65f8e089bff096b1; Sat, 02 Sep 2023 00:44:22 +0000 (UTC) From: Po Lu In-Reply-To: (Stefan Kangas's message of "Fri, 1 Sep 2023 20:55:17 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> Date: Sat, 02 Sep 2023 08:44:16 +0800 Message-ID: <87fs3xo13z.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21763 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 657 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Kangas writes: >> Here is a new set of patches with two more on top of the previous ones >> (ie. Number 1 and 2 should be the same as before). >> >> Number 3 sets the default mouse cursor to be an arrow on the default >> menu bar area. Number 4 fixes a flickering I had while moving the mouse >> pointer *into* a menu bar entry. > > Po Lu, do you have any comments on this patch series? > > Thanks in advance. Thanks. I don't understand why adjustments to note_tab_bar_highlight or note_tool_bar_highlight are warranted, and I think this ought to be optional. ChangeLog entries are also absent from the commit messages. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Sep 2023 06:42:02 +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 To: Po Lu Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16936368949218 (code B ref 64440); Sat, 02 Sep 2023 06:42:02 +0000 Received: (at 64440) by debbugs.gnu.org; 2 Sep 2023 06:41:34 +0000 Received: from localhost ([127.0.0.1]:35001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcKK6-0002Ob-BG for submit@debbugs.gnu.org; Sat, 02 Sep 2023 02:41:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53384) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcKK4-0002OM-UF for 64440@debbugs.gnu.org; Sat, 02 Sep 2023 02:41:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qcKJn-00019B-KI; Sat, 02 Sep 2023 02:41:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=dvJhkKmBl9mCQrBIFv6fXcWw7DMmhmSroBdsYxUHhB8=; b=Bj/2ZZ+jHV2d H2h94NxKpg9ibbGK05wAUiOxQpS6wnldnudV+SdBZ6EIA2QrjmBctnCpHAvuShsCclUqc05E5SO/8 oSzKiOgTLxpyeplMzLcFrsGlUoppFEnHCla9u0YLY+Tja0YI3gWHNhV1i3kmdD0RoDatQQsGw3pk2 CeYLp/DI2Kd0J1qNVqHF9V+ugb7UHT2xsBosfOpy20YxgQfO6mqivgiuy0In8UWhG31n0Ug/cDsuW ADtOj4a6rY2/ZA3DMkVC1UBU+xXlEOm6TO85i4whcosw1qmypQnrWNArL9Ux9YGm9aPWYeso9fyg+ 0mouHQ+WH9sXt2c4Xj2R2A==; Date: Sat, 02 Sep 2023 09:41:00 +0300 Message-Id: <83zg259iwz.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87fs3xo13z.fsf@yahoo.com> (bug-gnu-emacs@gnu.org) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 64440@debbugs.gnu.org, Manuel Giraud > Date: Sat, 02 Sep 2023 08:44:16 +0800 > From: Po Lu via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Stefan Kangas writes: > > >> Here is a new set of patches with two more on top of the previous ones > >> (ie. Number 1 and 2 should be the same as before). > >> > >> Number 3 sets the default mouse cursor to be an arrow on the default > >> menu bar area. Number 4 fixes a flickering I had while moving the mouse > >> pointer *into* a menu bar entry. > > > > Po Lu, do you have any comments on this patch series? > > > > Thanks in advance. > > Thanks. I don't understand why adjustments to note_tab_bar_highlight or > note_tool_bar_highlight are warranted, and I think this ought to be > optional. > > ChangeLog entries are also absent from the commit messages. I'd appreciate a walkthrough of the patches with explanations for the significant hunks. It's a non-trivial change, so I think the rationale and the main ideas of the implementation should be described and discussed. I also have difficulty understanding comments like this one: /* Clear mouse face but the mouse cursor. */ What does it try to say? From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Sep 2023 13:06:02 +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 To: Po Lu Cc: Stefan Kangas , 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169365993726332 (code B ref 64440); Sat, 02 Sep 2023 13:06:02 +0000 Received: (at 64440) by debbugs.gnu.org; 2 Sep 2023 13:05:37 +0000 Received: from localhost ([127.0.0.1]:35428 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcQJl-0006qd-CJ for submit@debbugs.gnu.org; Sat, 02 Sep 2023 09:05:37 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:2566) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcQJh-0006qQ-I9 for 64440@debbugs.gnu.org; Sat, 02 Sep 2023 09:05:36 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=Zg8MFRsd 4hZFMItXNRl/ryLsG8/7iS9jGBqcxSOByJE=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=Z6/0Xvvz8zFeZCn3xbwvmT7FdH9oIu 8AgkG7b7K2DzQwvXexQ9BetOcNDCNQomUWbGNsCSI4YqN3ywXpQCMiDg== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=Zg8MFRsd4hZFMItX NRl/ryLsG8/7iS9jGBqcxSOByJE=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=0bwKxzFe1UwwwCG44C7PKevb6GxDZaPoiD2kib q1sTVT8WuvVV+w0FeQGstMA1kfCcerLhiAWSlWzBIpHLoWrGr+7z7Ihh2VN+4mxPMnmFZx P82uyX7OCh5IxW0TZrSic+1rYvLfLbCYPHRPwtMhELcQWfGCLJlkB//eCV6NzaH7Hmjt+t 6dpNcqDlbEh+GmvhHFDtALfhImct+uZgbfvvSZ9GAMoXO5GwCsBsOqSGZIof5DAPeOy6sx 8UufLBitZNKGhmi9aAnwNdmRwdJ7obSr4NeybVfO+OzWntEM5k9VqfBbUNiU5Ey3VOdBdb yHpC5l/BGHWE0+2A+AiND+nw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 1b06b020 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 2 Sep 2023 15:05:20 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87fs3xo13z.fsf@yahoo.com> (Po Lu's message of "Sat, 02 Sep 2023 08:44:16 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> Date: Sat, 02 Sep 2023 15:05:19 +0200 Message-ID: <87msy420a8.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > Stefan Kangas writes: > >>> Here is a new set of patches with two more on top of the previous ones >>> (ie. Number 1 and 2 should be the same as before). >>> >>> Number 3 sets the default mouse cursor to be an arrow on the default >>> menu bar area. Number 4 fixes a flickering I had while moving the mouse >>> pointer *into* a menu bar entry. >> >> Po Lu, do you have any comments on this patch series? >> >> Thanks in advance. > > Thanks. I don't understand why adjustments to note_tab_bar_highlight or > note_tool_bar_highlight are warranted, and I think this ought to be > optional. Ok, I'll look into those two adjustements. BTW, I was more hesitant about the global modification of 'window_from_coordinates' (even on machines I don't have access to). > ChangeLog entries are also absent from the commit messages. Noted. -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Sep 2023 13:11: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 To: Eli Zaretskii Cc: Po Lu , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169366021726744 (code B ref 64440); Sat, 02 Sep 2023 13:11:01 +0000 Received: (at 64440) by debbugs.gnu.org; 2 Sep 2023 13:10:17 +0000 Received: from localhost ([127.0.0.1]:35432 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcQOH-0006xH-3X for submit@debbugs.gnu.org; Sat, 02 Sep 2023 09:10:17 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:19145) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcQOC-0006x0-AD for 64440@debbugs.gnu.org; Sat, 02 Sep 2023 09:10:15 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=v9MLYr6P J8Y2J5Cd2Ie2ueZ7ZRq1KxkYWepTjSig8/A=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=DmsPh2hj79eS5G2DZECvJi0Cz5OvH6 HtZjpA9EAvcqCpqWLRwCcF0RbJ9C4XfEeLG+9rjVCup624ARCPqjoHDA== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=v9MLYr6PJ8Y2J5Cd 2Ie2ueZ7ZRq1KxkYWepTjSig8/A=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=FSa8cXIq7gomfTl94EqADci1Jg+Y2YRAYHdYpU kOikLzslUmcPhHB+XE6lhu40UE0RIZo86MeAscV4Q/58KQk7oQcPyCMZVse1rc/dB2Tv5p qC2J+uIk+lFNKyB3lX+PMaMsAlOyXksLPNBxx2Z0AC2h0Cr66Bj7GOwqCgYD3yEzGDcdUW WyzgBdOQqgJLip+fQOqKgJZOvZ2NgZOvudRfPpVGhrDqPry5Kyq38dnz4HCMi2ebP42Hag mmw+cf/Gv7631KRc79H6nZ87yBQR22StYJ4EuWJbl99Jz1Td4iVEB/cUWVnFPHQxezdBLd ORxrAPvhwSpbYulBlq73bLKQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id c8b7f819 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 2 Sep 2023 15:10:01 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83zg259iwz.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 02 Sep 2023 09:41:00 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> Date: Sat, 02 Sep 2023 15:09:59 +0200 Message-ID: <87il8s202g.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Cc: 64440@debbugs.gnu.org, Manuel Giraud >> Date: Sat, 02 Sep 2023 08:44:16 +0800 >> From: Po Lu via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >> >> Stefan Kangas writes: >> >> >> Here is a new set of patches with two more on top of the previous ones >> >> (ie. Number 1 and 2 should be the same as before). >> >> >> >> Number 3 sets the default mouse cursor to be an arrow on the default >> >> menu bar area. Number 4 fixes a flickering I had while moving the mouse >> >> pointer *into* a menu bar entry. >> > >> > Po Lu, do you have any comments on this patch series? >> > >> > Thanks in advance. >> >> Thanks. I don't understand why adjustments to note_tab_bar_highlight or >> note_tool_bar_highlight are warranted, and I think this ought to be >> optional. >> >> ChangeLog entries are also absent from the commit messages. > > I'd appreciate a walkthrough of the patches with explanations for the > significant hunks. It's a non-trivial change, so I think the > rationale and the main ideas of the implementation should be described > and discussed. I'll try to come up with such a walkthrough. > I also have difficulty understanding comments like this one: > > /* Clear mouse face but the mouse cursor. */ > > What does it try to say? Yes sorry it should read "Clear the mouse face but not the mouse cursor" and it is a bit hacky. It was to avoid the flicker of the mouse cursor when moving *into* a menu entry. -- Manuel Giraud From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 03 07:47:56 2023 Received: (at control) by debbugs.gnu.org; 3 Sep 2023 11:47:56 +0000 Received: from localhost ([127.0.0.1]:39858 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcla8-0004eM-5l for submit@debbugs.gnu.org; Sun, 03 Sep 2023 07:47:56 -0400 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]:62861) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qcla6-0004dY-EF for control@debbugs.gnu.org; Sun, 03 Sep 2023 07:47:54 -0400 Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-500c6ff99acso1727121e87.1 for ; Sun, 03 Sep 2023 04:47:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693741658; x=1694346458; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=aK2i66DpmOJ9ZiKHoroFM0PvMkS+6DhiJRyYqt1BJw8=; b=MIFLlFqOlZGnMcUBBNCbYKKZ6HoeOsW3didUxRzgKy7+7pNRrjQQtN6YXp7p2pFQyk gHNVri1o9ygkTFj4TzK3q2b7FucvVrHmvNRyjgxRCE4z5mlN0O9rQNgS+HWCCB5AyU/g rYct0l4Fil6qdxqgUojjDXQiz/LGwy4W4bOJRnCrdqo9IngaI78epFsiaA34IyL/bHG/ P7DvgD8hEaCKuq2iKa5Eg0DjkW8vQA6pStMTBiAkTrptm0tUqIQk2/JcCUFmlG9oy24G NsLRk7FB9qUNm6XCcOTT+bPddfyYUaWMBp5pBAqjg79VCHuMchv8IlgB9TjBE32m4Rqg hotg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693741658; x=1694346458; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aK2i66DpmOJ9ZiKHoroFM0PvMkS+6DhiJRyYqt1BJw8=; b=c3aiXVo0LGU5vzLTII3PTJ8OghsByIedpDAw880U+c8qEFqBkNSFPPOhSWEg6+PTr7 2nV23OCc/D1FMGFqzbwjiBuLj+VcNumcJwhj+SUBiSPF7DSqWJ8/twqC23bp4Hn6Aywj 7IKnUTQGdN31umI5cyQ7ZZSnEI0WvIbuqwy+pTLQLmDBYhEJ/7OwOKfpRvEzx4SyiV7W xxZoRsP/EDazg9M9V0L4CPp26jb1YNXiHwZv4A1yJfshlKIoaWrs7ebzn85B7+Y79w3u YjLfQ2oPmb0o++6tWtVSrnghGqmriYj3L4s7OWtbhz/lwLvnug4wFKykJEwxQlUlnlxL ruFg== X-Gm-Message-State: AOJu0Yz0mok+8LS89Royt8BdJl0KKviz6veU/ahtRnmwGGjKmbF5tHok 9IDfCz7lSOP8e6G3WwV5v5Ltli1ccP17Y0zg/f4Z5LxrqAA= X-Google-Smtp-Source: AGHT+IGii5ZrA8E36mxcU3BTecxZxPAW8+kV0WxP+RXEojwTUxoJiMSKFa0Q+34TmtLFzLJgzw6HhfKwEqUUVaqXkOE= X-Received: by 2002:a05:6512:20cc:b0:4fe:8be:6065 with SMTP id u12-20020a05651220cc00b004fe08be6065mr1859898lfr.5.1693741658101; Sun, 03 Sep 2023 04:47:38 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sun, 3 Sep 2023 04:47:37 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Sun, 3 Sep 2023 04:47:37 -0700 Message-ID: Subject: control message for bug #64440 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) severity 64440 wishlist quit From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 05 Sep 2023 09:54: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 To: Eli Zaretskii Cc: Po Lu , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169390762624274 (code B ref 64440); Tue, 05 Sep 2023 09:54:01 +0000 Received: (at 64440) by debbugs.gnu.org; 5 Sep 2023 09:53:46 +0000 Received: from localhost ([127.0.0.1]:53979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qdSkj-0006JR-Cr for submit@debbugs.gnu.org; Tue, 05 Sep 2023 05:53:46 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:18513) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qdSkg-0006J4-9z for 64440@debbugs.gnu.org; Tue, 05 Sep 2023 05:53:43 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=OM26ON1+ w9cd162yaTU6lD0FJ7JvIof5XbYY7l28ydc=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=sPvFrLDQPAJLJ9d9wj9Bk5e0Lr0DVm F+pWX+4frUVfOFudUEwuSykE+1Smh4OQmn+tWmjED9t6EUpi9RECxEDw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=OM26ON1+w9cd162y aTU6lD0FJ7JvIof5XbYY7l28ydc=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=N1k9oNvKXxM+oSOGskIDBcOwtfglzV0uTLqDS+ bKS+EvmfMmNwfqXOsi2p3hMAL/KAiCbL0ukDlXFwwnm4VYvY9klooBdBremqjo9jyyqdjt tHaHO/LbbzOzJa6oYWKG85hUMuE9S4yBuqeg5r/CTbGg6KWbM+g6CIpwqpBbOkJY/QztCJ SdIHjeGMI3E2IE12K8sWZNsoOq+Oh21yjSf8Wm0NLDbawMca5l6pJAEi2RJgj2IHu8nPoB h3mF4GBfUXTVKG50yglzn55G8tHfLQhL5ANW7GRlEJU+P5+C/S14x4Sqbl4ce8Hf4pZTNx w+ON0viFWec9gyCAA+ofTyMw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 18c77491 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 5 Sep 2023 11:53:39 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83zg259iwz.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 02 Sep 2023 09:41:00 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> Date: Tue, 05 Sep 2023 11:53:38 +0200 Message-ID: <878r9losil.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Cc: 64440@debbugs.gnu.org, Manuel Giraud >> Date: Sat, 02 Sep 2023 08:44:16 +0800 >> From: Po Lu via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >>=20 >> Stefan Kangas writes: >>=20 >> >> Here is a new set of patches with two more on top of the previous ones >> >> (ie. Number 1 and 2 should be the same as before). >> >> >> >> Number 3 sets the default mouse cursor to be an arrow on the default >> >> menu bar area. Number 4 fixes a flickering I had while moving the mo= use >> >> pointer *into* a menu bar entry. >> > >> > Po Lu, do you have any comments on this patch series? >> > >> > Thanks in advance. >>=20 >> Thanks. I don't understand why adjustments to note_tab_bar_highlight or >> note_tool_bar_highlight are warranted, and I think this ought to be >> optional. >>=20 >> ChangeLog entries are also absent from the commit messages. > > I'd appreciate a walkthrough of the patches with explanations for the > significant hunks. It's a non-trivial change, so I think the > rationale and the main ideas of the implementation should be described > and discussed. Hi, For this walkthrough, I have inserted the 4 patches, made some elisions and comment inline. >From ceb818090de83fe216af3e9b6bcc198eba9188e3 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Sat, 1 Jul 2023 21:19:06 +0200 Subject: [PATCH 1/4] Possibility to get enter event from menu_bar window [...] This first patch is really about being able to get the menu-bar window from 'window_from_coordinates'. Without this I would not be able to get a mouse event that happen on this window. diff --git a/src/window.c b/src/window.c index 2a0c62f5d53..af7dcfdd423 100644 --- a/src/window.c +++ b/src/window.c @@ -1680,7 +1680,8 @@ check_window_containing (struct window *w, void *user= _data) =20 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 =3D &window, cw.x =3D x, cw.y =3D y; cw.part =3D part; foreach_window (f, check_window_containing, &cw); =20 +#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) + !=3D ON_NOTHING)) + { + *part =3D ON_TEXT; + window =3D 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. */ In window_from_coordinates, I tried to mimic what is done for the tab_bar and the tool_bar. So I add a menu_bar_p boolean as argument (before the toolbar one to respect a top to bottom order) and use it to return the menu_bar window when it is asked and we are in this window. The rest is this patch is really just adding this new argument in all of the calls to window_from_coordinates. I've just copy tool_bar_p and tab_bar_p values in those call: true when true and false when false. [...] >From d5ddf8e04d06730917f94cb7d2fcb026c4437788 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Mon, 3 Jul 2023 17:35:06 +0200 Subject: [PATCH 2/4] Highlight on non toolkit menu bar items This patch introduce two new functions: get_menu_bar_item and note_menu_bar_highlight. I tried to have the same behaviour as get_tool_bar_item and note_tool_bar_highlight. AFAIU, get_menu_bar_item job is to determine if we are on a menu entry and what are its spatial limits. note_menu_bar_highlight job is to do something with those limits: for instance, highlight this area. [...] +/* Get information about the menu-bar item at position X/Y on frame F. + Return menu-bar's item char position in H_START/H_END and pixel + position in X_START/X_END. Value is + + -1 if X/Y is not on a menu-bar item + 0 if X/Y is on the same item that was highlighted before. + 1 otherwise. */ + +static int +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, + int *x_start, int *x_end, int *vpos) +{ + Mouse_HLInfo *hlinfo =3D MOUSE_HL_INFO (f); + struct window *w =3D XWINDOW (f->menu_bar_window); + struct glyph_row *row; + int dummy; + Lisp_Object items; + int i; + + /* Find glyph's hpos and vpos under X/Y. */ + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) =3D=3D= NULL) + return -1; + + /* Compute h_start and h_end for this menu bar item. */ + items =3D FRAME_MENU_BAR_ITEMS (f); + for (i =3D 0; i < ASIZE (items); i +=3D 4) + { + Lisp_Object pos, string; + string =3D AREF (items, i + 1); + pos =3D AREF (items, i + 3); + if (NILP (string)) + return -1; + if (*h_start >=3D XFIXNUM (pos) + && *h_start < XFIXNUM (pos) + SCHARS (string)) + { + *h_start =3D XFIXNUM (pos); + *h_end =3D *h_start + SCHARS (string); + break; + } + } So in this loop above, I'm trying to find what menu bar item I'm on and get horizontal start and end (in char numbers). + /* Convert to pixels bounds. */ + row =3D MATRIX_ROW (w->current_matrix, *vpos); + *x_start =3D 0; + for (i =3D 0; i < *h_start; ++i) + *x_start +=3D row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end =3D *x_start; + for (i =3D *h_start; i < *h_end; ++i) + *x_end +=3D row->glyphs[TEXT_AREA][i].pixel_width; Here, I convert those limits from chars to pixels. + + /* Is mouse on the highlighted item? */ + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) + && *vpos >=3D hlinfo->mouse_face_beg_row + && *vpos <=3D hlinfo->mouse_face_end_row + && (*vpos > hlinfo->mouse_face_beg_row + || *h_start >=3D hlinfo->mouse_face_beg_col) + && (*vpos < hlinfo->mouse_face_end_row + || *h_end < hlinfo->mouse_face_end_col + || hlinfo->mouse_face_past_end)) + return 0; + + return 1; +} Finally, I compute the correct return value for get_*_item functions: . 0 means we already were on this item . 1 means we changed position to a new item =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 +/* Possibly highlight a menu-bar item on frame F when mouse moves to + menu-bar window-relative coordinates X/Y. Called from + note_mouse_highlight. */ + +static void +note_menu_bar_highlight (struct frame *f, int x, int y) +{ + Lisp_Object window =3D f->menu_bar_window; + Mouse_HLInfo *hlinfo =3D MOUSE_HL_INFO (f); + int h_start, h_end, vpos, x_start, x_end; + int rc; + + /* Function note_mouse_highlight is called with negative X/Y + values when mouse moves outside of the frame. */ + if (x <=3D 0 || y <=3D 0) + { + clear_mouse_face (hlinfo); + return; + } + + h_start =3D h_end =3D 0; + rc =3D get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &= vpos); + if (rc < 0) + { + /* Not on menu-bar item. */ + clear_mouse_face (hlinfo); + return; + } + else if (rc =3D=3D 0) + /* On same menu-bar item as before. */ + return; In note_menu_bar_highlight here, I'm testing (from get_menu_bar_item result):=20 . if we are not a menu bar item, I clear the mouse face (as done on other note_*_highlight functions) . if we are on the same item: do nothing =20=20=20=20=20=20=20=20=20=20=20 + if (!NILP (Vmouse_highlight)) + { + /* Record this as the current active region. */ + hlinfo->mouse_face_beg_col =3D h_start; + hlinfo->mouse_face_beg_row =3D vpos; + hlinfo->mouse_face_beg_x =3D x_start; + hlinfo->mouse_face_past_end =3D false; + + hlinfo->mouse_face_end_col =3D h_end; + hlinfo->mouse_face_end_row =3D vpos; + hlinfo->mouse_face_end_x =3D x_end; + hlinfo->mouse_face_window =3D window; + hlinfo->mouse_face_face_id =3D MENU_FACE_ID; + + /* Display it as active. */ + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); + } +} Here, if the user want mouse highlight, I set the highlight info on the given area and activate it. I have used MENU_FACE_ID so there should be no user visible changes here but later we might introduce a new face for this (MENU_HIGHLIGHT_FACE_ID for instance). I also used DRAW_MOUSE_FACE in the show_mouse_face call to have the mouse cursor changed to the =C2=AB=C2=A0little hand=C2=A0=C2=BB: so far it is the only visible feedback= that I have. =20 /*********************************************************************** @@ -35223,6 +35339,16 @@ note_mouse_highlight (struct frame *f, int x, int = y) w =3D XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); =20 +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + note_menu_bar_highlight (f, x, y); + return; + } +#endif + Here, I'm just using note_menu_bar_highlight in the toplevel note_mouse_highlight. >From 08279c0754c49b567fda0adedc3ecfd4e11a7ec5 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Tue, 4 Jul 2023 17:48:42 +0200 Subject: [PATCH 3/4] nontext cursor on the menu bar by default * src/xdisp.c (show_mouse_face): Arrow for DRAW_NORMAL_TEXT on the menu bar --- src/xdisp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 25b33e3a8c4..e1c4c9ee7b9 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -33878,6 +33878,9 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_gl= yphs_face draw) if (FRAME_WINDOW_P (f) && NILP (track_mouse)) { if (draw =3D=3D DRAW_NORMAL_TEXT +#ifndef HAVE_EXT_MENU_BAR + && !EQ (hlinfo->mouse_face_window, f->menu_bar_window) +#endif #ifndef HAVE_EXT_TOOL_BAR && !EQ (hlinfo->mouse_face_window, f->tool_bar_window) #endif Here, I thought I was toggling the mouse cursor to an arrow when entering the menu bar but it does not seem to work. It does not work for tool bar either BTW. >From 159ae74ed2ec452902913690f6d462767aa3a96d Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Tue, 4 Jul 2023 17:57:39 +0200 Subject: [PATCH 4/4] Avoid mouse cursor flicker This last patch works for me but is a kludge and, as Po said, I shouldn't be touching note_tool_bar_highlight and note_tab_bar_highlight here. I should rework this. It fixes the following issue: when I'm over the same menu item and moving, the mouse cursor flickers. * src/dispextern.h (Mouse_HLInfo): Introduce a mouse_cursor_update set to true by default. * src/xdisp.c (show_mouse_face): Take it into account. (note_menu_bar_highlight, note_tab_bar_highlight) (note_tool_bar_highlight): Don't update the mouse cursor from here. --- src/dispextern.h | 5 +++++ src/xdisp.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/dispextern.h b/src/dispextern.h index ece128949f5..ed03a7c244e 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -2876,6 +2876,10 @@ #define PRODUCE_GLYPHS(IT) = \ =20 /* True means that the mouse highlight should not be shown. */ bool_bf mouse_face_hidden : 1; + + /* True means that the mouse highlight should update the mouse + cursor. */ + bool_bf mouse_cursor_update : 1; } Mouse_HLInfo; =20 INLINE void @@ -2892,6 +2896,7 @@ reset_mouse_highlight (Mouse_HLInfo *hlinfo) hlinfo->mouse_face_past_end =3D false; hlinfo->mouse_face_hidden =3D false; hlinfo->mouse_face_defer =3D false; + hlinfo->mouse_cursor_update =3D true; } =20 /*********************************************************************** diff --git a/src/xdisp.c b/src/xdisp.c index e1c4c9ee7b9..86bb1be9240 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13956,6 +13956,11 @@ note_menu_bar_highlight (struct frame *f, int x, i= nt y) /* On same menu-bar item as before. */ return; =20 + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update =3D false; + clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update =3D true; + if (!NILP (Vmouse_highlight)) { /* Record this as the current active region. */ @@ -14838,7 +14843,10 @@ note_tab_bar_highlight (struct frame *f, int x, in= t y) /* On same tab-bar item as before. */ goto set_help_echo; =20 + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update =3D false; clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update =3D true; =20 bool mouse_down_p =3D false; /* Mouse is down, but on different tab-bar item? Or alternatively, @@ -15793,7 +15801,10 @@ note_tool_bar_highlight (struct frame *f, int x, i= nt y) /* On same tool-bar item as before. */ goto set_help_echo; =20 + /* Clear mouse face but the mouse cursor. */ + hlinfo->mouse_cursor_update =3D false; clear_mouse_face (hlinfo); + hlinfo->mouse_cursor_update =3D true; =20 /* Mouse is down, but on different tool-bar item? */ mouse_down_p =3D (gui_mouse_grabbed (dpyinfo) @@ -33875,7 +33886,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_gl= yphs_face draw) =20 #ifdef HAVE_WINDOW_SYSTEM /* Change the mouse cursor. */ - if (FRAME_WINDOW_P (f) && NILP (track_mouse)) + if (FRAME_WINDOW_P (f) && NILP (track_mouse) && hlinfo->mouse_cursor_upd= ate) { if (draw =3D=3D DRAW_NORMAL_TEXT #ifndef HAVE_EXT_MENU_BAR --=20 2.40.0 --=20 Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Sep 2023 07:32:02 +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 To: Manuel Giraud Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169433111715260 (code B ref 64440); Sun, 10 Sep 2023 07:32:02 +0000 Received: (at 64440) by debbugs.gnu.org; 10 Sep 2023 07:31:57 +0000 Received: from localhost ([127.0.0.1]:48888 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfEvF-0003y3-7n for submit@debbugs.gnu.org; Sun, 10 Sep 2023 03:31:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33160) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfEv9-0003xm-Bb for 64440@debbugs.gnu.org; Sun, 10 Sep 2023 03:31:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfEv0-0007rP-1U; Sun, 10 Sep 2023 03:31:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=HvTqN50f3601gUeiqJQ9UtE9C7ocSLmm9u/K89eSRM8=; b=DDNKhWzJlmKM /PTgqUYlDYXpA3wAmn2dBm2Bqz9XNfP3KW5UMwIbymIHWkWdvsghcR5s8sH9UF9lGAcrdzXwMgWG4 8SwwO14wlyj44l+xAXYpvdKziLram2zCiTC6yLngCzOkGFzSsSLlGlryN4iOcKNUW/MJ1KOohpTHr h8FV4N2xyVuay+rfZm6b/HDpw5iINaLHFJmcXoE05c82nbJK/o1q+OAEW3eV1OR+mn8NudP+EZlvE XAjRa7drBNWLVe60sxtsx/QLuIsMB2qRhoG1DHJyU5E9b6dOpYlEQbcu13bViMwcHZkw5/6GpUFzq 7JHSdERMRd5+0jdaUHqkRQ==; Date: Sun, 10 Sep 2023 10:31:22 +0300 Message-Id: <83tts2scvp.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <878r9losil.fsf@ledu-giraud.fr> (message from Manuel Giraud on Tue, 05 Sep 2023 11:53:38 +0200) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Manuel Giraud > Cc: Po Lu , stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Tue, 05 Sep 2023 11:53:38 +0200 > > Eli Zaretskii writes: > > > I'd appreciate a walkthrough of the patches with explanations for the > > significant hunks. It's a non-trivial change, so I think the > > rationale and the main ideas of the implementation should be described > > and discussed. > > Hi, > > For this walkthrough, I have inserted the 4 patches, made some elisions > and comment inline. Thanks. > + /* Convert to pixels bounds. */ > + row = MATRIX_ROW (w->current_matrix, *vpos); > + *x_start = 0; > + for (i = 0; i < *h_start; ++i) > + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; > + > + *x_end = *x_start; > + for (i = *h_start; i < *h_end; ++i) > + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; > > Here, I convert those limits from chars to pixels. What does this glyph_row look like? Does it include several strings one after the other or something? In general, we always test the index of a glyph in a glyph row against glyphs[TEXT_AREA].used, and I'm worried that these tests are absent from the code above. Which is why I'm asking for more details about the arrangement of the menu text in these glyph rows. > +/* Possibly highlight a menu-bar item on frame F when mouse moves to > + menu-bar window-relative coordinates X/Y. Called from > + note_mouse_highlight. */ > + > +static void > +note_menu_bar_highlight (struct frame *f, int x, int y) > +{ Is this function under a suitable #if condition? AFAIU, it is only appropriate in a build with X but without any toolkit, so it shouldn't be compiled in other configurations. > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -33878,6 +33878,9 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) > if (FRAME_WINDOW_P (f) && NILP (track_mouse)) > { > if (draw == DRAW_NORMAL_TEXT > +#ifndef HAVE_EXT_MENU_BAR > + && !EQ (hlinfo->mouse_face_window, f->menu_bar_window) > +#endif Won't this cpp conditional be true in a build --without-x? Should it? Thanks for working on this. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Sep 2023 07:35:02 +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 To: Eli Zaretskii Cc: stefankangas@gmail.com, Manuel Giraud , 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169433124615484 (code B ref 64440); Sun, 10 Sep 2023 07:35:02 +0000 Received: (at 64440) by debbugs.gnu.org; 10 Sep 2023 07:34:06 +0000 Received: from localhost ([127.0.0.1]:48896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfExK-00041f-Jr for submit@debbugs.gnu.org; Sun, 10 Sep 2023 03:34:06 -0400 Received: from sonic314-22.consmr.mail.ne1.yahoo.com ([66.163.189.148]:36534) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfExJ-00041C-0s for 64440@debbugs.gnu.org; Sun, 10 Sep 2023 03:34:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694331235; bh=yrCKCk73Np7Fd/BiijD0xwrVAmTa2Lw2Q2XZeq/op/0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=V5MwD9L6Gric3RwvQ2dT3rZW9Tfha6jVvfjMF3d5ocOGVVVLc4srNipV9tERRT7CGRrJ1EjyeEMcKqxliVM3y7/Y6HIzPTaxvNszpjjfx45NOvBZaxZSlKlkY+PEz1tBWM6cqEr5+9BhkdyFvFD4Jc7lHyux6yjPFB5xUfNErpOcQs2EvDYLvi+MyXF7/+XizE4CIQk35RTdxYfJuRadsyhj+XM2Pm6t6eL8ry+e8cW3EAyyFdjN7MPkVqG0NdgGfl1JGUBGbF9o7oTBcgG+P6hPcr3P7+xrXSh/M3EjwF+7WBKr+1EAS6skJHx1F6Qkc+AH3v17wlemxAFJpSlBpQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694331235; bh=XNRduyU54dZhWC+eObLRpdvJNdA5luVG98oV43ETTFW=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=PBfdwllVdaAcWB58iFEwHCWhegxWD6nlXRGNJDfSIObJ28Lh61oxMvR/V8CBgLR+ljFsmNZ5T61PHfH/tWWXkoZHrY9BSlYUQu6U+1Ck8ytIzaUUUQGr+YfnL/2Pj6wWjgi3OsXoFiLtCPLtszpcn+3ISKZB7CsbUwvrzjI69Z4s177ft0DbWfBfBa4CJ1/p4u0yCaneqDiTiWUV8VP/qApTEL+RlE0mgGOmYqy7g8WS2Uav3tKojvzapPRxtSw09uVlJFQRDw3onpMsehd80iUYjSVR6pIVxr5sD05t5wg87iPn1lVxR0IhFT9UNbpeAlNzw3a+1oEMYUt/JxiUsA== X-YMail-OSG: 3TircI4VM1linSIIPZcmnWCUYE_I19U2KDbIC6ynHnCGmthO_3QWUz5iv2YcG9p ZesahhVwCn02UE_kbyzGzSOoR2GKrrB169qMuXzBvnco6LkJSb8QS1aoaoidtrFCG.iBeyTXziUO oaLGGixoNMnXvwDhz89pXXHUjNWEAcbCdDvp8qLJdLdEsUO1HKJHkqDGZWW5Yn8AFcARat536LyV PC7gGowhWexYF42dDZlKxEdc6hGd9jJkkGkd4ODJnq.kTa33UtRUBJyY6GHXzmlA3N8QbQ9BR6fC UMJc6OqOQTrWI7vO4Jgd8i6yRISTxcgOClZm5DpHe7yw.ULMW7XBz7FddtMxRBJZPsqIPq7BM_0v jweZmBz2K_1pdoV4SFGHaY3KZl3BhVAdrpebNSZCvrkHlCO8sokZI0IiYMoRWICAcVQgTHHN3FTi RVMgLnirT5UPuBqjFz5ifPvF45U9P_irmQDPeLaXsc_jax_3eo70hrBlUK.gfVrhCw5Epij_B5jh ftF9DNSNlV4JdZ46jE1r8tLE4hwJyA10crJDQBApKBbiHS0xell6Z154Wm8qrhjzR1ycsSfMgBzv K7HzVkvDbQnLBUlciBsumk0rdovPIkFNI1rZsVURLxP89xHAtSY7_XpnVOJiQK9jMtqGN5CYqlr4 n1EqDIAc8E71yXwGR5bg0B8i927bLVdmzdvEY684ov8Y569o7H_j3J6HZFWb5bS56Ak7IZEQ4Yfa 5Deqgs5dCOq8P9QPfb2lHv8G0NQROg01y6Xwc53o0tOan.p_hjUEhWc4ZbmIPxE5hFEZYB0se1cu ghKEClo_eIQn0UIZJskGoirzE04q0Rd_cayWWUvA1UboBNxOEykXjIRPc4j7a6n5dRKBtf_vAJ4E F_kpVD5w8NmXKnauVR6WR_i.S_j_.V1pE4dmshTGFxL9yQ9OMXRiXDDhIHbf2jeJHs07gt3.ppmn RyaNAeNf9okHA.SXnxr8uBAbQPJ91ABquw9sF_d5NNv8KAsuRQtkz_9auLPtBvIcE95i2HfMzJQd 4fTPq6oFPH6A9g2yPzIfjAo7Cb9U2xzjnhGsv1fZCnAVneNfMYhPyKIFsILL_1_N4iEGKI5J0xz4 Gdk7Y5wgSGO8v8s8uOf.ScifcJydtQswXGWyQ.9THf8cMRizwKba9hAQHTk4Cidy2BwMjdYoP10N irqkhkGKSa_8x7PBiPlowpiQYTzi5QnoTofr20_VS97taDrpO.ZA4O.3LggB7BjPrUpTdMxKb5O5 o55bPZcdCxyboFr8bCYKosjB7ZAyt52HljmL6cCMyXJYaMSVcdAVy9joSIJbShxD3n6Z8BNVuYke UwInZ1d5PsSfqHFag8qF0hVljy1t93LH.4Vqr89LOEkTcuI6xegE5mhDzGQIQrBtjIpXRC.nfzHd Vhwva6o7mojcBiSqr9R.Ymu9F7YQJWghtgSLjJKXuswblrwCD8YHPpkHbdLMQzGIi6cxD3r1q7JA Pqi6XhXT.SJfIvzBo6g4iba0wvhtDChQNHitlZ4alS0sMcocudoSK1NGYY_ZG6ZV9QHzlnjjKS3N hs0UAweKmlrk0g.HZnEW_htutKrdqkgWXLev2nEeC7i6xFEyYLUuU6BiHZrQZ5CCgXQ8teL7c9SU nzpb9AByyB3mPKBaVkXUSRqUGuWAhfdno_eMPNn3VcGVJBMAOcJuqzJPei3jIZ5Gs35ju98KgRpq w9Rw_Hitfr_6ceNBQmndqWvqj7A9RIbIjLhPGUKGofof1NDuUz8cVHWvGTN.Ya.zyryvEJf_vQXh Ez1o6.rGeqSy2na.6j8o.fET7Z6tzU3hwH6lLL_Mzu_K_5XNFNvmVBEDFUCLHUHglBLmVfTNgTG8 4zEETD09AVQBKe3Eqwr6KbHUXaGvPAQeK_7CIIq3LRBuyOJ9Ll8BLVWELOVN_gh_X_x395VUVfqj mRhTZOTESvHoeXTtu3jhEEe78Xi2yygF.R41X766awbfTyyeQQQooyy5rlwzrfVSdihdVOgwpV4t oy5tJvmYAHDo0W_RHswI9o5KwQkN_BSPF88ohsXGDgl79qnx6N6x.rrVDvRBvlV7KdEYSY7_ErTg HI7d2d73D_6eqHkkwCHj4KV3P5FAEYWBrB8PFZXhYnYvsAxtBUHPbRXXU3NBdsB8zHPck.hb41Nw 7ikbHnP61yFvOSYYipbXPdzJw_KJJoXFnGt4GA6kaSYivgIa5kvLdpKvfp0k5T7CE3dprDFYwLiP batN7FVKFXdY9xEsPGgp_TMH8iCbEqHwinBhrdyzjve2tegVRvVoyyv6IT9T3h6U- X-Sonic-MF: X-Sonic-ID: ca14cdc6-2646-4545-a5ab-1f47951ec678 Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ne1.yahoo.com with HTTP; Sun, 10 Sep 2023 07:33:55 +0000 Received: by hermes--production-sg3-69654d8bd-tsbjv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID f8410ebbb14325a0ea689ba1e7efa6db; Sun, 10 Sep 2023 07:33:51 +0000 (UTC) From: Po Lu In-Reply-To: <83tts2scvp.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 10 Sep 2023 10:31:22 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> Date: Sun, 10 Sep 2023 15:33:39 +0800 Message-ID: <87y1hea3e4.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21763 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 325 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Is this function under a suitable #if condition? AFAIU, it is only > appropriate in a build with X but without any toolkit, so it shouldn't Or on Android, which also utilizes our own menu bars. The right conditional is: #if defined HAVE_WINDOW_SYSTEM && !defined HAVE_EXT_MENU_BAR From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 12:33:02 +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 To: Eli Zaretskii Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169443557312861 (code B ref 64440); Mon, 11 Sep 2023 12:33:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 12:32:53 +0000 Received: from localhost ([127.0.0.1]:52299 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfg60-0003LM-FY for submit@debbugs.gnu.org; Mon, 11 Sep 2023 08:32:53 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:23478) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfg5u-0003LA-MU for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 08:32:51 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=eX2jUf9L R9ntHdOSbM6fE4+pl/0kkb76XcTAktv6uHk=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=m083YX2LEL1uq3CgVrmjL87oBQMF5W zPOqIcT2nriixcx+pv8+d6ywW6/Q3oDbb71CVpcDGvlbVVklwLBCIBDA== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=eX2jUf9LR9ntHdOS bM6fE4+pl/0kkb76XcTAktv6uHk=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=hERwPVg5JY+F/vNzu+MW7QILznOXoxIlLwKi4C lf+h7GilnULCQmWCQhgkDkx/Za9iRK21fg2MDxBosV99vscRQ/a2aOkl7DufLzi3Vpeyu1 4hfw3VqKhHWw8BIm3WotXWiCH8Hf8WAdVaGCec4IcZrYx44VHDUnOMUQbY6tn8U8sMA1aY hwDkgimyKfpxQH+XLGqMU6ZuG1trgl6GD46DEzbmnkhlwXGDaFp4I7vUxSkiC7ts6tR0VR 09gIaQMBnsWBeJsYcddrg6eeDEART26VBjUHIP4J6lNCdrELKLQ+WSTlAZ7RdjyIAbudmy UkpyA1j6QUZzBQoaZCIynHCQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 3aa1cb0b (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Sep 2023 14:32:40 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83tts2scvp.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 10 Sep 2023 10:31:22 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> Date: Mon, 11 Sep 2023 14:32:39 +0200 Message-ID: <87cyyo28m0.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Manuel Giraud >> Cc: Po Lu , stefankangas@gmail.com, 64440@debbugs.gnu.org >> Date: Tue, 05 Sep 2023 11:53:38 +0200 >> >> Eli Zaretskii writes: >> >> > I'd appreciate a walkthrough of the patches with explanations for the >> > significant hunks. It's a non-trivial change, so I think the >> > rationale and the main ideas of the implementation should be described >> > and discussed. >> >> Hi, >> >> For this walkthrough, I have inserted the 4 patches, made some elisions >> and comment inline. > > Thanks. > >> + /* Convert to pixels bounds. */ >> + row = MATRIX_ROW (w->current_matrix, *vpos); >> + *x_start = 0; >> + for (i = 0; i < *h_start; ++i) >> + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; >> + >> + *x_end = *x_start; >> + for (i = *h_start; i < *h_end; ++i) >> + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; >> >> Here, I convert those limits from chars to pixels. > > What does this glyph_row look like? Does it include several strings > one after the other or something? > > In general, we always test the index of a glyph in a glyph row against > glyphs[TEXT_AREA].used, and I'm worried that these tests are absent > from the code above. Which is why I'm asking for more details about > the arrangement of the menu text in these glyph rows. Hi, Here's what a "p *row" returns right after the "row = MATRIX_ROW (w->current_matrix, *vpos);" line: (gdb) p *row $9 = { glyphs = {0xef4a19dd000, 0xef4a19dd000, 0xef4a19e0510, 0xef4a19e0510}, used = {0, 120, 0, 0}, hash = 221095522, x = 0, y = 0, pixel_width = 840, ascent = 11, height = 13, phys_ascent = 10, phys_height = 12, visible_height = 13, extra_line_spacing = 0, start = { pos = { charpos = 0, bytepos = 0 }, overlay_string_index = 0, string_pos = { charpos = 0, bytepos = 0 }, dpvec_index = 0 }, end = { pos = { charpos = 0, bytepos = 0 }, overlay_string_index = 0, string_pos = { charpos = 0, bytepos = 0 }, dpvec_index = 0 }, minpos = { charpos = 0, bytepos = 0 }, maxpos = { charpos = 0, bytepos = 0 }, overlay_arrow_bitmap = 0, left_user_fringe_bitmap = 0, right_user_fringe_bitmap = 0, left_fringe_bitmap = 0, right_fringe_bitmap = 0, left_user_fringe_face_id = 0, right_user_fringe_face_id = 0, left_fringe_face_id = 0, right_fringe_face_id = 0, left_fringe_offset = 0, right_fringe_offset = 0, fringe_bitmap_periodic_p = false, redraw_fringe_bitmaps_p = false, enabled_p = true, truncated_on_left_p = false, truncated_on_right_p = false, continued_p = false, displays_text_p = false, ends_at_zv_p = false, fill_line_p = false, indicate_empty_line_p = false, contains_overlapping_glyphs_p = false, full_width_p = true, mode_line_p = false, tab_line_p = false, overlapped_p = false, ends_in_middle_of_char_p = false, starts_in_middle_of_char_p = false, overlapping_p = false, mouse_face_p = false, ends_in_newline_from_string_p = false, exact_window_width_line_p = false, cursor_in_fringe_p = false, ends_in_ellipsis_p = false, indicate_bob_p = false, indicate_top_line_p = false, indicate_eob_p = false, indicate_bottom_line_p = false, reversed_p = false, stipple_p = false, continuation_lines_width = 0, clip = 0x0 } Is that what you are looking for? >> +/* Possibly highlight a menu-bar item on frame F when mouse moves to >> + menu-bar window-relative coordinates X/Y. Called from >> + note_mouse_highlight. */ >> + >> +static void >> +note_menu_bar_highlight (struct frame *f, int x, int y) >> +{ > > Is this function under a suitable #if condition? AFAIU, it is only > appropriate in a build with X but without any toolkit, so it shouldn't > be compiled in other configurations. Yes, you are right. I'll had the #ifdef proposed by Po. >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -33878,6 +33878,9 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) >> if (FRAME_WINDOW_P (f) && NILP (track_mouse)) >> { >> if (draw == DRAW_NORMAL_TEXT >> +#ifndef HAVE_EXT_MENU_BAR >> + && !EQ (hlinfo->mouse_face_window, f->menu_bar_window) >> +#endif > > Won't this cpp conditional be true in a build --without-x? Should it? Same. -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 12:52:02 +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 To: Eli Zaretskii Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169443668714851 (code B ref 64440); Mon, 11 Sep 2023 12:52:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 12:51:27 +0000 Received: from localhost ([127.0.0.1]:52331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfgNz-0003rT-G8 for submit@debbugs.gnu.org; Mon, 11 Sep 2023 08:51:27 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:26698) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfgNw-0003rJ-S9 for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 08:51:26 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=Az/4P0v/ BSxHt4VxsiVBg0L4BEX0A8LTub04/DQglEg=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=rejyfAhJqXXB8jOlAS175foklVNnga KGt8wtLI2N8JhmgRC5Glm7taKP+YMKeeY+epkDk9SRu68GbhxZ27U5Dg== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=Az/4P0v/BSxHt4Vx siVBg0L4BEX0A8LTub04/DQglEg=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=YjStBMr5QBlvfeqqqop1MsH1TUkgoUY319usHQ PGH7yQAyz/hgab7zIxhPtxT+f5IQ0oddXRPGXt9sFS8C7juVtAoUA9TAUjyppkLDzUuRKj E1EbLQ4dqduScBmQ1bmf9hhaRX07AfHMO6m+nfcACceDxvofNmr5czEzoe3/0jo2zPd7kp 3VnR/dD6jMEJYtufPhQ2p5scI0fjZQvW5G8s7D9ZVpO/STbz1Io6ZOXmiIsAIWOYpnZV6V TDGES0eToeaOXSCQMrWzIt2wjTkcTf1/cO7yPXZtl2H+207FICtKNciq0KjjZcLM34NOyh wM7YJ5TN7evqeEpoxdXqtZ3g== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 5254bfd1 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Sep 2023 14:51:19 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83tts2scvp.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 10 Sep 2023 10:31:22 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> Date: Mon, 11 Sep 2023 14:51:18 +0200 Message-ID: <878r9c27qx.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: [...] >> --- a/src/xdisp.c >> +++ b/src/xdisp.c >> @@ -33878,6 +33878,9 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) >> if (FRAME_WINDOW_P (f) && NILP (track_mouse)) >> { >> if (draw == DRAW_NORMAL_TEXT >> +#ifndef HAVE_EXT_MENU_BAR >> + && !EQ (hlinfo->mouse_face_window, f->menu_bar_window) >> +#endif > > Won't this cpp conditional be true in a build --without-x? Should it? No, I was wrong. This one is ok because, we already are into an "#ifdef HAVE_WINDOW_SYSTEM" here. -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 13:42:02 +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 To: Manuel Giraud Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169443970119323 (code B ref 64440); Mon, 11 Sep 2023 13:42:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 13:41:41 +0000 Received: from localhost ([127.0.0.1]:52382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfhAb-00051b-0v for submit@debbugs.gnu.org; Mon, 11 Sep 2023 09:41:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36204) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfhAY-00051N-Q9 for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 09:41:39 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfhAO-0000GN-OC; Mon, 11 Sep 2023 09:41:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=aPgkalshu7XJYAV0ctFltrDY2eapHPCGH+tqM9BfEiA=; b=Oaf8+afxGcNr Xce15y4gx3ZBpPY6aWL6jG1y/lXkvn0CXO3WBCW5Xfh+40cUkWMSeorS+LWGMXOq/HOrJ1RklVtgu erKSgmovh2w2lvweGYx73F7/MMmFY7yMifZRLLYIsHsL0evWHvuIsa5JNNODWodE7gWqvhfw2C3LJ LPDvJdO0uogzB9pqgHr8CF1wLtYVqCXx26IUl8Kz0BxsxD34zYaNfbPGUW5X2PTm8OzeqtMlMd1fZ 22ess626buxxCRYPb2UcmixOCC2IrN66B36fgPatZeofG9KDhwoota/d3gozq+vlTUJ9FoJaAD83v 4OVrPxJEa5fw93YCFRqfjQ==; Date: Mon, 11 Sep 2023 16:41:12 +0300 Message-Id: <83cyyorfnr.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87cyyo28m0.fsf@ledu-giraud.fr> (message from Manuel Giraud on Mon, 11 Sep 2023 14:32:39 +0200) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Manuel Giraud > Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Mon, 11 Sep 2023 14:32:39 +0200 > > Eli Zaretskii writes: > > >> + *x_end = *x_start; > >> + for (i = *h_start; i < *h_end; ++i) > >> + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; > >> > >> Here, I convert those limits from chars to pixels. > > > > What does this glyph_row look like? Does it include several strings > > one after the other or something? > > > > In general, we always test the index of a glyph in a glyph row against > > glyphs[TEXT_AREA].used, and I'm worried that these tests are absent > > from the code above. Which is why I'm asking for more details about > > the arrangement of the menu text in these glyph rows. > > Hi, > > Here's what a "p *row" returns right after the "row = MATRIX_ROW > (w->current_matrix, *vpos);" line: > > (gdb) p *row > $9 = { > glyphs = {0xef4a19dd000, 0xef4a19dd000, 0xef4a19e0510, 0xef4a19e0510}, > used = {0, 120, 0, 0}, > hash = 221095522, > x = 0, > y = 0, > pixel_width = 840, > ascent = 11, > height = 13, > phys_ascent = 10, > phys_height = 12, > visible_height = 13, > extra_line_spacing = 0, > start = { > pos = { > charpos = 0, > bytepos = 0 > }, > overlay_string_index = 0, > string_pos = { > charpos = 0, > bytepos = 0 > }, > dpvec_index = 0 > }, > end = { > pos = { > charpos = 0, > bytepos = 0 > }, > overlay_string_index = 0, > string_pos = { > charpos = 0, > bytepos = 0 > }, > dpvec_index = 0 > }, > minpos = { > charpos = 0, > bytepos = 0 > }, > maxpos = { > charpos = 0, > bytepos = 0 > }, > overlay_arrow_bitmap = 0, > left_user_fringe_bitmap = 0, > right_user_fringe_bitmap = 0, > left_fringe_bitmap = 0, > right_fringe_bitmap = 0, > left_user_fringe_face_id = 0, > right_user_fringe_face_id = 0, > left_fringe_face_id = 0, > right_fringe_face_id = 0, > left_fringe_offset = 0, > right_fringe_offset = 0, > fringe_bitmap_periodic_p = false, > redraw_fringe_bitmaps_p = false, > enabled_p = true, > truncated_on_left_p = false, > truncated_on_right_p = false, > continued_p = false, > displays_text_p = false, > ends_at_zv_p = false, > fill_line_p = false, > indicate_empty_line_p = false, > contains_overlapping_glyphs_p = false, > full_width_p = true, > mode_line_p = false, > tab_line_p = false, > overlapped_p = false, > ends_in_middle_of_char_p = false, > starts_in_middle_of_char_p = false, > overlapping_p = false, > mouse_face_p = false, > ends_in_newline_from_string_p = false, > exact_window_width_line_p = false, > cursor_in_fringe_p = false, > ends_in_ellipsis_p = false, > indicate_bob_p = false, > indicate_top_line_p = false, > indicate_eob_p = false, > indicate_bottom_line_p = false, > reversed_p = false, > stipple_p = false, > continuation_lines_width = 0, > clip = 0x0 > } > > Is that what you are looking for? This gives some of the answers, but the command 'pgrow' (defined on src/.gdbinit) would have done that better, and would also show the glyphs themselves. Can you show what 'pgrow' produces in this case? From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 15:00:02 +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 To: Eli Zaretskii Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169444436029286 (code B ref 64440); Mon, 11 Sep 2023 15:00:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 14:59:20 +0000 Received: from localhost ([127.0.0.1]:54386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfiNk-0007cH-6s for submit@debbugs.gnu.org; Mon, 11 Sep 2023 10:59:20 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:44875) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfiNi-0007c8-39 for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 10:59:19 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=qfVy2Dc4 SBOkUbgqN4iimE+s5ksMMJw6iADBGB70gao=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=ScGw7kRMD+4GMPJwQddZnl2mY4iYKK 4b2sz0/pAHf8bt/I1+dRQuYtcy+34idvJi7NNw36zHrOzfxg+3+3dZBA== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=qfVy2Dc4SBOkUbgq N4iimE+s5ksMMJw6iADBGB70gao=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=eNjkhlRTQmvKWx11MQ7lOsQmGUgCIGdb8HAq38 o3XE9w7nPivc2bbp7pHPLUpv9Iq8WR0Fveq1xg/+JeZBweUT105XJYCGuJp7/Lo7wVbjf/ Gzen9PwmseA5jPzc53koMRqFjY7iF6jU3HHa2Q4YSleNi38yNPh6kHpsxOsXrwOrHLjQT1 d75AJCS8nA2xIK0DazQpCo7Am6tSu44VcnkKxrxNNHdAPA2UQX5lYl+wutVLa933FtKIEU qIGT+/TdmVU8PEBu3G5WpGvVSrjV2/Qsg9RuK3gIetRHWS5rnDANaYj5V2AKvxOqms5ROT PuN3nPGAZn2mnNbiW9rvxKoQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 76bffccb (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Sep 2023 16:59:12 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83cyyorfnr.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 11 Sep 2023 16:41:12 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> Date: Mon, 11 Sep 2023 16:59:11 +0200 Message-ID: <87r0n4sqm8.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: [...] >> Is that what you are looking for? > > This gives some of the answers, but the command 'pgrow' (defined on > src/.gdbinit) would have done that better, and would also show the > glyphs themselves. Can you show what 'pgrow' produces in this case? Here is what I get: (gdb) pgrow TEXT: 120 glyphs 0 0: CHAR[F] str=0x66f834da[0] blev=0,btyp=L w=7 a+d=11+2 face=10 1 7: CHAR[i] str=0x66f834da[1] blev=0,btyp=L w=7 a+d=11+2 face=10 2 14: CHAR[l] str=0x66f834da[2] blev=0,btyp=L w=7 a+d=11+2 face=10 3 21: CHAR[e] str=0x66f834da[3] blev=0,btyp=L w=7 a+d=11+2 face=10 4 28: CHAR[ ] str=0x66f834da[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 5 35: CHAR[E] str=0x66fede1c[0] blev=0,btyp=L w=7 a+d=11+2 face=10 6 42: CHAR[d] str=0x66fede1c[1] blev=0,btyp=L w=7 a+d=11+2 face=10 7 49: CHAR[i] str=0x66fede1c[2] blev=0,btyp=L w=7 a+d=11+2 face=10 8 56: CHAR[t] str=0x66fede1c[3] blev=0,btyp=L w=7 a+d=11+2 face=10 9 63: CHAR[ ] str=0x66fede1c[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 10 70: CHAR[O] str=0x670530d4[0] blev=0,btyp=L w=7 a+d=11+2 face=10 11 77: CHAR[p] str=0x670530d4[1] blev=0,btyp=L w=7 a+d=11+2 face=10 12 84: CHAR[t] str=0x670530d4[2] blev=0,btyp=L w=7 a+d=11+2 face=10 13 91: CHAR[i] str=0x670530d4[3] blev=0,btyp=L w=7 a+d=11+2 face=10 14 98: CHAR[o] str=0x670530d4[4] blev=0,btyp=L w=7 a+d=11+2 face=10 15 105: CHAR[n] str=0x670530d4[5] blev=0,btyp=L w=7 a+d=11+2 face=10 16 112: CHAR[s] str=0x670530d4[6] blev=0,btyp=L w=7 a+d=11+2 face=10 17 119: CHAR[ ] str=0x670530d4[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 18 126: CHAR[B] str=0x66fe6eaf[0] blev=0,btyp=L w=7 a+d=11+2 face=10 19 133: CHAR[u] str=0x66fe6eaf[1] blev=0,btyp=L w=7 a+d=11+2 face=10 20 140: CHAR[f] str=0x66fe6eaf[2] blev=0,btyp=L w=7 a+d=11+2 face=10 21 147: CHAR[f] str=0x66fe6eaf[3] blev=0,btyp=L w=7 a+d=11+2 face=10 22 154: CHAR[e] str=0x66fe6eaf[4] blev=0,btyp=L w=7 a+d=11+2 face=10 23 161: CHAR[r] str=0x66fe6eaf[5] blev=0,btyp=L w=7 a+d=11+2 face=10 24 168: CHAR[s] str=0x66fe6eaf[6] blev=0,btyp=L w=7 a+d=11+2 face=10 25 175: CHAR[ ] str=0x66fe6eaf[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 26 182: CHAR[T] str=0x6705081b[0] blev=0,btyp=L w=7 a+d=11+2 face=10 27 189: CHAR[o] str=0x6705081b[1] blev=0,btyp=L w=7 a+d=11+2 face=10 28 196: CHAR[o] str=0x6705081b[2] blev=0,btyp=L w=7 a+d=11+2 face=10 29 203: CHAR[l] str=0x6705081b[3] blev=0,btyp=L w=7 a+d=11+2 face=10 30 210: CHAR[s] str=0x6705081b[4] blev=0,btyp=L w=7 a+d=11+2 face=10 31 217: CHAR[ ] str=0x6705081b[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 32 224: CHAR[L] str=0x6703c7ae[0] blev=0,btyp=L w=7 a+d=11+2 face=10 33 231: CHAR[i] str=0x6703c7ae[1] blev=0,btyp=L w=7 a+d=11+2 face=10 34 238: CHAR[s] str=0x6703c7ae[2] blev=0,btyp=L w=7 a+d=11+2 face=10 35 245: CHAR[p] str=0x6703c7ae[3] blev=0,btyp=L w=7 a+d=11+2 face=10 36 252: CHAR[-] str=0x6703c7ae[4] blev=0,btyp=L w=7 a+d=11+2 face=10 37 259: CHAR[I] str=0x6703c7ae[5] blev=0,btyp=L w=7 a+d=11+2 face=10 38 266: CHAR[n] str=0x6703c7ae[6] blev=0,btyp=L w=7 a+d=11+2 face=10 39 273: CHAR[t] str=0x6703c7ae[7] blev=0,btyp=L w=7 a+d=11+2 face=10 40 280: CHAR[e] str=0x6703c7ae[8] blev=0,btyp=L w=7 a+d=11+2 face=10 41 287: CHAR[r] str=0x6703c7ae[9] blev=0,btyp=L w=7 a+d=11+2 face=10 42 294: CHAR[a] str=0x6703c7ae[10] blev=0,btyp=L w=7 a+d=11+2 face=10 43 301: CHAR[c] str=0x6703c7ae[11] blev=0,btyp=L w=7 a+d=11+2 face=10 44 308: CHAR[t] str=0x6703c7ae[12] blev=0,btyp=L w=7 a+d=11+2 face=10 45 315: CHAR[i] str=0x6703c7ae[13] blev=0,btyp=L w=7 a+d=11+2 face=10 46 322: CHAR[o] str=0x6703c7ae[14] blev=0,btyp=L w=7 a+d=11+2 face=10 47 329: CHAR[n] str=0x6703c7ae[15] blev=0,btyp=L w=7 a+d=11+2 face=10 48 336: CHAR[ ] str=0x6703c7ae[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 49 343: CHAR[H] str=0x66fd99ec[0] blev=0,btyp=L w=7 a+d=11+2 face=10 50 350: CHAR[e] str=0x66fd99ec[1] blev=0,btyp=L w=7 a+d=11+2 face=10 51 357: CHAR[l] str=0x66fd99ec[2] blev=0,btyp=L w=7 a+d=11+2 face=10 52 364: CHAR[p] str=0x66fd99ec[3] blev=0,btyp=L w=7 a+d=11+2 face=10 53 371: CHAR[ ] str=0x66fd99ec[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 54 378: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 55 385: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 56 392: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 57 399: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 58 406: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 59 413: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 60 420: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 61 427: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 62 434: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 63 441: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 64 448: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 65 455: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 66 462: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 67 469: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 68 476: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 69 483: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 70 490: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 71 497: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 72 504: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 73 511: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 74 518: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 75 525: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 76 532: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 77 539: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 78 546: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 79 553: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 80 560: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 81 567: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 82 574: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 83 581: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 84 588: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 85 595: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 86 602: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 87 609: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 88 616: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 89 623: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 90 630: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 91 637: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 92 644: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 93 651: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 94 658: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 95 665: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 96 672: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 97 679: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 98 686: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 99 693: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 100 700: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 101 707: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 102 714: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 103 721: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 104 728: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 105 735: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 106 742: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 107 749: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 108 756: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 109 763: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 110 770: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 111 777: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 112 784: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 113 791: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 114 798: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 115 805: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 116 812: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 117 819: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 118 826: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 119 833: CHAR[ ] pos=-1 blev=0,btyp=B w=7 a+d=11+2 face=10 -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 16:00:02 +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 To: Manuel Giraud Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169444795823902 (code B ref 64440); Mon, 11 Sep 2023 16:00:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 15:59:18 +0000 Received: from localhost ([127.0.0.1]:54579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfjJl-0006DS-VP for submit@debbugs.gnu.org; Mon, 11 Sep 2023 11:59:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfjJj-0006DD-OG for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 11:59:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfjJZ-0000UO-J1; Mon, 11 Sep 2023 11:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=9OkO5NqCFgDbCivMgL2aKzjNaWv3Vu41m0S3XsX3Cec=; b=QLyhg295mbrD wFo6pFfoHvSSHjTCpgz6tr/T1IvULl5TxCOONPuSZGeYAXqWb5037YALNEaS1jg9uhh79T4jIBkgR XE286H/0VFHFTepiuCkVw7bBL0qlt4frMH0y2TrZnpG1+9CuSLgfN4ioSpLyVAHp9d7Rn/wDy/9ry yU53Ox2VDOuFkAwrjCMamtjedtAIWOALe5zjjsQSxXa40aqE5N3nBzVBJcXjyv9pcVIjvFm4KjQiq ZByA2RscWz6RRMIPEbOPz2N7WxrPRhZJz8Q52DXEpzC5EugG038CAWIlCfhg1n6LCnJaxsVyAukMO ZbGxgmQT1yneg/w0I50vUg==; Date: Mon, 11 Sep 2023 18:58:39 +0300 Message-Id: <835y4gr9ao.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87r0n4sqm8.fsf@ledu-giraud.fr> (message from Manuel Giraud on Mon, 11 Sep 2023 16:59:11 +0200) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Manuel Giraud > Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Mon, 11 Sep 2023 16:59:11 +0200 > > Eli Zaretskii writes: > > [...] > > >> Is that what you are looking for? > > > > This gives some of the answers, but the command 'pgrow' (defined on > > src/.gdbinit) would have done that better, and would also show the > > glyphs themselves. Can you show what 'pgrow' produces in this case? > > Here is what I get: > > (gdb) pgrow > TEXT: 120 glyphs > 0 0: CHAR[F] str=0x66f834da[0] blev=0,btyp=L w=7 a+d=11+2 face=10 > 1 7: CHAR[i] str=0x66f834da[1] blev=0,btyp=L w=7 a+d=11+2 face=10 > 2 14: CHAR[l] str=0x66f834da[2] blev=0,btyp=L w=7 a+d=11+2 face=10 > 3 21: CHAR[e] str=0x66f834da[3] blev=0,btyp=L w=7 a+d=11+2 face=10 > 4 28: CHAR[ ] str=0x66f834da[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 > 5 35: CHAR[E] str=0x66fede1c[0] blev=0,btyp=L w=7 a+d=11+2 face=10 > 6 42: CHAR[d] str=0x66fede1c[1] blev=0,btyp=L w=7 a+d=11+2 face=10 > 7 49: CHAR[i] str=0x66fede1c[2] blev=0,btyp=L w=7 a+d=11+2 face=10 > 8 56: CHAR[t] str=0x66fede1c[3] blev=0,btyp=L w=7 a+d=11+2 face=10 > 9 63: CHAR[ ] str=0x66fede1c[-1] blev=0,btyp=B w=7 a+d=11+2 face=10 Thanks. That's what I imagined we have there. So I guess considering that a string ends where is SCHARS end is reasonable. But note that the above means you could also detect where each item ends by looking for the glyph whose string position is -1. So maybe add an assertion there that the glyph after the last character has its position as -1, in case we could have some complications there with double-width characters or something. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 18:57:02 +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 To: Eli Zaretskii Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16944586097167 (code B ref 64440); Mon, 11 Sep 2023 18:57:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 18:56:49 +0000 Received: from localhost ([127.0.0.1]:54853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfm5Z-0001rX-9l for submit@debbugs.gnu.org; Mon, 11 Sep 2023 14:56:49 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:33856) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfm5U-0001rK-II for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 14:56:48 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=NPc6HfmA bUP+V1juzBe438RHwtbhR97v1XaKwqE6ONc=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=KNCPiWf5nMHyBoyKI+ZQnj+EesFBXZ xytpHtZG73GtUrVZvHVnvNdJOoNtbZ+TeLGO/L6R5VExaMeGMgJnBbBQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=NPc6HfmAbUP+V1ju zBe438RHwtbhR97v1XaKwqE6ONc=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=lyWnX1GWXk/TJXXQAptUxLvihGIwNuSlB8Tpio LcsSuq/fUX7d+O8os+w/lBChPxek/IgvBp3C5in1+EBN5hfdRMTbbGU46IUajM0+UmYWcj leYONk3YX8d+IMV4xr9Y3SiPt8NJWHeWUIRlxlRTtx1u3G+FA3soV41Ao3kB8P+wyj9eYt dMmQfmUGFhhAvU1WEm6WhBVbccevAT/daO4rcH3ortzGLsQKUqxvmFwDfBYnWoKMKiZIfu uRuEpy1pex1A0lqRZjI8ybS+mMFeCP4f/zJTFhcXpyE7/mbntv6uenIjvr2MzGQ42vR0uN ttHpFm/XPZcO92XaIIJGQ0KQ== Received: from computer (82-65-148-221.subs.proxad.net [82.65.148.221]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 5d7cc860 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Sep 2023 20:56:38 +0200 (CEST) From: Manuel Giraud In-Reply-To: <835y4gr9ao.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 11 Sep 2023 18:58:39 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> Date: Mon, 11 Sep 2023 20:56:37 +0200 Message-ID: <87jzswsfmi.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: [...] > Thanks. That's what I imagined we have there. So I guess considering > that a string ends where is SCHARS end is reasonable. > > But note that the above means you could also detect where each item > ends by looking for the glyph whose string position is -1. So maybe > add an assertion there that the glyph after the last character has its > position as -1, in case we could have some complications there with > double-width characters or something. What do you think of this: + /* Convert to pixels bounds. */ + row = MATRIX_ROW (w->current_matrix, *vpos); + *x_start = 0; + for (i = 0; i < *h_start; ++i) + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end = *x_start; + for (i = *h_start; CHARPOS (row->glyphs[TEXT_AREA][i]) != -1; ++i) + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 19:14:02 +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 To: Manuel Giraud Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16944596008792 (code B ref 64440); Mon, 11 Sep 2023 19:14:02 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 19:13:20 +0000 Received: from localhost ([127.0.0.1]:54890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfmLX-0002Hk-I8 for submit@debbugs.gnu.org; Mon, 11 Sep 2023 15:13:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfmLV-0002HX-QQ for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 15:13:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfmLL-0007L4-Eg; Mon, 11 Sep 2023 15:13:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Ez2NXwsjHW76fjj5cs2qlVX5hMURlQub5KruJMZdG7M=; b=YBplefQdnS3u anrfKEBy7D8MQedqbw2JuK7Mt1CMEgLcw4hBck3OAqWZ7s/N2gK8MzrRzOIor4MXj13e094CaLMhI 6nHwimo1HOQqtekI4vB3PNNaZa5ukbPZ09dhAWjtO3zIlKii+7B9VNYAnQ+GNsgvqEcrB59Vk8SvR 0L/GrcMtv5ws2yGo3vLOhdSRz0yTt/R4GcjYMhpHbuHOA7ITQ+fFk/gZsPC7MYRm9rn/t0eTyBaaF fAnXoUiTcxm9MiGArMV/0VhVtNdAwlHbJfdtvHXehhexLLOjn1HONkOYLzINwBEqKjDA5XM+bV9zb xKWpXNNjECddWdnU/9x2RA==; Date: Mon, 11 Sep 2023 22:12:47 +0300 Message-Id: <83v8cgplqo.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87jzswsfmi.fsf@ledu-giraud.fr> (message from Manuel Giraud on Mon, 11 Sep 2023 20:56:37 +0200) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Manuel Giraud > Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Mon, 11 Sep 2023 20:56:37 +0200 > > Eli Zaretskii writes: > > [...] > > > Thanks. That's what I imagined we have there. So I guess considering > > that a string ends where is SCHARS end is reasonable. > > > > But note that the above means you could also detect where each item > > ends by looking for the glyph whose string position is -1. So maybe > > add an assertion there that the glyph after the last character has its > > position as -1, in case we could have some complications there with > > double-width characters or something. > > What do you think of this: > > + /* Convert to pixels bounds. */ > + row = MATRIX_ROW (w->current_matrix, *vpos); > + *x_start = 0; > + for (i = 0; i < *h_start; ++i) > + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; > + > + *x_end = *x_start; > + for (i = *h_start; CHARPOS (row->glyphs[TEXT_AREA][i]) != -1; ++i) > + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; That's OK, but I think we should also make sure 'i' never exceeds the value row->used[TEXT_AREA] - 1. This is only important for the last item, but still. And I would also add an assertion that row->reversed_p is false. We don't currently support R2L menu bars, but if we ever do, the above loops should go backwards in such glyph rows. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 11 Sep 2023 20:52: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 To: Eli Zaretskii Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169446550318410 (code B ref 64440); Mon, 11 Sep 2023 20:52:01 +0000 Received: (at 64440) by debbugs.gnu.org; 11 Sep 2023 20:51:43 +0000 Received: from localhost ([127.0.0.1]:54938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfnsl-0004mr-20 for submit@debbugs.gnu.org; Mon, 11 Sep 2023 16:51:43 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:43477) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qfnsh-0004mf-72 for 64440@debbugs.gnu.org; Mon, 11 Sep 2023 16:51:41 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=jg0b/10i Oa8k9hv2+4yJeNeNXdu2FNdZPlTy+YsjYK4=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=HeY9t0aDX7m87UT2OHhhXvnDcefYiE +cyV69Dy6CrODYcu0SX1VzCDXsCdEOLo+Hn9cLYT+9LDf/JrZs/NLFDg== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=jg0b/10iOa8k9hv2 +4yJeNeNXdu2FNdZPlTy+YsjYK4=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=dPILyXMaUluaBuUx90KfxTjuaoEIZnONBWcUe4 q5rREjWwhYaMgnMWF4tKvYL4/PhHX1lIwZFO72mRXDv/q1B3L00V/HFoCqjfEPZDaGMzVl N04MWQ/tyinu674FbB4jYzQLpB2ISrGUxBNE4VkroKE2+K5ozgMeAtjs27vdEbwOPYR8n4 e2pYRCA2m6oPr4b8MF5b3YTEcGxoBUoZP6wUD/YxPq/H9gcFMiXr8wzZ6nBTSBxe/0NSqG 4ZhWs/ptA9dri6lc1sxPr75S15IFf4L3COwTClt2LhRX1h0Z0hTlZahbi5HfMBsa+0epo4 hr6BuMj+TsfQ1VCRefohL2sQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 17d7636d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Sep 2023 22:51:32 +0200 (CEST) From: Manuel Giraud In-Reply-To: <83v8cgplqo.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 11 Sep 2023 22:12:47 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> Date: Mon, 11 Sep 2023 22:51:31 +0200 Message-ID: <87sf7kh1rg.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Manuel Giraud >> Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org >> Date: Mon, 11 Sep 2023 20:56:37 +0200 >> >> Eli Zaretskii writes: >> >> [...] >> >> > Thanks. That's what I imagined we have there. So I guess considering >> > that a string ends where is SCHARS end is reasonable. >> > >> > But note that the above means you could also detect where each item >> > ends by looking for the glyph whose string position is -1. So maybe >> > add an assertion there that the glyph after the last character has its >> > position as -1, in case we could have some complications there with >> > double-width characters or something. >> >> What do you think of this: >> >> + /* Convert to pixels bounds. */ >> + row = MATRIX_ROW (w->current_matrix, *vpos); >> + *x_start = 0; >> + for (i = 0; i < *h_start; ++i) >> + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; >> + >> + *x_end = *x_start; >> + for (i = *h_start; CHARPOS (row->glyphs[TEXT_AREA][i]) != -1; ++i) >> + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; > > That's OK, but I think we should also make sure 'i' never exceeds the > value row->used[TEXT_AREA] - 1. This is only important for the last > item, but still. > > And I would also add an assertion that row->reversed_p is false. We > don't currently support R2L menu bars, but if we ever do, the above > loops should go backwards in such glyph rows. Ok. Here is the full version of the second patch: >From 4420fde7757a9b02087c4330c6102cb40c9e4038 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Mon, 3 Jul 2023 17:35:06 +0200 Subject: [PATCH 2/2] Highlight on non toolkit menu bar items * src/xdisp.c (get_menu_bar_item, note_menu_bar_highlight): New functions to highlight item in the menu-bar. (note_mouse_highlight): Use it. --- src/xdisp.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index ca7e3b9743e..b194837e69c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13922,6 +13922,131 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) return hooks_run; } +#if defined HAVE_WINDOW_SYSTEM && !defined HAVE_EXT_MENU_BAR + +/* Get information about the menu-bar item at position X/Y on frame F. + Return menu-bar's item char position in H_START/H_END and pixel + position in X_START/X_END. Value is + + -1 if X/Y is not on a menu-bar item + 0 if X/Y is on the same item that was highlighted before. + 1 otherwise. */ + +static int +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, + int *x_start, int *x_end, int *vpos) +{ + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + struct window *w = XWINDOW (f->menu_bar_window); + struct glyph_row *row; + int dummy; + Lisp_Object items; + int i; + + /* Find glyph's hpos and vpos under X/Y. */ + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) == NULL) + return -1; + + /* We do not support R2L menu bar. */ + row = MATRIX_ROW (w->current_matrix, *vpos); + if (row->reversed_p) + return -1; + + /* Compute h_start and h_end for this menu bar item. */ + items = FRAME_MENU_BAR_ITEMS (f); + for (i = 0; i < ASIZE (items); i += 4) + { + Lisp_Object pos, string; + string = AREF (items, i + 1); + pos = AREF (items, i + 3); + if (NILP (string)) + return -1; + if (*h_start >= XFIXNUM (pos) + && *h_start < XFIXNUM (pos) + SCHARS (string)) + { + *h_start = XFIXNUM (pos); + *h_end = *h_start + SCHARS (string); + break; + } + } + + /* Convert to pixels bounds. */ + *x_start = 0; + for (i = 0; i < *h_start; ++i) + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end = *x_start; + for (i = *h_start; + CHARPOS (row->glyphs[TEXT_AREA][i]) != -1 + && i < row->used[TEXT_AREA]; + ++i) + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; + + /* Is mouse on the highlighted item? */ + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) + && *vpos >= hlinfo->mouse_face_beg_row + && *vpos <= hlinfo->mouse_face_end_row + && (*vpos > hlinfo->mouse_face_beg_row + || *h_start >= hlinfo->mouse_face_beg_col) + && (*vpos < hlinfo->mouse_face_end_row + || *h_end < hlinfo->mouse_face_end_col + || hlinfo->mouse_face_past_end)) + return 0; + + return 1; +} + +/* Possibly highlight a menu-bar item on frame F when mouse moves to + menu-bar window-relative coordinates X/Y. Called from + note_mouse_highlight. */ + +static void +note_menu_bar_highlight (struct frame *f, int x, int y) +{ + Lisp_Object window = f->menu_bar_window; + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + int h_start, h_end, vpos, x_start, x_end; + int rc; + + /* Function note_mouse_highlight is called with negative X/Y + values when mouse moves outside of the frame. */ + if (x <= 0 || y <= 0) + { + clear_mouse_face (hlinfo); + return; + } + + h_start = h_end = 0; + rc = get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &vpos); + if (rc < 0) + { + /* Not on menu-bar item. */ + clear_mouse_face (hlinfo); + return; + } + else if (rc == 0) + /* On same menu-bar item as before. */ + return; + + if (!NILP (Vmouse_highlight)) + { + /* Record this as the current active region. */ + hlinfo->mouse_face_beg_col = h_start; + hlinfo->mouse_face_beg_row = vpos; + hlinfo->mouse_face_beg_x = x_start; + hlinfo->mouse_face_past_end = false; + + hlinfo->mouse_face_end_col = h_end; + hlinfo->mouse_face_end_row = vpos; + hlinfo->mouse_face_end_x = x_end; + hlinfo->mouse_face_window = window; + hlinfo->mouse_face_face_id = MENU_FACE_ID; + + /* Display it as active. */ + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); + } +} +#endif /*********************************************************************** @@ -35538,6 +35663,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined HAVE_WINDOW_SYSTEM && !defined HAVE_EXT_MENU_BAR + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + note_menu_bar_highlight (f, x, y); + return; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 11:15:02 +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 To: Manuel Giraud Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169451725816120 (code B ref 64440); Tue, 12 Sep 2023 11:15:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 11:14:18 +0000 Received: from localhost ([127.0.0.1]:56261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg1LV-0004Bw-NI for submit@debbugs.gnu.org; Tue, 12 Sep 2023 07:14:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41192) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg1LT-0004Bi-Ln for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 07:14:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qg1LJ-0007KY-2w; Tue, 12 Sep 2023 07:14:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=wDM6qNlV1n5Vt6UdwYihcKnc9CODfiiW+mmuOTWlncc=; b=Sef6fMQHMa4F f7ibb1E/RKGDVgaSNMTj7JF96k+/QTGlgD5O7C4db9rMFIwJTITiMwP+z7FzeB895onFGV7jcUgVd rA4ZMAc8FakwL/il+D5pMDC8FQP1xg5sB2DF1JiUNjgLYYJnDKHO0V4OMI68B/rEk4/nhEtBdSn1N tKV5fNqDQIFn1gZDHBNMH8QkPOIaq0bdLG9Z91fQKuMnP6Yw+Tq1pIp+TVpzeMBuQVSOKsoZozEON bV/sk8kymSCJF9IEj5++Xugryuhrn5/70WeviSx9WvvCUl+qQty0Tmt2CFhSeJCOD8trNgImxK/Cs MruzHG1Cs2BLuupnoNKbIA==; Date: Tue, 12 Sep 2023 14:13:49 +0300 Message-Id: <83pm2nprte.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87sf7kh1rg.fsf@ledu-giraud.fr> (message from Manuel Giraud on Mon, 11 Sep 2023 22:51:31 +0200) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Manuel Giraud > Cc: luangruo@yahoo.com, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Mon, 11 Sep 2023 22:51:31 +0200 > > Ok. Here is the full version of the second patch: LGTM, thanks. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 11:27:02 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169451800517343 (code B ref 64440); Tue, 12 Sep 2023 11:27:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 11:26:45 +0000 Received: from localhost ([127.0.0.1]:56293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg1XZ-0004Vf-3n for submit@debbugs.gnu.org; Tue, 12 Sep 2023 07:26:45 -0400 Received: from sonic307-56.consmr.mail.ne1.yahoo.com ([66.163.190.31]:42996) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg1XX-0004VQ-76 for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 07:26:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694517993; bh=5R2IJfpVT3S8aTuVN5lj0hIcOxdbDeZr8gxXjCHmbIQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=XEMt3MxxCe4YcTjkk+VVda1RqvDqvEFR8PCCjwuEAicWTEhtk2cEVOxzcnyaCOCB5sjYLxV+PFrz0JG4jxcff/HbOz1Q1CKFGez1SNODObiXWXsagDF3YVdul4co7KT9OZBQLS7ITsFHmpKbNzeBeA4yJTt1Z/UxqX5QT5UXxZuTUuQUXwkMTTfa+eA2yZJJfk2T0xuReejAn8WBNcZuv24NMfIS/P2YBbfMVf1cb9cTfx3Ya6zaYQzSUvUa0xHmRkQlqh8BAbc+I13PscEuVt23O8f7QpDPSuqAUE9Ahu+DypKMh5VRPIokEjJmnTpJVUoheVZCL+JDGVUL6UmwTA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694517993; bh=o8b5t3R8IB0iTo2gsGGae7cFxxhg9Zq6nSExN8Gw6ns=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=s+K/H9R3HO1ejCDrDhyBM0Qi6gmXr4RspHW073Jf55CO/2HVISnO7dwVdBfKkZqGFjDYvqOWMiy9R704R2nmHm4oMq1w81AQyVc27d1ZGUQIseZVVjBAF6xlZ3RQEEDg+ZMq8aDGPuTcleL/hE88vDzLn8/7hKUZWxRvoFVRcbFzgSv8UsH0VhQ5oT7Nd42w4j9CpGea8d+mU7MGbVKa5fpYJ+tRRgRfmOwDsTj+FxM5vGPnwgMdMRfj6NC9T2FqulANozdPbwnX5uW8UUsLHwK+OvOU+UHPTctssAcXxrLhLxHDd16hikv/qGpsZXbpR4nx94st7DGlc0TpKNE+bg== X-YMail-OSG: KIbhgXkVM1n6frbRO8j3caKIE9n7mCdHCi_DYgzi3o3h9k43xl7zlk_h1FK_i3H mwMOfRQr5KATrGifREgX602iasYSzCkhkxmftX3fhoJEPP0cdIr.e1z2ncX61xmAGONjDrsFcYZQ iu24KeFroWpspZR06WEOFxrLq1MYm.GCVDJwyNdvhZn.ujq4FbmJF.9Mn.si1veADrgKitXbP3t_ MSH0oWaQdZHX7liQuAL4ifN0iXAJc.Q3dO.BZ7bredJymqf.btNcnS9K221zY6LhELrmRarEEwhI izGq5s5g6wQikTB7INXZ0hhUg4LRJq5_L4x6_FBx7NwhKa2oRn789ckUyRftBQFC6P8CS6SmbOeq NLTySaucJfBYmRjKBy3RI1s54voWXSNx46WMq9wr1wZ8kwnGfrUX7USxBDoivKX9OTG2iIt7RSal CgIvlJumPI4ey_Ab9zHCJFHX.UMGzo3lWw54miPwt9y4U_iq5WN.HkXPsSKpfBJloIuvzBBHuKU5 WKDfedrba_eXLjDBs38sE1JuEMCfD9TtYDxrCA83kBBMNRgH7TfgJpccBjEurgZtn9uHcGdQnn2. FNae0_5Oq_kdQg6sL79FvxE8vt6cZKgUZBZ1K74YPrZ4L4rT27XBuGyvWkDgRBWd9A_CtYpzlVWq cB_EKswkEjUzT6Wg29zIWGG1S7RZwud6jqMMpGpnzDnyWRfqCMk4bAKcoQud7lEhw5l4TNo7cM.n BBsuU327NIoCiRK7zCqcyZt1Na2Eh5sj8RDL9AnldhR_XqtmeU6kbEOYOXHOd3jtgVxujywl.FF. zi7fZK_vudu3eliTQ.3yOBLBfzdtqJFGnWS8QHRfIxTIfSq1MCoHKULQTKSDQOGmz9MDW1S4DKUk 9VKinv9QViv.IxKNhnGglw4jpkUYtRqCEHs_y_Gq.jRNR9U.NKxMcIbhRpxrcbjfodNISBJNHF5t CoVxOsu8xrt0JU456mBYc2R8uIBC3DAHWGxShKTIuq36vK5B7VKsCFhNge7FwRSgl0bcYRc7wcak M5psqK34U3yMumhY18CJ0cxglZdbln7l0pQRSRJT8DGrn_vgBk0lJEcD7MNpcVc9LnNUwdZhzLCo qOyY4MU6OLo3olxOA1GOC3yuicE4b4s2F4UkxMW7N_Hf832x9aqTQzXWMuhlbR9ogHUGkS9VHDyB caFIB2csKtMpKbvWrsdGz27EdwnY7R15ETPHPF959ldQCSIPAKcelQK.TdqVe.cp6gFV4FlvO1zy yFePnnstGkipK5ok2Y5AwZQJGyCMH0VJwzw4D0s4TxmXW4T4NuaPoMwq5o_n3bpA6h16277CUMn_ lu6Y02cGnMJWYRttXfgHFQTnaGFN3x0kOS6CBuAm7AO1aFBMnpMQjrUk5SBFmwrr6oljHn40qty5 f0WMlKe0gDoX4ubplqEL0ZmUfkcAAloNd6zoUnPsmCt25lg2GaMSB3BT0tYI_BaKhZce1SNbeB4b Ml1iE929sniUQzAk4pU.ZXVVdQOgR4QOh7Xeze5qf_wxzAaI_vsBtokIwXEyCcWNavajxxEyN62j 4W6TcbdmibkCgXmVt3uKD3z8F7.N9sGU7RoWW_1PC2HpYutxrhQLr2CQR8.MXeophw2lOHLFSPS. 2jT9L2RZXqSDNWw9_hvEvbhrSNbjnM5If8Cxm20KUErRTuWetvgstqOIcwDSlPlxQXNrHgtk0fh2 9GhQ01scWXP4caDC2WJLcwvm5tdHjngz_KjD9Z8YKOECUp5FfHushNYExSoUepouJ_NRAeTdQRJx o2hg81Q6pybGO_mAcvt182IiCIe4Qwn5zSepLv4Dis8nj6t6RF8ircsyNVSFnKMCxwcliAo.OEbe XSLB7KNVOqfSxW4GzFZVS5ql2Jv.532sONNGBbBJz88fOqY_ijiVzsRIWSsxjl7F_tiUxeotxYSk XbJscWhF.pLUW9DMmEY6TaTfm6egElXtniEHOf1.vmMumJ64mcCQwfBsVHFNJs_W2PPHNU36IhBg XCXR0Qmf2zB.I.KLh9Q4_xvJACMDgxZ55P5Evt1LSxsiBscCJEqyMUEwB5WDcwOA4PSYBMuBD6eL 6CV8A5PXOwYDY0KU1kGa2FCEwsMcVKAo6TtgLygbHkhqz.R4mb6a9V9Ec7uY3lGv_uX_apzmcWLC U.IXi_nqnBg9KmIlHxFnHXNwwrMmWEZuPMPIT5pApXJSCpVr8xAZukaGs9KQJ7iwBkm8940UstXt 5i3K5ZPUmdH7pQJLaVfeaSQXgvWfTHg3wQ9KWL15Sd6xAYtMBsPBzdCgmXVVS4sQexA-- X-Sonic-MF: X-Sonic-ID: 201f1f3d-a7b2-4fe0-baea-355e8663e1ce Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Sep 2023 11:26:33 +0000 Received: by hermes--production-sg3-69654d8bd-gltbk (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 97b8181b8f6f70c4bcdeaa373e35626b; Tue, 12 Sep 2023 11:26:26 +0000 (UTC) From: Po Lu In-Reply-To: <87sf7kh1rg.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Mon, 11 Sep 2023 22:51:31 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> Date: Tue, 12 Sep 2023 19:26:20 +0800 Message-ID: <87wmwv7hur.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 4718 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Manuel Giraud writes: > +#if defined HAVE_WINDOW_SYSTEM && !defined HAVE_EXT_MENU_BAR > + > +/* Get information about the menu-bar item at position X/Y on frame F. > + Return menu-bar's item char position in H_START/H_END and pixel > + position in X_START/X_END. Value is > + > + -1 if X/Y is not on a menu-bar item > + 0 if X/Y is on the same item that was highlighted before. > + 1 otherwise. */ > + > +static int > +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, > + int *x_start, int *x_end, int *vpos) > +{ > + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); > + struct window *w = XWINDOW (f->menu_bar_window); > + struct glyph_row *row; > + int dummy; > + Lisp_Object items; > + int i; > + > + /* Find glyph's hpos and vpos under X/Y. */ > + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) == NULL) > + return -1; > + > + /* We do not support R2L menu bar. */ > + row = MATRIX_ROW (w->current_matrix, *vpos); > + if (row->reversed_p) > + return -1; > + > + /* Compute h_start and h_end for this menu bar item. */ > + items = FRAME_MENU_BAR_ITEMS (f); > + for (i = 0; i < ASIZE (items); i += 4) > + { > + Lisp_Object pos, string; > + string = AREF (items, i + 1); > + pos = AREF (items, i + 3); > + if (NILP (string)) > + return -1; > + if (*h_start >= XFIXNUM (pos) > + && *h_start < XFIXNUM (pos) + SCHARS (string)) > + { > + *h_start = XFIXNUM (pos); > + *h_end = *h_start + SCHARS (string); > + break; > + } > + } > + > + /* Convert to pixels bounds. */ > + *x_start = 0; > + for (i = 0; i < *h_start; ++i) > + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; > + > + *x_end = *x_start; > + for (i = *h_start; > + CHARPOS (row->glyphs[TEXT_AREA][i]) != -1 > + && i < row->used[TEXT_AREA]; > + ++i) > + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; > + > + /* Is mouse on the highlighted item? */ > + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) > + && *vpos >= hlinfo->mouse_face_beg_row > + && *vpos <= hlinfo->mouse_face_end_row > + && (*vpos > hlinfo->mouse_face_beg_row > + || *h_start >= hlinfo->mouse_face_beg_col) > + && (*vpos < hlinfo->mouse_face_end_row > + || *h_end < hlinfo->mouse_face_end_col > + || hlinfo->mouse_face_past_end)) > + return 0; > + > + return 1; > +} > + > +/* Possibly highlight a menu-bar item on frame F when mouse moves to > + menu-bar window-relative coordinates X/Y. Called from > + note_mouse_highlight. */ > + > +static void > +note_menu_bar_highlight (struct frame *f, int x, int y) > +{ > + Lisp_Object window = f->menu_bar_window; > + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); > + int h_start, h_end, vpos, x_start, x_end; > + int rc; > + > + /* Function note_mouse_highlight is called with negative X/Y > + values when mouse moves outside of the frame. */ > + if (x <= 0 || y <= 0) > + { > + clear_mouse_face (hlinfo); > + return; > + } > + > + h_start = h_end = 0; > + rc = get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &vpos); > + if (rc < 0) > + { > + /* Not on menu-bar item. */ > + clear_mouse_face (hlinfo); > + return; > + } > + else if (rc == 0) > + /* On same menu-bar item as before. */ > + return; > + > + if (!NILP (Vmouse_highlight)) > + { > + /* Record this as the current active region. */ > + hlinfo->mouse_face_beg_col = h_start; > + hlinfo->mouse_face_beg_row = vpos; > + hlinfo->mouse_face_beg_x = x_start; > + hlinfo->mouse_face_past_end = false; > + > + hlinfo->mouse_face_end_col = h_end; > + hlinfo->mouse_face_end_row = vpos; > + hlinfo->mouse_face_end_x = x_end; > + hlinfo->mouse_face_window = window; > + hlinfo->mouse_face_face_id = MENU_FACE_ID; > + > + /* Display it as active. */ > + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); > + } > +} > +#endif > > > /*********************************************************************** > @@ -35538,6 +35663,16 @@ note_mouse_highlight (struct frame *f, int x, int y) > w = XWINDOW (window); > frame_to_window_pixel_xy (w, &x, &y); > > +#if defined HAVE_WINDOW_SYSTEM && !defined HAVE_EXT_MENU_BAR > + /* Handle menu-bar window differently since it doesn't display a > + buffer. */ > + if (EQ (window, f->menu_bar_window)) > + { > + note_menu_bar_highlight (f, x, y); > + return; > + } > +#endif > + Thanks, but I'd prefer an option to disable this. Additionally, could you insert the preprocessor condition in a comment after each #endif? Some of the preprocessor blocks are very long. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 12:49: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 To: Po Lu Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452293614625 (code B ref 64440); Tue, 12 Sep 2023 12:49:01 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 12:48:56 +0000 Received: from localhost ([127.0.0.1]:56440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg2p5-0003np-KZ for submit@debbugs.gnu.org; Tue, 12 Sep 2023 08:48:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg2p0-0003nZ-Fr for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 08:48:54 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qg2op-0000zx-5a; Tue, 12 Sep 2023 08:48:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=A9VVt4XPiqmaeNNxjxchoPCR3vxHpscWW9dIYnz9MSs=; b=XtHV5avk29ff 5ZdsOD0O9NHxvhzvrv+7rP7AI/43FHDZ8f5EgLvB3kNAEOQ0ZqGVwvrSwsVX1TNk5y91j2sNvRZQj Z0ZkHY8dB5mheJjnMH1GXcgBmFLJJdZIlypu7s6Rp/ZVI8hqMaDLu4Ln50VcTCGwAJMFkYNLk06o8 TfmxOHEMGxv9XoOBX8jmbuvkM115I4RAN1wcKzS/wJ7aR+530oXgGNk/ezbQOPnfy6xvbEgpq1uCs m6T4ulnpg4o1GLFaDtEYfiv0BsLuez0yVrfyG9hGhPowsu6I0lt5rtj2p2rbXx7KIx0CD4F7Jlb51 e7wG7uttvhyUCgxm5EGtOg==; Date: Tue, 12 Sep 2023 15:48:12 +0300 Message-Id: <83edj3png3.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87wmwv7hur.fsf@yahoo.com> (message from Po Lu on Tue, 12 Sep 2023 19:26:20 +0800) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Po Lu > Cc: Eli Zaretskii , stefankangas@gmail.com, > 64440@debbugs.gnu.org > Date: Tue, 12 Sep 2023 19:26:20 +0800 > > Thanks, but I'd prefer an option to disable this. We already have it: mouse-highlight. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:08: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 To: Eli Zaretskii Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452403316333 (code B ref 64440); Tue, 12 Sep 2023 13:08:01 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:07:13 +0000 Received: from localhost ([127.0.0.1]:56459 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg36m-0004FM-Lk for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:07:13 -0400 Received: from sonic303-21.consmr.mail.ne1.yahoo.com ([66.163.188.147]:41973) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg36h-0004Eg-4N for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:07:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694524016; bh=urXogbZxHK6N3h0kuKcBNeXp5QnpEZf371m0UTYj6Vc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=L+fRnjpZqAag90iKbUEV26507iIPxWajOYoDEhD6FAcK0hSX21C/A2aGO0QJRr3NK75Xgi19xjK2jIRv4cIbXUdyV6kSxPnV1yaNC35hK/SDDQrlr28E4hGX88YBufemh/K5Et+QySPAY2W54olXHKGgEju+XdWfwOQoEJLU58KM+4aTB0rVHtAQO0k7jV4gnHgJ2acsY8J39mDGzcfOYce2hQxmvcIIEwXmavTL8L3pfwg2mFlN6dQiIYvNW4puuzE08FVuifz6V+We8p0Nx9RcrOdIb1IWNpb7zEF8eBj957tuwo0IoP40/j9Bqhnq2bQ1uv8WzLsyR0pjMnU7NA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694524016; bh=392Kp6sTkdPuUH5VHNq1gdn4xWitV4OlJQJujF99Tqg=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=ozyhl+s5CIXVWCFv3dAAXPTRweK2YjbpASkQS+urfJRpH2h+N4h1uD0Mx5mU+i+KLg0SecBk4bCs8r6Dn5fyuGIGkmEdsDLWy3BQj0WaBzdsPfWUHCEVcYKmmBjf6wFcPLmv7QctDf2RU4yBIDWHvkLswBCofEGxv/3rL0xvEECECsCBVAYvkbVlM/F5FMEDl+HXVksngpY6mmKDlBQaPtKgpggvs1JWeGLJ/RImErErIxzkqqtIXSeG1rGVLCjkc00PUJtDPFft/mdyYNUZzwwCOPohJeAzqmUIhHTUn8EN9mraCBMfVheTBAcvAN8SSgUYRAtxtESaxzCz2ZAHlA== X-YMail-OSG: dRMcep8VM1lWnLGsUt_mDW.WAW2I2HuerbkF95A1knkTc.DjmcUkjRP4C8y9N6n cY35tHYeN0FAIoy1KlVhYACbQmsW5XwPacpdbZTFFayKzDoCx1SpTqmKM83n4rm8KRCBYlRwJprQ jclBdLFiNnTEfxyNJPtSkHNWxMOyc6MNn68OnRiHjfZClLeDynlDyx_fVtANiyAe7S5tMtIXVSkc Eumnah78ocUA1DCaKDJUZ.2wezS97yXUQVEXwRu74JfGE7aP6IQdERkKPJPlGePR0PqmgNcKL3Ic 5mlJKbzaXgF5AadzMQQBmODHVAwksuMsI3yg9.3wYuIPaTj565Fmajj3NQM5dypfZFREKcm3WZyD n4shCTr_3MJ2pD.8LChNG2mi2HhpXSbFWbWBSYm3roCn0LJOzTiC_YulNBx211G1Kujxiq4wQV71 5bV0XKsf64CMoXZpzmraDqxP8au51LazqvTH.ovv3bkV2IueUXav8LYefCpXSnx5rBFj_vb5rWsU MTFdDSIxa3KkbcUGllFGlQYYqr_BUIZJDZmCT.HFvexrIpSiRK_dixy3U1ZSwV0aE4bR9XyoxGuC dhmTU3mm605Ng8BTv3J2RuhqotcOwnJ62nxN1qGpKpDlb_AKQkh8fbhwB89nzOGFIaj_7sJD9K1H guAIJrds3jAI2kaVmNDFjO7BIPb65ySMxV0tCSTYYXPeA4OFZUUISKWmsj59gljCH0zUQKn6K4v. nfhLbIUixEFNRiw_BJ56Ygt2Q1g0eQ2QynEjW1t8QAojm52Dolt7Ao4WGt8.aLu.42gjYthrOmig lTB9zCgF5UKOB2NROaIzyW50Od3yQnq7Bs5RNfizjvwcQCy3oRfocjaqwcGUfsFTCxt6FoCMde8b xn7_q8RumowZZa72gmcOGMTCjIXA331JgqIuBLr6sxDtqbA9Q6DaMh8a5uSmTTXuCTFQgkGD9PRU Jpr4cgm5bRw6wyt_38YHNpHVROQl2GqO8zMNyyqCEnV4eN5PUETjNRYSql1AesAFdFnZToInRc1r KJTCnTDaszHTgbZ.rimR3a5bz9zkBtfav_sjwemQvWPHNMQ269laWkOoJg5sKMGPz0D5U6RzA2I5 A5LdDKsKu0Ph4c87.mDx5ayPVi7QoK3oEzJ.GVSh_98uHRM98yCx5JvPI3QqhH8EHAZn_n7Aqqss S9JKT9SXvI0TZR6uklNeFNtKGtDX.vtuejmmNLKO3Fv2GQgojR18h94ghT2kqoOsQzqBlv36Vt6e 8TwHG2kcSLV2JtKR0Bc0nmS3DmFi6.lvSwHAId6RjMOa1FG6YVF2WVC_P21g6zlo37C5yuyWpMlf KRbl_mPpEPlgw4b9XWOXWrDJbu2yXwYMsgJzyPNOCfA1M92ELdbwo6K3AXCi9iMqnLAuBYNRwlym qzLMV.Jaj3XWi.JzsaLOmOGLwQSl8LXeZZThPOSEveDzp8_egvxHpYgwLOtQJqgcM.OvpghfT99V mm9vTzlpbv8XWW4XGHYVPg.bVwCM9QD8HiTQ638pUZokDJPl5Xe3pcKfWmyZ.6ZpNf7idp.eurVM S95cFggiWQwPUMSPmpGYKkgGiuv.vOWvhSHQPNQCm6gS5IVktORQpieJGMnJ8EROVbVeV3jIGAuF 20gfeTvTQUQeAGgDfKU44RDV1mQWRLAZ5yZRFF0eZ9l_li5geJpuBoxslp8ufq5cH5WApIV0BRYb cRDqCMhHsuNqoDYXwPxhT54JAI8oigvdmzyZO8Cbsl_nmpyFySzD67YayPKtoxtGEnFYceaaXIjN zaF03d3OtMFD0dD4SiB6BJFIbbvJzj8N4eqtxYSeA1YTFy7BRX8uXM6IlmFLBVbWzI7uceU391VL 9dn5WFaME1KnDBfNUCCUrEqVzRY.iT3tX8LlZTxVy4Seykua_xnvbZ7Mok0hM91c4MfwR2DkyG6n QzYm3Z1kQVrn5CaxcMVGUTIOohfWqGbX3Nw4C6cCtz1izx.iEuRGH6YLSZMdjO6l0Hh1gS_gdvJ2 UcoUNq.2wrn8P6hTkW9lyUqq6G8Ae2E5OwbzmwnGv..giBPUDVGcRFxKtIWloJARbgRE69r.P93R NoH3BTqfRcGELacpma_pGR65Ym5ZoHvodhTLTTMrLow7f.6_QIOP6pZTkVuyjwx.6ggE5gF86X4U Cbur6pVqhGMOeNxr5Oatu1AIY9eB_2BlFABWCrPUbZoslbrX7JXlOzh4Dh8drrvvbUCQsxCI1X03 pY.3PAtgJGeaBt5KS6lo9t7IVZQ8_c.tKGJT_GPMss3jyvC3bwE2y2UKUWkfz3VhQzCqEH6OA X-Sonic-MF: X-Sonic-ID: 14122561-0e16-49d7-894c-e16e3d14df20 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Sep 2023 13:06:56 +0000 Received: by hermes--production-sg3-69654d8bd-2bh2f (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID c6f57d072642ff15b0b62c1f52ac6aea; Tue, 12 Sep 2023 13:06:54 +0000 (UTC) From: Po Lu In-Reply-To: <83edj3png3.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Sep 2023 15:48:12 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> <83edj3png3.fsf@gnu.org> Date: Tue, 12 Sep 2023 21:06:48 +0800 Message-ID: <877cov7d7b.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 197 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > We already have it: mouse-highlight. mouse-highlight disables all mouse highlighting, while I specifically want to disable mouse highlight on the menu bar. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:17:02 +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 To: Po Lu Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452456217254 (code B ref 64440); Tue, 12 Sep 2023 13:17:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:16:02 +0000 Received: from localhost ([127.0.0.1]:56484 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3FK-0004UD-Hg for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:16:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3FG-0004Tb-Kq for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:16:01 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qg3F6-00078w-9A; Tue, 12 Sep 2023 09:15:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=B3jgCvmsghwC49n3W04dOrXeWc0Li9IlPj/6c9WtLxQ=; b=fc6lPxYeq8NX /Of40nYxe1JLrUAybiMfR/jPh0eAsAk+9r90zWLBqlRvY4zlcP3196Vkel7sbXvNF8GPlWGuOHVn3 szjkhPl+ZqFCCJa5jiIeZKDN2NZHlUDjnTfJN+xoZcwo5hfZW7pMjFT3x6zSdpogpSwj+5TeX0FyD q2s6LdlLoyfCg75vc1/Bw7H3+LXsiKFWYx74VFK0EIEbxT29SuVr0k8dtHMNQb88OXkWVeD8bCGQ0 IHMS1Plg1XIPBIYSAi9toN2T6xlK7/CQfb5KMI/PeGqQlk6Sa/yYjwJZb4IFCYNeoTBTNgA6uAjL9 rQVo/nvXqQ7RRt+QyGJIUA==; Date: Tue, 12 Sep 2023 16:15:29 +0300 Message-Id: <83bke7pm6m.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <877cov7d7b.fsf@yahoo.com> (message from Po Lu on Tue, 12 Sep 2023 21:06:48 +0800) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> <83edj3png3.fsf@gnu.org> <877cov7d7b.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Po Lu > Cc: manuel@ledu-giraud.fr, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Tue, 12 Sep 2023 21:06:48 +0800 > > Eli Zaretskii writes: > > > We already have it: mouse-highlight. > > mouse-highlight disables all mouse highlighting, while I specifically > want to disable mouse highlight on the menu bar. Why? In a GUI build, hovering the mouse above the menu bar causes the buttons to react, at least here on MS-Windows. And how is this different from, say, mouse-highlight of the mode line or tool bar? From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:21: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 To: Eli Zaretskii Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452482417786 (code B ref 64440); Tue, 12 Sep 2023 13:21:01 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:20:24 +0000 Received: from localhost ([127.0.0.1]:56502 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3JY-0004cl-5Y for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:20:24 -0400 Received: from sonic302-21.consmr.mail.ne1.yahoo.com ([66.163.186.147]:44260) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3JV-0004c4-OV for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:20:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694524811; bh=E6Tm16O+KOQyofdJcDwXw0xJRpbQXoLE7G3rfdKGse8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=C39Px8m/lK0T4sSQgU1OSRtiAwovKcwU/aRfRcZWOza/r4vV3nEGEICTDuosAL/6k+BAXSCfvlJNqBbSK1Nf3jEu3phnBGNeDLUT7lezfdnDz9+xeB1WguhRrosNl5K99J9r6LtuSByUh3ldFJiSzqwscEOZSjlm+aLf+AOx3jmIUTDjs4pZr73nWuo3x6Be+S9PWalk6ldYuaPF28h3TuiAqlVTGDphIHYUFB8GvooVumxwfPt5sPSUbFIr7zSi/JAoN4Dfjfn3KtxBu5BVXpAafzzUOsb+xyovmWmcb6aE4CEu/0bTonALBgvbCR0yfwb0u16hyTlYFpBdLRleRg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694524811; bh=jaqw5aKliajcSKWcoZ3MoqeKOTwv5OhL8H6O2qFJURw=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=T6gQ/16IK96aYqyaNPZ2n+lYzUhsBxMiPO0RwNxEBdz8os5LIQk5izDyV4PlFJIQ0xSjZSvFYitlXuv0Ew+eii2pfuzSL8LD//Mts4E0Na8lQNR+/rLMb3DeMFx8wE1UYbm2/CNbKjrGzB/8mFoN1iNP8npSS7J51LP+bXGwGlRzKeXGVFXLUSdMDnRN1ZTkrcnbVKWzfBRSsgUHMU9ouG3Q7KMJenktbfams/7uuAY678in9L1LiE591qZyjcgj8mC8BIZQ5YDj5PLs8m1jGqm86+D5PwwhbJLFbElCRQJ1Dymg/KHE2ibm5IYsB+8Yupj9z2151GnbBOxYhvBjZw== X-YMail-OSG: DWZ7MyAVM1lIuLGLBmbbI8FeovqiB6ChoL6PfiBVdMajVShYncSf4PLrYMm2OD8 GNruTOlorAjnwtYDKP5tVhJa7qAp66Lt1Tl.K2bEqChpTAffDwBubGCvYbVy.IiewBPKpBLHfYkI 9HtP2L0diUx89T8E4EgkHanbTwQxvSifWc9fgkKnAGlCSylE3Lctg7dSp6V9JSWm_vEjGMQjRZjJ JnGVzBM51xnOeHf4jSEjmX8W5BjbMY4WgVnj4gJGfQstpWkaOzoGGbhyxiYdlA1ynUw4WQ3LAKZd y7OPdRjivw2HJGgPdsMGSFOm0iXZF12Q56cAGPCJiWewYY6qOjsGSH6wRFcd9nzK.fF9lljxhIC4 FmV4VCid903ltQco.R18zwbZJxjm91FGO.FoK_1nCDTEC7ac0f_GExj0x0IOq50PpZUrD84dHtbg 2dbH2a8pYkdWFCFvaLOhWogjftlMyZ6tE1F9WtEH.UeiRKSLMXnetCEYPzLtS.xhgswDKDD4Kj.. puQTB4DuhFckadc7syxsJM4NAc.G4U56riij6DO1ZOzhXSaQDHhAuWwvrC7ekeoNqsF2KYWlbV9Y 3cqZUtBF9ahVGgqjj8zD52EIGKNPYdE.Dsrt6zjaercindHCWB9Ym1gOtIOop4ViVmY2GeJPdAez Ja4Vy6BEhDAGzHQs0MC5WIf2G2CHYIWSuBay8s4Sey2Vb3x5gVjxxQy7_L33c9YbabupiPweG._a jf_dk8F2PSBK7tF6pvGGvoHc_BNfVxfMe0rq2c5FnpfP8OV02k.oLSW37BIG.IbUKR54qx4Xh7ES 9Chc8bbD6GXuUkFmhRQ082paIn9BBrTUyuqVcqoA2Mqmaz6R9eoqIqBHjDi4I7Fv.cD.m2pDgra8 Gd0y10xlv4cmuHaXl56Yc1z4I0VeAgrK7PL97CBlRUjJiWcDmJ2Ppt3bh0HpQutVLzyWJ_6Vch0m UmR0DbVKUCESR5ZGFrqsRnR7h6GYgmtCP8fLwmrpk2qI8X5bm_bWnSliAfh.t1ubypaom3YvSo7c bPJx9aqdoWu.OojLXQD09M6PrwdqaL6Q07_WKq9cyjt6_gtGnKe3kKk29S_HuH79s1G5Qp.d6s30 7WN4RmyQyHtTR95egL2GoefnqD03rQhkFoNZfo7IRVPGDvhNxtz9wuJI4arw3f9u5X7EQXw6c9vW rLoEfblYwe0MIjsKdoyrVirrorQzyQhPW5QkguxKz.2MglVBf6hDfMTvQ.1am9YzDCmTWIftrlV1 xfFlvV_LMtvVkfFkAABYNzVpdJ_k0lDEHvukSRkp6InVPIuVS8hgVUHzIs6LYdj8jBw0vIXFJFE. ExTj_SuTQrklmZUC1jpa3SCQ_o4zCntC2a18NU_Lu1nLjdaYPtxs8BudMXD2J9O5DV6YTE1XQZBT U7xgEy3PxITA5XWm4UrKFyy8Jva46Fjvcc1aHO0YEBNpT8cc9.iUTfPjc30bJe51Kw51YjVWP8uN Rs2.hD0dr6kQCWVoZ50.254YP9aSzXOCCsyVKUJF6XJDRxn_mF6g1KybPaiha3aNm9RjEFa2UW8_ W.snv.kK35Yx4uuI72H6b7SpPVcVSTVLs8gcftRed8aALLFfpAkrHPS8t9A6xrt4TVYRGbdFMpuP OMewsDI_.RNXT9fPh9LUiD9Ni_s_yYpLD5JGyEYXHby0Q4AZbK6hyn2yarxyKopE_y9rSdmtMCZ. HtAtWOM9mzPTUPyD6J5RFhwaxshPC7j.Pd2YEH9poFT2MW9KUO3Rh4ikfjn8GioVMDOvoVl8qLWJ h5OjkOV4gaVsVXbL8m8OqAKx9Sfu8X7xZ5TNqYzoHsIJzsusGqBHSZAb1cXtWLYyvFRUKc4n7Gi9 aJ3LRxrwSZSI9I4PdSVLJ0MUSZ4rHbYf5n_w70vwh05fpcdHveYAemaDJZDRj6LJDfKOaG81jjOB SlcVQTWA8GtnYc8ydv0x1407XSHobHFsJ4vcnA.7Rt5WXg31eik5E5iV0ZL5Xl6IxHaoBGPD2I86 5DlVkbEojShD0Ufh6EpKR5XDD13oapmmyQG4u33WuL6NMsG8EA5g5qVMiAagOxtVUwJBiJ6qiUz4 t1XgWU1PTKEalNUOLW81tAnPAP5YA8xjKwXhQmOtoHM6lPPhoP_3vVHF0w35Y.J3.dXH.ZZj9Uy_ UsPtH5.JCppTqFTKUk1b5__LZ7MCFJ.Mcb3Wg30nhPHisrtNnb.gr53qhp.IWntjVu0DTbS9pG1G oWoOYRkZXD.YsfUZFnZDTdyvmEMiEu0CaT_uUwpascGNZS5hOrtQfMWDVBPkHL4MYxsI- X-Sonic-MF: X-Sonic-ID: bbcdc25f-75ef-4f14-a8d0-b570a99b47de Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Sep 2023 13:20:11 +0000 Received: by hermes--production-sg3-69654d8bd-d8v2r (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 87172a77dc95787a2d20f81ec94074e3; Tue, 12 Sep 2023 13:20:05 +0000 (UTC) From: Po Lu In-Reply-To: <83bke7pm6m.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Sep 2023 16:15:29 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> <83edj3png3.fsf@gnu.org> <877cov7d7b.fsf@yahoo.com> <83bke7pm6m.fsf@gnu.org> Date: Tue, 12 Sep 2023 21:19:58 +0800 Message-ID: <87y1hb5y0x.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 517 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Why? In a GUI build, hovering the mouse above the menu bar causes the > buttons to react, at least here on MS-Windows. No X toolkit does: GTK, Lucid, Motif, among others. > And how is this different from, say, mouse-highlight of the mode line > or tool bar? I don't find the latter distracting, but I do when the highlight is on the menu bar. Please, let's not argue over this, when the alternative is to introduce what is at the maximum 10 lines of straightforward code. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:36:02 +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 To: Po Lu Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452570319472 (code B ref 64440); Tue, 12 Sep 2023 13:36:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:35:03 +0000 Received: from localhost ([127.0.0.1]:56530 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3Xi-00053z-Hx for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:35:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56842) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3Xc-00053W-Kl for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:35:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qg3XR-0000Ad-MU; Tue, 12 Sep 2023 09:34:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=DlNHA0Uvq7Nb3JdU82Zbdz8LAffuoLLCaoqd5cZZXnA=; b=UhOTRBOXBBhr yH6GuYbkmojbiBwsHgrpZ+KCWhKLtPmfCDligqHVfBbNYjY34hsEqvZrZiI2iZIgytk0Vp5gRU320 M2T5S6/gbbChfjWC+8ZUnvPY6gqR5t97p/Zay/PWHjqG91sbYq16u2pPT6iXtz2No3kT+Ij7K7p+c MobTbR1CJzjF2Yt75znJcuubliiYR9AyUmwfd/M4NGPlb5q1p1Jax7gGZv7PLRHkX1hz3Q69BK7zo Jli1e5Vz1PPLkeSyeBmly1bZBZH7AdEt92wbjRIOS0lOhw+N63IUf5GqDI9ZUwWRj0wJOR3UXVy6c NGsjj9/sE+BgqDnEHrMa3Q==; Date: Tue, 12 Sep 2023 16:34:30 +0300 Message-Id: <83a5trplax.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87y1hb5y0x.fsf@yahoo.com> (message from Po Lu on Tue, 12 Sep 2023 21:19:58 +0800) References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.fsf@ledu-giraud.fr> <87wmwv7hur.fsf@yahoo.com> <83edj3png3.fsf@gnu.org> <877cov7d7b.fsf@yahoo.com> <83bke7pm6m.fsf@gnu.org> <87y1hb5y0x.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Po Lu > Cc: manuel@ledu-giraud.fr, stefankangas@gmail.com, 64440@debbugs.gnu.org > Date: Tue, 12 Sep 2023 21:19:58 +0800 > > Please, let's not argue over this, when the alternative is to > introduce what is at the maximum 10 lines of straightforward code. I could agree if you applied the same standards and criteria to arguments where you are the party that is being asked to write or change a few lines. There, you tend to argue endlessly, it seems. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:44: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 To: Eli Zaretskii Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452620420526 (code B ref 64440); Tue, 12 Sep 2023 13:44:01 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:43:24 +0000 Received: from localhost ([127.0.0.1]:56539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3fo-0005L0-9K for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:43:24 -0400 Received: from sonic301-31.consmr.mail.ne1.yahoo.com ([66.163.184.200]:45751) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3fl-0005Kk-LI for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:43:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694526191; bh=+U5KcveFzPqOYl+t00+sIOi6VDEZPYIoTd+aj59zdEc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=UCkWdIYifKvVoM6OAtyn8QOSxazkCHUeUffEsU0CjkGelz0/mcfc17kdz049O8bEfd/+nFeQfbXXhn1VcpTuQFFy/h62wgWNyuy7KS9ljDKuJ7YDX7yr8bsMZkbPBTm0tkkOBQtsACF6VztolQ7zWzQRe2ymldV5bSS98iG+nlD0fJcIVzoWHHs7EHqfJihJRp83x5Rte4rcQmylKj12zBymUXAIK1KDb9mWCP2WqOZcOVdZOagW4/PFCLlT8wEsECXFcdYgSxSodmikY9p6vfbIBTnXih7rykq+z2zNWwO7Cn4dptdMTmk4rQpvojyZIUwfTr9Tpg8ew+yH5SwJBw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694526191; bh=j+Yteq9gmLFNQ0PZWfCLBSGCF2t1c+wlZmRYLx8f/6x=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=WgrX+LR3iaQYN9N1ul0BFnX7oqvkgDIQa7RaGdvAIN+9Fl6cchqBE59f92FQ8chTsk0+Rl63pyuKmd+AHXRNvFLt9qCLL4gLXwlMvZ7YVpLXkXIXVrbG1d0UylOCpd5+xJEeCfkfKflFcDzTafVyqjb4QNEE0IFhNtP0GVx9/Lodo6UBHh96ipXTSthpmHVJDQuvEfx6L0HcAt0StNr154iCpXy3VX+7zb8EMzrGKnQsaW4yGxrYY3bh3/dh+atzUem629X1FmpD8L5VAEJWCLZipygQGth/mZonPnL7VbESEKzfFyYImpPlY86FcsMxpb67C+4gznK9RFGS4ek4qw== X-YMail-OSG: Nd7j2ssVM1lWNtaIMuV8q7BdZQRv3P2igDWiBV6ZXCODK.2lTC_JmOf.qzJIlLP qVPlwTmEYQye9d3o7QWHyUEA4sEZDG0lDaPJJJT.1AOwI3Gu0WAGSy0PKJ1Adps_5gQnrTeMv_Wp 8mQYHE4l7TxDvFcydrYaliY2FoAN4NmiRE5LJUN6iWXZATAQJbsroWdU04FVt3.phD5XZYf8qHo0 N3ZwsJmf51vdPWlI1S46VrSOIv8wAmmVdqFP3vasJMMIJqy4OF0lsPvYvg.zMZgRTcSKVboak8Cf DS4ANxK4CZlnjKFJ2.zXSxQXUnJbGEfVykQYPAI.Nphymk9RAMeb_vdyX_dlD._Db9BHtmpw54XI MlB62UTUTn.a5Wvnl.2.5JSoC_FpyVv0fGL9KvbU9KpvXI.dV92AfB03QBe2T3jdvnHMCzd6_Wt3 9vKiZ28lpfPGyorbtiLcqpBOvaSo1hzgv_Xr0Yy0AK5WQYLE4Vr5TeTL_gW3R.Nydp_kcyhW9b8h weXrvxrowJ0b0P8scvNLWCExoMjpD5ApbIwZDsu755XCiVMX3KyhaqGlknebe3o5CSW9HMlmVwnI CrhkMrNcO4mMzKnRPGYwvtB6eLimiHI8neJf2kZf6yuXV25ebU_cRetybsuQ_TBHCkZ.QfoJ2bL6 9qyP0XtBGzyQZj99PIXHZzdmVH1vNYriQxbGx4CDQLWMgtN6AFNcZDQg_gtTEV2xLnXwPsLQY5gc N_VNZ69HzqigeLxYIynEuJ4h7V7axdOD67VqY3PaJgr7jiYmT0O9m_H5.1OdByrQLbLP0.Xy8_zy .9mJgw3ht4GZ7FgGZ.2REg_LQavxGQaZ.HiJ0ofsjDT5iWGhUa_2_PXTUfDFiO.GMskelZmcHpGt msH_6lTme.IDzDt7lAShkNl9qIrfu6n37Mkd4rN5HgYn9N9VwD5Axk_hI.1RACVBOcwgrtvwWPdi UaR9_x8nFW6qN.a2Vul8bSg7HaQYiXNUqX81fF.zEu4japOVTGGjcfg_CGciamzMWb3yTvB9fzZJ hGIAR8E0pdUjXaTyPf.DAir2uDVMNyXLTERvHB7ER3ngR7AGw_GV5czvCYMDDBh9GQpqzRtVcCse BHHtYQLtjBlqryXl7pcrAMWEns0fxVpS9WMawzcAt6.tjx9gUXv4xSsp.6azuATIJiIn9Ch5q.JV HnAGK9zwMWE8lSe07XBibtkI1gAuhszLQhu.X13WAJlvktCwyGGmTYkh4oeArlU3i.J8lGnZ.nOB VyGbW.f1226CW3GeA1rXg6FFEjt.9vbtItz7mzUsLPivIGlVk.mXeMTFZqPuwyCeLC1Ec5oWW8oR HZ2q8cjQVFVimDYVvmxQnD1YfsuIwOZTvCZ0a8zUfqc0t3KyuOgaugbKY0bEJ6YfIo0stjenIsvU PJeBHFhpK.cMUU9sorr6Btk0OfrHW5Fj8JC4mcqBmnZKgt2O.MG7jWADxIwVEwZatzviGXOmZSXD 8sJYufbjsq5tdvGSWt7pA8eALUbq7enKCvZzSM.JAi8mLJBU4BlKBIkbcMdXPnaBQaIvhe0Ye24H ao3SJau7KGNMRYWXVPoDK996SlN0z9oUl2A2sJvZP6ciVtZZlreTBS1ZuWCpg76x_FttfZ2fl3kH mVL7M61NvBYsWTLO6QTEzNJu3wMWt8OJF73WYOlqwlZesXbCnSCDqhP96ePrBmmiFPvwdPzEeCTd nuEB_2VZpfCUyI1VsVRsKVA4gwdNOOfOexE8f_q8hrK0lWArBV3n0rf1z1g7DnrAryX2sTR1OOA0 bHjJ1jz_J.XlZZqv5PVwSJJbNZ5OxQgNF8xueUE1X4konvuSMYOrJfZXf3F9FrqL0BmXEqECTCNB 1qMW9TgqWB.Qp6z9BOSk0A3SuUQKoljOTBTqj51VALyKw4mwLdtgfm8mI3zIazd4it2hfmXHj8G0 ntCiN8ZDRhrVbUZN9yKDF5go7fQbaT6DLrNtAyCC3xDGazJaLQz6iVGyannSl9b2HF3N7gp0pDK2 kkJGDwSUfWG61d1RgraRwWfZ_JAZrySOG7u.ASaPRJCAAGGWXAGU4UU0z2jBCA5xweUy4vrrnq_9 _0ONmozoB5NLJcbRC5D9beDZ.eNcjcQ91iZDh2vCAYRTE.TRhUS6qXmUfb0XQYfwCz1Q9okLMbTt 9Abk3bCC7VAqIj0NA_Qw._FkzoTIiqHPB90acqZjT7YKiOtVTMdoRPnWImqOAfowDKXN4QLTCcnk Jl35FlUzcTdLwBnq_GoV9q0g9oLB8SXEEvpB1zs7DNVuc1.yZcOLVgoxAizsf281NOwWkYw-- X-Sonic-MF: X-Sonic-ID: 5956617c-3139-460f-abaa-c0151ff52e85 Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Sep 2023 13:43:11 +0000 Received: by hermes--production-sg3-69654d8bd-7fcnj (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 1a0471124631f07a193c8090492a581a; Tue, 12 Sep 2023 13:43:04 +0000 (UTC) From: Po Lu In-Reply-To: <83a5trplax.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 12 Sep 2023 16:34:30 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Tue, 12 Sep 2023 21:42:59 +0800 Message-ID: <87pm2n5wyk.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 752 X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Po Lu >> Cc: manuel@ledu-giraud.fr, stefankangas@gmail.com, 64440@debbugs.gnu.org >> Date: Tue, 12 Sep 2023 21:19:58 +0800 >> >> Please, let's not argue over this, when the alternative is to >> introduce what is at the maximum 10 lines of straightforward code. > > I could agree if you applied the same standards and criteria to > arguments where you are the party that is being asked to write or > change a few lines. There, you tend to argue endlessly, it seems. I try my best, but sometimes it's challenging not to get worked up over these things. I hope that doesn't happen here: no other program on Unix systems highlight menu bar entries as the mouse pointer enters them. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 13:57:02 +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 To: Po Lu , Eli Zaretskii Cc: 64440@debbugs.gnu.org, manuel@ledu-giraud.fr Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452701225340 (code B ref 64440); Tue, 12 Sep 2023 13:57:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 13:56:52 +0000 Received: from localhost ([127.0.0.1]:59641 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3sp-0006ae-Jh for submit@debbugs.gnu.org; Tue, 12 Sep 2023 09:56:51 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:57600) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg3sl-0006aM-M7 for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 09:56:50 -0400 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2bd0d135ca3so98091661fa.3 for <64440@debbugs.gnu.org>; Tue, 12 Sep 2023 06:56:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694526997; x=1695131797; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=7mhzo2jx3FB+UmFQwNRsL/nfoTQZngFWWsIZ9wLwa4w=; b=Kat7c1YfPn6WuG3DrCbBnA695mp0Q1uUEOGhdsbkMUuZ8IykmUi8/JKx/1bkJ4OxkF GDzyR1r3+zXH+VKVDX5yl2+2THOOa9oIH/Q0yfy0x0EoWIR4dzyOvF3RT1Al6YLHTHNd pjHLT0MqZE6rszc4M3zld8YqoCVthUbFn7UnIPqdZ5VjEGuUVbrtqD5jNGouwlkBCms0 0SsCjRW93Aos+Nck6oiCmknI8C9wN3n3oGF+DkL5kijBcG47/wrn7YyzEfwOXRj/NwhT X90ZIVqFaUDOxK/RXubDUpnzQ5QaYAhZEBKF024JLgwKhL9yrYrfqHxei++ZhaNvS7HR o/Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694526997; x=1695131797; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7mhzo2jx3FB+UmFQwNRsL/nfoTQZngFWWsIZ9wLwa4w=; b=uFdNcjJpbPVVjDKj7Qq42gaDDdNzIfTwz9gKtQW/HJDIScYGEiE6mezDzYanP0kG+D dCYYBGPgYZwSTbhIR76MwQyaG9pPdKuPCASdau5tSoEoarnwG8Yzg/ZZi8XhBcaeqCzS RMpHhoE8DETYkwYApkDW/g0phgGohYMCu1uYM7jYb+7yICz4iwgyFyEKIepaBeciJj7h 2YoIHUKi0sKJrVUcqlkcMDM1A66/is83NMbrO3EmYJkiitWXHffF3vQ/HlCJldOJthAc Ly+yhI0P/ZIZM6cCcyzMA14izeuToeS407UWcs9QSCEfrMQkpxYvIxcHwFbGUCCkN0Kp /W6w== X-Gm-Message-State: AOJu0YzzgBS4gIb00bkFnhMzUQLTBiXe8NfQ/U2kCnE3Xa96RemB6mmK RfFsVAKWP6LkwZ1UvAqgEWIyZLafQVxPF8HCjUZ7Jr8AMgI= X-Google-Smtp-Source: AGHT+IHWMw3YzTR+h4zQc5ZytXRLNUx/crDZmKK7xM+l+hvtI2ej+5Q5p6FQaW3b0UUm1FhLISmxg8ALl6s34KZeR3Y= X-Received: by 2002:a2e:964c:0:b0:2bd:2260:46ab with SMTP id z12-20020a2e964c000000b002bd226046abmr9296569ljh.50.1694526996777; Tue, 12 Sep 2023 06:56:36 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 12 Sep 2023 06:56:36 -0700 From: Stefan Kangas In-Reply-To: <87pm2n5wyk.fsf@yahoo.com> References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> MIME-Version: 1.0 Date: Tue, 12 Sep 2023 06:56:36 -0700 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > no other program on Unix systems highlight menu bar entries as the > mouse pointer enters them. I don't think that's true? See the below screenshots. X11: https://i.stack.imgur.com/TjgyR.png Gnome: https://www.howtogeek.com/wp-content/uploads/2014/05/08_gnome_desktop_with_menu.png KDE: https://news-cdn.softpedia.com/images/news2/kde-kicks-off-2017-in-style-with-kde-plasma-5-9-beta-brings-back-global-menus-511786-4.jpg From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 14:08: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 To: Stefan Kangas Cc: Eli Zaretskii , 64440@debbugs.gnu.org, manuel@ledu-giraud.fr Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452765626355 (code B ref 64440); Tue, 12 Sep 2023 14:08:01 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 14:07:36 +0000 Received: from localhost ([127.0.0.1]:59653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg43D-0006r1-Pn for submit@debbugs.gnu.org; Tue, 12 Sep 2023 10:07:36 -0400 Received: from sonic315-20.consmr.mail.ne1.yahoo.com ([66.163.190.146]:40777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg43A-0006qm-77 for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 10:07:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694527641; bh=Bzxt9n49UVCUCsztm/NQeWU2u5d6EFeMuC8DNc4W/bY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=gTlORXB/flPA1dFg61B1Quxsa28nsZQyPZsszbPw3Al9H43nAyZltXzcPgQyBD/oDchSYxFvkBs7xf0YICrPJS/YUPxlF+I/VFifqDBrsO9+1lIISEscpSFRTi4GNFw9lmJ04U2zFWMTovOnu1yOJcGRqkm1BLHgRRq6rSv/Cx+NufU+0dg/Np+nJc1VKPrnD2P+d5XAi2GprUwlZ2gTzIZVdI0YYGbRmzSInSdG8ZsRJyOZekXE3g/EkFG5bcDkGzgy71kITAh6NBqN7GLxEnMPzJvcS5ok36kA3LM0ALbQH+3b+zh9NrV1XCZyoUynleRgYmWI2424EEsRCvImyw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1694527641; bh=utAfQrm/4v4l6Bz9JwhQjH7GyoCJQpCZvlxB95HcK9S=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=I3b1QC/Oo56Z6FRMHoIp8LjcWsgWj+p6Nj1OGnYFZEQ13q2HYl+dACrPBp8MDUt7iuaDNZLwgDoroKhbNh9KtyZPkJ+CgMO/Bz1hvC1s69r6K/A2O4KG90YfFIYNdsWHq1e+dY4RKKIHxaTbam6bIEURQko0OpPq3xYuAvO/DVz9AmIdwNATvDIzyqX48ZEGBLgeapkj7O2ld3J0x1A1Al4hh4obDfnyWy+WUcNX76zJ3bD4h7Zbms5FwcOXJBqPOXDq7nkDBJPoVrrNbudEPyTUY6hkEKj2PIFIRnfrwsFPr/g18E19SVnDuBZT/Jp6U7DsNsHOrHyDv6gxwv0kyA== X-YMail-OSG: 7dy2UmsVM1nJApaHIW8xJkGMT1KXGtvJX7BLJZIyOv0XWp1keOJwB0v.BNXKbRk RuJp8oi1f2ldwnPC58THgGCJatXI4fBwbA9jeXOiIa.y96N5UZZ1wxgyAzU9B8T_JhXBYFls1C5q utfmc.8p2_bO2DJ00ykwA8HcDcn_PO9j_v2KDn9BKJ_x49nUYWup._MtouLK23_H.huTVRdZzg0F rUbZKvRC1A6amhfl160MP49V_Rme3F5aMECaOdBwKO0wD9ylZm7Nkk10dqpQ2krDR14U3Lo._szp 3z8EYCUw0G_bSCfHuoUHnO7eUgR4TJ77lkXJEn_aByjf.QZCC0WN4kpZfap0C3f_VlfXkgHaHu.l b9CerVVinvuA1zeq6tFc7OFBm0IjiN_gEmcpbMz3h1.GG2L8CQsBQ9WVODGipAWa9T_CSbzhueFp kPSB1VJRzEJpyCrTk8gYvhkByZmXtUtkjT4FvwnK53JDAvfMv46OlgC0.yBnKJ5QUebINm53JTZx di9bz.9HMvcunJZh.j55id1tVHgbTMNVTVdbsIu54QZog45e9pT_TwDKVNSUkD7iHEGXzkWm3ddO nnTqu7F98_cnDmzbINd2p8.tnHKWXNq565xe.geqMzdCHeb25Z6.gtZIRS4cb4h35AE9uQnrZ5VD kNPw_wF.YdZhTUWEsWeW1YyNg0OE3Bb1zV17F0irXOney2_mMonJ9HFepLEP.Y_qFSxM3tAKzUGY iTSbdsyUAHzndec03wZivU10e5za6Udz.44xoVcA554N_gSEMxv5GcNOyiFoQ56ZKqQmD0BFadoM VdLvhq0hnxkaTCT1qC6UoRUkrVt4E8fQiFoMTbSv5o96kN7c5l4ooqjR7UvdfpCz6sVuQEncZ7OO CkeIuqr_Lp_F_n2.1Eomr_ZF6j7Wl1idDvrB7XvB1_l46FWI4MRnUKUXdnuJultJ__NysIHAzlOB YKg27TgoFLeD9IFly2POivRE7scGRT.Y5nk2H7q3x4LPFcpzXz4YUVGyoGs1byswCViyzfFq5x_Z VEuGMnhaX5Sh16MZPhwKaTfnpsmvepFp7hxaF0q5LmkslHI_bETLeq688zErrXP9tei8ZofGhp18 Cud0I32kRFLmpYuEknmDVumsllclzCh11pZ1VuRM12y3xqGk0C.rLetSJi.gMZ0m18uzWmyB_FgO wFhIlvfBWDO11y35voA3KqChxyT4T64kdNC7lg7sFIIFW68gQ_e9PNiflHGhkEOked9vCn.GE5oD hpce4nPL.09K8HOgSRrtYTQVO84Z8yjgEZvq4CUmiuebKoUx4l9yvCW4pnwmb5azBf87AaJVHvSD aeNH5vfPtU7Re25mv2k7Gtn7n2ohoxZIj0NHAndxZAGn6UulpCDJX2Yc0vwLV91JHQNWKr2sm1jx q2..pl.cylo7KrOJoCnb_OVGg9nx8C1g0SuhKyI0gw5tFWXNXcSex_v357alxBB.yEvgFKWsPzDp cjHyCV37q1ZNUjyLPS3fiKmRW9u1EJQbRcMHRCghmpO7bssq76JVecs3Va8sZl8Kzf6KpS77VseY SAW6jS9_eMIwWecBj4B2Uag49h7wI0j3KOM8Y0x6K_MMGZZ2K6E3vRuU0rHOBDxZyxZSMtyrAJ.G t5A84pLx3f.zEzAUw6kATyhIMU6Lmap0iR3aKZWnriVIpBP4_Z4ChXtKqDi_s52Efds5RTo6tbZg kDzN7Qt1.3zsJ3HZb9uUbDE6y0CaEBH2BBKbpwwdT X-Sonic-MF: X-Sonic-ID: 8f8ea9ff-49f1-4a9d-b754-12705ce616bc Received: from sonic.gate.mail.ne1.yahoo.com by sonic315.consmr.mail.ne1.yahoo.com with HTTP; Tue, 12 Sep 2023 14:07:21 +0000 Received: by hermes--production-sg3-69654d8bd-xs829 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 2cc388c1e8e67aeeb347440728a1a3d3; Tue, 12 Sep 2023 14:07:18 +0000 (UTC) From: Po Lu In-Reply-To: (Stefan Kangas's message of "Tue, 12 Sep 2023 06:56:36 -0700") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Tue, 12 Sep 2023 22:06:58 +0800 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 747 X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Kangas writes: > Po Lu writes: > >> no other program on Unix systems highlight menu bar entries as the >> mouse pointer enters them. > > I don't think that's true? See the below screenshots. > > X11: > https://i.stack.imgur.com/TjgyR.png > > Gnome: > https://www.howtogeek.com/wp-content/uploads/2014/05/08_gnome_desktop_with_menu.png > > KDE: > https://news-cdn.softpedia.com/images/news2/kde-kicks-off-2017-in-style-with-kde-plasma-5-9-beta-brings-back-global-menus-511786-4.jpg These are menu entries, not menu _bar_ entries. The latter are not highlighted upon the mouse entering them, but after they are selected, making this all moot in Emacs as the popup menu obscures the menu bar. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 12 Sep 2023 14:28:02 +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 To: Po Lu Cc: Eli Zaretskii , 64440@debbugs.gnu.org, manuel@ledu-giraud.fr Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169452884428554 (code B ref 64440); Tue, 12 Sep 2023 14:28:02 +0000 Received: (at 64440) by debbugs.gnu.org; 12 Sep 2023 14:27:24 +0000 Received: from localhost ([127.0.0.1]:59723 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg4MO-0007QT-3L for submit@debbugs.gnu.org; Tue, 12 Sep 2023 10:27:24 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:49272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qg4ML-0007QE-UC for 64440@debbugs.gnu.org; Tue, 12 Sep 2023 10:27:22 -0400 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2bf924f39f1so35465401fa.2 for <64440@debbugs.gnu.org>; Tue, 12 Sep 2023 07:27:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694528830; x=1695133630; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=mPUw3fh186ZZFFhHIPlWn6kJCpwOeaNuR19l2F6uAG8=; b=DjYIjKR8wEYgkjLLa6wF3SiNVegS3mawAOafx6ED4ono35ZOmdbTtxWaF8kDwiCLpl Ib/WD/zrkqXdEoc5gfKtVrj6N4d8/xN0hSGV25TwrzyV+4qdPYXV0BlBTBCp8iyoGOop WAvpITEuPk/BQLa2DbGMUAIH54DA+p64RbbfZcsjBTOEj/04LfPHHLkRAhtN+MkM3dLU twXqgHJi7vIcxAOT32AuFXoidlQ9NKWVzqGKbOHNW3op3WK1MZGohjMCgPPBJs8sg5Jr Zij/lTWWP9BwPTpr/pvazd3Xffe5d5W753Bja6vhhhqzW3uKLhX+9pO0/ukL568PR84a VHbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694528830; x=1695133630; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mPUw3fh186ZZFFhHIPlWn6kJCpwOeaNuR19l2F6uAG8=; b=E44jNXbogdZPt19EHAoLsmEj0pREeh+iFfU9zO/JS4yTFLc8/d5pxzUUy+xGf5ruX0 fPYB8AOLizDrSNtuM1LWa6Ql+rsl/v32lUGD8RZr2aW6paDw6QVXwYmcGHGWzD7I6Job ol7756B2RhtE8dkBSf5pgPRnbwhoagiiWt+C01sX4K+KYmb1xONllxZuu6Oe3EnxpQzK qnz3hBplTXk5wAaB52YNEDTUqwGz7poYYvbiOCFu83+dRPKAxOfxGcWXvH3ELEy1TIWw STp7k7yJADREumVOY2j+ID7LSW99K1DwQfqVzO9J7Km1FbCy+fA7uRcwn01ARBF+Jg6Y zVVg== X-Gm-Message-State: AOJu0Yw6En6r1abe84pyE4glXffaWJuNiw2L7v3gTBV2nof+nr9UZAJj lk6sw+Re9xqEDWTAqcx61VqslRX9x9IsNE0uy58= X-Google-Smtp-Source: AGHT+IGQkF+r6z7Hv8HRK+5dbtdVneMiZFtLsTjDt+HEJJaGoJt4HyTbXMo8dHa2pGwrb9E8zrzrlM3g6HrGjUUPuC8= X-Received: by 2002:a2e:bc87:0:b0:2bf:a0d1:b12a with SMTP id h7-20020a2ebc87000000b002bfa0d1b12amr2130611ljf.44.1694528830390; Tue, 12 Sep 2023 07:27:10 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 12 Sep 2023 07:27:09 -0700 From: Stefan Kangas In-Reply-To: References: <87zg4d56l8.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> MIME-Version: 1.0 Date: Tue, 12 Sep 2023 07:27:09 -0700 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > These are menu entries, not menu _bar_ entries. The latter are not > highlighted upon the mouse entering them, but after they are selected, > making this all moot in Emacs as the popup menu obscures the menu bar. Thanks, I seem to have misunderstood what this was about. Please ignore the noise. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Sep 2023 16:49:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16946237048211 (code B ref 64440); Wed, 13 Sep 2023 16:49:02 +0000 Received: (at 64440) by debbugs.gnu.org; 13 Sep 2023 16:48:24 +0000 Received: from localhost ([127.0.0.1]:35805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qgT2N-00028K-P6 for submit@debbugs.gnu.org; Wed, 13 Sep 2023 12:48:24 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:39708) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qgT2J-00027l-BF for 64440@debbugs.gnu.org; Wed, 13 Sep 2023 12:48:22 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=4NGjcnma rOiNe8d39VwaGcpnHcpLz0JeFxxqIFpFqNI=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=VCUp685plq2kVOy6l3N8hs1OaEznnF g3CiJCeCYwOhkp2OPJWGgwlqus7uT7uywvwQqjnwW5GQS1qjdKsMsKAQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=4NGjcnmarOiNe8d3 9VwaGcpnHcpLz0JeFxxqIFpFqNI=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=U4DQqieHizYJrL3vrmD+jtOC0XUndzEQz2t6BJ Ln9vIqRhuZ+EGrM7IiZsqmkzV31zHsAw2ondz+Sii6JdZ7C8U79oBnSkUYqTJ84brzZ6dd aKzemkCnV+Pzx+u4QvwIP+jQkvydNl46ryE30/TGkn4lfhCl50JPEf5OsiNzsED7bd6BfP 75z7ucqhZmKN0jia7ihqcKrxo7JpDSntTbZNn1WmjsW5lyNePjGK3kHEmcwKObl+DDRfgo MCgPwtL5L08NAk/yvpjvGRg+BOpN6b4/BruRHXMeOxyHw64QMOekgJZznWWbABl9ufIkDb y0OJVzyClfivJeMUkeownVRg== Received: from computer (93-158-28-210.subs.ibrowse.com [93.158.28.210]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id d0c23cbc (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 13 Sep 2023 18:48:12 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87pm2n5wyk.fsf@yahoo.com> (Po Lu's message of "Tue, 12 Sep 2023 21:42:59 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87ilaz1wol.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Wed, 13 Sep 2023 18:48:11 +0200 Message-ID: <871qf22f5g.fsf@ledu-giraud.fr> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > Eli Zaretskii writes: > >>> From: Po Lu >>> Cc: manuel@ledu-giraud.fr, stefankangas@gmail.com, 64440@debbugs.gnu.org >>> Date: Tue, 12 Sep 2023 21:19:58 +0800 >>> >>> Please, let's not argue over this, when the alternative is to >>> introduce what is at the maximum 10 lines of straightforward code. >> >> I could agree if you applied the same standards and criteria to >> arguments where you are the party that is being asked to write or >> change a few lines. There, you tend to argue endlessly, it seems. > > I try my best, but sometimes it's challenging not to get worked up over > these things. I hope that doesn't happen here: no other program on Unix > systems highlight menu bar entries as the mouse pointer enters them. Ok. I'm going to explain my history behind this patch: I was annoyed by the fact that moving the mouse pointer from a buffer to the menu bar most of the time (in no toolkit build anyway), the mouse pointer keeps its "vertical bar" form. So that was, at first, what I wanted to change. I then look at the code and discover those 'note_*_highlight' functions and how they are used to highlight areas (buttons) on the tool bar or the tab bar. And I thought "why not use this feature? it could be even better than what I wanted!" But now, I'm not so sure. Just changing the mouse pointer (to an arrow, for instance) when entering the menu bar might be sufficient (and what was my first intent). And I don't think that it should respect 'mouse-highlight' BTW. What do you think, if I rework my patch with this idea in mind? -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Oct 2023 12:50:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16965965771724 (code B ref 64440); Fri, 06 Oct 2023 12:50:02 +0000 Received: (at 64440) by debbugs.gnu.org; 6 Oct 2023 12:49:37 +0000 Received: from localhost ([127.0.0.1]:49379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qokGu-0000Rj-Rz for submit@debbugs.gnu.org; Fri, 06 Oct 2023 08:49:37 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:49114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qokGr-0000RZ-Vj for 64440@debbugs.gnu.org; Fri, 06 Oct 2023 08:49:35 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=Vlp9ayiu qNt2+E+RJRhEU7DpqxuKdGhY3rJXZpKGSgQ=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=5PPf+kjNsBgI5qohldMPfBggFuinBc C6i1UQzFcYfIEHImlgLdrX8I4TcOcIMKTdHyvPJG2145vf/zAKWpiIAw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=Vlp9ayiuqNt2+E+R JRhEU7DpqxuKdGhY3rJXZpKGSgQ=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=XOxyzgP2s8R49YHMLcp5KKmf7xLJc6zD8cUkCq Pxbp+Du0DMW3Qunrd7vixm3rtNL34Yq6ILw/4UgSob5OwziBxzYze0JTZSv/j9FSdTrQWz Mx2U0pkDcuMP1HUZvkbUwScp5ffGAUDqZ7v3Qg4maxCtf0oHLc17VH3haQ3F4iIvX0HLDY 8nuoRs051dHOjjWxSBYhBQW1Bn1ewKDe3Ym2rz1hI/SGk783qqFQb2VdupwIyeLY3BPoIZ 6zt8RDCN5rRag/dyghcNP26/8pyZu9duz+JBsv/ND0mvoAjapwiYFZDZrwsjJRpcZaTG8p SkZeGA1YWEWtbwGKpjPj5lgQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id fe653883 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 6 Oct 2023 14:49:12 +0200 (CEST) From: Manuel Giraud In-Reply-To: <871qf22f5g.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Wed, 13 Sep 2023 18:48:11 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Fri, 06 Oct 2023 14:49:11 +0200 Message-ID: <87wmvzkjaw.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi, Here is an updated set of patches that address the issue I had. There is no more highlighting above menu entries now and just a change in the mouse cursor. This only affects the "no" toolkit build. -- Manuel Giraud --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >From a0c8f7e5909c6b4f84f21030680da2bd09fa229a Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 14:27:00 +0200 Subject: [PATCH 1/2] Possibility to get enter event from menu_bar window --- src/haikuterm.c | 8 ++++---- src/keyboard.c | 2 +- src/msdos.c | 2 +- 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 +++++++++-------- 10 files changed, 43 insertions(+), 26 deletions(-) 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 f756f163e87..fc567488e7c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5549,7 +5549,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/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 2c53527c25e..7f9e62f05e8 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.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Set-non-text-mouse-cursor-on-menu-bar.patch >From 9200d69b49fa57269e5357383d138872a372127a Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 14:27:02 +0200 Subject: [PATCH 2/2] Set non-text mouse cursor on menu bar * src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on menu bar. --- src/xdisp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 7f9e62f05e8..df3076cf499 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -35537,6 +35537,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + cursor = FRAME_OUTPUT_DATA (f)->nontext_cursor; + goto set_cursor; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Oct 2023 13:15:02 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16965980834345 (code B ref 64440); Fri, 06 Oct 2023 13:15:02 +0000 Received: (at 64440) by debbugs.gnu.org; 6 Oct 2023 13:14:43 +0000 Received: from localhost ([127.0.0.1]:49439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qokfD-000181-HO for submit@debbugs.gnu.org; Fri, 06 Oct 2023 09:14:43 -0400 Received: from sonic307-56.consmr.mail.ne1.yahoo.com ([66.163.190.31]:34214) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qokfB-00017m-Ds for 64440@debbugs.gnu.org; Fri, 06 Oct 2023 09:14:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1696598057; bh=p46wv4OfsarhesRLE6ZJsB1EC0LJImLKrrJp6/fIx6Q=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=uRGtAntu9Isv0ZiR+2JoANTxrXfNaX8eDYOdl7/qk9QZQ2TxfQsGmTSmOcKR09p1xv2thQoZ41nKi8Ssz8qXkvAQgDR1+nBeqanaIKpBtfbjCWZMCP4SxuUjJafTq6JeiJ5RoV/Szdbz2ulHGCgRzdyJej04DqTYAhXRxGnSwqJTcF6yZIzMb0X+MMAKOTorYfjrbrZ/gIHmQ0c2CgCIUyC3oxWg9fAe/GZdvTRtWxhvAM/gTwBVNJ/AzbdHXxCXQELbL66H5ZMVXGZEVU9EPupUGjgKci46qx4lhnd83mq3Nc6uFfD1ShBotLsg9NccYC0VSr6Tqp7Dy3G3/fJXcw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1696598057; bh=oYmZx+EKYGe6fuD8BbM008lKBLzXzCLLfesuA8A5Ei0=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=M5bdxJ4TW+WrSVC7a0SedGuMCUjSWW5uI4bYwWmwgaNQjm6nW/R/MwUGDVt6PAymwIfUhPs8xtRsNRY/oW5sih2F5l5jmvgClqaqcquQGGFPu2RbN1VkyjTOVNzu18EM6u5hBbqBNuTUotU3Mu1SwM1QprdBWB+MQ89hFCDYFhVeKRBjWkbY2ynTouKR9ZKPGJErQWCaY17zkYWrhzrhx0hYLPr9vkLVEklOvZY31qYndkfZVR6xquUh8Gddq+1IinEFMNFnfG6zMqRuMCJFnHz4lbloD7NpD4wajVIYK8JuFLBP45YSryAtFpmdYRLy+JgRielUPiV4fiy4dEBxdA== X-YMail-OSG: GdtoKH4VM1kKnwMroJBsXxQyPJTr4BebgeL5EC7vhgBmIPrWcGb4RLqmKvqxcYS 1lSxb91nE7l.LmdeUj9suDfiXb3gkf8vBnMXeYHLhgJeW5jGF1gQHO8Mx7ImxZIJd0PQMcPkoaDX nOBDEwb..w22lQX2EN8VD._F6AFfQFyeWDIpL7mnQ3mydZwAXDylakl1riZCdangityoSkbcKS5L xrgmsNSmtpU7slFu5.nNk9Id5o0Rvnc.9YtZ3_2Xr6IhrRhj_EQJr33daYlSL7DbdbKokEY2y8Sn iwBPghKx675CKJvkeAWiRRYZrvdO_L.t1qrNiifPSgMKsBQGPYfAaVhGWi3lflzRHFAdd3lwtSnD g3OtoGYQBRZ3CFzN.VC8HJKhdBZDGY7238SQDcIlt0enPOr8JA1B2zIm1DD1D0pCmmKJIbwo3KjM p1MyJB4dzXG4VhN_v1syFFWGihUfwPf3W2l36IeQ.aAOSWkZBzuCa0CInl5qNwL4Ep8YuThgO6Al URlZh56mJhiKmRW7S9jM5DfbKslL87E1OsiPmURwg7hevch5BaOd2PUiuyIa3ealSns8pGCEQymB Bk2fz2bx8sPKc15paaqcbPFpBvA1hzmQ3BmJmN6grutX2n92sI_IhOJSP0BI6rbB82stzkm5S.Ur US1fNDd2psZ9jIqMUtgzOa3wAvIWUyPi9Amqa0Yv4j7nXXsZfhPnIQ924zBH8yS5BZZDax0WavVI NU0Ej0CAFFZgnI8J_8Ibl1DUg0rEGDMPW3y9w_gWf89QKz1zaUPnmmQBQNeJk5aRjMGYmmnqsLr0 KIWz7ufCkj.aelYP4cJBI9p7Stea2LXpK1se2ALyiiC7Kwr6WuyfQjo49HFcWXEPjRU1HvSaEkAg Wb3Y8hX50AjmqzBVMRyhElUdFk07tTcC5TxU.hUh9fDavgJIqeJtqirvhGweS4jFk6gQoL5vMsul Bfk7PPnQxx1KHHn_2u037QyT3EYIWiJPSJ_WxWu3bEAeAfFsbtvkDDYZSPhO258_lcMoXUzAVw7i Wsteu.tA7h2a2RGciyIHeH_hirxq2MebT0vByNLHdOue00fW0YlUO_4w37j_zwff74BFxdaJ9DaT k83_pXtsiSqe54AGxwTmsdRCG0keHdtZVuInimcdvfdADWsKFy6EDLQYRlVbmtHGK0zyp4EjfzQ1 G3iig89AFR_CD_yFLDs2bPJX3NHVNoOfZx3FUjRzWtHD1GY158OQemP.G2qmbY7s5oBs6BY1Pp.S Bh9S6hwIrLzbHvp.mz_PY1eKZfL1HKbOMTIcgF6zr_miiHwoM2AUuAZApyn427JNjRgo708frgiY fyX3Q9dfIMA5nuBTdUIpXm3GWt7UHIHojpePQvWQBIwVuiXf_H.DRY4YYDN00IEPOvczSWOuKAiu RqvLGzARtbDHznED9mwzmgfyNRMQkBL0jkPUULJsnIjAlYms.VfwFsPlM377Mk9o1ZOpz8CUt4FW PhVuHbqd0XCdN.HadH92TNIumKLcHfWgRXMrADcmYK8PLEwgQGoYjw.Xt.4Ars9PjGDbBUs1.VYI 5O9AUX4ygma0HoH19jDdMUzu1c1qizn_PY4K.5krGJM2aDwsM1WmH75DmClRVoMhMF_wMyt6z_J8 9j4PWo3vnfnu7k4nI6h3Sx.CGUgI7qk.VdoUewSFTA1oSf.IelaPbd3hvXtvk1CeCDOF8Be8x0F4 eOE0s1_Y0JeKd7Lda0xLrx4sKz6o2XpmcuwPVsBXJwvPslpRfdAf0gCqICkv_z6pol1hlY6_Wl9l K0aMt80Lt38oSUNtbh2R2KhDI2S5JsPdD0jCK8eL7hA3.GfiSnOc_pryzF0IUPjKLFhVmxTHkTkl Y1Q994J.eurk7q0.nq.4zwD6KXoAJhjQAXYc2.NVcpmA0WzO6XO6AFi8hqbfevZYjP_NtU99jXR3 lyDiH0Fwfe9fgS6hd5tXni8NlKvIvCbrNdTSPPiDU7aC6d9lBLxloea3PsfR3xf9HP3XhTLBsTp0 5mS3XBld_F0Rix0ZCYdUI7wcQX4mFQ7lqRtj4C3r9xx8EOd8_BaKKgxTjrvHhz1_lBOJx75daUxY .9vXNUDRlcOap_Oc1a9BgO599zHo5SZ7RYsveoUMQNx5Ulv7PT9u.Yn2YBZkCJaOq2a1pXIdo4Mk bDAr5JfUFsrjluTg.GM9Xn8vwzf8uyinUdUz3ByLjfsZ7bvq0h3V19S_UjIOtKsKJGEBubYHUaw_ ZOjtJ3dyyfX4z8iIP4GcAnU173J_6sFHUuvQ.LdG5SyZLZVtNKEiE7W430rWHpPub6zOQ X-Sonic-MF: X-Sonic-ID: 29880d2c-32da-41aa-adf8-dfbf1876b05e Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ne1.yahoo.com with HTTP; Fri, 6 Oct 2023 13:14:17 +0000 Received: by hermes--production-sg3-64dc67fbb6-cd52p (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 71f24912d025b0d1b2764d03374f5e40; Fri, 06 Oct 2023 13:14:13 +0000 (UTC) From: Po Lu In-Reply-To: <87wmvzkjaw.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Fri, 06 Oct 2023 14:49:11 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87fs3xo13z.fsf@yahoo.com> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Fri, 06 Oct 2023 21:14:05 +0800 Message-ID: <87wmvzc2qq.fsf@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 488 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Hi, > > Here is an updated set of patches that address the issue I had. There > is no more highlighting above menu entries now and just a change in the > mouse cursor. This only affects the "no" toolkit build. If I'm not mistaken, you've neglected to update many other callers of window_from_coordinates to account for the new calling convention. Please grep for window_from_coordinates within src/ and update each call you find. TIA. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Oct 2023 15:40: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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169660677120397 (code B ref 64440); Fri, 06 Oct 2023 15:40:01 +0000 Received: (at 64440) by debbugs.gnu.org; 6 Oct 2023 15:39:31 +0000 Received: from localhost ([127.0.0.1]:52428 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qomvL-0005Iu-5J for submit@debbugs.gnu.org; Fri, 06 Oct 2023 11:39:31 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:37968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qomvI-0005Ik-T5 for 64440@debbugs.gnu.org; Fri, 06 Oct 2023 11:39:30 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=DXmFB9Cm +MZ2rAaPX+w4xAeTCaylOD5528ZruHFvai0=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=t5qMO4J6LVRqyVmCay5CcwL8INU/Gc GZYQlTtpXh5MyTPGPJPjuYndIxnZq2qEUSY/ez20yINGzjzz6UXNLHBQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=DXmFB9Cm+MZ2rAaP X+w4xAeTCaylOD5528ZruHFvai0=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=zBkaT6w9GkhPAB9oJwz1PkW5wz5Lot//Xn3sjm xyLE1rYhhozS3WVNIu6vkjVxAaS3sEBCpUdTzENdXrRwzlGWICor8pVKS78UG/wQ2IqKDV wmnYqH7cAnU14VKvNAWBkm4PamqbsJiTc02TJr4ywGEvUsK7xI8kpN57YBGfyWjbhGfuXM RgalPpqZ6RR0parqDux5SruJQfdh8d/pKykK9X/kcaR4bsLeHGD7XEhl/zltu/AEujfIY4 vPAjnIlpIL9iM3O81a2QKlApmKunz4Nam8aSkXuNOf/mWH1TXe0bEqA084x4plFvPN1oVe kkEf0+hoylpa9Ftbf85WmAbw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 7b0ab60c (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 6 Oct 2023 17:39:08 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87wmvzc2qq.fsf@yahoo.com> (Po Lu's message of "Fri, 06 Oct 2023 21:14:05 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <83zg259iwz.fsf@gnu.org> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Fri, 06 Oct 2023 17:39:05 +0200 Message-ID: <87sf6nn4km.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > Manuel Giraud writes: > >> Hi, >> >> Here is an updated set of patches that address the issue I had. There >> is no more highlighting above menu entries now and just a change in the >> mouse cursor. This only affects the "no" toolkit build. > > If I'm not mistaken, you've neglected to update many other callers of > window_from_coordinates to account for the new calling convention. > Please grep for window_from_coordinates within src/ and update each call > you find. Oups sorry when I first did this patch there was no androidterm in the source tree :-) -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Oct 2023 16:01: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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169660800722946 (code B ref 64440); Fri, 06 Oct 2023 16:01:01 +0000 Received: (at 64440) by debbugs.gnu.org; 6 Oct 2023 16:00:07 +0000 Received: from localhost ([127.0.0.1]:52477 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qonFG-0005y1-L5 for submit@debbugs.gnu.org; Fri, 06 Oct 2023 12:00:07 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:1134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qonFA-0005wr-Mf for 64440@debbugs.gnu.org; Fri, 06 Oct 2023 12:00:05 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=nmZy3rZx pnwcMU/dwAPgoralVEuJdnrXo4oq4P8QNcY=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=4OSM3y0hnAqCkTxTz3aPZS4ph7jv1y Xa5LpZMI9HsgTP4tJ+dpdS95iHcocAdgYfGxqxNF92emXghTtXvkceDQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=nmZy3rZxpnwcMU/d wAPgoralVEuJdnrXo4oq4P8QNcY=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=FkxCzA6n+A3LtSbfUNN1oBeQT400kii04ouBYg twL9F5VbAJeiQ6jEiYo5jhbQJvR4VjsloePJxNZMsN+3awNrrjCbgB4pJLY8nYOok75mOo q4iQ0yPe4U+blqqQICkKZRMoY+bW8ETUsKDExYm2RHan0DlfHgLmftiAClDe16M6Cdx6qq GL6Gvt+8vHNYEZ7PEZe710khLJCC/uO7C2lCLZX6HGsubDkbNJ8xpWDQHN5gJZ4hJKPBhU RtGMVix99x5riQ+HI5vqZg2LPPLbSfoi19vZtTG6Llqq6RMe4SIKu7gTBfQv+DKdLfl0qA IoKcCOonTTfeoLvWFDArPGGA== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 809a0d6f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 6 Oct 2023 17:59:35 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87sf6nn4km.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Fri, 06 Oct 2023 17:39:05 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <878r9losil.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Fri, 06 Oct 2023 17:59:27 +0200 Message-ID: <87o7hbn3mo.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain So here is the new version of the first patch. The second still applies onto it. -- Manuel Giraud --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >From e4481544b4ce87af2bbc42980d96d35fa8d4a7b8 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 17:54:15 +0200 Subject: [PATCH] Possibility to get enter event from menu_bar window --- 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 9b00ad85642..d6db1359d97 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 f756f163e87..fc567488e7c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5549,7 +5549,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 4e0dfa58c63..96661b8e227 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7404,7 +7404,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) @@ -7510,7 +7510,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 2c53527c25e..7f9e62f05e8 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.40.0 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 10:20:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978835791335 (code B ref 64440); Sat, 21 Oct 2023 10:20:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 10:19:39 +0000 Received: from localhost ([127.0.0.1]:42276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu94z-0000LS-UI for submit@debbugs.gnu.org; Sat, 21 Oct 2023 06:19:38 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:8861) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu94w-0000LF-4B for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 06:19:36 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=3vxIODGG /bmGNjMgbEz1qustj0dn5zZbpqEht9Ggm5s=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=u9Lxw7stLdmFAXMd6RqqcV0nYzwBnf etUGHAOoBIl4TftU9uxpgPWcDKEr5vIlPjFlclm+z+gcY2W0uqe4bDAA== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=3vxIODGG/bmGNjMg bEz1qustj0dn5zZbpqEht9Ggm5s=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=V7i9Z3ER1Y4cW9/SfEZtJlTy+MpJx1d52Ulnm+ 1JHbj3bVSVkk2fwFISyGMnmAJ5hesdFx8Zl0gnFj4m8EjF8yKnQksMgttjETZuL6OYGKoE u0DDV55ixYKRbZN+/dH0qvRi2MH9Uxss5I62pe623h9NTjnwvX2IWqifPWI88FEgYzw9RD 7o1LDcGM8YSLDCtau2XTZJKUsJhK6bQGSkhW9LBTVG7Y3Y09zL9YVLf0Crcq4jgyZcenyP l9OP7o+r7buuXr36fR8Mykr50IKnVDqoj4NPprmDzR08WzZr1izLkvFzCXA14JOdAbrHTT KZwCVQURWX/Dx7QBq2C41rOQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id d9d03d27 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 12:19:03 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87o7hbn3mo.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Fri, 06 Oct 2023 17:59:27 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <83tts2scvp.fsf@gnu.org> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 12:19:01 +0200 Message-ID: <87r0lo2s8a.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi, Do you think those two patches could go in? They still apply and compile on master. -- Manuel Giraud --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >>From e4481544b4ce87af2bbc42980d96d35fa8d4a7b8 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 17:54:15 +0200 Subject: [PATCH] Possibility to get enter event from menu_bar window --- 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 9b00ad85642..d6db1359d97 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 f756f163e87..fc567488e7c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5549,7 +5549,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 4e0dfa58c63..96661b8e227 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7404,7 +7404,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) @@ -7510,7 +7510,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 2c53527c25e..7f9e62f05e8 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.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0002-Set-non-text-mouse-cursor-on-menu-bar.patch >>From 9200d69b49fa57269e5357383d138872a372127a Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 14:27:02 +0200 Subject: [PATCH 2/2] Set non-text mouse cursor on menu bar * src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on menu bar. --- src/xdisp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 7f9e62f05e8..df3076cf499 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -35537,6 +35537,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + cursor = FRAME_OUTPUT_DATA (f)->nontext_cursor; + goto set_cursor; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 10:30:03 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978841633063 (code B ref 64440); Sat, 21 Oct 2023 10:30:03 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 10:29:22 +0000 Received: from localhost ([127.0.0.1]:42297 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9EQ-0000nJ-Hy for submit@debbugs.gnu.org; Sat, 21 Oct 2023 06:29:22 -0400 Received: from sonic313-56.consmr.mail.ne1.yahoo.com ([66.163.185.31]:46066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9EO-0000my-Sg for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 06:29:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697884127; bh=ufOz7QlcgXSQllsTYpKwqTvQbkumdOOyunYUgR2rqmY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=VbJtZHyHmy8DIR2RuLXA+nrbCuImZMKoIs0lzIQrNXR/BtPMW1hXhSZ0IrSkzYvnimmR/n7a1J1JSa0L0DtLTB4W2eGo9UdiK8lSDOC6Uxsc41OwP7kmd35nKP7AP72D9Hj+TyUg6AoIcYPF/9TV6RW0z8x2Nj58MAHmlmyfnynWY7rNuQu75qWWv7YnW7RWYFpbs6I5cVWH4TEnGc/nEdCXwxF+HNOzdMjFFoEpI037QQXxa6sgCTqEFwCdWhCqU/iRSvRjoZzT4Arlrlta5HDO1q8iSadotSIzgD2GMcsKhsLLDMIf7shQjeVuAEp4tuWPe7ol0fPNxoTBEKCa6A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697884127; bh=ZSAX0iNOk5cGU+6qmVjZEcVHiPEQnPD01IOOVOJtYZ9=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=r9c+VI8prRzdV2YrTWfstR44kPT4Im1kO/koZeTMKrCDOMjWNybxEjxbn1yXFlGR+NAbXgKO0C+EGRucfJVevzok2hC2xCOKYSOVqhLQH+svKVNiQ/dqgzVbHfXuuGz5WNJHJuty36nSnJLivMLgNRKAM8zIYHZTPwcoEiNgZTnnC6zJJi5/V1bIS940xb+Soel0GqP8r5sgnZB7hLrkovfBUdBmY9Wc15fDSESKjWWDG0NEgXI+IvONcq35ATu9WLPf4g+NBI+ZgJzWSj5GO56xrwHYhzZYEDm2nV6riq9EcTEDU6OmJ8+wJ0vL/JUhebxEFhorLW2axRQyJvOYSQ== X-YMail-OSG: TBdQMV0VM1kg7gJZk0wmUYKXhOj92GLNKdxGrsErxwfjFpMZR3zNPFBGdEe2t79 9TrwkKkVip_EyFhI0CHrhcIxKNdQq1GJUax0hPIrV_n0Aqo08SCrIQQRhEr30huXeceHdqv6qtGC 06vidPLc8_Bj0rYckkfjzUHrTw1HvlNnPepRmWuGAWQPjv99T7dlcw7TNUNsoiS06n0sl6A2QiOO 18Ga_EVjyxUt_kPaUngThdDry896RXqm8hL3VhlZswVhZuBqY7XELrfNmQ1DLXl4KS.VnvRJY1U7 GfSbl3iZ5gcPAZJ9pryG2bU5qoOCkTm_YH2g7k5ekRJdNH9JsduvW7TfapgmRPbO1MDkUlfygrlx 7k3qyzYHy5OBzJw5MgQjocGJjNjOvL1nkcNMcUTGc2M4HyH8AK.8QSe5xN4AsNUgugLgxlvyb_08 4J9C4W0i.hnztCGrRucELegsjcz3schCScyvqGcVZNN2H8DrZ1fwwcoA_CwZ3JkWlOWd4IqvT9yq kTE1X6DFliZkBClYusvpfNXGfgHSV0iOh.pJInybyDC4LBmI5Uq8RlNLpdssOF4MsPvRon5dLt0S 7AFXQPabAim63s7GFy37dsuCTxOSeWOZ0vWIJbbc7iF8v94zzlxnfSSPrSqZ2MxNGAmJt09XeZUg gFB24oBje.7L6QI6X.FoHX35O2sXfQA6QUXuL3x3NxVENrosCU98Uch0WHzAZHq8f1BnivEvAgTT jujYHccfwmoljL9azlrUzVYL9dfm4ZnJWY0uTtamlXHPHsv5B11XmyCoBLAaeqiHd56uax7UF9JA 6.GpkxFqZ7GsLCT44Y08O7QhoQoJbkvSGvEQvyQxo24BTXPnyVKSFCbEfWKoXB0Fhfxaw2zn3G4q L3HPICDPM3FeTfReiZRKV79QwLGUZ2JE5nzm59bjTurGoFRFWksSGeGp6M020bSy2GPNYGci0.zP I73qg3N8s8xWTK6IMogDe1D.DoCm2_PZAjcNuPctCrOa6DtnN8zXRF9PX1esOraM2IsAipi5NMEC c3p9ZOdIFcfql8ygZZnO9VCor9SFr6BK0MD6Z2pL4PJEBln5CPqKysCdWAexFA8WctXnwHFU32pE I1oiTet280LKxbUB9YCgp3GkOP6Fh35tFOqgWd2sTkgWSzPfY.KYQgLSYPAdcbSCPjIZbTvAmN7l iUDGKu9DU0tg2ptk95DepozZW74gFqMEagB.._k3K1HO_yFHA__JM0qNPd5vyjZUiMzwcCnq9fUa vFnssHItJZDICGfWriXqCy4qYMb9eYVvV88bvwbqlbHNkEnQvi_VJ2fIofJXyoUhxbDhQujivs7R sQBVo494Dks1ZkbomC5Id1VwZ7yg910sRd3rpl.T3BhfqA5Mkp6N_5Sz8Od_DJtc9wSkHcFgZhZ3 wE7IPcTR8WGyhfPh_kDtydgiTlhKLAuxOoEAv1YOrQZ0Ek9P1ukchTC2KkV.Zlf4WLdm6SdulYxx ci_2gJUC31f0XBGkpYKzsDqMGi9_trSFqhZctrZcUCuPbgYkya_3HoJ5F86V944j3aI5LdHjWfRx YRtOtSP98Kmg4J4nIb4VVgTFbGW.GWhdHsJKSlK8LTKJda_O6_E8RZtYsi5ytCF2BpYt3KQmaAab qe2aQmFiXtyvn.YTsAEbte0oOOMgSWKZz1Ju_.SBTdnrJNYDvEIYnla6OeL2m8_LS412Jkvpixmp dDkfqz2w8E_I9scmApGpAKuDXXfFkiyeB2SYyWvSx.r3OdfqaBx9Gka2evwbHtHXb0LH2PIokSgz ojRq0mI1VxFR5u39_6RQSzW1ibSYH0YwrT4ltH2noVhQ3zE5EmVjvx1KfGYKJhZWShCu.ivPPdAJ 6Ui1S_E2abEUjTF09Az77ArisHRF_Ihbr4iKw0WhymriAYVaSaKZCe7JYMHjV_HqE4PYZpS3_wwQ Pj09DABjk4.4x6fHpxORxK4OAtydow5SaDB2OO6NAhRoGsUu0ud8ENy9c05JFs87qukYrpC5pTQ. YkWk8o86eG35l_YZ54oxbKqKDdo8BeYXVBbm_h7XfKAEcAx4z8LX453djhtiGMMZaxaH9qPEL6VW N8IBezGkEbQkOF8.G0sQfjtD3GLxG4CvfsLq2q565hi6wOUVQ.6wL1KK_svgw8m7elEOmcnHmjXa 3Mo_VBHBREzMKKDzEXH_sKmkB8Ie8ai0ygFY29BLYGOWzZM4qHuS_tNQSzlbNC0mVaTegv.G1Mfk nIVF9LPcL6mxxzRU.KJBMgfuqImUNycaQwj1HNIC4w05lniA9rPckwq.bz24D9g-- X-Sonic-MF: X-Sonic-ID: 7857af98-1613-4131-9802-6ee1a100e449 Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Sat, 21 Oct 2023 10:28:47 +0000 Received: by hermes--production-sg3-57f7997989-rvbd2 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 7fb2d93a65ebc7d67c6870a9b9242d2c; Sat, 21 Oct 2023 10:28:40 +0000 (UTC) From: Po Lu In-Reply-To: <87r0lo2s8a.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 12:19:01 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 18:28:35 +0800 Message-ID: <874jik46cs.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 471 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Hi, > > Do you think those two patches could go in? They still apply and > compile on master. > -- > Manuel Giraud > >>>From e4481544b4ce87af2bbc42980d96d35fa8d4a7b8 Mon Sep 17 00:00:00 2001 > From: Manuel Giraud > Date: Fri, 6 Oct 2023 17:54:15 +0200 > Subject: [PATCH] Possibility to get enter event from menu_bar window > A log message is absent from this patch, so one must be written first. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 10:33: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 To: Manuel Giraud , Po Lu Cc: Eli Zaretskii , 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978843463525 (code B ref 64440); Sat, 21 Oct 2023 10:33:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 10:32:26 +0000 Received: from localhost ([127.0.0.1]:42308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9HO-0000um-H0 for submit@debbugs.gnu.org; Sat, 21 Oct 2023 06:32:26 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]:53389) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9HM-0000uV-EF for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 06:32:24 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-507d1cc0538so2354268e87.2 for <64440@debbugs.gnu.org>; Sat, 21 Oct 2023 03:31:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697884311; x=1698489111; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=8KZRDgOZ1sXTx5hlf5a3BynkrT+B3TmsJG7dWrmKndk=; b=BvJDgPSCGjMsi7jJh3E2LLI0v/fyyEakBuwEW8VyGCjaxW8ulVZDYELFTwek5t6hIl vk9X7Gv6nnvorr5rM4l55lLEv5fvrfDorSc9M50vrIBdAtPG4CIU6LJ15mJTLDtMmOyU NT2/kip3hYVzZfODvcF05Bxy+adeclh+L8Cf3mkDxQxoa7cbe1RYf+658VQQRfeMtI+n vFYRVKM3DmEdnOGgd3toyKiW3z7g6rtR3chOXHGceAjJF+Ywi/PMlC4ph5Uhv2445Mb6 6yPt/Dw09464F7GtJdHZpwYNI16ETqxP42x82LygdH+dr4lkTjtgFwwZzTGb9zU+F9kN v3mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697884311; x=1698489111; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8KZRDgOZ1sXTx5hlf5a3BynkrT+B3TmsJG7dWrmKndk=; b=p1smmrZ3iS/J2CPVv2CD5Y/Coank72XBaZL323j0VpKk49SlJVfNQVXinmnBred8tu zICosf32xJLoAURM7F2C54rJcnKqaLZjHoeZ5mvpbG4zGkqx4klvI4inR41T7doLZmtM ftgDP9OQoiYhvx7RY0M8SwjMMEO4a4HjGlpDu3jCGfRRlMqdM1CUEGFkLwon0ccLjXQw meKYR2fTprHPnnbHKUs3VnFpsOgRDWsqyFDHIxyqSDtnZcSzv0L38r70GV7Tyul3ap1Q XNDDZfU9yNjUMA4bm8pnYTi1P72f/E0vtklV6sVcjvL/ztVKLZP8pw52VCuov1WYNeeu /MwA== X-Gm-Message-State: AOJu0YwJ7U9bepNbVP0qUU+M7KJkvRO9daggx8qXCwKrnXrcwKyUOLN0 JI8orA62Y3DdqR/14EV7rB0damWW4NG9MAsczMY= X-Google-Smtp-Source: AGHT+IFwZbe4IqIuNOqxTScKbqT93DdZZ2qRwPJ0phixsLjMuHWNLl1/VOXHpS67BAQt6KN6l05vh3yrzmN6I1UkqZA= X-Received: by 2002:ac2:4146:0:b0:507:9784:644d with SMTP id c6-20020ac24146000000b005079784644dmr2696631lfi.15.1697884310546; Sat, 21 Oct 2023 03:31:50 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 21 Oct 2023 03:31:50 -0700 From: Stefan Kangas In-Reply-To: <87r0lo2s8a.fsf@ledu-giraud.fr> References: <87zg4d56l8.fsf@ledu-giraud.fr> <87cyyo28m0.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> MIME-Version: 1.0 Date: Sat, 21 Oct 2023 03:31:50 -0700 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Manuel Giraud writes: > Do you think those two patches could go in? They still apply and > compile on master. Po Lu, what do you think? From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 11:04: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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169788622217799 (code B ref 64440); Sat, 21 Oct 2023 11:04:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 11:03:42 +0000 Received: from localhost ([127.0.0.1]:42353 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9la-0004cv-JM for submit@debbugs.gnu.org; Sat, 21 Oct 2023 07:03:42 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:24831) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9lU-0004cf-6V for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 07:03:36 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=zTX/HkrR gx3YLdwmcaEjUXlmKigZf71iw4IrfAn2GM4=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=bhSnRrnESBj1/lWDO38vKPdokkS5UX h2xufkdlg8aJmLEMVJfPmH414q7FRydj+VB65oM8A7gqPYD16pjRq6BQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=zTX/HkrRgx3YLdwm caEjUXlmKigZf71iw4IrfAn2GM4=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=apkXcyvBpQo1JKA9xhEoWCbgemU/VM8nRjHj+q GDDskgX04lX0ZcKNnlelP+tam/fOB35ctf0qRAYpNAJIQLzUIuxddJGmMJFN0mRZ7E/GDa ne91tqCauq3MqCS4yyGPy/mYF+qQyAfN/ZCS7DiYgNaY8pudg5tTi+3rrAHfu4TiBeWTl/ LAASwh6okX+gC69kZ3JKulvips3R9942t4CaOPwy5xTGQql8vEO5kMRXDjrlBm667fvcLe cJNfXDb/QdMyHqSc1YpRnEQi+pSn6hiH7bGkzlrIeQLLvnPOP4cG4qwO4RbvPd1bLhpIsg CusrDI42IG1RWIGUd5D/MDdg== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 37ff3723 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 13:03:01 +0200 (CEST) From: Manuel Giraud In-Reply-To: <874jik46cs.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 18:28:35 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <83cyyorfnr.fsf@gnu.org> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 13:02:59 +0200 Message-ID: <87mswc2q70.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: [...] >>>From e4481544b4ce87af2bbc42980d96d35fa8d4a7b8 Mon Sep 17 00:00:00 2001 >> From: Manuel Giraud >> Date: Fri, 6 Oct 2023 17:54:15 +0200 >> Subject: [PATCH] Possibility to get enter event from menu_bar window >> > > A log message is absent from this patch, so one must be written first. Ok. Does it have to enumerate all the files it touches? -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 11:12:02 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169788668518837 (code B ref 64440); Sat, 21 Oct 2023 11:12:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 11:11:25 +0000 Received: from localhost ([127.0.0.1]:42368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9t6-0004tl-SO for submit@debbugs.gnu.org; Sat, 21 Oct 2023 07:11:25 -0400 Received: from sonic309-20.consmr.mail.ne1.yahoo.com ([66.163.184.146]:38700) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9t5-0004tW-1m for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 07:11:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697886649; bh=L/3ce/EkVvWOjEvSn//Cpw0vxOUy+ylTuA38AnavrrQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=htEQYKfjUTJVg4ZApvYzoG7VQQyy8zwzbP0XxaiNi7DQR3dACZPC7jV9e7QHylHAx0rHDvAk1YJ2f8keU0IzfGmVHSU3++zo5UVxxbPsAU5KpIHWr3NoQt+5neJwQJENUs5AGhktj7nYs8Yjai4HiBYKzmai0vTjvhcx3bLDwp8SBtC2hB792XrjuQBHx44wPTgGZz1D5zL5JxjwkbRHLrtrRPCuOQ0ZkA5R26gs7ix/EylSPhmV3I5Q8+wxzGyDaTDRtD76S/OoPUjPSZe4Nxp3msV5E5o10lmN1ho1Guqs3aXixLYxKwj6Pc80lOvahlbIRuTJhfjs6iRaA4VWXw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697886649; bh=gW43umQMh7TI+e0ciJBEJBs//3JBKYT/hpT7VSm24u+=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=DQ9jYAc2Z8dyuLg/7qy4wq6VIUuONLN4BQEfbk7Jp1eyYFV5m/RRflR7mcA552ov1+o3aB78VotK+i/lPeYzxDQm6Adx3VR6ICQVl0evW09Dq1H5Rn/W7RqKomfQNGlCAzJdbI2sr8M4iR34cYJefNSL/R9ebV2IhHJREB4Y/Lr3PAusmnrNd/Lp3kA2Y0SLMU9WSXrh2KpaziYwdfzNZFqEk0YdnlVq2IxfYiJ0Xvb+A9zoUVEWylYeXKg7FGx90iLoV/EzGGIDz/q/KrIOVtMYMsJyf0JHufoGDx5TFay2ZclmcG7eP5xhfmfBErd0yfxE6E785AbY5rnyudqLYg== X-YMail-OSG: DQy3oWIVM1lI23qX2iNJ.V4SF_.pMHDaiFjhdz7n9.AWqEbzjiO3QlM.W27yaSb .Fi32e3X6XcyF7tAywo.MiVXiVUjLgUILMlkVtBuSdt2DHbNY1oLQYCJl7vEwRlsC_bv8ej6i9u2 hEBXCQani8BXa8GzIxylLIcwVr6r1kHC2PhG5VHv0TmT6vVmps7mEQNX6NXteDP5I3uGGwB5m.my 9nJap1BJUw4s18ouTTbYcRwoMxxYhSlHNMRgWswknW8SK7Pm31ePFTraaFY.Qu2Lp3ty6VIZKKU9 MkQOQfEjFBLhYsrJzWBJUUvHTWXe5XD9f7WbBGCiO2ntCgeuGjBaaLiMjnh8c9.ZyzIfo9XZa9ss iFuxAy0BaoUkm5J_9qDiMcaWcnTdutogaB4nedt_NWJCbvtSxxLFSLpYsayP_uq4IBRItzmv6xbm sPleEx4Zp_JNKpiHEPuYHSeAPf3Bsj9jzHmGGMxQVrUiS5MrhaUSglK9OkNn2fFuQKzBBht25Ky5 BU_SlfakgiSDcwh3yVTM1aFsfpFUl2uqMuXi6mTctJW6KtRcprcOXxJiH7PUTJHEbqy4wB4Pmsqy m7yTfVCR9y7aRCTtYIqlUEK_2Mia7TE96oFoto953KD3dteHv_w1j31PW7e1qKIywUOj1Vyg94EG m8pP.agNWvlgOwi3mgMFF0FZDHAsRjwhS3fvsuIK4F46ZVVr74.jE1AqAqJ_JdJ1d_DrurGgpUmp tvEnBYZaxQ35XygeW163DPRfWcf1wFqeI8.XcnRD_AGU1P1ZxHEKSIZwb6UzMzpHbEAEU2N6_eaf X4V27N0XbmlZTJxoW.XNmKKYJmlAYAdg9zof52swzpnPHlqEChISWH_nwTsN91OFsCTDWZ4Y0IW2 G049UNmKjVS5uG5nEgmTVnZjNedWvSrsFqo1ZmegacV0Mlawt1SIiYb21Nw177mN6ABcMT.W0yvA .FbHy7yF61rz4dZPw91Dr8KEtST41kG7by2eMpGEnagOEOIgL1jqKNLHxn3B6Q9DdLpLHHQdXbRW gDskXGYqoCwhxgp0US8M0G35.UIkAJCQRSbP1L2T6qF5fawcedUD31tDAEhj4z6VgXXvnxqY99zZ 7HPsPwLfFISrOFWXMRbYNiFGaY0V_An77YM2_NnfX4I1RFeTQaR4wNT39r5lg3wOR2BFhoaym96e hrOLGPdQCq_9itkl0rkJlzTM25CH8ShG46T9EGP1oB_7sBcbrHr2Y9BpEt2r5.VKGF5ku0uP6_zc X7dv2jScRbrm6TyfxHqbMbA5vD0kaEiqJcK_Jtry0B77L0efgN_wRq92W8_tOKEGn5Vj7V3_dKo2 Egu4vSufpAOs3SUVDhTq9nBYKaT7O3zck0zQWAZD.BQg3zjJI.ZFijHSXi6unt.zue5oSNWVGFoG JbntBvo..bUKblTsWvqkB_5hJILxEotMInF_BGQ6y46Tq4k86HuxsFWXYscKs2EGPWkst_HR.WSw cxHwJKnhRvLTxUJAjhMBpuuYSVHXgI8dznfUug.1S.AfNa6XC_BKxaRQ6i7IdshrFR_nzFkvzf5Y j6RNOI9V4k7E.G1.ytekMro.FU6rJTjtKe9I9YkB_gVBhE5w0RdjXFabLs8bwmvqikFkbW9pjATN DEjCGK4Tkaq_fLuCqCqd8GFS4zJJ1yHmQBDdil7aRPFqJaFsnQ4bTp2fKJd1eWVv52X2gTTfXmGB AKBu2ZX7FzX4IW9jKtCw37QziE1Vc7iMfjCrwKcudENqQta8PeOil4Yvd2LxCKF6ZMsrk3RAH9ES Z1n2m0.jxY5E5D71m3f2RDEnRcrUG286h9ck7N89gogA6iEBRw3xMum44vkZkY33.DOPqk6gds8K LPCCcoc6DGTcs7BI11UC1T9yBuSVVQd4T.35vmu7zSnG_AAGabPg1WmAFKe9zFkev6T34oIWxSVM mIMMbVnA0l9hodP6aCnIjhrhcW.NiIMgeUDK6Y39DqC3j37JxIiiTkTvbMJgnAobjaT8BmxFdS8H 6EhBedtb2WbC5mahtace1PmyU6ZZvmUqsUpJdhLoedNh6WJDeYaFYV04Dx9p4a6hIgoowmMyaIs5 rZEsPTDpPdS0el0stAUYPBJwqEVdrCCpKp3mbJYdzK7Q9W0Z0L7esUXFEhtSo5Q4Nm1fyfEULUED E31Xek2HvWki9UedLfHBSY6Y72voCHjSJJupviNFzIhFJrSV5ATlZsL81KphnPL4aCvfqEzFqnsP H_v5B4RZ7k6rFSPkRxAEktYdbjO0eUlIGzBcX42DGTVy3i3uvfV5bt2ALF8Y21Fs65Uo- X-Sonic-MF: X-Sonic-ID: 5623305f-33d5-4422-b08e-599f1657b3c5 Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ne1.yahoo.com with HTTP; Sat, 21 Oct 2023 11:10:49 +0000 Received: by hermes--production-sg3-57f7997989-qz7zb (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 84778bf087aead1f3a8c1356b3bb2dcc; Sat, 21 Oct 2023 11:10:43 +0000 (UTC) From: Po Lu In-Reply-To: <87mswc2q70.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 13:02:59 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 19:10:37 +0800 Message-ID: <87zg0c2pua.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 298 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Ok. Does it have to enumerate all the files it touches? Yes, and each function within. Try to avoid writing perfunctory descriptions of the changes in log messages merely for conforming to protocol. It is fine to be pithy, but not to be remiss. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 11:12:02 +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 To: Manuel Giraud , Po Lu Cc: Eli Zaretskii , 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169788669218861 (code B ref 64440); Sat, 21 Oct 2023 11:12:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 11:11:32 +0000 Received: from localhost ([127.0.0.1]:42371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9tE-0004u9-4o for submit@debbugs.gnu.org; Sat, 21 Oct 2023 07:11:32 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:47318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qu9tB-0004te-Al for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 07:11:31 -0400 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2c50906f941so24693321fa.2 for <64440@debbugs.gnu.org>; Sat, 21 Oct 2023 04:11:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697886655; x=1698491455; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=VKMLZw5N5fYJvOeHksDxzmJ0/CJSiPhyoszGrxEz2Jo=; b=DDKIHWTLvY4rlphpchqdRYxUK7E+SWpBSr4Z1nd9Ia3NhQ0/wnfmsRB75gDb2/xYb1 s9epiSc0XZ+ei/iXbroSLMSLExl3LoKsyugyZAyQLEMNY+at/n28HPdDmMTC5HrHzylA GxnUiK6mf5WmAMxgYFyXCSFJDTOFuY1BmYTY7KtTaQPyWUGWS4Xd7tFupOme6ugSKVVH Jn6Hm9NcTOTN2blF5r0e/vikr6W4R18QLQrs46OZ5Ov2yrZdv5YlFVB35z3uEhVwMe4b xqGnoJPzgzRkLOCiGEbDIfbI4E5UaMKmAoAtReGuomF/GBVOUSNR4XlGMQDi9CeujwYQ QfZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697886655; x=1698491455; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VKMLZw5N5fYJvOeHksDxzmJ0/CJSiPhyoszGrxEz2Jo=; b=hD1txfiR+KKejQHG81Am/QcsjrBdKGjhzR0HFUJnxonanac+Cg7g3DifgFLGRY+4Tw Ji+cD2BDgG2qgGeFiSGORf8wAW3USckn3o3clmIuh/+PGlgsg9WbWT1QrGf22ep08wl5 8GVeAFZ2dtA7UGhDtXu3VhMVLdDqD7HX56CfQXiz/M/GTLW2yI8Nj7uQVHGyBQ2cDiwe Ug88AQ4ACP3csOT0xExiTynTi03jDA/3pldu6ACn7CXKNDjZPdmPt9sXjgmBn36dHbRA GvsWM5g0dTExMlvMy0sxbFoWWXa9KggyjR+can0JNbK/sTS25tAEY75PTLh9swQbRUxb Inuw== X-Gm-Message-State: AOJu0YxjKegUpCkSdvZY+ANV/wH2I/j+Zq2wSVLA5vHZrguv4l120ryc 7edr5YIenpaGk+q3fWPJRFzo87gtUzgOgz3kSow= X-Google-Smtp-Source: AGHT+IEHLQtzL5HkKLcb4WNqVlJToyAIUDDG/eO36POdA7ntMRnvsfiJnr78w95buwE49z/JJDJv1TuLpvlK/6nGVuU= X-Received: by 2002:a2e:a4bb:0:b0:2bc:f252:6cc4 with SMTP id g27-20020a2ea4bb000000b002bcf2526cc4mr2797144ljm.10.1697886655197; Sat, 21 Oct 2023 04:10:55 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 21 Oct 2023 04:10:54 -0700 From: Stefan Kangas In-Reply-To: <87mswc2q70.fsf@ledu-giraud.fr> References: <87zg4d56l8.fsf@ledu-giraud.fr> <87r0n4sqm8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> MIME-Version: 1.0 Date: Sat, 21 Oct 2023 04:10:54 -0700 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Manuel Giraud writes: > Po Lu writes: > > [...] > >>>>From e4481544b4ce87af2bbc42980d96d35fa8d4a7b8 Mon Sep 17 00:00:00 2001 >>> From: Manuel Giraud >>> Date: Fri, 6 Oct 2023 17:54:15 +0200 >>> Subject: [PATCH] Possibility to get enter event from menu_bar window >>> >> >> A log message is absent from this patch, so one must be written first. > > Ok. Does it have to enumerate all the files it touches? Yes, the only exception is NEWS, which is optional. See the file CONTRIBUTE, section "Generating ChangeLog entries" for some help with automating parts of the work. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 12:04:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978897913120 (code B ref 64440); Sat, 21 Oct 2023 12:04:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 12:03:11 +0000 Received: from localhost ([127.0.0.1]:42446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quAhD-0000oG-46 for submit@debbugs.gnu.org; Sat, 21 Oct 2023 08:03:11 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:18025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quAh9-0000o0-1N for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 08:03:09 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=KAfovbMT rXCi85oTSyoa2CwGmJtmJUuXdFSsGk0XE7A=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=AHE/Ptn4bcoffBa43KbsR61m1ZEyf8 QEGpzytYahyD9RRNl/A7wucshGzzBpoJdZ74DF8OZjRa+Vs9Ona75lBA== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=KAfovbMTrXCi85oT Syoa2CwGmJtmJUuXdFSsGk0XE7A=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=ez2oqkHaQycNTzptAJHlTuUAoXzIcGn+Vgu/NS 7lVCFI10qxeys93106E5EJgJq9RB1o58EP40oaQ8F/EpMdLIxlbyGsKQezYM+Nwk+5Onan OkEQDv0fWwsY6bChWZP5d8vPlslDrgw6H65TLWApUnqINflACkduAwDbvE6p2SAXfOQ3GU 8BvJhvsCyu5WcRqa1jSuOUW5VWiWNIIYzScM1T9+SL+NZzbjsA0Au8KJqhcPwEpayfdo8w /0ja0DQ1lwvqiFQtsFDIksC1VqMzqa7gDf+6j7qodXl5iTBPZhbEHvELZc2ZrXL9w6kkkI g+FliOgOgkqJZtb94V0pv1cg== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id e006db78 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 14:02:37 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87zg0c2pua.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 19:10:37 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 14:02:35 +0200 Message-ID: <87il702nfo.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Po Lu writes: > Manuel Giraud writes: > >> Ok. Does it have to enumerate all the files it touches? > > Yes, and each function within. Try to avoid writing perfunctory > descriptions of the changes in log messages merely for conforming to > protocol. It is fine to be pithy, but not to be remiss. Alright. But in such case, I do not really know what to say: I am adding one argument to all callers based on its siblings' values. (BTW, thanks for your vocabulary: it makes me use 'dictionary-search' more =F0=9F=98=84) --=20 Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 12:07: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 To: Stefan Kangas Cc: Po Lu , Eli Zaretskii , 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978900103500 (code B ref 64440); Sat, 21 Oct 2023 12:07:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 12:06:50 +0000 Received: from localhost ([127.0.0.1]:42456 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quAkk-0000uN-Al for submit@debbugs.gnu.org; Sat, 21 Oct 2023 08:06:50 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:31900) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quAki-0000uF-78 for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 08:06:48 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=dFq+0yit NoT2Hsu2X7A39wUjBjikGfaxt5VykkxckyE=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=xqd8R9bqCOFJiEX3yDojWR+y1CplLW 0SOGCFkWgIqiqYM6sfp78dsL1KV3jjbD3xhfaD6unlc2ryVuqMf9IECg== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=dFq+0yitNoT2Hsu2 X7A39wUjBjikGfaxt5VykkxckyE=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=pFnCqVbJBE45H6mmPze+czuTVKCS403BdPALSQ F/atZ+sdW8smakF5qdUcQWnpNIoaFT0LMGgcEaG9k1m0QcSMq2SgZh5M4MsQsWCaI8/u4a hPQ6zaZFaPG/MBIEukOyoNpOGAZ1ko9V+ZilzxVdpGs9L6tfFC/IJxb1GNbkz6+auLE4V7 h0HT0ZsxdjCqUyI9BX2POEA+d6HSDhX8DpVRpRp0aKs1mvaoG+jhKzykq8HjJ+vPHpdM8e lrJW3ANVRYWrKFaoQCNIOG59etPXpVR+pcpKWv7sRcEjsAfBQaCzRYXh/xDJ98ICtdsKHA qz3OPKMAq7597F+gtrAtTYfg== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id ab00d1a3 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 14:06:19 +0200 (CEST) From: Manuel Giraud In-Reply-To: (Stefan Kangas's message of "Sat, 21 Oct 2023 04:10:54 -0700") References: <87zg4d56l8.fsf@ledu-giraud.fr> <835y4gr9ao.fsf@gnu.org> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 14:06:17 +0200 Message-ID: <87edho2n9i.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Kangas writes: >> Ok. Does it have to enumerate all the files it touches? > > Yes, the only exception is NEWS, which is optional. > > See the file CONTRIBUTE, section "Generating ChangeLog entries" for some > help with automating parts of the work. Thanks. I was already using 'C-x 4 a'. I'll try the others method. -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 12:29: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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169789129316038 (code B ref 64440); Sat, 21 Oct 2023 12:29:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 12:28:13 +0000 Received: from localhost ([127.0.0.1]:42494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quB5N-0004AZ-6F for submit@debbugs.gnu.org; Sat, 21 Oct 2023 08:28:13 -0400 Received: from sonic308-56.consmr.mail.ne1.yahoo.com ([66.163.187.31]:35521) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quB5H-0004A0-Jc for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 08:28:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697891250; bh=y/S9ZyET5cqou52j94XTFnpBH7gUdB96ZLXJ/q0+VVA=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=Ppk7htUyK1tSd2hpdRRMqIMbkmPAqqdSjh4mMy+cLn5HmVDY7RyITUJ1hv1sdCFBSLNEk2xyKFyiDr8GI9lzLF81Q2lKi7fmWttAmbA/p+wuesQ0Hvbdqz4LHc5ypw6ix/CAdAVHvTQVSQS+UHuWuzGQQCEizg+MpvyW5QniZyN8lWWFyPmDYzIPr35++Kj+XoMWjQHRgK7IVsyvDgoN75DyL9DmSv8U47ts5NR9KJIOASjtSQWTcFEXEMn7joxsuCMgIieh4kMdACA5ky23GtNfDaVuV9sYXCe1IC06fWRJs++Q1Adv9WEh0dpUlBRJeGSuZgp1NmepI/COgj7bkQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697891250; bh=BQWpwkpb4xf8ihKi7dyG4MPad5Ic5yB/xaASdg01LqW=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=jp979VvxcyHn4kYBmD1Jed53DgUQlzPMAkHLeEAM3H/ghQEwsFevMfB41NUnILELGhGHwors9G7R6jrFFsTaIU4iT7Va6i24UtSMPsVuxKKyprcAwmh40domuySDW/C1X+L3tUoxpdH8ORkuGFR7l/gOE+kpncd2nxuFKfaEZ7bzHeMzrEB0kc7Tx1x/ZNuV5IbPH4SdHJea3l18vhsw3l9A39/u4cz2SRi8VGR4IyTwPHnjshP5eA6Cg5gIs+d9iqRBR7MEYernnRombg/uC7WzYU9RXr8WH7X7mvP8TladeceTmBjIimr96A6Mly9Yy+ggrvy+nmej2eXZ0ui4mg== X-YMail-OSG: m7JlUlYVM1mSllHmiM1fLVsge9pXiu5OPs6r8V.ZJlRefW2_Bel8D5eGQzr4hIv 7yQHpnXep.AhzhShAfDlb7H.Gme8sKoNVGAWhTt4v7siaUvfV8GwSXVnd4UPiQ6EG.3cJ0bb9z.j VKMu.xSZUfflj2f5c26F6qXiOA2KZrnFN55FaFyO8WMq2zs0Wj_j9XAokAEb183HuoGXIf4Qxj8W UeEaekDJb6w5kSp3c5847cFzNd2OGcXCFt_7ox8WLtqqNMoe6.0MmrHMmK3h9Xq_eG2EE.IIqUxH Q4hOyvoayT2YQ.Tb1_vlr9TubzTGbk_Jvqm7DEqvOw8wwQeikJRHxwglNCo7wHl_7j91j6vSwzKd s4R2FIwp8xK_UR9NttlZn7_M3kfAfbvKsFeJp4.p_8YBnYi7So5vOWd232O6wCiz33p7sGuDxJNl qx_XoP.B8oHtn0Pq9coKPTaushxdQ5DH4I8sEH4oCSgho.vid9IPVClexPIaGnrqhjIa2QtVRefQ 4CTKyKJgKvlRgOwF4pfP1ijJ2njhTGe9KHMJdmYrjOAyD21ogUYTovjdnoRazFV8_eH.IYFDZ.dF VyAnluydT8KE7m7aBhaOkbQp2OEN7RP3HEKh6MSmLlPh7z7i4cEyry.QKrfJPiUF8Isdc6xzeHnw QJJ1MjOasK2zMBG8oYeZKDBRMpJMaq81RVgQ1zzhK4PWiE0LHIQ3tzQEQGJmY3Q1akpOS0a5ozRs jS0kgNYiJQJZ85NADg5OeyP_IkglDtgx7MaWb36eCUl9tBT1SItLN4_G9a93gKkmNJ2ByVdEGfEu qVA7kzw1EYuCL1dfxKL7oP9UEMnYt150LDigbwqr3Hy_aI53DOpcKCIEGDYvfcR9juhdEpGV54Ci qkXgtzDdVtTkS1MmiSVQ5dMGglVggrr4.Cn5w3.z7sjDnS3L918cx2roIegLy7_9.PFnUcBIUZcf l4aM.shZOnBb8nXktcnlD.KOyoVmJvQJ7.rCkMZbt0ywgEFScdKiHjCe_rpLJR6lLAdO9UdpLIZ5 pTa2TaAS235KcNzh9SfXmXwcQtGQ1g40DhGnCbD1A.1ks6jKQx8oxlZX7HeYa7rVsqJPZx722.Fc RLVMFBQMQL_Np8sKrkgz8LPAxs02hWEwReCu90GZWdrNn.o0w9POjIchBH1DMQSDnqLgP6Pv46_v A4dfFC5HmgmQRMC0emB7zFajP85NaL0SP5EgHsuoHF3NL.kfasof2P5PNbZjon.m6jEdWX2q36AN rbIPnvXhccP48qBWj_eCppeXZzcYDdfCukTTWi5sbFS6j5AVKI.wjI_effoo6ljB96wCU5y3jFTX Mf_iftQLHsJMQY8K8YHtNJVgp7BFUwk7CFTyDWWgAk5AcGbvG6cEpmO31aZjklIVroXK58k8K8jP leqK4JZa8OKmiGoWqmgQa1Tsg5IsxAXzq6xCNVRykgHMubdZ5_vPdl87gcMY_PgpEGhz5u6by.yK yUu9JgPdt8pRR8Nekv5tSII9mSyxiAptJDLtSa.iGbRIulnqQYhFV7hthUfHbgclYI5vY2r3Kj11 E1ZVTObPVbOw4Be.IcopLiIEXmj85IhTNpRch21xIwElmIoIRc289zmdISdfl08gdVIoMi5yymD5 gfl4wh7VFDAmu0LSMOTnPDSHcpVmHi4oZiwjAGZB0E1LWwFzQAzAHrnTHTGoWEd1fGX9IAqiwMQS FOCSIku2tZBbEAL_cYL5p1E8wjkp2H2WOlqHNAcNDrN7PhAcBXKeWJl5qtzYju3ABlXhMZLOwbPJ 1e_HjLITQ0.oKEIFCrCFa1qLz0un28zPPy.5pECu3e0rPafsIpdz_hZk1PGpyULha_xmY7f8cvvt YKBu1M2xNolddKCD70BDkhhrabQXexooekJT02LIgTEpEtb04kvOq2GjINN4G5ImpwmeDmbDhcYV 0EL0mYlMZxdL3lRujPcYQsjEJAIcYonKLjmxkvYi.bXzLmSka7_m7WKMnc0f.YPPG2Wyu_wGwfwc ukcF3nRq5ga33AwIVKH6YJleTgjaJupwbUlmQ8zKc4b2RytWwQThDuXM34TafBXLCZqCyIkAimnO VnS9XknVLXd2hSa.GlAMzc3bFZf3kwiVaod.NHQ7LaE9ojp2ZaDIzQVjtI7vMNx01N.vGEeNX0BR KoXlfi9f9_BrnGHxycbj5PVD_QFPY2BaSZ8BlFbUV1SLPvt80Ct0cH4mHcsVH8.DhwkokESd6MGt L2cEF8W5XE_CEsayILgOArn.JcAQN6X5cfErj087FWgy2_mBdMU.F0ED.GCQ6Oy2nkQmS X-Sonic-MF: X-Sonic-ID: d9f68fb4-f641-426d-a264-fcb22b63981a Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ne1.yahoo.com with HTTP; Sat, 21 Oct 2023 12:27:30 +0000 Received: by hermes--production-sg3-57f7997989-hn92r (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 2f4d25eb8a883fb3c7128d92e5d23e00; Sat, 21 Oct 2023 12:27:27 +0000 (UTC) From: Po Lu In-Reply-To: <87il702nfo.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 14:02:35 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87jzswsfmi.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 20:27:21 +0800 Message-ID: <87v8b02mae.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 620 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Alright. But in such case, I do not really know what to say: I am > adding one argument to all callers based on its siblings' values. In this (and only this) case, our practice is to omit functions modified solely to introduce the new argument from the log message, and to append to the entry designating the recipient of the new argument the words ``All callers changed.'' So long as the default value for the argument is straightforward, of course. If computing the argument demands non-trivial changes, then the ChangeLog should relate them as it would any other. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 12:46:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169789233728080 (code B ref 64440); Sat, 21 Oct 2023 12:46:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 12:45:37 +0000 Received: from localhost ([127.0.0.1]:42514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBMD-0007Il-2C for submit@debbugs.gnu.org; Sat, 21 Oct 2023 08:45:37 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:20836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBM7-0007IU-8S for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 08:45:31 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=Sw5YI+56 n80yDIKAXiSGDJSZSaH7TrV8DcGLI5lnknw=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=uO1O3BEa5AZA9Sr2EydKeK0n169sQD a7MJIY5RC+H9ekBzgcbkQfzA1Hd8hWzPLhK8Tj6xQI9YDa4ihATBR+Aw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=Sw5YI+56n80yDIKA XiSGDJSZSaH7TrV8DcGLI5lnknw=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=LaMGnBo9FE0yxYSmGFNCgWz8Kjaxw6/sfWlYYs X1m+qKnfAp6M/8VSeg+7TjG+DlfG8Uh6oO8AYTyF+IXQhBXcZ60WWJby/mHcj1G+Gc+UNd 7DmDxz/o1rYNkYOQ8c4KRad/GYkbD7XOxFXdJkSLP09Kn4Y/gHwmCrFP4vBFK2EIz5894O 91zCOGDgGzkNCmtCKo/CrMW6gkjkf96nPgo9737s52Z3+ytjl7r/GUcDbdmFbif+JaxrVH /PvXGTY0VWGSaLo8+8J1vpaYUmfSXwm1u6Mfmdtu6yeXI5+9ZXJwUOKWA2geT0pOOVwqAV heV8Dr90FbGdtjT91K+KrebQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id d01de9ca (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 14:44:57 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87v8b02mae.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 20:27:21 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <83v8cgplqo.fsf@gnu.org> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 14:44:55 +0200 Message-ID: <87a5sc2lh4.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Po Lu writes: > Manuel Giraud writes: > >> Alright. But in such case, I do not really know what to say: I am >> adding one argument to all callers based on its siblings' values. > > In this (and only this) case, our practice is to omit functions modified > solely to introduce the new argument from the log message, and to append > to the entry designating the recipient of the new argument the words > ``All callers changed.'' > > So long as the default value for the argument is straightforward, of > course. If computing the argument demands non-trivial changes, then the > ChangeLog should relate them as it would any other. What about this patch then? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Support-for-menu-bar-in-window_from_coordinates.patch >From 5047d98ecd209c514eec50b9c84a32bbddfa414f 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.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 | 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 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 12:50:02 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169789256228790 (code B ref 64440); Sat, 21 Oct 2023 12:50:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 12:49:22 +0000 Received: from localhost ([127.0.0.1]:42525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBPt-0007UH-Mx for submit@debbugs.gnu.org; Sat, 21 Oct 2023 08:49:21 -0400 Received: from sonic308-56.consmr.mail.ne1.yahoo.com ([66.163.187.31]:35742) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quBPs-0007Ti-0Q for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 08:49:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697892526; bh=zy9kM7RiymaHyTppK/LNovILdRlZSrDYE+ddbJpjD4M=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=XetVmfYwmNc8gqFkCx9tNmQ4fO+802v3xJo/i5i4CLPU+Z9LqhdLbHPH97JZi1RieuWZcTujpYWk8f/0frwI101dvNqwwv1i+7+71Bl39z3rm9LEasTIhONhwv7qL/VaNjcNvpkdwxMW5lewVGFdMoz1LmcXApiIZjiz6JSIb7DcBEL0uWvHTu0qIYhqHyhteYFeHmjJqhQgFbpbjDiwWJdAzI9jRK+oFe/lo25f77bi1XCunhTPIqAxBb/IJAz15K4Qt7bCP1CDvq3mrI9nj469iGZ8A/Cm1dydmqYRG8U/EzMsFlI63fsrIqB9gEqO461IlNk9Z5bFvL1004qLqg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697892526; bh=vNDQ4lD8ZEvnXKt+o2Z873S8zhwi3Q4NcYA7or7eJEo=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=pBdAgEFtai5iOVLk2L5P5wvhoulcFnTPjSlr1V5ooc6RW2xOqqy//JejfQ5Zzm2/RL+otRjd/Xp3BYO6X/jgHjTck1vX+vBqYSbRfKVJVt6lKTrTqdlxaOQ8p5mfv+DSkJNwxPpElc6ErLIyYqLl3yAQkavOxgWwPu5ztSSGBqXL/IsEZrVZPT8HpD3o4RupOfmBzM6Dj8kOUhSlCdkUXfh3xC5YcaXtub36TuQDfXxCFTcDFHfIIat9dWatqAkPGnlYShWWmrshbk4bfh0TY0DofianTq/Au11rOcs7KSkGUiz8R5YPQRjuN+6Pu0876AHOMEFnkOwZWO1FkgQ/aw== X-YMail-OSG: sstbYUEVM1n8kZs8qZc._091nOXA.wgUAYJ3nQ3mISQiCx4QoZ.cnn6FCp5vEAb 27G28cfelC0WSunidsdXakWp0vX2i9Fr5pwur7sNV2OLp5MHXVHGZdwiHwnlRs3SeuYU_xAIYWo6 zDem2PDLUldTmZFXYEwAAaTFFbtxcAMN0xTm1hyj_cOvwjLDFgCb.g892ua7FZdxkklAOilLYTdc dYtcrXOzZAQj3LoIKq19.qaJAVJ81nurXzU.gIhiNpkHmtf6EF6mSZf50rIZWsXq9AKXwM.V9VrP m496wPQjeRwBcjPpCIi3VPjw1Q.JjKUK0JPKMLYR.0WNt03pOYWgxQun1G9Ej5rFH8feq0PKZxL9 fd5qKxTTjvrMwCQy0HbgFdcxcViG8.COOyJNfaIh8hHkukVvGnphcrNjk.rHT.FcWYuCNJ_8hEbs op7hmrdynR0AEE9lJasMeDuuL4vMbDc4opG40fbHwuC98ov1o8dZpbDKzICh4TsfuEQvp0chftih J.83TaEgb4irYdnM6N3ggeOFOoZha5YTFiDKmbiX5sYCMvi4I8EY2cJhq1MBzcfHe0ybLYzCXYcy hK74wfMWwOEgLMUL3Vkm04V4aJCKHCCKYtzfMB5mJoG75rwB1_SM5_TKOBIUGRNo5Wrd3h5.MvDS zBxDNZZYqLLRlygjIDca4a7k6u2GOsk..976Q72SWT3NzMWRfvSAO2Pdj2LObBK1xNWB6_CXM3ar S8AaM9j16G_Y0p3FPehPmWAmyQOqJmHvIBuHVL.Bv8iyWbmKSuzU3jQQMg1sEEnGr3.GTM4Q_ufe FQ0etD162jwdTHlI7byn.kJ5kUdkEGIVeeBfdZY0soaItj8ymedkmsTC34lCQS0XOnb8VO1kT0Ws x2kLJCtkM5PLIZZRziDvN0RqrUT5Qy80ID1ysBOce07Qdg0ZoAZ3RXGfXqNHSUhU1ntwCIi19pXm zKiEinosB.I12OxD1ZHrkJ5on.JGzXNk9SJwGGlHOq386alLcQL1ljq2JIscO998mASkJWyU60Ue D46LN5fQB64rRpvytwse73zH8Enlm1YFfICb29eYCSRfQEI.2RtkP0b3RJ2uXr6HhFxO.R9RfXoT xWT5zz2Y6De6Ls1_WhQP4sKIQe7wdf0tRKDS.rE_BHEwO43uSIn9VaSN14SNGBYSxDRC.dTkTEaZ tsJbNoEDq43STaTBJzAEPtHw_MR2aodiiVnOSSss132R0ASOT9qjKpIdEHdcScru8m1hH5_YZOBS ruLXLJWBLIXB1kdZPjLMN6zNL1ctPp25J34GvOa.DHVCD8720WyBbmxsJsedr3pwVE8XgKgrmuis PP3apayvAddp4hBCNP9usjD3Lqk15bUYmSk5iVfLyL12o1wIfH.xPpDzNgyIwFLVVmnef96SbWcm f0dMjd8KqH3w85CELzExwXkh3WaU8El2ZmgUMMDxJjcERCbjnSfL0u41vFV3pVpEk0qEfIxk3Ubt NNY1MXJdN261dCam1779V3jsGA838NoMoRgPQVaBNPjAvIuw8uBdgl9HB5q4wwGBGdIf4K6ZsL2z Evl2L8XoH7qP0jypweK5vjVVzMxII7yZAm66VQE0wX5owgepKTKtBWpFwoSSlDXQY3gqCqVYS.vx qnt2L.oekeBnq.YYFli2gCIIP4jknxKkrh9Jn_T0Tly_JxhWCRPur2DpqVW0l8NEkWTKRwTWylf8 ZZr9BY_iptnKqcBpAwZwiV88PazBdLcyl4Uc9okRuzJMiPNejglTfgkQJnPrabuHJqdvtfjyAJ6G BQksM57p8ZqMsc8rQf5bjzBH_JDErhfPnooRzhRXo3wfU6CcQJ396ps2M3.knz0xAJZsFnI8hjnN mOZBhkbdPl3EIUylF8q_O2OHvxLha4OBNBsmD8byd6gAIJW_gM_hXOgbVsnWNz3DRXAdM31ltjIA 3ttk5v3TiNgu4nD4cbSzDti2Ho8OQ8nTAlC5wOggS6bjuBK9xDDc8gXm80L3QvKOAprEqrpG2DU9 b5duv8lbYBaeygg4M3n5FeYYTf_Jj726BbxMp8aSiWBaD6bmthi8tGvAoNr8NvZXpZ21VO41UJBW P6GdRtNVkT7BjTenJPrxhPHQpV21K7qeRATUdCqI0IrYbJE.r28LM83UdWbIHl9g6CWj0WvSkUYx VRptr6dATLIi5jjE7NglypDWidrsXV7Oaq_cKOELARmGP2aEeb0zWagbRWUjF8tKJLZ4t0Aa4wD1 hcahi3m2aVzhrq_2H4JcNNQBGmEa2fUDlRdNCZ02OZDY5HNOARF1uLkHC9pFKDmJBxd4mL5s- X-Sonic-MF: X-Sonic-ID: d39ffb4a-2185-4e1b-8910-9d8f90612c9f Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ne1.yahoo.com with HTTP; Sat, 21 Oct 2023 12:48:46 +0000 Received: by hermes--production-sg3-57f7997989-b8zls (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 3212e2600617f73a8e05606b6740184a; Sat, 21 Oct 2023 12:48:41 +0000 (UTC) From: Po Lu In-Reply-To: <87a5sc2lh4.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 14:44:55 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <87sf7kh1rg.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> Date: Sat, 21 Oct 2023 20:48:34 +0800 Message-ID: <87mswc2lb1.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 1341 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Po Lu writes: > >> Manuel Giraud writes: >> >>> Alright. But in such case, I do not really know what to say: I am >>> adding one argument to all callers based on its siblings' values. >> >> In this (and only this) case, our practice is to omit functions modified >> solely to introduce the new argument from the log message, and to append >> to the entry designating the recipient of the new argument the words >> ``All callers changed.'' >> >> So long as the default value for the argument is straightforward, of >> course. If computing the argument demands non-trivial changes, then the >> ChangeLog should relate them as it would any other. > > What about this patch then? > > From 5047d98ecd209c514eec50b9c84a32bbddfa414f 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.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. Better, thanks. Although the commit message must be filled to 64 columns, and I'd rather callers passing true be enumerated there. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items 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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169789345630758 (code B ref 64440); Sat, 21 Oct 2023 13:05:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 13:04:16 +0000 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 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== 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) From: Manuel Giraud In-Reply-To: <87mswc2lb1.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 20:48:34 +0800") 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> Date: Sat, 21 Oct 2023 15:03:35 +0200 Message-ID: <875y302km0.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= 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 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 13:26: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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.1697894713750 (code B ref 64440); Sat, 21 Oct 2023 13:26:01 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 13:25:13 +0000 Received: from localhost ([127.0.0.1]:42567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quByb-0000Bs-0Z for submit@debbugs.gnu.org; Sat, 21 Oct 2023 09:25:13 -0400 Received: from sonic316-20.consmr.mail.ne1.yahoo.com ([66.163.187.146]:43592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quByW-0000BQ-LX for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 09:25:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697894675; bh=3baNXAWy6VGuKJcSAHYnbHLb/1WQo3Bd+Lga7yQmQ4c=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=I9B7QgQoMXgh7z1UbRE2mucyFrLTnWNk8+0GgLwguj5Uu/Z59414U+znIGdun2Xb+2gAsOfyKlWgpgWsUih3kaDJl+pbZQLmllO2CFoZLlnEkDeSwxq2MTe5GDAaS3Dj50QygLhUGSq2eSYdctw3y57MFNT6SW+6NMHG+dyiLSmJWQHWGMg8kJDuXGJeuJia1/HjSK+5dy/enqxnmGemHpBSQDw308fkzNb+uy6927Pz53iRJNWsTW9Au0z8wVf+kukzeL2KHpsSANY4T2Ks16hPyFB7RurwLvno1I6lk2OUrc1yIHq7+x3xyw4X+q98TAeaZr4Px0XA0ynYyjeSZQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697894675; bh=uDWfe0Tm+WAgQOaO2Yuqu/ZcmHCGYT6yCMZYUfG13yP=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=HhARZFePPHw5HiYIbzZ8NsmTr6MvoDG41vlyBlnUguzmotSgAp9+jCRql5JXsgHgYpjF+PiUbQfFIHzFojDh6hED/vFo3Sxokxh4ydIAuohyLo6l5SIK8L1HGMmQYqTM9aVduHgJltmcOJXsuuuwZhB0M2VGnyGNrc7oHrOO7eZB3Ainfua2Hx0Xztp8yLWhkSJqWacZgTEqgTVYiFiWPTLYXScF/M4S1bKpGfY05twOvp/FP1HGE1X4+90YjfMpiGud9TwC0H2O6CClzD/rzhlB774ekpOZ3f8T/XF3pMWiE7D5YMprK+5dZrg8hdui1uwGLAt6TOmkhlAD0yEAyQ== X-YMail-OSG: ILYRLiIVM1mv_vzAxsDKXRpAMammdf4HWKLw295UWQAnPcQMYu.z1ZYkecOdhwX 828Ewi0s5nsTjgAfHdfgy7t1UotfqwjqsDkWiMHQuvh7EuB6jCFDrK4B_5C3iBSGCP68XDg878I5 UKviv_Poo1dHd5nGE1aTy9bOmvqQU9eV9TrDMhfP4Ynd_jlqkxGFfiQKlC1jXgy5QKzTPCLE5FAf gbJrg_NiW5vp1o95o0DTdDuDqutKPEI7Mek19M8VnGr5j3CIPt88sEn1LjWPszwFbsK6ahgpSYCW Bps88REJA6IENrBdiq9GH_xkJKUSVpZACqtB_10h.EQfVvPf2VDHYsSOHCz0QFKU5.rfh0wB1KdM Pvixsdk0DI8QzbMlBjTUCpO.roZDNVREn441rTX.NGNKGET228mpbiSp6RhOt2s16xqAqPrvpP60 o3EqjTm4aFMZcoaN6hdgdVN.lEGDY2wlLnStuQjVIXikOwVtvdN06vVkG.TrBc9DqnSBtJk2VA_z khmW3_G0FkLjxpEfEGOD3GqSWSQEx78uIZm6B5o2G7d8erLdEyPlzS3ahx6LQxO5nwvbtXLPxFPU gc0LOjoyfoENjhK4.768O8CECi4hqw04ps1pRB0cYk.UpiFjyfnNmr9Ibe3ISPjfmndFvdrxqnod NqgakuBiqnZgMiWx.wTPgitx_ipUkgBDmpNddC76LXtYzZsYjQBoudSutA2zsV2_ayH4ohoKTHm9 qbsguTZbCZHeDgn6Qbjp9YMxNcDzky50fslotniRbB8yfb7hoN68Hnq2ZVMjit92sY3bDqzc_dq7 c0qWxmvfcy5ffUGuDURhUIyMREIbaOkLxY88WzVwJSYCG7q14HBZT1xi8.IdtFj5rwXIDfP9VHzh alAw5a9wwcZY77T9RBMs3J4issq_FRCYojGiGHz_tVSCmPJIrTKu7lQd.wOnTgCfyHbNfQyU6jql e5FNDun5FTtIIbNcMmLjHPe3g8N2YgUGeVK56t1Y3SwJQu5ri9oOKLEx6WeKyvkJlijetAjgYoMm LKQa2GByY_fflRlkfhJxAklR8TwmBj1rIe.6_jnWfcHAuosxmn3_sh_HcE67IZSm3brt8jjCQRbm ug7.Kub8CdLz_7sSFkYjrcqdD2pckfqMGN9P4x0hE_eZHg1MB42_FQYOxoeieZiXtyJ54vF9apPu H_ObGetivsXd6__a4z_RKPaOUaewqeNkyLf.PYMxR6j8a3ImkBe0SphyMZD6ui9whD5tNvruGxgu 6C3zyS03X3l7hsAaqgvN4hkndWnUiRgM1EI_rne6NGrDZm4DFjgoxe8FhhGAyxGa6c7y8ZMRqqbG Vt.aL43v8CS6UWJbr1Vz1t6MhtHh.vhzccaydlVsG3fb1I2ol_vEWLQtBWjaqwyud4wLZGNvf_YQ hCfEdsIoJMReycmjT_qo6It._Or8AXQWgiijk.qR9IpePmEeBZBFOgokTwhvuwGrr3DsTB_LLYUV SwnW39m5K1GZQtQpS2zLYb1Pbw3RAljKt89WKXMdeah5fcJJFEfDSlWsQB9w2Wj17fC1QyNsn3oI s48Lb55lqqNhjVXaHC.SH1nXZySY3OOdy.HhpXYm15J6ITVJgAhccmW3Kh65biqmAJ_1OiJ2oKZF 7m2y4D29Fc5XmpPZUvO3f2OsjfcSVjhnA0Y6eu_vuwjIGJZKjWATVVi9itH79q2bGrT1KRxmzeZh 3PQKs0rHOfdXnHym4Vw9IlnhVaRt3eVpNWcfjo0ANHyfW0qx_U3Mn9Tbe3Ndap1NtlJvmoYMqxpP TW7k56u192rrg3P3t40B.qSsE08aNYQOSuIelPT3i9PBwj9zPX3_LAw1VVCa15g7Pm0R5BtQGP5d TiBvGqJlKGKilCx_veTcomEQ2FVVa8zqZtAkgvaNv8my7iX09gXZvGzTY5OpRnFsJ2yE5AbccPJi BJOSYtF17lzvLkuCA4IsS.g.UR7lKYHmBlN4MVAlH4ikWx686r1wRsMnDgtpwnc29yZ2z79WPbIV lqfVGH2EUFX5MIhIEOCGA5fGVQDJh2NMFhNGDn3y7kbKbMFC6CvZac2_Rb3tqGOq.H1c61mbpHHY QybmnSiIS1qOWIXFRkL5GjaBc4pkeNe8cmOt0LrauyBFxL3pMNq03mtn0rjuH7QeioZZ0A7lKyst w8MSo8_YSJ.4R.sSJ_Y7JLkqQEQWwTNfpTtM.rMk_MBfTwraCYPphSSFTNdUQ_EAxYjy.Wn1IJXM FCYBKouIQfUsolumZHrSS60Qem0xGtJWL.vZxPEowVyn8SF6iFirkgTekpcpTS_bzMmcYyT5GsQ- - X-Sonic-MF: X-Sonic-ID: 92bcdd9b-0496-4da5-bc51-5a7e2cfb0cf3 Received: from sonic.gate.mail.ne1.yahoo.com by sonic316.consmr.mail.ne1.yahoo.com with HTTP; Sat, 21 Oct 2023 13:24:35 +0000 Received: by hermes--production-sg3-57f7997989-qz7zb (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 9de32f1420b423f37b29d5de42087df4; Sat, 21 Oct 2023 13:24:29 +0000 (UTC) From: Po Lu In-Reply-To: <875y302km0.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 15:03:35 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> Date: Sat, 21 Oct 2023 21:24:15 +0800 Message-ID: <87il702jnk.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 1197 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > 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? > > 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. I would write: [...] * src/xterm.c (handle_one_xevent): Set menu_bar_p to true. With that aside, LGTM. Thanks. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 13:57:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.16978966057102 (code B ref 64440); Sat, 21 Oct 2023 13:57:02 +0000 Received: (at 64440) by debbugs.gnu.org; 21 Oct 2023 13:56:45 +0000 Received: from localhost ([127.0.0.1]:44745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quCT3-0001qT-AQ for submit@debbugs.gnu.org; Sat, 21 Oct 2023 09:56:45 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:41139) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quCSy-0001qJ-0G for 64440@debbugs.gnu.org; Sat, 21 Oct 2023 09:56:40 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=7lrsswZ8 UMvL8UaZOAZNzUywZVjO7dCAxTLIcoVRhvk=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=r5nIgLSm6UzWiAg2I309zUZhjZNtj2 wnL7P1EUmvNtGTAHU10aH46Z/bL2mpsvpX3rnQmiJM4IrxFGRooPQEAw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=7lrsswZ8UMvL8UaZ OAZNzUywZVjO7dCAxTLIcoVRhvk=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=Hr7vw5hLwaZ+E3DoQeyP3igO+XSp+I1syjm8Sp 780po0bT0mOutCrZb89b469i8aN29cdmlaYCOApLNMIWjSvpOs5yAe6jkvweWRzJ6Qf0xT FEicRBKijAilKTweN7B07D8GMPztc+LX5wQWHxBgXdNvWkS99QC5sKwHAwwAOx3OVcTtbY 5+/yn2XLC++OWZzOVtwoZ+YcmFwnzh6TEqa+PD+k7reWux7yJbHiNDiKS0JktVLseVmOcg wdPFVO+jZXoLFEkFOMI4lQzgMYjWQlRG0Mm5WdDu0LSckcJ9OKm9qkchlRAbI6SSTuHv/c JFeUwo7IxeJU3exxPDaiQNDg== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 81abac29 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 21 Oct 2023 15:56:05 +0200 (CEST) From: Manuel Giraud In-Reply-To: <87il702jnk.fsf@yahoo.com> (Po Lu's message of "Sat, 21 Oct 2023 21:24:15 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> Date: Sat, 21 Oct 2023 15:56:04 +0200 Message-ID: <871qdo2i6j.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Po Lu writes: [...] > I would write: > > [...] > * src/xterm.c (handle_one_xevent): Set menu_bar_p to true. > > With that aside, LGTM. Thanks. A new one. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Support-for-menu-bar-in-window_from_coordinates.patch >From fc447fffab2c9cc0228528b1686480c10be505ce 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): Set menu_bar_p 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 --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 27 Oct 2023 08:13:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169839432226810 (code B ref 64440); Fri, 27 Oct 2023 08:13:02 +0000 Received: (at 64440) by debbugs.gnu.org; 27 Oct 2023 08:12:02 +0000 Received: from localhost ([127.0.0.1]:35025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwHwn-0006yC-Qy for submit@debbugs.gnu.org; Fri, 27 Oct 2023 04:12:02 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:29709) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwHwk-0006xu-8Q for 64440@debbugs.gnu.org; Fri, 27 Oct 2023 04:12:00 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=LJ04Uzer f5229nI+tbJCJLWQ9Ybp2b/FgdUoTqZMlxc=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=jRL62S7c/RRRI0IdVXiM4smt+MlVmv eZJZWtOMLxkE6TRqxF9gGmqtUORHR+8PpkC5LLUqlgprvZj5Ed+DSCCw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=LJ04Uzerf5229nI+ tbJCJLWQ9Ybp2b/FgdUoTqZMlxc=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=ne9yPN5YEMG5DOOri38ZdM3YPaKbyM4w4swEtb Bj020FgwTBz9egdF3gaRMJbLmKyq+oLsqyDXdypw/wTuAThdYj7p3dnWazdCktzJ+abcsJ S7/qib53DTgNyB0zS0+BiXS/l2C/Lz1xthFxJjf+t6OlkdaRoMrOcaq3Pg80+m5nk3NIyV HtisRS+n/vEaVtzekHcdJrvaw6kp09iwG/rHbl/hSC0Z/0/rFsxIbZHRuKEsoDEQGKZp53 46ER3a9pkuk9MihYUn28W8AoUi/2WvDDuvqyx3e1EB9tPNam/grTt1wF9ZNW2ziQG2hXm/ dcmaiqjv21qSN9fF4a2qWXEQ== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 2443e738 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Fri, 27 Oct 2023 10:11:24 +0200 (CEST) From: Manuel Giraud In-Reply-To: <871qdo2i6j.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sat, 21 Oct 2023 15:56:04 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> Date: Fri, 27 Oct 2023 10:11:23 +0200 Message-ID: <87wmv8qyc4.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Po, Do you think that you could commit it on master? Thanks, -- Manuel Giraud From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 27 Oct 2023 08:20:02 +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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169839478627591 (code B ref 64440); Fri, 27 Oct 2023 08:20:02 +0000 Received: (at 64440) by debbugs.gnu.org; 27 Oct 2023 08:19:46 +0000 Received: from localhost ([127.0.0.1]:35038 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwI4I-0007Aw-JC for submit@debbugs.gnu.org; Fri, 27 Oct 2023 04:19:46 -0400 Received: from sonic317-34.consmr.mail.ne1.yahoo.com ([66.163.184.45]:35477) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwI4E-0007Af-Gy for 64440@debbugs.gnu.org; Fri, 27 Oct 2023 04:19:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698394745; bh=QDqX2czrMIBtUWhcnf6n+iQ5wShNI38JGym2JzASZJQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=BZ93TVf92klrvErsWTHqtHiyCLSooS8QYwhLFXoJySotGERLy/h9YyceZfNZK0zc0RRFkflCdcvnDeE0UHgktWw8CtdrdTR+QXYYy6/I9JiZKkkXAr3RzS7g6zeYUzssjWSZFG6px+ejpD25s1tdIjAGfxQJIJZMeWr/jUXJFVqUGnI8vzjWsccH7vqM3LCzvNWOWEFWK5cxY2cHHIJLJ3b9XNSgX488K0MhIkraMTbTGFS6/NQDvZpWSPyEb8HtfIFzZyMi0BdbQFMuhaUeG6aVQ/516L3ucQPbrauu2SMkXlaUKGGiKsLD9V7cwGzQIA8oCGtHu+gCxEVplmvwEw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698394745; bh=tu/ULa32Yv9VC9D2hA4C9Se4DN/eS62lf7QYeIiXESa=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=STEypKx4+9zRqqutpun2VU7rVIu++8xeein0342VRu36z6waWQdYMH5JErLdxkPTyeEMWeWyG/nwpMALq2ZBtcy76bd4zA4Z17CZEUIiJ6OGpQjiwlG0Z7OaaV7Hv4cYnwiuH24WvKaUfsSgb7aRtTQzbJmnl5dsqF3TJjF/+RiC8fsFW05yfvqQOP/5IdsbT6HIkiU/APU7cQUpWYqDP9fGk2NCEqFAJRCPjDuYTKFa0tl02i7XbhNc5/WcCeHjYUQ/cULfMaJyb/y4+cirSLjVPGH1hUktwPV1+iGXQxEm/clEK2+qs+6EFkZrfJ/GuI3kTwa2Hd6z5Yj7vSZ7pQ== X-YMail-OSG: u0S.sa4VM1lTR_WoJ6DAsS_Sfk5OXvWvGaf8pB6pfeaTZMILGjbqLm..OokVr1P EOzx.aCfpuUBr9JyqOpvKgD1Lr9u22rZFj1SsG7WVd1pD5R86EkcTvBl_lGoiz9IDNpyqfk9VbrV 9CrnHHndRCRu.EOFvOJCN3dBTuFOkkNAwIxC50VgKG86Op9IS0GmmBEqGepALeGHoNfvc_yfyR5Q 7saLbto1BZ5mvs4EHhp3sxKqRPR8.EEWQ.aK6xV3wwh3S05R3Zl3dEii.h1My5d5UnFTnZcvY2Qj yuJ1RbOkooPYX.qckiG.VdLTX6YXZIU3ZktU.0vjuGkX6pTQDtPFs8Q9t1vVwKMmGwAgOuEdOgcu rZBAFkkpxw8FNhe8OooeBC4dVBh6rxvVq.cW7G2_pJpsn.Wq7Zo2W506SooQ.jvW4DSyf0AqWlMk NqJOS8jufudO1CmeBjRD0Sh0js5zr8L3xVN1mQurrCrcsKGfxHUFaOVlQEgInpN.S1yAniHElQ72 GnNPE4thfdcNr9d4jLZ76jwHYmXPYBgmJjq0dpXdLnRixVpNzfdHwiLEQd7G8DwfJEWtRLVSCY3n 49NvyYyy7rQk3hBo0yrToZvnhQa7opzkuKPmt3s0zdfWjoX8n5KghBZB7eVck1udzY7i4_3H2Uvr IbZ4HssQ9KskpzUdmWbTMcuDZ1Q8HjbK3.DJV8AEszhf9leENNgPlI8vkNE_48cQ3PA9Oo6QGUwg pwIX2zCHpMUnjjhP55dp519UZjZziCA1IhavnHH31EbfzmMP6oBw4o.s6uDVchYif16ArQyPUx1U nusaC6l4pFCPx67nIHVM7QFjLKEm8j_5QdSGk.ycXPTUBpR3OtIbjQ1h43S03tUtz4NvFKc2Bu6R 1DbAfGP1LZZ93A1apej0ul29T9Xm_vbZo6K0DVI3HDAvoys9SS1i02pxek1yUXEO.T2lXRDxkLBg KMd_fuRQjwf.Yd56tt2HqhWW9Ei9.rUZ9SNMzreE3bWwoJmE_eJAkX16qUa71Atibcmv.0KXHAqN 0vfHFxfOGGuvKZwTnFui06Nb4Du9cGN783I1EO_ZdwCAAei50Uue8PB5SeYU4rM0XbdOsv_ZL1IJ qN2E8CjaKU_dBu.VVOrR6oc19GMtNME0naK6xMeM6J3aWdykE5XsGf66cQzuti69w133p2StEO8M OsNSxxtxHpbf6kF.3orxjLPIKFihWMgVNEmri3MzkPnOQlLZAfH.n9JcJAU9iy5FUu3mdagodTFG SSMLsjvWf29NRi1cjj.S1D5z29teejiXMFYmZXX74ukHoQCifSUlrbDL8VbG_n7bvp2wEZyMwlvf 1OUo8w2y12OwVMROlrmU6jKkoEY_lLeDx.wY3hz_SJJMHeA3pDaDXIYwDinY0QZummELUaIsXH9D lxmwW88yCcgRuLhURt5BaOJEX2tOU.eQB5BLTIeLlv_NM3TztwqhaApbjc2bzMmtvWbJyOJL18CV m3NNIfKLfqb8SWobcM9C4vT.QjAjtpueEqLyDzpNm7w.NfXubB25XIDVxA0MPMU5sCDxQyGzV92O WEfdrI69C5zPR0NCtVDKw33Tomr0pJx7ewMMutYLIxR.rvZ01H9M.KMpx9RUB2ElM7xhbfLHxZP9 9TXv6zzdYbo2H3L_DoglC73NP_Hn4wEr1Iz_Fa3QfsBIMCFiZkLst3mjRNp9lfjMxmPRiCEbSojm pSi6NoyOouGjcfUeFm0uTWhc5f6Ep295pNYGuDqMBWFQ4SAc7rB9oTjkR5LOdSGkv91Baf4k5U1R OksaQ87ADdH65XOfsvhyUiFOKp1PGSXy3cvcxAkhJtcSfBOb9z5gsoUoKI11uMlZJdKq9RyjehvX 5pj.Rq9jTfvRZj.QckAGhfo5CCy0UxwzCO1oHi6h8EiCzk87ISKeMPW.R1Jl1Mysyg10bkXqFF9y 9ZpR_A.VAhYlJpZlohapqNuDbWLZqLq47Iio8XMK93oPbc0Yc9eidIJ1FiUs0yQo.DVwWp0CXgnm TanVDRQYpNOrlL..h.Ej2fT5WEoPiPMzr18YQ5vxdWM8c6Ui2CJ150HV29DWo1QL_jagbP.AeIuY TmH1qrraO_B4duLxaInl9eQOtI1dLiDW00xye9WIwSJK57TP0IF9lR6UxzRSPT2uv.04d4a9dJYm BZqfzoQlx.DYJ.aALO8enTrSGkdG..CLQG1lBf7Hzj._DHrrGPOL2mglrZYv93LftcbS_A6K.5q4 ZwfFCVbQqLJkzln3lTvtzhuD4tlsHFKEKz64jsWCEhaAknuqUpWG9PyQE5Ylhy7Q- X-Sonic-MF: X-Sonic-ID: 448ef996-9599-4432-a646-ea2c70a195a5 Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.ne1.yahoo.com with HTTP; Fri, 27 Oct 2023 08:19:05 +0000 Received: by hermes--production-sg3-8696d769c6-gk9xn (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 1f7acfdddc13c6125e5647f6d257a0fa; Fri, 27 Oct 2023 08:19:02 +0000 (UTC) From: Po Lu In-Reply-To: <87wmv8qyc4.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Fri, 27 Oct 2023 10:11:23 +0200") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> <87wmv8qyc4.fsf@ledu-giraud.fr> Date: Fri, 27 Oct 2023 16:18:56 +0800 Message-ID: <87o7gkxytr.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 253 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Hi Po, > > Do you think that you could commit it on master? > > Thanks, I was awaiting comments from Eli and Stefan. To them: does this meet with your approbation? If so, I will commit this to master. From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 27 Oct 2023 10:37: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 To: Po Lu Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440@debbugs.gnu.org Received: via spool by 64440-submit@debbugs.gnu.org id=B64440.169840297320407 (code B ref 64440); Fri, 27 Oct 2023 10:37:01 +0000 Received: (at 64440) by debbugs.gnu.org; 27 Oct 2023 10:36:13 +0000 Received: from localhost ([127.0.0.1]:35171 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwKCK-0005J4-L9 for submit@debbugs.gnu.org; Fri, 27 Oct 2023 06:36:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58682) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwKCI-0005Id-Ns for 64440@debbugs.gnu.org; Fri, 27 Oct 2023 06:36:11 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwKBh-0000dZ-Ld; Fri, 27 Oct 2023 06:35:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=fSnWSqmcvOH5uCpu7yakEPXvDz2sXAwMdKMy1Sa+6fA=; b=mp2vQiM12FZr YVPdmvApfoC6bDuRDgDVMlP/f0/EQeLrO4b2o82ans0vsDl3ovj2fLS7/QZm2cFRd731sszZpU0VA h2xrtX6OXzTreor46xWkE2lVBS6jVnHGxoFJY0pOilPncFUAxJEE5nsRzrYSDykor7zWeFRHDC2PB ARfx1aFMzXz8Sk/MxNAy46My/BfZ1GBp0ft6EEfCwPyZlj0R8a+Zzj4pFaB9mkuBceFIevTGGJy9Q EKgtiKiHS/yh7TyRvIxbj+LtR7WIyhHXSHycVwWYDQHPDN6J2wrWWcbkOVeNo+Kv8Up2LUPvR1/6C 8STNx6ShDEpcu9G8g88+lQ==; Date: Fri, 27 Oct 2023 13:35:21 +0300 Message-Id: <83ttqce4k6.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87o7gkxytr.fsf@yahoo.com> (message from Po Lu on Fri, 27 Oct 2023 16:18:56 +0800) References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> <87wmv8qyc4.fsf@ledu-giraud.fr> <87o7gkxytr.fsf@yahoo.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Po Lu > Cc: Eli Zaretskii , stefankangas@gmail.com, > 64440@debbugs.gnu.org > Date: Fri, 27 Oct 2023 16:18:56 +0800 > > Manuel Giraud writes: > > > Hi Po, > > > > Do you think that you could commit it on master? > > > > Thanks, > > I was awaiting comments from Eli and Stefan. To them: does this meet > with your approbation? If so, I will commit this to master. I don't have time ATM to invest in this more than I already did, sorry. So please go ahead and install this, and let's take it from there. Thanks. From unknown Sun Jun 22 11:44:33 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Manuel Giraud Subject: bug#64440: closed (Re: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items) Message-ID: References: <87y1fnwc4j.fsf@yahoo.com> <87zg4d56l8.fsf@ledu-giraud.fr> X-Gnu-PR-Message: they-closed 64440 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 64440@debbugs.gnu.org Date: Sat, 28 Oct 2023 05:28:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1698470882-13244-1" This is a multi-part message in MIME format... ------------=_1698470882-13244-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 64440@debbugs.gnu.org. --=20 64440: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D64440 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1698470882-13244-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 64440-done) by debbugs.gnu.org; 28 Oct 2023 05:27:42 +0000 Received: from localhost ([127.0.0.1]:37621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwbrJ-0003R6-Oz for submit@debbugs.gnu.org; Sat, 28 Oct 2023 01:27:41 -0400 Received: from sonic303-20.consmr.mail.ne1.yahoo.com ([66.163.188.146]:46021) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwbrI-0003Qu-5t for 64440-done@debbugs.gnu.org; Sat, 28 Oct 2023 01:27:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698470822; bh=hD2R0G01ov5yiwtbE7ZJS/ikmaraMgiYaM+Hz+wWW7s=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=ea/x41BhP+tQ1SEw/VIyDkETM3VVU9CPOHHNRxqYZc7B1Sn+MF7ogFcB4BLOmUpAZkDjv3u/SP32LRQsHQfe6q1VJ6j/RU3dc5nSRmu8hUhsK9gbT+XvTDSF3dli1z8EVIOOsGVfSKJMK7xiYEmgqGuZIwTP9yyxrkA8A5piVl4+zFGnKpIiKcYU3sH2eiPGmVo+hJmxt6/ITklfg3zr8ExzYbF0UaFhOFGsxS+Iu9WXtm6bTrLJyrsWb11p8Fj1qBFdIHDc4Gppc1Q6jh491uXHSbBLnODvIkrtBCt8Mz9uk5EI8PnrBXb0DCwb6E+rc68Nay/o6TmcyMt/cnO14A== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698470822; bh=Qh+D6mvtQa75lr1m9uke55JfgsDBE5rjpIzkXH3U2yZ=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=d7mBQeLVMFnR3oB0SA5m/Oq/eX7Ojjw3ia5dkXqab9zDkf0Nt+7MmgTaqJotp+so9kbNb1Js2fUiU7jzpn34I7/nza962ptcdnddTUJz4Z0w3V4rPHockSPTaaY23w2nsDZTwg18Ed9whs+LTyyWIDAkKaQvWOu8gH6I6twJzF3lTguJ60dj9fWpuHr46HCOFsx8EZo5/gHu2e7mfuS4RbtvMXM+2NKc5rMOg98XdCn92y+GtjMf0feRnSpbLbexs5LLzqAsDKRPnIcFOykvUFRz+xmxN1hVAErkpAKezy/eOKCYJoVrfWbB6rHs6eTWLlgR2xIDRWHceSygvH/ktw== X-YMail-OSG: oaYDasgVM1lg81HR.rUrDynarNkSnStYadbul0nu8EzIik126r5Ux.sAml94BP_ rZomgcnygtqKHg3lDaXkJhYeI0ap8gL2xFSCX0kSMuoUiqPOoBw6zOjlV2F_83e0OsdfZtjgXljI aCVaVbFS9IGYXfoH690E_2bY4.eavxIyGP9eEgzyQuswY7SF5KQSDv7B5.3NwaEvOBSD3XVgzmSI tntV7hOiQ0kh4zYiJ13ShOCXLQcAL4IdS_CqRWdMbKWOEPbnv0SYFYWyAqTW03G1bX8c1hNz2dFD yflkrrQyHsQbKDat896Rzq9NKbZnbt25E8kgqZukgxWNeisw5LyHPf6VRzmw_bAxpmmLtonILLiK GUCucpxTdfyVldL1WL6NFdcyHlyWJC9s..qt.NBukd.NvSgW6PSHim1GDJxN64vBknH.ZSPlYo4d qLjLi.3m2Zvb8aRaFfYElwPP9jHmgZMD4FRf5nEOvdZGUoSlzafKY1YPYs_KErCOgy_tHyu3pULw hTlYXkUk3hUnP2_9Owun0_v8BZV_vk8eSXc69.zu9cYRRkGVBU9QuD95sGyXDnq4wfXgTyjtoviK FFLNwUT6R7L2.MwLi_9lFXSlhgHV5QMXm3mGF2lVoAwPHYuVFnuOw667TAYhtat2D0NdEBS2Kgoz IFd3FFygYrq0hC6L2GtU0FvldJjjBqYTrg6pvUNNgxlSU7RTajkM3Q0x1dstDgyMwFLTDiKMN3Rf 4zBxvqsYmk6ahBLOu1cNumLFQjyuOqdpVrpV3QCjYZTudCZOw._OnNPnz5_mprX8yNs9o_pCztFy CQZ_hyw6CXXDvdIpbC3CZHH94sLLj2vzXmVzjB0mAKEz6tji_uezT594twkkqNh6d4dqGOeAzzbe jt7BcqoBGm0Jl4PnxZSv9uWTkprop1gyD2GTUnUEgIca2fwD32gBYkOhdhLmfwd1pYPFRWdL9hRE T726RiPNEUA.1hWp1CT.UJV9BMykoYUXuYzcvBauDlnRH8sajXDbbJ8tKkbk67jjT3YaVzhh3up. xNvuyOB74UW.h16rtg44juMZJAWX081igVeXytqycwquXd2wdtBMkY8mzMzGANM6OZ6Pcun87gDd 8iwTBSfRkcYFgLU0luuNJ4L_15h786HqfsU.Pcq9RcX6joGF5NN7NQaV5YxtfljTTiZkLo255Y82 EzlC_iux4MUJ.NwMngQzX2MJDg5zLIY_xX31fa_hB6jedzRutziNbhM9MSOkuf6Q83M7W9mzvpbg difhjo9lb8GbL8EK_jfsOUTzwL8m26V5UeqK2VTeA2qsjrjvJilhkCmUaL2JjLbTSUtxwMRQTcJX gBh.HPMAHX9rvLTBVGqUFsTXCdj1tj3EjvaCistq7enU.NMmei2FUouYCLlFfyyXb1NIaxzzSAiB 2NqcwWJgY82gQVyEFnJUm7iBqGHv2z2FwoPTZDM_cyRGEoU5KTUCAa4.I025Nzk549rNue1gZMnO KLFN6R9VDQucGT80rswYCL6HxjDXaokaG97TbeeJ9T6t7FjXQ_XPXUDmbx9yxcfqDGLKR8I1UjFo 42M4deuEUPCoNOZzSecpcbY0gFIvVmL_iQsAS8f3gZEKdpxwWLKRVUuE_9sVVhw.w.xg.7rVTcFy KF_qmwqeVgNzLJ5M0N7YANKaoZh.JMprN54woEd2oKYDsmcuP7oHfr0..EF5QblKIsGexTKq3xaj 4NegMdiMDQREiDnfEWNrD07a9Wya0HCS0Lo85GE5d_6x83rwJ7NxYjeHsJp6tMu2wu37K7_57u3n b00FHKawILOo_ox4cgQTVhAoukFyBEFQgiIpghgUAlVvFO.Aoyn0qvHvvawl54rBuGHtYU2hYZh6 8H9Qh19KRcvGPAaZMuVi.XZIHXsQ5.69t0z402OxMcntg6YVdCEU6tqUIj7911zIjOxPmAJ5ez2e HD7nVtO9FypzxeZQFEy.SLjHDiXgEK4WBiclCO_pWFnaYIKN2XcZWyKUSsk79h1S0UnM4n5wjAlA BwUiZ_gz3_3TGoina_sjKSCvq9QCNypQKFJq1AOCKUgkUOI7H1fY8M31xw2xiyPzSrGAj_VAL_.9 vEz9XLxTQcFB8Lj7DvulQrv2F0vxdif4JqsJ4ox.xm4OzUgnr5GSV5uETxApSRjERTK5AnQcpkSo qEl65NEGLGNHat9TbumKBfbNlrzrcnyb22XV7o9eyod8tFxSeZ3doZI8zx5L0MLfWodULbh2jpg6 6eGp6Ibx_uBuzdS_9Kyg8cD5tpHM_R5_EpocNHMBfbmDmKd8ISPpNJDEvrcLvI_ooLj0o X-Sonic-MF: X-Sonic-ID: fb0acaf8-c6de-4b39-896f-992fda3063ac Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Sat, 28 Oct 2023 05:27:02 +0000 Received: by hermes--production-sg3-8696d769c6-z26jv (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID b52615a2f861a7abd4adaa0fbd3fb1e8; Sat, 28 Oct 2023 05:26:57 +0000 (UTC) From: Po Lu To: Eli Zaretskii Subject: Re: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items In-Reply-To: <83ttqce4k6.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 27 Oct 2023 13:35:21 +0300") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> <87wmv8qyc4.fsf@ledu-giraud.fr> <87o7gkxytr.fsf@yahoo.com> <83ttqce4k6.fsf@gnu.org> Date: Sat, 28 Oct 2023 13:26:52 +0800 Message-ID: <87y1fnwc4j.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21890 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 22 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 64440-done Cc: stefankangas@gmail.com, manuel@ledu-giraud.fr, 64440-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Now done, and thanks. ------------=_1698470882-13244-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 3 Jul 2023 15:59:47 +0000 Received: from localhost ([127.0.0.1]:34333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGLxq-0005VQ-9H for submit@debbugs.gnu.org; Mon, 03 Jul 2023 11:59:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:34478) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qGLxm-0005VG-N6 for submit@debbugs.gnu.org; Mon, 03 Jul 2023 11:59:44 -0400 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 1qGLxm-0006F6-7x for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2023 11:59:42 -0400 Received: from ledu-giraud.fr ([51.159.28.247]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qGLxg-00054D-KA for bug-gnu-emacs@gnu.org; Mon, 03 Jul 2023 11:59:41 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=XLDAjpL4 RABi16gAr7uN+qnVZgP3J4M2AAiGpjalqXI=; h=date:subject:to:from; d=ledu-giraud.fr; b=wWrXz7t8cD+k54vYLS5QR05kPpBGx3f+67BOHoSt0Z0PBg0Z90 +7zqIHeckh6WHLL3SIhHQPvNCQjgL0BwAABQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=XLDAjpL4RABi16gA r7uN+qnVZgP3J4M2AAiGpjalqXI=; h=date:subject:to:from; d=ledu-giraud.fr; b=QWA4rDIfseC1dxc21ggL2KV2eypnQBqXuf4w2iku/g9qAyzyQ4 9s+ASmm7B+9PxMZFUFqUhj61df1cdBl/fBLEmSeJ+qGzpFGcvmnXgWqL36zu6l22r6DcR9 EHkzoEi8BpANfOXWsy3z1zPf9EsrRAb6l++49wPK2KKIpsywbn3Jubdss5u1v1PB+Ypvjr 9fSvQNg2Xt6vRJ+pbWti/mU/8q7e/VlVPxyseNDa24/mJElcQLsLQN/K4c1AEur7tjuTo0 rcJQ9HSCm3/+9NAponSQ6Va0pvNhgjI+2uCb4KhI8C9mhVBdt9zPTElEktg79e3qVQWHtQ h7E9h+HSCFzw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 1d49d609 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Mon, 3 Jul 2023 17:59:33 +0200 (CEST) From: Manuel Giraud To: bug-gnu-emacs@gnu.org Subject: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Date: Mon, 03 Jul 2023 17:59:31 +0200 Message-ID: <87zg4d56l8.fsf@ledu-giraud.fr> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=51.159.28.247; envelope-from=manuel@ledu-giraud.fr; helo=ledu-giraud.fr X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain Hi, Here is a set of patches to have highlighting on the menu bar items (for the non toolkit build only). The first patch is a bit "intrusive" because it adds a menu_bar_p selector to 'window_from_coordinates'. Maybe it is not needed and I could drop this selector and make 'window_from_coordinates' return f->menu_bar_window when the mouse is on it. The second patch is the real meat and is modeled after other "note_*_highlight" functions. It seems to work as expected but now I think I need to define another face (I'm using MENU_FACE_ID now so it is not really visual) or maybe we should be able to propertize the menu bar entries. WDYT? --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Possibility-to-get-enter-event-from-menu_bar-window.patch >From ceb818090de83fe216af3e9b6bcc198eba9188e3 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Sat, 1 Jul 2023 21:19:06 +0200 Subject: [PATCH 1/2] Possibility to get enter event from menu_bar window --- src/haikuterm.c | 8 ++++---- src/keyboard.c | 2 +- src/msdos.c | 2 +- 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 +++++++++-------- 10 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/haikuterm.c b/src/haikuterm.c index ed28a806ff2..0af9aa746a9 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 b61b1766856..4cc0c70b11e 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5414,7 +5414,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 75a39045cee..6e779ffb2e2 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -2655,7 +2655,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/pgtkterm.c b/src/pgtkterm.c index dc2d6477bb5..788d4a7bdfb 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5891,7 +5891,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 @@ -6044,7 +6044,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 57dc6b465e4..9c5a298a645 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 2a0c62f5d53..af7dcfdd423 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 2f793ebe438..4f4a0a79216 100644 --- a/src/window.h +++ b/src/window.h @@ -1092,7 +1092,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 85ece901111..4c02a217cef 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2739,7 +2739,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); @@ -35124,7 +35124,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 f84eaeb8cbd..e58e6276aae 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -20925,7 +20925,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 @@ -21656,7 +21656,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) @@ -21677,7 +21677,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)); @@ -22398,7 +22398,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; @@ -22841,7 +22841,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 @@ -23419,7 +23420,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) @@ -23440,7 +23441,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 @@ -24300,7 +24301,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.40.0 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Highlight-on-non-toolkit-menu-bar-items.patch >From d5ddf8e04d06730917f94cb7d2fcb026c4437788 Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Mon, 3 Jul 2023 17:35:06 +0200 Subject: [PATCH 2/2] Highlight on non toolkit menu bar items * src/xdisp.c (get_menu_bar_item, note_menu_bar_highlight): New functions to highlight item in the menu-bar. (note_mouse_highlight): Use it. --- src/xdisp.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 4c02a217cef..25b33e3a8c4 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13859,6 +13859,122 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) return hooks_run; } +/* Get information about the menu-bar item at position X/Y on frame F. + Return menu-bar's item char position in H_START/H_END and pixel + position in X_START/X_END. Value is + + -1 if X/Y is not on a menu-bar item + 0 if X/Y is on the same item that was highlighted before. + 1 otherwise. */ + +static int +get_menu_bar_item (struct frame *f, int x, int y, int *h_start, int *h_end, + int *x_start, int *x_end, int *vpos) +{ + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + struct window *w = XWINDOW (f->menu_bar_window); + struct glyph_row *row; + int dummy; + Lisp_Object items; + int i; + + /* Find glyph's hpos and vpos under X/Y. */ + if (x_y_to_hpos_vpos (w, x, y, h_start, vpos, NULL, NULL, &dummy) == NULL) + return -1; + + /* Compute h_start and h_end for this menu bar item. */ + items = FRAME_MENU_BAR_ITEMS (f); + for (i = 0; i < ASIZE (items); i += 4) + { + Lisp_Object pos, string; + string = AREF (items, i + 1); + pos = AREF (items, i + 3); + if (NILP (string)) + return -1; + if (*h_start >= XFIXNUM (pos) + && *h_start < XFIXNUM (pos) + SCHARS (string)) + { + *h_start = XFIXNUM (pos); + *h_end = *h_start + SCHARS (string); + break; + } + } + + /* Convert to pixels bounds. */ + row = MATRIX_ROW (w->current_matrix, *vpos); + *x_start = 0; + for (i = 0; i < *h_start; ++i) + *x_start += row->glyphs[TEXT_AREA][i].pixel_width; + + *x_end = *x_start; + for (i = *h_start; i < *h_end; ++i) + *x_end += row->glyphs[TEXT_AREA][i].pixel_width; + + /* Is mouse on the highlighted item? */ + if (EQ (f->menu_bar_window, hlinfo->mouse_face_window) + && *vpos >= hlinfo->mouse_face_beg_row + && *vpos <= hlinfo->mouse_face_end_row + && (*vpos > hlinfo->mouse_face_beg_row + || *h_start >= hlinfo->mouse_face_beg_col) + && (*vpos < hlinfo->mouse_face_end_row + || *h_end < hlinfo->mouse_face_end_col + || hlinfo->mouse_face_past_end)) + return 0; + + return 1; +} + +/* Possibly highlight a menu-bar item on frame F when mouse moves to + menu-bar window-relative coordinates X/Y. Called from + note_mouse_highlight. */ + +static void +note_menu_bar_highlight (struct frame *f, int x, int y) +{ + Lisp_Object window = f->menu_bar_window; + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + int h_start, h_end, vpos, x_start, x_end; + int rc; + + /* Function note_mouse_highlight is called with negative X/Y + values when mouse moves outside of the frame. */ + if (x <= 0 || y <= 0) + { + clear_mouse_face (hlinfo); + return; + } + + h_start = h_end = 0; + rc = get_menu_bar_item (f, x, y, &h_start, &h_end, &x_start, &x_end, &vpos); + if (rc < 0) + { + /* Not on menu-bar item. */ + clear_mouse_face (hlinfo); + return; + } + else if (rc == 0) + /* On same menu-bar item as before. */ + return; + + if (!NILP (Vmouse_highlight)) + { + /* Record this as the current active region. */ + hlinfo->mouse_face_beg_col = h_start; + hlinfo->mouse_face_beg_row = vpos; + hlinfo->mouse_face_beg_x = x_start; + hlinfo->mouse_face_past_end = false; + + hlinfo->mouse_face_end_col = h_end; + hlinfo->mouse_face_end_row = vpos; + hlinfo->mouse_face_end_x = x_end; + hlinfo->mouse_face_window = window; + hlinfo->mouse_face_face_id = MENU_FACE_ID; + + /* Display it as active. */ + show_mouse_face (hlinfo, DRAW_MOUSE_FACE); + } +} + /*********************************************************************** @@ -35223,6 +35339,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + note_menu_bar_highlight (f, x, y); + return; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-= Content-Type: text/plain In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.3, cairo version 1.17.8) of 2023-07-03 built on computer Repository revision: ceb818090de83fe216af3e9b6bcc198eba9188e3 Repository branch: mgi/menu Windowing system distributor 'The X.Org Foundation', version 11.0.12101006 System Description: OpenBSD computer 7.3 GENERIC.MP#1125 amd64 Configured using: 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin --with-x-toolkit=no --with-toolkit-scroll-bars=no --without-sound --without-compress-install CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Dired by name Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t gnus-dired-mode: t display-time-mode: t display-battery-mode: t server-mode: t shell-dirtrack-mode: t override-global-mode: t repeat-mode: t desktop-save-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/manuel/.el/nov hides /home/manuel/.emacs.d/elpa/nov-20230421.1548/nov /home/manuel/.emacs.d/elpa/ef-themes-1.1.1/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs Features: (shadow sort mail-extr emacsbug whitespace magit-patch misearch multi-isearch pulse magit-extras face-remap magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-section magit-utils dash org-agenda emacs-news-mode org-indent css-mode sgml-mode facemenu imenu vc-cvs vc-rcs log-view pcvs-util make-mode pascal vc-hg conf-mode org-element org-persist org-id org-refile avl-tree oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-version org-compat org-macs view sh-script smie treesit executable gnus-dired paredit mule-util vc-git diff-mode vc-svn vc vc-dispatcher bug-reference time battery cus-load exwm-randr xcb-randr exwm-config ido exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug server modus-operandi-theme modus-themes zone speed-type url-http url-auth url-gw nsm compat ytdious mingus libmpdee reporter edebug debug backtrace detached-init detached autorevert filenotify transmission color calc-bin calc-ext calc calc-loaddefs rect calc-macs supercite regi ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr wid-edit ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe find-func eieio-base pcase timezone icalendar visual-basic-mode cl web-mode derived disp-table erlang-start smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp tramp rx tramp-loaddefs trampver tramp-integration files-x tramp-compat xdg shell pcomplete parse-time iso8601 time-date format-spec slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree advice slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl slime-parse slime apropos compile text-property-search etags fileloop generator xref project arc-mode archive-mode noutline outline icons pp comint ansi-osc ansi-color ring hyperspec thingatpt slime-autoloads edmacro kmacro use-package-bind-key bind-key appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs dired-x dired-aux dired dired-loaddefs notifications dbus xml cl-extra help-mode use-package-core repeat easy-mmode desktop frameset debbugs-autoloads detached-autoloads ebdb-autoloads ef-themes-autoloads exwm-autoloads hyperbole-autoloads magit-autoloads git-commit-autoloads finder-inf magit-section-autoloads dash-autoloads nov-autoloads esxml-autoloads kv-autoloads osm-autoloads paredit-autoloads rust-mode-autoloads speed-type-autoloads transmission-autoloads visual-fill-column-autoloads with-editor-autoloads info compat-autoloads ytdious-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind kqueue lcms2 dynamic-setting system-font-setting font-render-setting cairo xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 1679605 226472) (symbols 48 60222 5) (strings 32 194847 17038) (string-bytes 1 6134459) (vectors 16 117354) (vector-slots 8 2341200 178993) (floats 8 591 3029) (intervals 56 239858 3338) (buffers 984 165)) -- Manuel Giraud --=-=-=-- ------------=_1698470882-13244-1-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Manuel Giraud Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Oct 2023 09:04:02 +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 To: Po Lu Cc: Eli Zaretskii , stefankangas@gmail.com, 64440-done@debbugs.gnu.org Received: via spool by 64440-done@debbugs.gnu.org id=D64440.16985702123302 (code D ref 64440); Sun, 29 Oct 2023 09:04:02 +0000 Received: (at 64440-done) by debbugs.gnu.org; 29 Oct 2023 09:03:32 +0000 Received: from localhost ([127.0.0.1]:40360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx1hk-0000rB-3C for submit@debbugs.gnu.org; Sun, 29 Oct 2023 05:03:32 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:31222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx1hg-0000qy-1P for 64440-done@debbugs.gnu.org; Sun, 29 Oct 2023 05:03:30 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=2UJxzxGH 8qAQR1KnHhUtjGBCgLNthTrm3RAs/HBXPWE=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=1eumSEr11E2mGAZ3g+ug5+AhSVW5JO J3ZtoFLn+cemI/3dLlpMX3dMPd1x29Bp0elyRazZzBnOr6pKriO4UMAw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=2UJxzxGH8qAQR1Kn HhUtjGBCgLNthTrm3RAs/HBXPWE=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=kjqOM+2KuOSfdxXGcbaY/hmDXLhhnK6LmUDVDr BWoZ10NAgBWLHkvwnoVQdQ/ZWOlGFzB+RkfCMwub6zJ4a4IKQqsGfm/CB9gexf8BpB2BE7 OZt1GdFNq55NG61aHVH7VvLh1z/ccw02h9OJmAAOs16jIgTkolbb/DkDk+Tq/DtfZHxsXV U243SYs+Z5s5nxfRfl6auf1CzD64DxTVhxiMdGQYK/rAU1+2W8h0CxU8Q3775HpawjNOem yXgl7KLTgDkjGlygkdrlxbrZqpG9sAIvFuIMLSpKEYSjL1tN1EpE2d9ygP6qkjxNXjB+EW yZDBcKbi+CxWVA49sHMP6Vbw== Received: from computer ( [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id eee6cd4f (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sun, 29 Oct 2023 10:02:53 +0100 (CET) From: Manuel Giraud In-Reply-To: <87y1fnwc4j.fsf@yahoo.com> (Po Lu's message of "Sat, 28 Oct 2023 13:26:52 +0800") References: <87zg4d56l8.fsf@ledu-giraud.fr> <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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> <87wmv8qyc4.fsf@ledu-giraud.fr> <87o7gkxytr.fsf@yahoo.com> <83ttqce4k6.fsf@gnu.org> <87y1fnwc4j.fsf@yahoo.com> Date: Sun, 29 Oct 2023 10:02:51 +0100 Message-ID: <87sf5tyf5w.fsf@ledu-giraud.fr> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Po Lu writes: > Now done, and thanks. Thanks Po. But could you also commit this one. It is the one and only usage for all those changes. It is used to set cursor as an arrow. Thanks. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Set-non-text-mouse-cursor-on-menu-bar.patch >>From 9200d69b49fa57269e5357383d138872a372127a Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 6 Oct 2023 14:27:02 +0200 Subject: [PATCH 2/2] Set non-text mouse cursor on menu bar * src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on menu bar. --- src/xdisp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xdisp.c b/src/xdisp.c index 7f9e62f05e8..df3076cf499 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -35537,6 +35537,16 @@ note_mouse_highlight (struct frame *f, int x, int y) w = XWINDOW (window); frame_to_window_pixel_xy (w, &x, &y); +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) + /* Handle menu-bar window differently since it doesn't display a + buffer. */ + if (EQ (window, f->menu_bar_window)) + { + cursor = FRAME_OUTPUT_DATA (f)->nontext_cursor; + goto set_cursor; + } +#endif + #if defined (HAVE_WINDOW_SYSTEM) /* Handle tab-bar window differently since it doesn't display a buffer. */ -- 2.40.0 --=-=-= Content-Type: text/plain -- Manuel Giraud --=-=-=-- From unknown Sun Jun 22 11:44:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#64440: 30.0.50; [PATCH] Highlight on non toolkit menu bar items Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Oct 2023 10:20: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 To: Manuel Giraud Cc: Eli Zaretskii , stefankangas@gmail.com, 64440-done@debbugs.gnu.org Received: via spool by 64440-done@debbugs.gnu.org id=D64440.169857475011071 (code D ref 64440); Sun, 29 Oct 2023 10:20:01 +0000 Received: (at 64440-done) by debbugs.gnu.org; 29 Oct 2023 10:19:10 +0000 Received: from localhost ([127.0.0.1]:40403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx2sv-0002sU-RI for submit@debbugs.gnu.org; Sun, 29 Oct 2023 06:19:10 -0400 Received: from sonic303-21.consmr.mail.ne1.yahoo.com ([66.163.188.147]:44535) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx2sr-0002rn-8O for 64440-done@debbugs.gnu.org; Sun, 29 Oct 2023 06:19:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698574706; bh=s9O+ntEYSDf/ruvoOQMZWBIS0CwUyA/hU9nbcWDXfpA=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=r0n2DlGSSHvRBUNDKAvxe+1FLH0r03rvO/QhtJosJraYyrhNZg/YTMjwAdDtMrl65oYLIdFcM8aADrxZZNul/VRfdlJUYsUTt4NT2PmAjIyQOzCmHUvivLNEbHH74IjUij+2ajnO/6BSjRklnrFj34HjA0AlbRK1lhLVQmMgVT2GFhHb8MYnyv01V/NCyQkOEkMTjrxi08cZsfWV//oGy6QdlBZXsvUsWByC8LhH8BAelH2LefeUYjFUJLA7NKF98BTxJX45GASY/S+uOB6moQkEgzn3wbsyI8gUKrzQM11QezDSSf0p1wAgPQLheNkWLUgjcUY7Noe2ZvuNO6Hurw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1698574706; bh=PnpcwEKij31hzHd2a7fsiqR66ZbWGRYG3EPFY1J5NZ2=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=IHZB47ryG9ffbx2HeWMwl5SQ0gZaT4ASdEwkDc2rdGY7wLhL/iZT52lD8uhbkYHor48oIP23CATpbd8Ppwmn4D30XbsG4omnFLWKJihO+uw6dPhBNFCWrXmmz2xbqCfG+yDZrR0snY8cEU3HGcrBpWZlb85S2rMRzxaLN7lslslqz0XthVwsUAV9hhUObRHlA4yD1VTKPrnefn0Bif3YDXHZ88If9EAp62Lx8C8X+Y5xnVRbFUEFNFhvBv3Ucdlms6V6p0PPwYdionakwrFz6u9ZMYhOeC2WM7CUtFirXKXNMSqOGfy2Ee+5LH9KeogH4iSKklMQ7/NN/mcFEzGz6A== X-YMail-OSG: FhF57EMVM1lir3vqUtON7rIPwoJJRjTohFBTCxaMK8I_EvH.nGmu0AsuU6oHkCB k.p.MM.136Kiig3Q.LL9RmlifP2rfwiJ2CouBfkNggxAarKxbRc4Z79hLwodr8MbhdV0T_zU6j5m p._BDNFeCkwpf7jrYm6mWG7WIBiZlHmDLRRzEZq.0JqLpFMZ8_BwFgTBktp4cYU18hLeCMPDqaL_ Vv4mwzQwxTOJDUelgHMyrU8rJgbeUunxsqYRLSUFSBsoJZ84mGA.uZ3L6QAy9BrdXaodo3rjLzCS LiefdDrCZpEr1JEQtp0V2EKTqA8czRxQVEkmBK2vSxOfv8dV92M4fHeYs93dubAslhY9E_PVOz4. fNrlAxq9MUXCaM1tuzvXDIz_5PM1P_AmdHRcUXqpbAsgfaVvmaeJei6cqhlIIKQukj2bUsKU4Yw4 b62nhctYgwNetm32qeVlcduIkD5DcYpeO7lB3EeJ0gzAq5qBwK0IVW3nUtQuIQksi3K3QaRGzaqi 8YF2Hm4Z7HJzmTuHj00gjFUUHFRZjLTBN9GCyd9WqiDZp0CcLI5bzo.U7jHH4SQZwYdmtd17vKiR PTUKuMNCEGzcrZvV5ZTc5oWTTfdUFMyxmbTbf5pLMsq.fS6rZyvZZ6RbXjOZI1VB7xLmJmnpfEdI MCYFB6OjUTeSElmwhfx8VNbO_wZYJ73MR48VnircBnct36AYW8nvieb4GqM3v5sw2yASyYfmPt_F a4cvHmSL2AxyOCvNDaGPf4x2jq4a_dBLOdRchX9BqgVBGTJMSkwDGfe162n65lzu1GFd.E3usTTH p0R9u.SE2UDW.e3yaI5e1LuX_f5SN6n5nn2qN_ZZKlPHL.RnMFDo55imUDOLOlAwW28Rl47EpiFL CixyrlmIPNskT3KBxlrLX0_TC0QNXjaTWoNQsA5UWLkJge6iIy73gXu1WcV3M3lR4IuIyUgMmXY1 JKxEjLx4RcpNKhslKw_PvcKvJOGrMob561N0eySIV4eeXJ5bjwRgDeKagjUYmL9WYnoBPYSUPxDA TPxUotYEIsxsCl95Zqi_2pt6rRJ2bkEjlSuDlGWPZrWbryfMLXgO4p9_UqwDkBgdjN7eMHzZaOaE NNazPLfi.9cOWx.ApLslFylwL4NITycADl.9Pf._d_I4Xl4k6iijWlrKBfcfoLCbLbzj.PWuBqXT levb.gYrd2bvsKgsFccul2Q6jgYZi_HLxsy1dOd.c4j5LXpjS91wkAsqfWagGLJ4UBXxw8x9NXmC u3SsSq9HJ1PsYBskfrhGCJJ6reaDoxeiIcS3O5rOhatUXakMqpOVkbwHMKwol1u6231rXWN1Bxbi 7jBfVlnMZh4uv2Es6QHW4cyTFkUROjMqrMkc486ZKKu0TTsAM1yzzMSCMvpSjEzcLNYZGNdTlts0 sCsLBggEmolV4d8N6.2va_6zhnD3.p4mlZV3KHHf9uLVHAkaVhlbIWHHGjCMz10dsqltsCCslWX_ thXcBPzSzXutOLIRG3p5wLNJ_BImhzsNJHMnQXGu8ag7v8qAcpKlH8VEUXxFFK0c6Gj33Z6ciYRr 1xLfrupITyBMZhS0CCNQNd269qbc379aJoy5Mn2pkWqKDlIib28CdCP5.GAFTcS_qBGEF6fcMuCm g1GhQxRAKuiadqJnc970ovB.nII4eaxz6v.VvHfA.mpu46sxRwx5iJUGNcmSFLn_WQFnuMFFCR03 rWv0O6W5SlFtPtV8sBiGzCfMivdPQiT7puCHY01UzS90w1EgD74VL1K6I1PksBNfz_GmJ2HYXlRA yU_Y9KTjLpI1JcLdI7CO2IbRjDF9511eXN7mkNMcAZMM_cHefgh03WEjkYl1b4IwbGh1k6SyqWH6 jbjboDwA0AC0ymLMHb4LDG4Imzr_W2.d0NIm2XzjunEn9moFGfhAKryvLlsAc6Zim1R8fDgB1mch AaA_2VFU.YOiT4lA_U7g.lVdwMVOENIQ6JRvM0zezqbFgLvljoV6DmWWDv3Iw4p4Ov7VtmMe_W9v Eu0t8U.3fBpJlu_OnNPf9R9oLnpbprX9kSS7Vskdwz32JZ1tlZ5NP_lYk08Uf45cZyk5TfIzZmau r3dadoI2yuwH9xs5tjzmrCyRZKlJbYI35sKexO821Lm6jymQ1dT.F2oZuu75i5oUkxnn0lpJ3goD E_kFXbPPP06EVOTDsh18DiYML39g0AEHPfU7w5OI_846SkVSjJW8hPtkZqQQ_dO.XWf.9msdTs8g AsypcSFpmXKatQ2.FqjrH3qz4zN6oFbnq2MTxPw2WLz9Pkofvgnkj_DGyoRnBHR6rSQ-- X-Sonic-MF: X-Sonic-ID: 98c40ed6-c25d-4fd4-bf35-9e00721ec804 Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Sun, 29 Oct 2023 10:18:26 +0000 Received: by hermes--production-sg3-8696d769c6-gk9xn (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 8ac3f7e941958cb499e1f7efb41fda86; Sun, 29 Oct 2023 10:18:20 +0000 (UTC) From: Po Lu In-Reply-To: <87sf5tyf5w.fsf@ledu-giraud.fr> (Manuel Giraud's message of "Sun, 29 Oct 2023 10:02:51 +0100") References: <87zg4d56l8.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> <875y302km0.fsf@ledu-giraud.fr> <87il702jnk.fsf@yahoo.com> <871qdo2i6j.fsf@ledu-giraud.fr> <87wmv8qyc4.fsf@ledu-giraud.fr> <87o7gkxytr.fsf@yahoo.com> <83ttqce4k6.fsf@gnu.org> <87y1fnwc4j.fsf@yahoo.com> <87sf5tyf5w.fsf@ledu-giraud.fr> Date: Sun, 29 Oct 2023 18:18:16 +0800 Message-ID: <87leblwx3r.fsf@yahoo.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Mailer: WebService/1.1.21890 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 1396 X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.5 (-) Manuel Giraud writes: > Po Lu writes: > >> Now done, and thanks. > > Thanks Po. But could you also commit this one. It is the one and only > usage for all those changes. It is used to set cursor as an arrow. > Thanks. > >>>From 9200d69b49fa57269e5357383d138872a372127a Mon Sep 17 00:00:00 2001 > From: Manuel Giraud > Date: Fri, 6 Oct 2023 14:27:02 +0200 > Subject: [PATCH 2/2] Set non-text mouse cursor on menu bar > > * src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on > menu bar. > --- > src/xdisp.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/src/xdisp.c b/src/xdisp.c > index 7f9e62f05e8..df3076cf499 100644 > --- a/src/xdisp.c > +++ b/src/xdisp.c > @@ -35537,6 +35537,16 @@ note_mouse_highlight (struct frame *f, int x, int y) > w = XWINDOW (window); > frame_to_window_pixel_xy (w, &x, &y); > > +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_MENU_BAR) > + /* Handle menu-bar window differently since it doesn't display a > + buffer. */ > + if (EQ (window, f->menu_bar_window)) > + { > + cursor = FRAME_OUTPUT_DATA (f)->nontext_cursor; > + goto set_cursor; > + } > +#endif > + > #if defined (HAVE_WINDOW_SYSTEM) > /* Handle tab-bar window differently since it doesn't display a > buffer. */ > -- > 2.40.0 Now done, thanks.