http://bugs.winehq.org/show_bug.cgi?id=58893
Bug ID: 58893 Summary: Window caption updates have huge delay Product: Wine Version: 10.17 Hardware: x86-64 OS: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: win32u Assignee: wine-bugs@winehq.org Reporter: dmitry@baikal.ru CC: rbernon@codeweavers.com Distribution: ---
Winamp emulates a "running string" effect in the window caption with the information about being played item, after this commit window caption in the WM's taskbar (GNOME in my case) no longer "runs" smoothly, but instead has random jumps to a new position in the string caption. It's Winamp 5.623 in my case if that matters.
This is a regression, caused by
d3cb94b543e8ccc4a6baa7a8a2c31142a7b1a814 is the first bad commit commit d3cb94b543e8ccc4a6baa7a8a2c31142a7b1a814 Author: Rémi Bernon rbernon@codeweavers.com Date: Fri Oct 3 10:46:25 2025 +0200
win32u: Check QS_DRIVER bit before calling ProcessEvents.
dlls/win32u/message.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
http://bugs.winehq.org/show_bug.cgi?id=58893
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexhenrie24@gmail.com Regression SHA1| |d3cb94b543e8ccc4a6baa7a8a2c | |31142a7b1a814
http://bugs.winehq.org/show_bug.cgi?id=58893
--- Comment #1 from Rémi Bernon rbernon@codeweavers.com --- Created attachment 79603 --> http://bugs.winehq.org/attachment.cgi?id=79603 Possible fix
Does this help?
http://bugs.winehq.org/show_bug.cgi?id=58893
--- Comment #2 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Rémi Bernon from comment #1)
Created attachment 79603 [details] Possible fix
Does this help?
Yes, it does. However, why XFlush() is necessary? In all existing Wine versions, starting from 1.0 till 10.0, sync_window_text() doesn't call XFlush() and changing window text worked smoothly.
http://bugs.winehq.org/show_bug.cgi?id=58893
--- Comment #3 from Rémi Bernon rbernon@codeweavers.com --- It wasn't necessary because we used to check for events regularly even without anything to read from the X pipe. Xlib automatically flushes the output pipe as long as events are being checked.
Now, with the refactoring for ntsync, we instead let wineserver poll the X pipe and notify the client side when events are ready to be read, notifying wineserver back when all events have been processed so it starts polling again.
The client doesn't check for events needlessly anymore, but that also means that Xlib won't be able to flush output automatically in some cases (we do it *after* draining the events but that's sometimes not enough) and until we add some mechanism to poll for output too, we now need to flush requests explicitly when they are issued outside of ProcessEvents and if their effect is meant to be immediate visible.
http://bugs.winehq.org/show_bug.cgi?id=58893
Dmitry Timoshkov dmitry@baikal.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Fixed by SHA1| |577f9f72da0d86bb6835c33af23 | |8dd083417c0d2 Resolution|--- |FIXED
--- Comment #4 from Dmitry Timoshkov dmitry@baikal.ru --- Fixed with 577f9f72da0d86bb6835c33af238dd083417c0d2.
http://bugs.winehq.org/show_bug.cgi?id=58893
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 10.19.