[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #22261] Window turns black during resizing on Win32/MINGW when GSBa
[bug #22261] Window turns black during resizing on Win32/MINGW when GSBackHandlesWindowDecorations==TRUE
Mon, 11 Feb 2008 23:59:27 +0000
Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.7 (like Gecko) SUSE
Follow-up Comment #3, bug #22261 (project gnustep):
The redrawing while resizing problems on X11 are just the same as on Windows.
You sometimes get a black window when the application is to busy to do a
redraw while resizing.
What happens when a window gets resized is that the backend will be notified
from the window system about the new size. It then sends an
GSAppKitWindowResized event to the front end (which only happans in some cases
for Windows) and NSWindow _processResizeEvent calls
setWindowdevice:forContext:, which takes over the actual resizing and the
adjusting of the drawing environment. It may well be that this method also
should do a needsDisplay:, but I am not sure.
The setWindowdevice:forContext: method is the place where I would expect
resizeBackingStoreFor: to be called, but currently this is different for the
windows backend (Why?).
Now all this strange behaviour was there before your patch, but perhaps your
patch could look different with it being resolved.
The other part is where and how we want redraws to happen. In GNUstep
(almost) all redraws should come from the _handleAutodisplay method on
NSWindow. This does a displayIfNeeded followed by a flushWindowIfNeeded. This
is a drawing mechanism that does not go via the standard Windows WM_PAINT
route. WM_PAINT should only apply when a part of a window gets exposed by
window movement or resizing. Your mechanism to deal with that case may be the
correct one, I am just not sure, it doesn't have any side effects for the
other cases. Maybe I just need to look at the code a bit longer.
Reply to this item at:
Nachricht geschickt von/durch Savannah