Hello dear Wine developers,
I was using Flash MX under Wine yesterday and I noticed that when I resize the window, the contents swirl around as resize messages get processed. I thought that maybe this could be avoided if the code in wine that processes ConfigureNotify messages from X and passes them on to the windows application could be made to not forward all the messages, but just the ones that mattered. I had a look at the source where this takes place (in dlls/x11drv/winpos.c) and put the following code in the X11DRV_ConfigureNotify function:
XEvent more_events;
. . .
wine_tsx11_lock(); while(XCheckTypedWindowEvent(event->display,event->window, ConfigureNotify,&more_events)) { event=& (more_events.xconfigure); x = event->x, y = event->y; } wine_tsx11_unlock();
So what it does is that when processing ConfigureNotify messages it checks the message queue if there are more ConfigureNotify messages queued up, and only delivers the last one to the windows application.
And actually things ran a bit smoother with this code in place!
Maybe there are potential problems with this code, because it might mean that messages gets delivered in the wrong order, but I have some ideas how this could probably be taken care of. And also some other bits and pieces should be fixed for this to work.
But what do you think about the idea, is it worth exploring further? In that case I could submit a proper patch for this...
-- Mikael