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.
This commit is contained in:
Robbert van der Helm
2020-03-30 00:47:46 +02:00
parent b3254b1c5a
commit fa045fb770
4 changed files with 63 additions and 42 deletions
+10 -6
View File
@@ -35,8 +35,10 @@ class Editor {
*
* @param effect The plugin this window is being created for. Used to send
* `effEditIdle` messages on a timer.
* @param parent_window_handle The X11 window handle passed by the VST host
* for the editor to embed itself into.
*/
HWND open(AEffect* effect);
HWND open(AEffect* effect, xcb_window_t parent_window_handle);
void close();
/**
@@ -57,19 +59,21 @@ class Editor {
void handle_events();
/**
* Embed the (open) window into a parent window.
*
* @param parent_window_handle The X11 window handle passed by the VST host
* for the editor to embed itself into.
* Embed the (open) window into the parent window.
*
* @return Whether the embedding was succesful. Will return false if the
* window is not open.
*/
bool embed_into(const size_t parent_window_handle);
bool xembed();
// Needed to handle idle updates through a timer
AEffect* plugin;
/**
* The window handle of the editor window created by the DAW.
*/
xcb_window_t parent_window;
private:
/**
* Return the X11 window handle for the window if it's currently open.