i have asked to the xorg irc channel about the XGetWindowAttributes method, and they have said that: XGetWindowAttributes has to round trip to the server, this mean that has to flush to get the reply containing the results you want from it
so the problem is that we have a window without a surface when asking for window attributes On 21 December 2013 13:30, Riccardo Canalicchio < [email protected]> wrote: > from my debugging here the call stack of a resize: > ... > NSWindow _processResizeEvent > CairoContext GSSetDevice > XGCairoModernSurface initWithDevice > XGetWindowAttributes* <-- HERE IS WHERE THE WINDOW BECOME WHITE (OR > BLACK) *XGCairoModernSurface.m:48 > CairoContext handleExposeRect > XGCairoModernSurface handleExposeRect > ... > and on the next XFlush the window get displayed > > this mean that XGetWindowAttributes cause an error? > > > On 20 December 2013 17:20, Fred Kiefer <[email protected]> wrote: > >> On 20.12.2013 11:03, Riccardo Canalicchio wrote: >> > tell me If I'm right: >> > - when using a buffered window there should be two cairo surfaces (back >> and >> > front) >> > - a window resize, trigger the re initialisation of all the two surfaces >> > - actually the fresh new surfaces get drawn immediatly (in my case they >> are >> > white) >> >> The first two are true according to my understanding. For the third I am >> not really sure. We should add some log statements in the class >> CairoContext and monitor in which order the following methods get called >> during resize and whether the correct surface object gets used: >> >> + (void) handleExposeRect: (NSRect)rect forDriver: (void *)driver >> - (void) GSSetDevice: (void *)device : (int)x : (int)y >> >> Hope this helps, >> Fred >> >> >
_______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
