Commit Graph

2257 Commits

Author SHA1 Message Date
Robbert van der Helm 43e27d76fe Remove typo from readme
Accidentally added in 34cbf43459.
2021-07-27 19:30:39 +02:00
Robbert van der Helm d053eab35a Filter LeaveNotify based on window under pointer
Instead of ignoring all `NonlinearVirtual` events. This lets us release
focus when instantly moving the mouse from a plugin GUI to something
else. This generates `NonlinearVirtual` event, and previously we ignored
those because that also happens when opening a dropdown menu in a TDR
plugin (which uses popup windows instead of actual dropdowns).
2021-07-27 18:05:47 +02:00
Robbert van der Helm e42448f758 Allow manual position for is_cursor_in_wine_window
We'll need this for the `LeaveNotify` because `GetCursorPos()` updates
only once every 100 ms, which means that it would still point to the old
window we're actually leaving.
2021-07-26 15:08:23 +02:00
Robbert van der Helm e1ed35bfd8 Don't respond to hit tests from the Win32 window
This will let us detect other, non-wrapper windows to the right and to
the bottom of a plugin GUI. Useful for drag-and-drop so we don't end up
overriding Wine's internal drag-and-drop mechanism.
2021-07-26 14:44:23 +02:00
Robbert van der Helm 186a6c01a2 Filter Win32 windows for XDND by class name
Instead of ignoring all windows that have an associated X11 window. That
would otherwise treat standalone applications like yabridge GUI
wrappers.
2021-07-26 14:29:06 +02:00
Robbert van der Helm 34cbf43459 Add instructions for installing development builds
To save myself some effort from writing this over and over again. 😁
2021-07-26 14:22:34 +02:00
Robbert van der Helm 85264a759d Move check for cursor within Wine window to editor
We'll reuse this for the LeaveNotify check instead to avoid having to
ignore all `NonVirtual` events.
2021-07-26 14:01:16 +02:00
Robbert van der Helm 0523a06ed7 Move the win32 window class name to a constant 2021-07-26 13:51:40 +02:00
Robbert van der Helm d522e57a8a Add active window to enter/leave/focus tracing 2021-07-26 12:43:32 +02:00
Robbert van der Helm 890c534573 Trace input focus grabbing 2021-07-26 12:38:17 +02:00
Robbert van der Helm f5ada4469b Add instructions for PipeWire 0.32.0 2021-07-23 19:27:26 +02:00
Robbert van der Helm 4b256d456b Bump to version 3.5.0 3.5.0 2021-07-23 16:38:00 +02:00
Robbert van der Helm 68cfb2b4cb Reword changelog 2021-07-23 16:16:05 +02:00
Robbert van der Helm 7b05e038c3 Reword memlock warning message 2021-07-23 15:59:13 +02:00
Robbert van der Helm 5c3491c1e1 Use exception logger for the memory locking error 2021-07-23 15:53:19 +02:00
Robbert van der Helm 1a34a80c21 Add a special exception logger
We'll need this to make sure that we can redirect caught exceptions
printed in `src/common/` to the correct file if `YABRIDGE_DEBUG_FILE` is
set.
2021-07-23 15:46:08 +02:00
Robbert van der Helm 0e838fa947 Change wording in changelog 2021-07-23 15:41:18 +02:00
Robbert van der Helm 4d2ee96167 Remove old TODO about +editor debug level 2021-07-23 15:22:45 +02:00
Robbert van der Helm 7a2febfffb Support the older XDND versions 3 and 4
This is needed for Tracktion Waveform and other JUCE based hosts.
2021-07-23 13:19:10 +02:00
Robbert van der Helm 9e84352609 Fix typo in XDND code 2021-07-23 12:45:53 +02:00
Robbert van der Helm 75a6bed1b9 Reword changelog 2021-07-23 00:57:54 +02:00
Robbert van der Helm 8108e08dbf Keep the old time stamp and sequence number
On second thought this seems like a good idea.
2021-07-22 16:31:03 +02:00
Robbert van der Helm 3c8f3b0b41 Forward synthetic keyboard events to Wine window
This is needed for Bitwig Studio. See the comments.
2021-07-22 16:05:22 +02:00
Robbert van der Helm c4c23b9574 Unify enter/focus event tracing 2021-07-22 16:04:39 +02:00
Robbert van der Helm 9aae3665a2 Fix reparent error logging 2021-07-22 15:45:56 +02:00
Robbert van der Helm df40b85e60 Mention Wine->X11 drag-and-drop in architecture.md 2021-07-22 14:28:27 +02:00
Robbert van der Helm b21e9f29bb Mention new embedding structure in architecture.md 2021-07-22 14:25:56 +02:00
Robbert van der Helm 1e47390edc Also listen for ConfigureNotify on the wrapper
This is needed for Tracktion Waveform because they shift our wrapper
window a bit downwards. Otherwise opening the window while your mouse
cursor is already inside of it would trip up Wine's coordinates.
2021-07-21 22:54:21 +02:00
Robbert van der Helm 99304d19b8 Listen to the correct window for focus and enter
This now all got shifted one window by the introduction of the wrapper
window.
2021-07-21 22:53:04 +02:00
Robbert van der Helm 68c47064a0 Check the window in focus/enter events 2021-07-21 22:29:16 +02:00
Robbert van der Helm cb1c1858e0 Translate coordinates from the wrapper window
We moved this from `parent_window` to `wine_window` in
974951e966 to account for Waveform adding
an offset in their windows, so now that we have `wrapper_window` we
should be translating from there instead.
2021-07-21 22:18:58 +02:00
Robbert van der Helm d13f39dce5 Don't check result on IPlugView::onSize()
Melda plugins always return `kResultFalse`, so we should just assume the
resize succeeds.
2021-07-21 20:45:04 +02:00
Robbert van der Helm 0ed75b5ce4 Don't fetch the root window early
Wine is weird. The whole reason why we're doing these weird things is
because Wine somehow tries to delete the window twice. If we don't call
`xcb_query_tree()` here (and get an error back), then we're back at the
error we tried to solve. Apparently this works, and given that noone
dares touching Wine's X11drv code I won't ask any further questions.
2021-07-21 20:39:16 +02:00
Robbert van der Helm 9002468229 Fetch the Wine and root window IDs early
There's no reason to wait until the last moment to fetch these.
2021-07-21 18:06:39 +02:00
Robbert van der Helm d41c05e90e Revert "Change editor window destruction order"
This reverts commit d3d21c65f4.

