all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: rudalics@gmx.at, emacs-devel@gnu.org
Subject: Re: Layered display API
Date: Wed, 13 Aug 2014 18:28:50 +0300	[thread overview]
Message-ID: <83iolwif2l.fsf@gnu.org> (raw)
In-Reply-To: <53EAD0B1.1010405@yandex.ru>

> Date: Wed, 13 Aug 2014 06:42:57 +0400
> From: Dmitry Gutov <dgutov@yandex.ru>
> CC: rudalics@gmx.at, emacs-devel@gnu.org
> 
> On 08/11/2014 07:01 PM, Eli Zaretskii wrote:
> 
> > Compare this with x-popup-menu: the similarity is striking.  Which is
> > why I suggested to use menus on TTYs.
> 
> Yes, it would be nice if we can use them. However, the fact that menus 
> handle evens themselves (or try to) makes me think it's not the cleanest 
> approach.

The menu code can be extended.  More accurately, we could refactor the
menu code to provide the capabilities of overlaying text on window
display for other Lisp features.

> > Given these requirements, I think the only 2 alternatives to implement
> > them for GUI frames are:
> >
> >    . tooltip frames, suitably beefed up <...>
> >
> >    . some low-level graphics feature <...>
> >
> > Nothing else seems possible, because if we rely on the current display
> > engine, we will be unable to fully control at least the vertical
> > position of the lines in your popup, and in some cases (e.g.,
> > line-prefix) also the horizontal position.
> 
> Not even menus? My understanding was they might be able to satisfy most 
> of the requirements, aside from working with proportional fonts.

At least with some toolkits, GUI menus have decorations, which will
look strange if we use them in this capacity.

