Subject: Re: bug#16348: 24.3.50; Increasing internal-border-width cuts menubar and toolbar on non-toolkit builds

From: martin rudalics <[email-masked]>
Date: Sun, 05 Jan 2014 18:59:29 +0100

>> The only practical solution I usually see is to resize the frame to
 >> some other size and size it back.  I doubt that this is the same as
 >> resetting the enabled_p flags.
 >
 > What do you think it does, in addition?  It reallocates the glyph
 > matrices to fit the new dimensions, which clears that flag.
 >
 > Anyway, I'm not aware of any mechanism in the display engine to avoid
 > redrawing portions of the screen, except the one that compares glyph
 > rows.  All the other redisplay optimizations are suppressed by setting
 > windows_or_buffers_changed, and I imagine you already do that.
 >
 > If I'm wrong, can you point to the code that avoids redrawing those
 > parts?

If things were that easy I wouldn't have bothered you.  Take the
scenario from bug 14222:

(progn
   (set-frame-parameter (selected-frame) 'scroll-bar-width 6)
   (sit-for 1)
   (set-frame-parameter (selected-frame) 'left-fringe 27)
   (sit-for 1)
   (set-frame-parameter (selected-frame) 'scroll-bar-width 6)
   (sit-for 1))

I have inserted windows_or_buffers_changed settings all over
x_set_scroll_bar_width with no avail.  But when I subsequently re-resize
the frame, it gets drawn correctly.

martin