unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan <monnier@IRO.UMontreal.CA>
To: Eli Zaretskii <eliz@gnu.org>
Cc: rudalics@gmx.at, christian@defun.dk, cloos@jhcloos.com,
	kanru@kanru.info, emacs-devel@gnu.org
Subject: Re: Redisplay problems?
Date: Mon, 24 Mar 2014 14:07:34 -0400	[thread overview]
Message-ID: <jwvha6nfq0i.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <83k3bj1otm.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 24 Mar 2014 19:36:21 +0200")

> (Btw, what about parallel redisplaying of several frames by several
> independent threads?)

Patch welcome.

> However, what I wrote was only about deiconifying a frame, or
> redrawing a frame which was entirely obscured.  If we are still
> talking about that case, please tell more about the situations where
> deiconifying a frame was a bottleneck or even a significant annoyance.

Occasionally, closing a large frame that obscured a dozen frames
underneath could be such a problem, but since in X11 we don't optimize
"obscured" like we do under w32 I haven't noticed it.
In any case, Emacs can't tell the difference between "switching
workspace" and "deiconifying", AFAIK.

> How to do that is another question.  Blindly assuming that the current
> matrices are up to date doesn't sound like a good idea to me: we will
> momentarily flash incorrect display, and sooner or later people will
> complain.  And such an incorrect redisplay will be immediately
> followed another one, so what exactly have we gained?

In case the next redisplay is far away, it's better to display the old
window's content than to leave "garbage" on the screen, I think.
I don't think it's a very serious issue either way.

