unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 74740@debbugs.gnu.org
Subject: bug#74740: 31.0.50; tty menus not displaying separators
Date: Mon, 09 Dec 2024 05:29:43 +0100	[thread overview]
Message-ID: <m27c89xyvc.fsf@gmail.com> (raw)
In-Reply-To: <86y10qdmhz.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 08 Dec 2024 21:04:56 +0200")

[-- Attachment #1: Type: text/plain, Size: 1894 bytes --]

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: 74740@debbugs.gnu.org
>> Date: Sun, 08 Dec 2024 19:46:35 +0100
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> >> Date: Sun, 08 Dec 2024 18:34:33 +0100
>> >> 
>> >> To see this, emacs -nw -q and open a menu from the menubar. Simple
>> >> separators there are displayed as "--".
>> >
>> > What did you expect instead?  I think this always worked like that on
>> > TTY frames.
>> >
>> >> More generally, all separator types are displayed as they appear in the
>> >> menu item definition, '--double-line' as "--double-line" and so on.
>> 
>> I expected a horizontal line for "--".
>> 
>> > What do you mean by that? where do we have such separators, and how do
>> > you display the menus which show them?  I don't think I see them in
>> > the default menu bar.
>> 
>> Concerning the separator types, Elisp Info says
>> 
>>   23.18.1.3 Menu Separators
>>   .........................
>> 
>>   A menu separator is a kind of menu item that doesn't display any
>>   text--instead, it divides the menu into subparts with a horizontal line.
>>   A separator looks like this in the menu keymap:
>> 
>>        (menu-item SEPARATOR-TYPE)
>> 
>>   where SEPARATOR-TYPE is a string starting with two or more dashes.
>> 
>> followed by a list of separator types, among them the --double-line I
>> mentioned.
>> 
>> One can get these from 3rd-party packages. Minion is an example, where
>> --double-line appears in a popup menu on the mode line.
>
> This was never supported in TTY menus (I think I was completely
> unaware of this feature when I wrote the code).  Patches to support it
> will be most welcome.

The following patch displays "--" for all separator types. I'd say
that's good enough, WDYT?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: separator types --]
[-- Type: text/x-patch, Size: 957 bytes --]

From 09917757737d65fbb5bbcd57427a8e0528b87119 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@gnu.org>
Date: Mon, 9 Dec 2024 05:20:29 +0100
Subject: [PATCH] Support menu separator types in tty menus (bug#74740)

* src/xdisp.c (display_tty_menu_item): Display "--" If a menu item's
text looks like a separator.
---
 src/xdisp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/xdisp.c b/src/xdisp.c
index 534c0520240..abbe665a2fd 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -27333,6 +27333,9 @@ display_tty_menu_item (const char *item_text, int width, int face_id,
       display_string (" >", Qnil, Qnil, 0, 0, &it, width, 0,
 		      FRAME_COLS (f) - 1, -1);
     }
+  else if (menu_separator_name_p (item_text))
+    display_string ("--", Qnil, Qnil, 0, 0, &it,
+		    width, 0, FRAME_COLS (f) - 1, -1);
   else
     display_string (item_text, Qnil, Qnil, 0, 0, &it,
 		    width, 0, FRAME_COLS (f) - 1, -1);
-- 
2.47.1


  reply	other threads:[~2024-12-09  4:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-08 17:34 bug#74740: 31.0.50; tty menus not displaying separators Gerd Möllmann
2024-12-08 18:33 ` Eli Zaretskii
2024-12-08 18:46   ` Gerd Möllmann
2024-12-08 19:04     ` Eli Zaretskii
2024-12-09  4:29       ` Gerd Möllmann [this message]
2024-12-09 13:54         ` Eli Zaretskii
2024-12-09 14:20           ` Gerd Möllmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m27c89xyvc.fsf@gmail.com \
    --to=gerd.moellmann@gmail.com \
    --cc=74740@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).