unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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 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).