Gate the new resizing behavior behind new option

This interferes with resizing plugins using resize handles, and since it
only helps with two buggy plugins this seems like the best solution
here.
This commit is contained in:
Robbert van der Helm
2021-08-16 22:39:13 +02:00
parent b84aa18ecf
commit 5613248cda
7 changed files with 83 additions and 51 deletions
+13
View File
@@ -94,6 +94,18 @@ class Configuration {
*/
std::optional<boost::filesystem::path> disable_pipes;
/**
* If this is set to `true`, then the after every resize we will move the
* embedded Wine window back to `(0, 0)` and then do the coordinate fixing
* trick again. This may be useful with buggy plugins that draw their GUI
* based on the (top level) window's position. Otherwise those GUIs will be
* offset by the window's actual position on screen. The only plugins I've
* encountered where this was necessary were PSPaudioware E27 and Soundtoys
* Crystallizer. This is not enabled by default, because it also interferes
* with resize handles.
*/
bool editor_coordinate_hack = false;
/**
* If set to `true`, we'll remove the `XdndAware` property all ancestor
* windows in `editor.cpp`. This is needed for REAPER as REAPER implements
@@ -188,6 +200,7 @@ class Configuration {
s.ext(disable_pipes, bitsery::ext::InPlaceOptional(),
[](S& s, auto& v) { s.ext(v, bitsery::ext::BoostPath{}); });
s.value1b(editor_coordinate_hack);
s.value1b(editor_force_dnd);
s.value1b(editor_xembed);
s.ext(frame_rate, bitsery::ext::InPlaceOptional(),