Subject: bug#1348: set-frame-width and set-frame-position seem buggy on at least MSWindows

From: grischka <[email-masked]>
Date: Tue, 02 Dec 2008 15:11:23 +0100

jasonr wrote:
> Quoting grischka:
> 
>> Below is a patch that fixes the problem on windows.
> 
> I believe this patch is incorrect, as it will result in the message handling
> code running in the context of the Lisp thread, which will result in a whole
> host of unreproducable crashing bugs if left like that. Probably the reason it
> seems to work is that it introduces a delay that is generally long enough for
> the real resizing or moving to take place before the Lisp thread continues.

Believes are not an approach to code, coincidentally none of the above
do apply.

> Inter-thread synchronization is what is needed here to fix this safely and
> deterministically.

Nicely put.  This is the theory.

(As to practical things that need fixing:

   HRGN orig_clip;
   GetClipRgn(s->hdc, orig_clip);

Or:

   for (i = 0; i < len; i++)
     ExtTextOutW (s->hdc, x + i, y, options, NULL,
       s->char2b + from + i, 1, NULL);
)