But the code had a comment specifically mentioning that we preferred
not setting the `garbaged' flag (when possible) so as to avoid
a blank/undraw frame being displayed if a frame is deiconified while
we're in the middle of a toolkit menu.

> But we could do this when the redisplay flag of the frame is not set,
> for example.

We could, yes.  But I'm not sure it would really be better.

> If the redisplay flag of an obscured/iconified frame _is_ set, then it
> looks like you cannot win anyway, because the entire frame needs to be
> completely redisplayed, and comparing against the current matrices is
> meaningless (since nothing is on the glass, so a full redraw is the
> only alternative).  So I think setting the garbaged flag in this case
> is TRT.

No: setting the garbaged flag has the side-effect of disabling all
optimizations while computing the new matrices.  And in this case, we
don't need to disable those optimizations, AFAIK.


        Stefan



  reply	other threads:[~2014-03-24 18:07 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-10 20:37 Redisplay problems? Christian Lynbech
2014-03-13 20:34 ` Eli Zaretskii
2014-03-15 18:10 ` James Cloos
2014-03-18 10:48   ` Kan-Ru Chen (陳侃如)
2014-03-18 16:06     ` Eli Zaretskii
2014-03-18 16:17     ` Óscar Fuentes
2014-03-18 16:46       ` Eli Zaretskii
2014-03-18 16:53         ` Óscar Fuentes
2014-03-18 17:00           ` Christian Lynbech
2014-03-18 17:09           ` Eli Zaretskii
2014-03-18 21:18         ` Óscar Fuentes
2014-03-19  0:55           ` Kan-Ru Chen (陳侃如)
2014-03-20 17:59           ` Stefan
2014-03-20 19:37             ` Óscar Fuentes
2014-03-18 18:46     ` James Cloos
2014-03-19 16:26     ` martin rudalics
2014-03-19 18:04       ` Óscar Fuentes
2014-03-20  0:54         ` Stefan
2014-03-20  9:52           ` martin rudalics
2014-03-20 16:07             ` Glenn Morris
2014-03-20 19:23               ` martin rudalics
2014-03-20  4:46       ` Stefan
2014-03-20  9:52         ` martin rudalics
2014-03-20 12:45           ` Stefan
2014-03-20 14:01             ` Stefan
2014-03-20 17:22               ` Eli Zaretskii
2014-03-20 18:00                 ` Stefan
2014-03-20 18:19                   ` Eli Zaretskii
2014-03-20 18:12             ` Eli Zaretskii
2014-03-20 20:55               ` Stefan Monnier
2014-03-21  7:37                 ` Eli Zaretskii
2014-03-21 12:59                   ` Stefan
2014-03-21 16:12                     ` Eli Zaretskii
2014-03-21 19:31                       ` Stefan Monnier
2014-03-22  7:43                         ` Eli Zaretskii
2014-03-22 13:48                           ` Stefan
2014-03-22 13:53                             ` martin rudalics
2014-03-22 15:37                               ` Stefan
2014-03-22 14:29                             ` Eli Zaretskii
2014-03-22 15:42                               ` Stefan
2014-03-22 16:07                                 ` Eli Zaretskii
2014-03-22 18:43                                   ` Stefan
2014-03-22 19:08                                     ` Eli Zaretskii
2014-03-24  1:58                                       ` Stefan
2014-03-24  3:55                                         ` Eli Zaretskii
2014-03-24  8:32                                           ` David Kastrup
2014-03-24 16:58                                             ` Eli Zaretskii
2014-03-24 18:15                                               ` Stefan
2014-03-24 19:34                                                 ` Eli Zaretskii
2014-03-24 12:33                                           ` Stefan
2014-03-24 17:36                                             ` Eli Zaretskii
2014-03-24 18:07                                               ` Stefan [this message]
2014-03-24 19:30                                                 ` Eli Zaretskii
2014-03-24 20:43                                                   ` Stefan
2014-03-25  3:52                                                     ` Eli Zaretskii
2014-03-25 13:10                                                       ` Stefan Monnier
2014-03-26 15:28                                                         ` Eli Zaretskii
2014-03-27 13:55                                                           ` Stefan Monnier
2014-03-27 17:33                                                             ` Eli Zaretskii
2014-03-27 21:13                                                               ` Stefan Monnier
2014-03-28  7:15                                                                 ` Eli Zaretskii
     [not found]                                                       ` <<jwvzjkeqvcg.fsf-monnier+emacs@gnu.org>
     [not found]                                                         ` <<83d2h9yo5m.fsf@gnu.org>
2014-03-26 15:37                                                           ` Drew Adams
2014-03-22 19:13                                     ` Eli Zaretskii
2014-03-24  1:56                                       ` Stefan
2014-03-20 19:22             ` martin rudalics
2014-03-20 20:36               ` Eli Zaretskii
2014-03-21  8:03                 ` martin rudalics
2014-03-21  8:36                   ` Eli Zaretskii
2014-03-21  9:51                     ` martin rudalics
2014-03-21 10:29                       ` Eli Zaretskii
2014-03-22  2:00                         ` Kan-Ru Chen (陳侃如)
2014-03-22  2:37                           ` Stefan Monnier
2014-03-22  3:38                             ` Kan-Ru Chen (陳侃如)
2014-03-22  7:28                           ` Eli Zaretskii
2014-03-21 13:08                     ` Stefan
2014-03-21 16:19                       ` Eli Zaretskii
2014-03-21 19:42                         ` Stefan Monnier
2014-03-22  7:49                           ` Eli Zaretskii
2014-03-22 13:56                             ` Stefan
2014-03-22 14:50                               ` Eli Zaretskii
2014-03-20 21:00               ` Stefan Monnier
2014-03-21  7:41                 ` Eli Zaretskii
2014-03-21 13:02                   ` Stefan
2014-03-21 16:13                     ` Eli Zaretskii
2014-03-21 19:39                       ` Stefan Monnier
2014-03-22  7:47                         ` Eli Zaretskii
2014-03-22 13:49                           ` Stefan
2014-03-22 14:29                             ` Eli Zaretskii
2014-03-20 16:19         ` Eli Zaretskii
2014-03-27 21:17 ` Christian Lynbech
     [not found] <<m2bnxdg58p.fsf@defun.dk>

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=jwvha6nfq0i.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=christian@defun.dk \
    --cc=cloos@jhcloos.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=kanru@kanru.info \
    --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).