* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
@ 2010-12-20 21:12 Drew Adams
2010-12-20 21:30 ` Drew Adams
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Drew Adams @ 2010-12-20 21:12 UTC (permalink / raw
To: 7691
`x-popup-menu's doc says that it accepts a keymap or a list of keymaps
as its second arg, which it does.
The advantage of using a keymap instead of the alternative "multiple
panes" format as the second arg is that keymap keywords (e.g. :enable)
are honored.
And keywords seem to work OK - except for :help. Example:
(defun eee (event)
(interactive "e")
(x-popup-menu
event '(keymap "The Menu"
(foo menu-item "Foo" 'forward-char
:enable pop-up-frames
:help "WHY DOESN'T THIS SHOW UP?"))))
(global-set-key [(control mouse-3)] nil)
(global-set-key [(control down-mouse-3)] 'eee)
Then `C-mouse-3'. Turn `pop-up-frames' on and off to see that :enable
works.
But put the pointer over item `Foo' in the menu and you will not see the
:help displayed. This is true also if `tooltip-mode' is off (the help
does not show in the minibuffer/echo area).
There is this note in `(elisp) Pop-Up Menus':
"Don't use `x-popup-menu' to display a menu if you
could do the job with a prefix key defined with a menu
keymap. If you use a menu keymap to implement a menu,
`C-h c' and `C-h a' can see the individual items in that
menu and provide help for them. If instead you implement
the menu by defining a command that calls `x-popup-menu',
the help facilities cannot know what happens inside that
command, so they cannot give any help for the menu's items."
I cannot tell if that note is supposed to speak to the limitation/bug
I'm reporting. First, "use a menu keymap" is not the same thing as
using a prefix key defined with a menu keymap. In the example I show
above, I do "use a keymap".
Second, what I'm looking for here is a tooltip displaying the :help
string - not `C-h c' etc.
Third, if that note is indeed meant to apply also to the limitation/bug
I'm reporting, then I don't understand the reason given for that. If
:enable, :visible, etc. can be handled, why couldn't :help also be
handled?
In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
of 2010-12-20 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4) --no-opt --cflags
-Ic:/imagesupport/include'
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 21:12 bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword Drew Adams
@ 2010-12-20 21:30 ` Drew Adams
2010-12-20 22:22 ` Stefan Monnier
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Drew Adams @ 2010-12-20 21:30 UTC (permalink / raw
To: 7691
> (foo menu-item "Foo" 'forward-char
I meant this:
(foo menu-item "Foo" forward-char
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 21:12 bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword Drew Adams
2010-12-20 21:30 ` Drew Adams
@ 2010-12-20 22:22 ` Stefan Monnier
2010-12-20 22:41 ` Drew Adams
2010-12-20 23:05 ` Jason Rumney
2010-12-21 11:06 ` grischka
2016-04-28 9:50 ` Lars Ingebrigtsen
3 siblings, 2 replies; 10+ messages in thread
From: Stefan Monnier @ 2010-12-20 22:22 UTC (permalink / raw
To: Drew Adams; +Cc: 7691
> But put the pointer over item `Foo' in the menu and you will not see the
> :help displayed. This is true also if `tooltip-mode' is off (the help
> does not show in the minibuffer/echo area).
Looks like a bug, indeed. Might be a very longstanding one.
It's probably some missing code somewhere.
> There is this note in `(elisp) Pop-Up Menus':
> "Don't use `x-popup-menu' to display a menu if you
> could do the job with a prefix key defined with a menu
> keymap.
[...]
> I cannot tell if that note is supposed to speak to the limitation/bug
> I'm reporting.
No relation: it talks about when to use x-popup-menu, not about how to
use it. Also it talks about C-h c rather than tooltip help.
Stefan
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 22:22 ` Stefan Monnier
@ 2010-12-20 22:41 ` Drew Adams
2010-12-20 23:05 ` Jason Rumney
1 sibling, 0 replies; 10+ messages in thread
From: Drew Adams @ 2010-12-20 22:41 UTC (permalink / raw
To: 'Stefan Monnier'; +Cc: 7691
> Looks like a bug, indeed. Might be a very longstanding one.
> It's probably some missing code somewhere.
Glad you see it the same way. I hope it can be fixed.
> No relation: it talks about when to use x-popup-menu, not about how to
> use it. Also it talks about C-h c rather than tooltip help.
Yes, that was my reading too. Guess I'm just conditioned to expect "Not a
bug!", so I stretched for a misunderstanding on my part. Sometimes it's hard to
tell whether the doc is unclear/misleading or the product is bugged (or both).
;-)
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 22:22 ` Stefan Monnier
2010-12-20 22:41 ` Drew Adams
@ 2010-12-20 23:05 ` Jason Rumney
2010-12-20 23:17 ` Drew Adams
1 sibling, 1 reply; 10+ messages in thread
From: Jason Rumney @ 2010-12-20 23:05 UTC (permalink / raw
To: Stefan Monnier; +Cc: 7691
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> But put the pointer over item `Foo' in the menu and you will not see the
>> :help displayed. This is true also if `tooltip-mode' is off (the help
>> does not show in the minibuffer/echo area).
>
> Looks like a bug, indeed. Might be a very longstanding one.
> It's probably some missing code somewhere.
IIRC it is not possible to display tooltips while popup menus are
displayed on Windows, as creating the tooltip involves Windows messages
to the same thread that the popup menu is blocking. But the help message
should be displayed in the minibuffer.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 23:05 ` Jason Rumney
@ 2010-12-20 23:17 ` Drew Adams
2010-12-21 2:11 ` Lennart Borgman
0 siblings, 1 reply; 10+ messages in thread
From: Drew Adams @ 2010-12-20 23:17 UTC (permalink / raw
To: 'Jason Rumney', 'Stefan Monnier'; +Cc: 7691
> IIRC it is not possible to display tooltips while popup menus are
> displayed on Windows, as creating the tooltip involves
> Windows messages to the same thread that the popup menu is
> blocking.
Poor Windows. ;-)
Does this work OK on other platforms?
IOW, is the bug itself Windows-specific?
> But the help message should be displayed in the minibuffer.
Yes, that would be OK.
Would this (fixed) behavior be Windows-specific?
Should this behavior be mentioned in the `x-popup-menu' doc? If not, someone
might well report a bug saying that the code doesn't respect `tooltip-mode'
(since it always puts the help in the minibuffer).
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 23:17 ` Drew Adams
@ 2010-12-21 2:11 ` Lennart Borgman
2010-12-21 3:32 ` Jason Rumney
0 siblings, 1 reply; 10+ messages in thread
From: Lennart Borgman @ 2010-12-21 2:11 UTC (permalink / raw
To: Drew Adams; +Cc: 7691
On Tue, Dec 21, 2010 at 12:17 AM, Drew Adams <drew.adams@oracle.com> wrote:
>> IIRC it is not possible to display tooltips while popup menus are
>> displayed on Windows, as creating the tooltip involves
>> Windows messages to the same thread that the popup menu is
>> blocking.
>
> Poor Windows. ;-)
Or maybe it is rather "poor Emacs" here.
Jason, I do not understand exactly why the blocking occurs. Which
thread is blocked and why is it necessary?
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-21 2:11 ` Lennart Borgman
@ 2010-12-21 3:32 ` Jason Rumney
0 siblings, 0 replies; 10+ messages in thread
From: Jason Rumney @ 2010-12-21 3:32 UTC (permalink / raw
To: Lennart Borgman; +Cc: 7691
On 21/12/2010 10:11, Lennart Borgman wrote:
> Or maybe it is rather "poor Emacs" here.
>
> Jason, I do not understand exactly why the blocking occurs. Which
> thread is blocked and why is it necessary?
>
If you have any clever ideas about how to "Pop up a deck-of-cards menu
and return user's selection." without blocking, then please share them.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 21:12 bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword Drew Adams
2010-12-20 21:30 ` Drew Adams
2010-12-20 22:22 ` Stefan Monnier
@ 2010-12-21 11:06 ` grischka
2016-04-28 9:50 ` Lars Ingebrigtsen
3 siblings, 0 replies; 10+ messages in thread
From: grischka @ 2010-12-21 11:06 UTC (permalink / raw
To: jasonr; +Cc: bug-gnu-emacs
> If you have any clever ideas about how to "Pop up a deck-of-cards menu and
> return user's selection." without blocking, then please share them.
Now that "clever idea" exists as long as GUI toolkits are around: Don't
use a command loop in your application, use event callbacks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword
2010-12-20 21:12 bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword Drew Adams
` (2 preceding siblings ...)
2010-12-21 11:06 ` grischka
@ 2016-04-28 9:50 ` Lars Ingebrigtsen
3 siblings, 0 replies; 10+ messages in thread
From: Lars Ingebrigtsen @ 2016-04-28 9:50 UTC (permalink / raw
To: Drew Adams; +Cc: 7691
"Drew Adams" <drew.adams@oracle.com> writes:
> And keywords seem to work OK - except for :help. Example:
>
> (defun eee (event)
> (interactive "e")
> (x-popup-menu
> event '(keymap "The Menu"
> (foo menu-item "Foo" 'forward-char
> :enable pop-up-frames
> :help "WHY DOESN'T THIS SHOW UP?"))))
>
> (global-set-key [(control mouse-3)] nil)
> (global-set-key [(control down-mouse-3)] 'eee)
>
> Then `C-mouse-3'. Turn `pop-up-frames' on and off to see that :enable
> works.
>
> But put the pointer over item `Foo' in the menu and you will not see the
> :help displayed.
This seems like it has been fixed now.
(defun eee (event)
(interactive "e")
(x-popup-menu
event '(keymap "The Menu"
(foo menu-item "Foo" forward-char
:enable pop-up-frames
:help "WHY DOESN'T THIS SHOW UP?"))))
(global-set-key [(control mouse-3)] nil)
(global-set-key [(control down-mouse-3)] 'eee)
works for me.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-04-28 9:50 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-20 21:12 bug#7691: 24.0.50; x-popup-menu with keymap - :help keyword Drew Adams
2010-12-20 21:30 ` Drew Adams
2010-12-20 22:22 ` Stefan Monnier
2010-12-20 22:41 ` Drew Adams
2010-12-20 23:05 ` Jason Rumney
2010-12-20 23:17 ` Drew Adams
2010-12-21 2:11 ` Lennart Borgman
2010-12-21 3:32 ` Jason Rumney
2010-12-21 11:06 ` grischka
2016-04-28 9:50 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.