On second thought, Wine actually handles things better this way. We want
to avoid both hangs and the Wine window becoming visible, and this
achieves both of those things. We should just silence the warning.
2021-07-21 18:03:03 +02:00
Robbert van der Helm e1e5a1588c Unmap wine_window before reparenting back to root 2021-07-21 17:53:27 +02:00
Robbert van der Helm d3d21c65f4 Change editor window destruction order
The wrapper window can only be removed after we reparented the Wine
window back to the root.
2021-07-21 17:50:29 +02:00
Robbert van der Helm f6fb45fee3 Mention Ardour VST3 editor resizing
Ardour ignores the `IPlugView::resizeView()` and only listens to
`ConfigureNotify` events for growing its VST3 editorsZ, so now this
works.
2021-07-21 17:16:21 +02:00
Robbert van der Helm e223c98b0d Remove XEmbed testing todo
Still seems to work 'fine' (as in, not really).
2021-07-21 17:01:02 +02:00
Robbert van der Helm e95f381fa0 Remove unnecessary unreparent check
Or at least, hopefully this is not needed.
2021-07-21 17:01:02 +02:00
Robbert van der Helm f04bc7a07b Mention the Carla VST3 regression 2021-07-21 17:01:02 +02:00
Robbert van der Helm f3bce6ee15 Mention the embedding rewrite in the changelog 2021-07-21 17:01:02 +02:00
Robbert van der Helm e28bc63f8d Also resize the wrapper window for VST3 plugins 2021-07-21 17:01:02 +02:00
Robbert van der Helm 4277561aa4 Reorder Vst3Bridge methods 2021-07-21 17:01:02 +02:00
Robbert van der Helm 418cd68a81 Resize the new wrapper window for VST2 plugins 2021-07-21 17:01:02 +02:00
Robbert van der Helm 42762d1abe 💥 Use another layer of editor embedding
We still need to make sure this window resizes properly, but this should
prevent the host from interacting with the full screen `ConfigureNotify`
events we keep sending to `wine_window`.
2021-07-21 17:01:02 +02:00
Robbert van der Helm 75ab133adb Change ProxyWindow into a more generic X11Window 2021-07-21 14:37:52 +02:00
Robbert van der Helm a38e7c3588 Rename DeferredWindow to DeferredWin32Window 2021-07-21 14:26:34 +02:00
Robbert van der Helm 68d4a6610e Don't reparent when the parent gets reparented
Some hosts, like Carla 2.3.1, will resize their windows to match the
reparented window's client area. This messes with our ConfigureNotify
setup.
2021-07-21 13:20:39 +02:00
Robbert van der Helm 1ee1229e47 Only show reparent message with editor tracing 2021-07-21 13:20:05 +02:00