[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tabs
From: |
Eli Zaretskii |
Subject: |
Re: Tabs |
Date: |
Wed, 09 Oct 2019 11:37:09 +0300 |
> Date: Wed, 9 Oct 2019 01:43:50 +0200
> From: Ergus <address@hidden>
> Cc: address@hidden, address@hidden, address@hidden
>
> > if (FRAME_GARBAGED_P (f))
> > {
> > fset_redisplay (f);
> > f->garbaged = false; <<<<<<<<<<<<<<<<<<<<
> > goto retry_frame;
> > }
> >
> >(if your repository is up to date and you are on the master branch,
> >this should be line 15690), does the breakpoint fire after you type
> >the "C-x 6 f FILENAME RET" command?
>
> No actually. I only get some messages:
> But nothing else; the breakpoint is not reached.
OK, so this is not due to the recent change which introduced the above
code.
In your original message you wrote:
> This used to work fine before... I just pull and recompiled (since
> saturday)...
Can you tell what was the latest date when this problem in GUI frames
didn't exist in your builds?
> Something else I observe is that when I leave the desktop and return
> back; the tab-bar is visible, but with the cursor there. When I move the
> cursor horizontally, the tabs image is substituted with the text that is
> supposed to be in the first visible line that is supposed to be bellow
> the tab-bar (attached image with the config.log open.)
Yes, these and other symptoms you described all tell one thing: that
some redisplay optimization is taken that shouldn't be used in this
case. IOW, Emacs optimizes redisplay ignoring the fact that there is
now a tab bar, which usurps portions of display that previously
belonged to some window. I just don't yet understand why this
happens, because the call to SET_FRAME_GARBAGED in
x_change_tab_bar_height should have had the effect of disabling all
the redisplay optimizations for this frame...
Does the change below fix this problem, per chance?
diff --git a/src/xfns.c b/src/xfns.c
index 20e63a2..f2264be 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1660,6 +1660,8 @@ x_change_tab_bar_height (struct frame *f, int height)
if ((height < old_height) && WINDOWP (f->tab_bar_window))
clear_glyph_matrix (XWINDOW (f->tab_bar_window)->current_matrix);
+ else if (height > old_height)
+ clear_current_matrices (f);
/* Recalculate tabbar height. */
f->n_tab_bar_rows = 0;
- Re: Tabs, (continued)
- Re: Tabs, Ergus, 2019/10/07
- Re: Tabs, Eli Zaretskii, 2019/10/08
- Re: Tabs, Ergus, 2019/10/08
- Re: Tabs, Eli Zaretskii, 2019/10/08
- Re: Tabs, Eli Zaretskii, 2019/10/08
- Re: Tabs, Ergus, 2019/10/08
- Re: Tabs, Eli Zaretskii, 2019/10/08
- Re: Tabs, Ergus, 2019/10/08
- Re: Tabs, Eli Zaretskii, 2019/10/08
- Re: Tabs, Ergus, 2019/10/08
- Re: Tabs,
Eli Zaretskii <=
- Re: Tabs, Ergus, 2019/10/09
- Re: Tabs, Eli Zaretskii, 2019/10/09
- Re: Tabs, Ergus, 2019/10/09
- Re: Tabs, Eli Zaretskii, 2019/10/09
- Re: Tabs, Ergus, 2019/10/09
- Re: Tabs, Eli Zaretskii, 2019/10/09
- Re: Tabs, Ergus, 2019/10/09
- Re: Tabs, Eli Zaretskii, 2019/10/09
- Re: Tabs, Eli Zaretskii, 2019/10/10
- Re: Tabs, Ergus, 2019/10/10