-
-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Wine window wrapping and remove coordinate hack. #405
Conversation
I have a meeting but will compile this in two hours and report back! Thanks Rémi! |
Added a couple of comments and removed |
Hmmm, build failure for me, fatal error: xcb/xcb_icccm.h: File not found
nevermind, as easy as |
winedbg was true in meson options. setting it false got plugins to load |
The context menu is still loading in the same place regardless of where I position the plugin window. Checking now if this PR works with 9.22 to 10.2 (before the Wine merge request) |
I've been testing it with latest Wine on GNOME/X11, Carla and TripleCheese plugin, without any specific yabridge configuration other than just syncing the plugin. It worked fine for me, including with the popup menus, even after moving the plugin window around. Please test it with 10.2, and if you could attach a log with WINEDEBUG=+x11drv,+event it would be nice, describing what interaction you did would be nice too. |
i'll get to testing this as well, does this just use the latest release version of wine, or does it rely on the open PR on gitlab? |
Just latest Wine should work, or at least it did for me but apparently other people have different experience, so maybe still some things to figure out. |
Added tweak to also send the ConfigureNotify to Wine when |
I've tested this, now it works! Thanks! |
i've also tested it and can confirm it works perfectly with wine-10.1 (arch build), had to fenangle it because it tried to use the yabridge-host.exe from the build i had installed, but after that phase plant, IL harmor, and valhalla room worked without issue |
This isn't working in REAPER. I compiled 10.2 without the patch and used that to compile 40ef7cd. With that combination, all clicks seem to be offset the distance from the REAPER plugin window origin to the plugin window origin, no matter where the window is moved. Screencast_20250227_204832.webm |
Should I add back |
WINEDEBUG=+x11drv,+event,+cursor should be good |
But I guess this is one case I wasn't aware of and that it breaks the assumption I've described above where I expected every window to be at the top-left corner from each other. I'll adjust the changes accordingly. Thanks. |
Thanks so much for looking into this! I spent a couple hours digging through Wine's I sadly won't have the time to properly take a look at this until Saturday, so I'll get back to you then! From a super brief test run this approach seems to be 95% of the way there for both
Yeah that's now no longer necessary since this approach would strictly work better than the XEmbed approach did.
Yeah it's a bit confusing:
|
Added a couple of more changes to address the broken assumption with host_window / parent_window relative positions. This should fix cases where the plugin is at a non zero offset within its host window. |
I'm fiddling around with fabfilter and this merge request on Fedora 41 with wine staging 10.2 from WineHQ, Gnome on Xorg. I'm using Renoise 3.4.4, Bitwig 5.3.1. I have also updated to the latest fixes 1 hour ago. Overall it works pretty well for VST2 plugins from my initial tests (Fabfilter, Serum, Kilohearts, Scaler). In Bitwig, I have to move the window of FabFilter plugins or Serum initially before they are usable (it does not matter whether I use VST2 or Clap versions). In the initial state, the mouse does not appear on the plugin window. This is working fine in Renoise though. This is looking like it will be a good fix though. Thanks a lot for the effort! |
Works perfect (also on 9.22) w/ at least Valhalla. @rbernon ? You're the king. |
FabFilter Pro-Q 4 (all 3 plugin types) works correctly for me; in REAPER, Pro-Q shows its EQ line and the mouse hover dot without needing to first move the window. If you upload a log, I can do the same and we figure out what about Bitwig is loading differently than REAPER. (I know there have been discussions about Bitwig e.g. #354 and that it won't work as a Flatpak from the README, but I don't know if that relates to what you've described) |
Attached is the log file. Not sure whether this is a lot of help though... |
For comparison, a log of the working version |
At minimum, mine has a handful more VisibilityNotify and ConfigureNotify, while yours has an extra ReparentNotify. Would Bitwig be open to a bug report? (I imagine they'd know more than anyone what to change if they see a working implementation next to their own) I guess the other suggestion would be to try some of the compatibility options, like editor_disable_host_scaling or hide_daw? |
Went back to wine 10.0 stable, didn't help either. Are you using Bitwig 5.3 as well or an earlier version? I think they have changed stuff with gpu acceleration of the UI in that version. |
I'm using REAPER, but it displays totally fine. I figure if there's a difference in how Bitwig works vs other DAWs, that might be obvious from the logs. I can't help w/ Bitwig specifically 😢 |
I have just tried REAPER, it has the same problem as Bitwig. I have to move the Window a bit after first opening (or reopening). So it doesn't seem to be a pure Bitwig problem. Oddly, Renoise doesn't show this behavior. |
Just tried Ardour 8.1 on wine 10(staging), and I'm happy to report it works perfectly(just as it did on wine 9.0). EDIT: there is still some vertical cursor offset, seemingly caused by ardour's secondary ribbon on primary plugin windows(offset is not present on plugin child windows which lack the ribbon) |
Again, thanks so much for looking into this! I merged this into the (hopefully, fairly short lived) Some observations with the current state:
|
This should be enough to get things properly working again with more recent Wine. I've only tried with some basic plugin and Carla but I don't think there's anything special to do or workaround here. Wine should be tracking any kind of window parents properly, as window managers can already do the exact same kind of things.
I also kept a couple of places where fix_local_coordinates was referenced but, as I wasn't sure if they were safe to drop too. XEMBED support could probably be dropped now, I don't expect it to be working well.