unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: martin rudalics <rudalics@gmx.at>, Eli Zaretskii <eliz@gnu.org>
Cc: 10873@debbugs.gnu.org, larsi@gnus.org
Subject: bug#10873: 24.0.93; `report-emacs-bug' obscures bug-reporting buffer (!)
Date: Mon, 28 Dec 2015 02:44:56 -0800 (PST)	[thread overview]
Message-ID: <dc005875-9a9e-4312-8c5b-e4f9876b9ddf@default> (raw)
In-Reply-To: <56810A01.3060609@gmx.at>

>  >> I consider the window showing *Completions* modal.
>  >
>  > That's clear.  But what is your reason (evidence) for saying
>  > that.
> 
> That if you don't consider the window modal you will run into all sorts
> of problems like the one that is the subject of this thread.  I'll give
> you a more realistic scenario.  Assume that you have a directory ~/foo/
> with two files say foo1 and foo2 and a directory ~/bar/ with two files
> say bar1 and bar2.  Now do
> 
> emacs -Q
> M-x customize-option RET abbrev-file-name RET
> Put ~/foo/ into the editable field, point at its end and do
> M-x widget-complete RET
> Now do
> C-x 5 2
> M-x customize-option RET custom-file RET
> Select "File", put ~/bar/ into the editable field, point at its end and
> do
> M-x widget-complete RET
> again.  Note that at this moment you have changed the contents of the
> *Completions* windows in _both_ frames.  If you now return to the first
> frame and select a completion like bar1, nothing will happen (in the
> best case).

You already made clear, further down in your previous mail, what
you mean by "modal".  And I already said OK, I understand now
what you mean by "modal", even if that is not what is usually
mean by a modal dialog/UI.

In a (truly) modal UI you would not be able to move from one to
the other like that.  That was my point: *Completions* is not
modal (in the usual sense).  In fact, in Emacs there are very
few dialogs that are modal.  `yes-or-no-p', `y-or-n-p', and
maybe query-replace are about the only things that come to mind.

> This is the same cockpit error as the one from your scenario:
> *Completions* windows are modal and should be treated accordingly,
> that is, nicely.

"Modal" in your special sense of "(a) *Completions* remains
visible until (b) it is no longer needed, when it disappears."

And yes, we agree that a user can mess up if s?he fools around.
That comes, BTW, precisely from the fact that these dialogs are
_not_ modal (in the usual sense).  Because they are not modal,
you can mix them up - neither insists on all your attention
until it is done.

>  > Ah, so that's what you mean by "modal window".  Not that a user
>  > is prevented from doing something else than interact with it,
> 
> A user is allowed to do something else as long as she behaves nicely.
> That's the price she has to pay for not being "prevented from doing
> something else than interact with it".  The user in the scenario
> above does not behave nicely

Agreed.  I would put it differently (Emacs gives you enough
rope to hang yourself), but yes, if you want to put it that way.

> and neither do you when you want to report a bug while the
> *Completions* windows is shown.

Nope.  I disagree completely.  There is nothing wrong with
doing what I described.  I even gave a couple related use
cases.

It is always possible with Emacs to mess yourself up by doing
something stupid.  That doesn't mean that leaving *Completions*
open while filing a bug report is stupid.  In your scenario
above the mess came from trying to reuse *Completions* and
expecting no crosstalk.

And even in the scenario above, BTW, it is possible to
accomplish what the user tried sanely, using a recursive
minibuffer.  Start one completion; recursive minibuffer
for another completion; finish that; resume the first
completion.  No big deal.

> Such users are punished.

Oh c'mon, Martin.  This is a bug, not punishment for being
a bad user and not treating Emacs nicely.

>  > Not that a user is prevented from doing something else than
>  > interact with it, but that (a) it remains visible until
>  > (b) it is no longer needed, when it disappears.
>  >
>  > That is not the usual meaning of "modal", but OK, good to know.
>  >
>  > I imagine that (a) is unnecessary, unless you are suggesting
>  > that a user cannot remove such a window.  I'm guessing that
>  > you perhaps mean, by (a), that no other automatically displayed
>  > window takes its place, and that it is not otherwise removed
>  > automatically.
> 
> All assumptions are off when you violate (a) or (b).

And?  Did you mean, by (a), only that the window is not removed
automatically?  Or did you mean that a user cannot remove it?

If the former (which is what I hope you meant), it's up to
Emacs not to violate (a) (i.e., not to remove it automatically
until (b)).

And I think it must be the former, because I don't see that Emacs
prevents the user from removing the window.  And if the user
removes the window then presumbably it is no longer needed.

Or maybe you mean that the user removes it accidentally?
Even then, I don't see the problem.  If there were a real
problem with removing the window then Emacs should not
let the user remove it.

And I don't even understand what it means (for Emacs or for
the user) to violate (b).

This is all a bit too vague and hypothetical for me, I'm
afraid.  I don't have the impression I'm being much help
now, as I can't really follow your point.





  reply	other threads:[~2015-12-28 10:44 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-22 23:21 bug#10873: 24.0.93; `report-emacs-bug' obscures bug-reporting buffer (!) Drew Adams
2012-09-17  0:10 ` Drew Adams
2014-02-09  5:11 ` Lars Ingebrigtsen
2014-02-11 14:33   ` Drew Adams
2015-12-25 23:34     ` Drew Adams
2015-12-26  9:36       ` Eli Zaretskii
2015-12-27 16:05         ` martin rudalics
2015-12-27 16:12           ` martin rudalics
2015-12-27 16:25           ` Eli Zaretskii
2015-12-27 16:57             ` Drew Adams
2015-12-27 17:16               ` Eli Zaretskii
2015-12-27 17:06             ` martin rudalics
2015-12-27 17:15               ` Eli Zaretskii
2015-12-27 18:00                 ` Drew Adams
2015-12-27 18:37                   ` martin rudalics
2015-12-27 19:14                     ` Drew Adams
2015-12-28 10:08                       ` martin rudalics
2015-12-27 18:36                 ` martin rudalics
2015-12-28 18:23                 ` martin rudalics
2015-12-28 18:35                   ` Eli Zaretskii
2016-04-28 13:47                     ` Lars Ingebrigtsen
2015-12-27 18:00               ` Drew Adams
2015-12-27 16:51           ` Drew Adams
2015-12-27 17:06             ` martin rudalics
2015-12-27 18:00               ` Drew Adams
2015-12-27 18:37                 ` martin rudalics
2015-12-27 19:14                   ` Drew Adams
2015-12-28 10:08                     ` martin rudalics
2015-12-28 10:44                       ` Drew Adams [this message]
2015-12-28 18:23                         ` martin rudalics
2015-12-28 18:41                           ` Drew Adams
     [not found]     ` <<43f2b0b2-fafc-43a9-b56a-120b90878cbc@default>
     [not found]       ` <<838u4hk0um.fsf@gnu.org>
     [not found]         ` <<56800C2E.80300@gmx.at>
     [not found]           ` <<83bn9bhna2.fsf@gnu.org>
     [not found]             ` <<1cf60229-6b8c-4c53-96f2-1b8f5d74b80b@default>
     [not found]               ` <<8337unhkwt.fsf@gnu.org>
2015-12-27 18:00                 ` Drew Adams

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=dc005875-9a9e-4312-8c5b-e4f9876b9ddf@default \
    --to=drew.adams@oracle.com \
    --cc=10873@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=larsi@gnus.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 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).