http://bugs.winehq.org/show_bug.cgi?id=60431 Bug ID: 60431 Summary: winewayland.drv: Wine windows cannot be interactively resized under labwc Product: Wine Version: 11.19 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winewayland Assignee: wine-bugs@list.winehq.org Reporter: tiwasaka@live.jp Target Milestone: --- Distribution: --- Created attachment 82243 --> http://bugs.winehq.org/attachment.cgi?id=82243 Compressed logs containing WAYLAND_DEBUG=1 output for both labwc (not working) and Weston (working) using 'DISPLAY= wine notepad'. Description When using Wine's native Wayland driver (winewayland.drv) under labwc, Wine windows cannot be interactively resized by dragging their borders or corners. The resize cursor appears when the pointer is moved to a window edge or corner, but dragging it has no visible effect. The same Wine application can be interactively resized under Weston using the native Wayland driver. Resizing also works when Wine is run through XWayland under labwc. I am not sure whether this is a Wine bug, a labwc/wlroots issue, or an interoperability issue between winewayland.drv and labwc. Environment Compositor: labwc Wine: 11.16 and 11.19 Wayland driver: native Wayland (winewayland.drv) OS: Archlinux labwc version: labwc 0.20.2-dirty (+xwayland +nls +rsvg +libsfdo) wlroots-0.20.2 Reproduction Start labwc. Run a Wine application with the native Wayland driver: DISPLAY= wine notepad DISPLAY is unset so that Wine uses the native Wayland driver rather than XWayland. Move the pointer to a window edge or corner. The resize cursor appears. Drag the edge or corner. Actual behavior The window does not visibly resize. The same behavior occurs with labwc's Alt + Right Click + Drag resize operation. Expected behavior The Wine window should interactively resize while dragging an edge or corner. Comparison Environment Native Wayland Resize labwc Yes ❌ Does not work Weston Yes ✅ Works labwc + XWayland No ✅ Works I also tested both client-side and server-side decorations in labwc. The behavior is identical in both cases, so CSD vs. SSD does not appear to be the cause. Output scale labwc is normally configured to use an output scale of 1.5 via wlr-randr. I also tested labwc with an output scale of 1.0, and the resize problem remains unchanged. Therefore, the behavior does not appear to depend on the output scale. Weston was tested without changing the output scale, and interactive resizing works there. Wayland debug information I captured WAYLAND_DEBUG=1 output while attempting to resize the same Wine application under both compositors. labwc (Not working) Immediately after the resize request, labwc sends an initial 0, 0 configure, which Wine acknowledges. As the user drags the mouse, labwc then sends a stream of updated configurations (serials 10483 through 10505). In the captured trace, Wine does not send any further ack_configure or corresponding geometry updates after acknowledging the initial 10480 configure: -> xdg_toplevel#39.resize(wl_seat#10, 10479, 10) ... xdg_toplevel#39.configure(0, 0, array[4]) xdg_surface#38.configure(10480) ... -> xdg_surface#38.ack_configure(10480) -> xdg_surface#38.set_window_geometry(0, 0, 751, 812) -> wl_surface#3.commit() [09:57:33.732655] xdg_toplevel#39.configure(751, 811, array[4]) # Serial 10483 ... [09:57:34.186056] xdg_toplevel#39.configure(435, 494, array[4]) # Serial 10505 No subsequent ack_configure or geometry update from Wine is visible in the captured trace during the drag operation. One noticeable difference is that the xdg_toplevel.configure state array is reported as array[4] by labwc. Weston (Working) Under Weston, the sequence also starts with a 0, 0 configure. As Weston sends updated configurations, Wine sends acknowledgements and corresponding geometry updates while the resize is in progress: -> xdg_toplevel#26.resize(wl_seat#12, 427, 10) ... xdg_toplevel#26.configure(0, 0, array[8]) xdg_surface#25.configure(430) ... xdg_toplevel#26.configure(1122, 1215, array[8]) xdg_surface#25.configure(438) -> xdg_surface#25.ack_configure(436) -> xdg_surface#25.set_window_geometry(0, 0, 1125, 1216) -> wl_surface#19.commit() Interactive resizing works correctly under Weston. Another noticeable difference is that the xdg_toplevel.configure state array is reported as array[8] by Weston, compared with array[4] under labwc. I am not sure whether this difference is relevant to the issue. Additional information The issue is reproducible with Wine 11.16 and 11.19. The issue occurs with both CSD and SSD in labwc. The issue occurs with labwc output scale 1.5 and 1.0. XWayland resizing works under the same labwc session. Native Wayland resizing works under Weston. The issue has been observed with multiple Wine applications. The Wayland traces show that both compositors receive the xdg_toplevel.resize() request and send subsequent xdg_toplevel.configure() events. However, the behavior of Wine in response to those configure events differs between labwc and Weston. At this point I am not sure whether this indicates a problem in winewayland.drv, labwc/wlroots, or their interoperability, so I am reporting the behavior and the protocol traces for further investigation. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.