Robbert van der Helm
60c4e64b9b
Add xcb error assertions instead of segfaulting
...
These things should not fail (and I've never seen one of these thing
error out with yabridge), but in the case they do an assertion is at
least a lot trace down than a segfault.
2020-10-08 16:17:00 +02:00
Robbert van der Helm
e680f2eddd
Made the input focus grabbing even more aggressive
...
This fixes keyboard focus not returning when closing dialogs in Melda
plugins. I'll have to do some more testing to see if this does not
introduce any unwanted side effects.
2020-10-08 15:51:20 +02:00
Robbert van der Helm
8ae9c4d263
Made input focus grabbing more aggressive #38
...
This fixes keyboard input in REAPER, and I haven't found any downsides
to this approach yet.
2020-09-30 17:30:38 +02:00
Robbert van der Helm
becb73928e
Add a limit to all Win32 message loops #28
...
This works around Waves plugins causing an infinite message loop. Since
we run the loop 30 times per second anyways splitting the loop up into
chunks of 20 shouldn't be an issue.
2020-08-14 11:36:55 +02:00
Robbert van der Helm
b1dd301a98
Add an optional double editor embedding mode #27
...
This sounds like it would the simplest way to work around the issue of
E27 calculating its own coordinates based on the parent window's
coordinates. I have not noticed any weird issues with having this
enabled all the time, but less moving parts is always better so it's
still behind an option.
2020-07-23 16:56:10 +02:00
Robbert van der Helm
e55248cdd3
Mention Melda GPU accelerated rendering issues
...
There are no issues with software rendering.
2020-07-05 22:11:39 +02:00
Robbert van der Helm
bdfd15eaa9
Mention rendering quirks with Melda plugins
2020-07-04 19:30:41 +02:00
Robbert van der Helm
d0285edb14
Fix typo in coordinate translation
2020-07-04 19:09:12 +02:00
Robbert van der Helm
8202a6b250
Add missing const qualifiers to member functions
2020-06-06 13:44:26 +02:00
Robbert van der Helm
957da62137
Add missing type qualifiers
2020-06-06 13:44:23 +02:00
Robbert van der Helm
ff298f3f46
Remove redundant conditions
...
As mentioned in C++ Core Guidelines ES.87.
2020-06-05 22:18:40 +02:00
Robbert van der Helm
00bcdf8fca
Add a RAII wrapper around SetTimer()
2020-05-28 15:27:45 +02:00
Robbert van der Helm
276e4ac02f
Make the local coordinate fix more robust
...
Without this fix and when using plugin groups, hovering over an opened
window that has not yet been interacted with shows some weird behavior.
2020-05-27 14:29:31 +02:00
Robbert van der Helm
d65281d691
Clarify local coordinate fix function name
2020-05-27 13:50:52 +02:00
Robbert van der Helm
ab4d35886e
Add a fix for the keyboard focus in Bitwig 3.2
2020-05-26 19:39:51 +02:00
Robbert van der Helm
9b847fdc31
Add todo regarding offscreen window coordinates
2020-05-26 12:19:37 +02:00
Robbert van der Helm
9a35023990
Split X11 and Win32 event handling
...
X11 events should always be handled since it's thread safe and they
don't block.
2020-05-26 11:11:34 +02:00
Robbert van der Helm
9c6fc78471
Fix editor window handling in Reaper
...
And other hosts that embed the parent window into another window.
2020-05-02 18:28:43 +02:00
Robbert van der Helm
e414c1a341
Fix screen resolution detection
2020-04-28 12:22:56 +02:00
Robbert van der Helm
8adb944445
Use maximum display resolution for the window size
...
Instead of it being hardcoded to 1440p.
2020-04-28 11:47:39 +02:00
Robbert van der Helm
4b84f663ab
Always run the event loop, fixing processing issue
...
Also remove any special `effEditIdle` handling.
Apparently plugins rely on the message loop for their internal tasks,
even for things that have nothing to do with GUIs, such as deferring
initialization.
2020-04-27 18:53:06 +02:00
Robbert van der Helm
0efdd1a790
Add missing license headers
2020-04-24 15:41:18 +02:00
Robbert van der Helm
9dfa83df20
Change todo regarding drag-and-drop
2020-04-23 23:16:31 +02:00
Robbert van der Helm
060712ee4d
Remote the WS_EX_ACCEPTFILES
...
It doesn't matter, but we shouldn't be the window accepting drag and
drop operations.
2020-04-23 23:13:55 +02:00
Robbert van der Helm
d2bf5c35a4
Fix hanging when closing the editor
2020-04-21 16:56:36 +02:00
Robbert van der Helm
421ed21901
Get rid of now no longer needed synchronisation
...
This was mostly a workaround to get Serum to not crash when audio was
being processed during a specific point of its `WM_PAINT` message
handler. This is no longer needed when using `CreateThread` instead of
`std::thread`.
2020-04-20 23:36:17 +02:00
Robbert van der Helm
1a6a094c2b
Fix reopening closed editor windows
2020-04-19 20:36:39 +02:00
Robbert van der Helm
b44d98b4c7
Mention more Wine debugging strategies
2020-04-19 16:38:09 +02:00
Robbert van der Helm
6025efb0fc
Fix grammar in comments
2020-04-19 15:46:32 +02:00
Robbert van der Helm
f235bdf9a1
Fix GUI related data races within Serum
2020-04-19 15:16:51 +02:00
Robbert van der Helm
bdb6535947
Simplify GUI updating
2020-04-16 13:28:35 +02:00
Robbert van der Helm
03de09d77f
Clean up the editor implementation
2020-04-14 16:51:24 +02:00
Robbert van der Helm
eed4677ed3
Fix VstTimeinfo responses and allow null responses
...
The host is allowed to return a null pointer if it doesn't support the
query.
2020-04-14 15:59:23 +02:00
Robbert van der Helm
a2ba001e2f
Add todo regarding audioMasterGetTime
2020-04-13 14:55:02 +02:00
Robbert van der Helm
bad9916f75
Fix resizing issues with Valhalla DSP plugins
2020-04-13 14:16:32 +02:00
Robbert van der Helm
266674a217
Get rid of all SetWindowPos() calls
...
This actually resizes the client area, but the experience feels way
better if we just leave it at its maximum size.
2020-04-13 13:54:34 +02:00
Robbert van der Helm
c0eafc85fd
Re-introduce window resizing while draggin
2020-04-12 19:42:12 +02:00
Robbert van der Helm
3850e39777
Resize the window together with ConfigureNotify
...
This way we need less hacks and things can't get out of sync.
2020-04-12 19:15:28 +02:00
Robbert van der Helm
e1cc342bd0
Work around local<->global coordinate issues
...
For reparented Wine windows. This is a similar approach as LinVST uses.
2020-04-12 18:24:33 +02:00
Robbert van der Helm
c2e62b30ca
Strip out everything related to XEmbed
...
We'll just go with the same workaroud LinVST uses isntead. It's not as
pretty but it does work a lot better.
2020-04-11 14:06:47 +02:00
Robbert van der Helm
e8fc990f0b
Add a less hacky workaround for the XEmbed issues
2020-04-09 18:21:16 +02:00
Robbert van der Helm
1644d74d8d
Don't draw a background
...
Gets redrawn during resizes while XEmbed is enabled.
2020-04-09 17:46:12 +02:00
Robbert van der Helm
fa045fb770
Delay the XEmbed messages
...
This works, but we now have the same issues with flickering and resizing
found in some other implementations such as Airwave.
2020-03-30 00:47:46 +02:00
Robbert van der Helm
8ec0ed4c3c
Allow GUIs to optionally update on a timer
...
Otherwise plugins can't update their editors when the GUI is being blocked.
2020-03-28 18:03:20 +01:00
Robbert van der Helm
2ea480a09d
Mention why dropdowns block the GUI and a solution
2020-03-27 18:35:48 +01:00
Robbert van der Helm
a3d8c6cb0a
Get rid of some old experiments
...
Forgot to remove these in the last commit.
2020-03-25 23:11:24 +01:00
Robbert van der Helm
161e102113
Properly send XEmbed messages
...
The good news is that Wine now understands that it's an XEmbed message.
The bad news is that everything's now broken.
2020-03-24 18:50:24 +01:00
Robbert van der Helm
dc08d8032d
Resize windows when needed
2020-03-23 22:57:56 +01:00
Robbert van der Helm
5d1051a00c
Fix plugins not updating with dropdowns
2020-03-23 22:19:49 +01:00
Robbert van der Helm
c046f9fe7b
Implement the rest of the XEmbed protocol
2020-03-21 17:24:22 +01:00