GNU bug report logs -
#78980
31.0.50; C-z crashes emacsclient -nw
Previous Next
Full log
Message #17 received at 78980 <at> debbugs.gnu.org (full text, mbox):
> I find more interesting what redisplay_internal does. The first thing
> I see is
>
> xdisp.c:
> 17387 /* If this is a window on a tty root frame displaying a child frame,
> 17388 the current matrix of W may contain glyphs of that child frame.
> 17389 Don't try shortcuts that might use the current matrix in this case. */
> 17390 && !is_tty_root_frame_with_visible_child (XFRAME (w->frame)))
>
> Here w->frame can be invisible, apparently. And I wonder if one should
> check if the root frame of w->frame is visible as a starter. Something
> like `FRAME_VISIBLE_P (root_frame (XFRAME (w->frame)))` before checking
> `is_tty_root...`. Because I wonder if that wouldn't be more correct also
> in the GUI case.
>
> And there are potentially more places. I don't see at the moment if
> that's already done somewhere in redisplay_internal, but maybe we should
> discard redisplays for invisible frames somewhere further down, too. Or
> one could first add assert that frames are visible when we display them,
> e.g. in redisplay_window and so on?
There is one loose end for GUIs: When I have a child frame marked as
visible, its parent frame is marked as invisible and their root frame is
marked as visible, then I have no idea whether there exists a window
manager that expects us to redraw the child frame marked as visible. At
least when that child frame corresponds to a modal window.
martin
This bug report was last modified 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.