https://bugs.winehq.org/show_bug.cgi?id=49779
Panard panard@inzenet.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |panard@inzenet.org
--- Comment #7 from Panard panard@inzenet.org --- Created attachment 68297 --> https://bugs.winehq.org/attachment.cgi?id=68297 output with WINEDEBUG=+x11drv,+winex11
We are experiencing a similar bug with Magic Online (.NET based) *using Cinnamon*: the position of the window regularly jumps to a fixed position; and when maximized steals the focus.
In the join the output with WINEDEBUG=+x11drv, you can see what is happening with wine 5.17:
$ wine /opt/mtgo/mtgo.exe [...] 01cc:trace:x11drv:create_whole_window making win 0x10082/0 managed [..] 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (220,135)-(1460,875) client (220,135)-(1460,875) style 060f0000 flags 0000081d 01cc:trace:x11drv:set_mwm_hints 0x10082 setting mwm hints to 0,3e (style 60f0000 exstyle c0100) 01cc:trace:x11drv:sync_window_position win 0x10082/6e0000b pos 220,135,1240x740 after 5b4 changes=f serial=421 01cc:trace:x11drv:X11DRV_ExtEscape SET_DRAWABLE hdc 0x5900a2 drawable 6e0000a dc_rect (0,0)-(1260,757) 01cc:trace:x11drv:X11DRV_ExtEscape SET_DRAWABLE hdc 0x500ae drawable 6e0000b dc_rect (0,0)-(1240,740) 01cc:trace:x11drv:X11DRV_ExtEscape SET_DRAWABLE hdc 0x400bf drawable 6e0000b dc_rect (0,0)-(1240,740) 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (220,135)-(1460,875) client (220,135)-(1460,875) style 160f0000 flags 00001847 01cc:trace:x11drv:set_mwm_hints 0x10082 setting mwm hints to 0,3e (style 160f0000 exstyle c0100) 01cc:trace:x11drv:sync_window_position win 0x10082/6e0000b pos 220,135,1240x740 after 5b4 changes=4f serial=425 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (220,135)-(1460,875) client (220,135)-(1460,875) style 160f0000 flags 00001837 01cc:trace:x11drv:set_mwm_hints 0x10082 setting mwm hints to 0,3e (style 160f0000 exstyle c0100) 01cc:trace:x11drv:sync_window_position win 0x10082/6e0000b pos 220,135,1240x740 after 5b4 changes=f serial=430
(^----- this position gets somehow "saved") [...] (here I start dragging around the window)
01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (276,149)-(1516,889) client (276,149)-(1516,889) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (270,149)-(1510,889) client (270,149)-(1510,889) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (267,149)-(1507,889) client (267,149)-(1507,889) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (265,150)-(1505,890) client (265,150)-(1505,890) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (268,156)-(1508,896) client (268,156)-(1508,896) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (271,162)-(1511,902) client (271,162)-(1511,902) style 160f0000 flags 0000081d [...] 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (148,150)-(1388,890) client (148,150)-(1388,890) style 160f0000 flags 0000081d 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (150,149)-(1390,889) client (150,149)-(1390,889) style 160f0000 flags 0000081d 01e4:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (150,149)-(1390,889) client (150,149)-(1390,889) style 160f0000 flags 0000001c
[...] (then I move the mouse elsewhere, and go back to the window)
01e4:trace:x11drv:set_mwm_hints 0x10082 setting mwm hints to 0,3e (style 160f0000 exstyle c0100) 01e4:trace:x11drv:update_net_wm_states setting wm state 0 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 1 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 2 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 3 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 4 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:sync_window_position win 0x10082/6e0000d pos 150,149,1240x740 after 56e changes=f serial=786 01e4:trace:x11drv:update_net_wm_states setting wm state 0 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 1 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 2 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 3 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 4 for window 0x10082/6e0000d to 0 prev 0 01cc:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (220,135)-(1460,875) client (220,135)-(1460,875) style 160f0000 flags 0000081d 01e4:trace:x11drv:X11DRV_WindowPosChanged win 0x10082 window (220,135)-(1460,875) client (220,135)-(1460,875) style 160f0000 flags 0000001c
(^---- the window jumps to its old position)
01e4:trace:x11drv:set_mwm_hints 0x10082 setting mwm hints to 0,3e (style 160f0000 exstyle c0100) 01e4:trace:x11drv:update_net_wm_states setting wm state 0 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 1 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 2 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 3 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 4 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:sync_window_position win 0x10082/6e0000d pos 220,135,1240x740 after 5b4 changes=f serial=799 01e4:trace:x11drv:update_net_wm_states setting wm state 0 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 1 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 2 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 3 for window 0x10082/6e0000d to 0 prev 0 01e4:trace:x11drv:update_net_wm_states setting wm state 4 for window 0x10082/6e0000d to 0 prev 0 01d8:fixme:seh:NtQueryInformationThread ThreadIsIoPending info class not supported yet 01a4:fixme:seh:NtQueryInformationThread ThreadIsIoPending info class not supported yet 0250:fixme:seh:NtQueryInformationThread ThreadIsIoPending info class not supported yet 01cc:trace:x11drv:X11DRV_ExtEscape SET_DRAWABLE hdc 0x5900a2 drawable 6e0000d dc_rect (0,0)-(1240,740)
As reported in a previous comment, reverting to the commit prior to c5ec1585f6e5211a2b63e3435748210552250534 fixes the issue.
This bugs seems related to the Cinnamon WM, no problem with the other WMs I tested with (unity and xmonad); it could be interesting to try with gnome shell or related WMs. Switching wine to "emulate a virtual desktop" workarounds the issue as well.
It is sufficient to run wine 5.17 in a virtual machine with Ubuntu Cinnamon installed to reproduce the bug with Magic Online. I'll be happy to try patches or provide other debug traces, just let me know what may help tracking down the issue.