> >>> No, I meant conceal the text produced by other display properties, and
> >>> display your overlay string instead.
> >>
> >> It doesn't seem to be solving much: if I want to display something in
> >> the middle of, say, large `display' text, there's no specific span of
> >> text to set that new property on.
> >
> > You'd put it on the overlay string.
> 
> Let me rephrase the previous message: "...there's no specific span of 
> text to put the overlay on".

The buffer text that is covered by the "large display property" is
still there, right?  It just isn't displayed.

> Will the menu allow me to customize the keymap it's using?

Of course!  This is Emacs.  See the end of menu-bar.el: the menu
navigation keys are defined as a keymap.

> > Same as above: exit the menu, do what you need, then redraw it.
> >
> >> Would that work via post-command-hook?
> >
> > No.  The current menu code simply ignores any commands it wasn't
> > programmed to understand and act upon.
> 
> Ignores, or allows them to go through?

Ignores.  They are processed and produce no effect.

> >> And? Suppose there are multiple minor modes in that buffer that might
> >> like to handle that click?
> >
> > Again, fights like that should be resolved "by other means".
> 
> In the buffer contents, they are resolved with buttons. Why not on the 
> fringe?

I don't see how buttons can resolve conflicts.  Maybe I'm missing
something.



  parent reply	other threads:[~2014-08-13 15:28 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-05  2:00 bug#18195: 24.3.92; window-screen-lines is not accurate Dmitry
2014-08-05  8:38 ` martin rudalics
2014-08-05 10:03   ` Dmitry Gutov
2014-08-05 10:16     ` martin rudalics
2014-08-05 10:24       ` Dmitry Gutov
2014-08-05 12:20         ` martin rudalics
2014-08-05 13:05           ` Dmitry Gutov
2014-08-05 13:50             ` martin rudalics
2014-08-05 14:06               ` Eli Zaretskii
2014-08-06 11:55               ` Dmitry Gutov
2014-08-06 16:13                 ` martin rudalics
2014-08-05 14:01             ` Eli Zaretskii
2014-08-05 13:58           ` Eli Zaretskii
2014-08-05 14:08             ` martin rudalics
2014-08-05 14:13               ` Eli Zaretskii
2014-08-05 13:57         ` Eli Zaretskii
2014-08-05 13:51       ` Eli Zaretskii
2014-08-05 13:57         ` martin rudalics
2014-08-05 14:09           ` Eli Zaretskii
2014-08-05 14:12             ` martin rudalics
2014-08-05 14:23               ` Eli Zaretskii
2014-08-05 14:38                 ` martin rudalics
2014-08-05 15:08                   ` Eli Zaretskii
2014-08-05 15:45                     ` martin rudalics
2014-08-05 17:57                       ` Eli Zaretskii
2014-08-06  9:41                         ` martin rudalics
2014-08-06 14:39                           ` Eli Zaretskii
2014-08-06 14:41                             ` Dmitry Gutov
2014-08-06 16:23                               ` Eli Zaretskii
2014-08-06 16:26                                 ` Dmitry Gutov
2014-08-06 17:24                                   ` Eli Zaretskii
2014-08-06 18:02                                     ` Dmitry Gutov
2014-08-06 18:36                                       ` Eli Zaretskii
2014-08-06 21:09                                         ` Dmitry Gutov
2014-08-06 16:15                             ` martin rudalics
2014-08-06 16:30                               ` Eli Zaretskii
2014-08-06 17:46                                 ` martin rudalics
2014-08-06 18:03                                   ` Eli Zaretskii
2014-08-07 15:08                                     ` martin rudalics
2014-08-07 15:35                                       ` Eli Zaretskii
2014-08-07 15:39                                         ` martin rudalics
2014-08-07 16:36                                           ` Eli Zaretskii
2014-08-08  8:41                                             ` martin rudalics
2014-08-08  9:16                                               ` Eli Zaretskii
2014-08-08 10:10                                                 ` martin rudalics
2014-08-08 10:25                                                   ` Eli Zaretskii
2014-08-05 13:46     ` Eli Zaretskii
2014-08-05 21:21       ` Dmitry Gutov
2014-08-06  2:52         ` Eli Zaretskii
2014-08-06 12:09           ` Dmitry Gutov
2014-08-06 14:45             ` Eli Zaretskii
2014-08-06 15:07               ` Dmitry Gutov
2014-08-06 16:25                 ` Eli Zaretskii
2014-08-06 16:37                   ` Dmitry Gutov
2014-08-06 17:26                     ` Eli Zaretskii
2014-08-06 12:40           ` Layered display API (was: bug#18195: 24.3.92; window-screen-lines is not accurate) Dmitry Gutov
2014-08-06 17:19             ` Eli Zaretskii
2014-08-06 18:20               ` Alp Aker
2014-08-06 18:39                 ` Eli Zaretskii
2014-08-06 20:48                   ` Layered display API Stefan Monnier
2014-08-07  2:45                     ` Eli Zaretskii
2014-08-06 20:49               ` Dmitry Gutov
2014-08-07 15:39                 ` Eli Zaretskii
2014-08-11  1:14                   ` Dmitry Gutov
2014-08-11 15:01                     ` Eli Zaretskii
2014-08-13  2:42                       ` Dmitry Gutov
2014-08-13 12:46                         ` Stefan Monnier
2014-08-13 15:29                           ` Eli Zaretskii
2014-08-13 16:27                           ` Dmitry Gutov
2014-08-13 17:07                             ` Eli Zaretskii
2014-08-13 17:45                             ` Stefan Monnier
2014-08-13 15:28                         ` Eli Zaretskii [this message]
2014-08-14  2:35                           ` Dmitry Gutov
2014-08-14  2:53                             ` Eli Zaretskii
2014-08-14 13:12                               ` Dmitry Gutov
2014-08-14 15:20                                 ` Eli Zaretskii
2014-08-15  1:20                                   ` Dmitry Gutov
2014-08-15  6:39                                     ` Eli Zaretskii
2014-08-15 23:03                                       ` Dmitry Gutov
2014-08-16  7:41                                         ` Eli Zaretskii
2014-08-16  9:17                                           ` Dmitry Gutov
2014-08-14  2:06                       ` Bo Lin
2014-08-14  2:49                         ` Eli Zaretskii
2014-08-14 16:08                           ` Bo Lin
2014-08-14 16:19                             ` Eli Zaretskii
2014-08-14 16:42                               ` Bo Lin
2014-08-06 20:56               ` Stefan Monnier
2014-08-05 13:35 ` bug#18195: 24.3.92; window-screen-lines is not accurate Eli Zaretskii

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

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

  git send-email \
    --in-reply-to=83iolwif2l.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /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 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.