emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make-pointer-invisible on Windows


From: martin rudalics
Subject: Re: make-pointer-invisible on Windows
Date: Mon, 29 Jun 2015 11:45:49 +0200

> No mystery here, it turns out.  On XP, we get the WM_ERASEBKGND
> message when (portions of) the Emacs frame previously covered by other
> windows are uncovered.  In response, we erase the rectangle specified
> by the message, and we do that from the input thread, i.e. this works
> even if the main thread is busy.

I don't think it's worth changing this but in principle we could erase
from the main thread as well?  That is, erasing without painting doesn't
make much sense anyway.

> WM_ERASEBKGND is immediately
> followed by WM_PAINT, but the latter is passed for execution by the
> main thread, and that thread is busy.  This is why you wind up with an
> empty rectangle.
>
> On Windows 7, neither WM_ERASEBKGND nor WM_PAINT are sent, except when
> the Emacs frame is moved or resized.  So we don't erase the rectangle,
> and the text remains on screen.

So you do get a blank rectangle when you (de-)maximze the frame I
suppose.

> Not an easy one: we'd need to handle several expose events for
> different rectangles at once.  Given that X doesn't support this, I
> see no reason to invest any efforts there.

Agreed.

martin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]