Subject: Re: bug#65217: 29.1; set-frame-size gets confused and drops calls

From: Gregory Heytings <[email-masked]>
Date: Sun, 20 Aug 2023 07:55:27 +0000

>
> Not really, I think.  With emacs -Q try
>
> (let ((i 100))
>  (while (> i 0)
>    (scroll-bar-mode -1)
>    (scroll-bar-mode 1)
>    (sit-for 0.1)
>    (setq i (1- i))))
>

I tried a small variant of this

(let ((i 100))
   (while (> i 0)
     (scroll-bar-mode -1)
     (sit-for 0.1)
     (scroll-bar-mode 1)
     (sit-for 0.1)
     (setq i (1- i))))

and it works, for both the GTK and Lucid toolkits.  The scroll bar is 
displayed and hidden repeatedly.

In any case, there will always be pathological cases in which the window 
manager (who has the last word) does not do what the Elisp code requested. 
But ISTM that telling Elisp programmers that such requests are "committed" 
asynchronously, and that they can "commit" them immediately by calling 
(redisplay t), should solve most similar problems.