http://bugs.winehq.org/show_bug.cgi?id=23303
Summary: Reducing window size fails to generate WM_MESSAGE when complete Product: Wine Version: 1.1.38 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: jon@jonshouse.co.uk
When reducing the size of a window on X11 wine fails to generate a WM_PAINT message when the mouse button is released.
Cant tell if this is fixed in versions >1.1.38 - if so can somebody kick fedora into updating their package :-)
Thanks.
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #1 from Juan Lang juan_lang@yahoo.com 2010-06-21 12:23:44 --- *** Bug 23304 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #2 from Alexandre Julliard julliard@winehq.org 2010-06-21 12:29:47 --- If the window size is reduced there is nothing to repaint. Please give more details.
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #3 from Jonathan Andrews jon@jonshouse.co.uk 2010-06-21 16:05:37 ---
My code running on XP http://www.jonshouse.co.uk/download/udp/windowsxp.mpg
Same exe, but on wine http://www.jonshouse.co.uk/download/udp/x11wine.mpg
The code (very hacky at the moment) http://www.jonshouse.co.uk/download/udp/udpbroadcastchat.tar.gz
The only difference between wine and XP is that when I let go of the window XP generates a WM_REPAINT and wine does not.
Thanks, Jon
http://bugs.winehq.org/show_bug.cgi?id=23303
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Reducing window size fails |Reducing window size fails |to generate WM_MESSAGE when |to generate WM_PAINT when |complete |complete
--- Comment #4 from Dmitry Timoshkov dmitry@codeweavers.com 2010-06-22 00:05:27 --- There is no such a thing as WM_MESSAGE or WM_REPAINT.
What is exactly the problem with your application? Can you create minimal test case to show it?
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #5 from Jonathan Andrews jon@jonshouse.co.uk 2010-06-22 08:24:49 --- Sorry for the confusion, im not explaining this well. I'm trying to program 3 window systems at once I get my names confused.
What im trying to do is get a window that reformats its contents dependant on the window size.
After being a bit more careful with testing my code I've found it was not doing quite what I thought.
What I get from windowsXP is a set of messages that look like this :
width=320 height=180 Got msg.message 00A0 Got msg.message 00A1 width=532 height=375 ^^^^ Window got larger, mouse button released. Got msg.message 00A0 Got msg.message 02A2 Got msg.message 00A0 Got msg.message 00A1 width=422 height=284 ^^^^ Window got smaller, mouse button released. Got msg.message 00A0
In my code im using 0xA1 (WM_NCLBUTTONDOWN) to cause the window contents to reformat (as does WM_PAINT and a few other messages).
On XP when a window size is increased OR decreased I get the 0xA1 message. On wine I only get the message when the window size in increased.
Wine generates quite a few WM_PAINT messages, but again does not generate one when a window is is reduced in size (I would expect it to stick one in for luck)
Upshot, my code works on "real windows" but not wine as I get no suitable message to tell the program to redraw after a window is reduced in size.
Another way of looking at it is "If I reduce a window in size and let go of the mouse I get zero messages from wine, I get some messages from XP."
Did you manage to view the videos?, mplayer will play them if nothing else does: windowsxp.mpg: RIFF (little-endian) data, AVI, 636 x 356, video: FFMpeg MPEG-4, audio: MPEG-1 Layer 1 or 2 (stereo, 44100 Hz)
Many thanks, Jon
http://bugs.winehq.org/show_bug.cgi?id=23303
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2010-06-22 08:49:12 --- If you want to detect resizes you handle WM_SIZE, or you set CS_HREDRAW/VREDRAW on your window class to force repaints. It doesn't make sense to try to detect resizes based on mouse events.
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #7 from Jonathan Andrews jon@jonshouse.co.uk 2010-06-22 10:50:18 --- Sorry about that - me bad !, im more familiar with X and still feeling my way blindly through win32.
My app was registering a window class of zero (teaches me not to cut&paste from examples !) - fixed now.
Still its interesting that XP with a window class of zero sends a quite a different set of messages to wine. I would expect them to either match much more closely or for wine to send an extra WM_PAINT when the window manager completes a size change as a failsafe for badly behaved apps :-)
Thanks for your help. Jon
http://bugs.winehq.org/show_bug.cgi?id=23303
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Nikolay Sivov bunglehead@gmail.com 2010-06-22 14:59:01 --- Closing.
http://bugs.winehq.org/show_bug.cgi?id=23303
--- Comment #9 from Dmitry Timoshkov dmitry@codeweavers.com 2010-06-23 01:25:20 --- (In reply to comment #7)
Still its interesting that XP with a window class of zero sends a quite a different set of messages to wine. I would expect them to either match much more closely or for wine to send an extra WM_PAINT when the window manager completes a size change as a failsafe for badly behaved apps :-)
According to your own testing your app doesn't receive WM_PAINT event under XP.