|
|
@@ -298,7 +298,7 @@ class CardinalUI : public CardinalBaseUI, |
|
|
|
rack::math::Vec lastMousePos; |
|
|
|
WindowParameters windowParameters; |
|
|
|
int rateLimitStep = 0; |
|
|
|
int8_t counterForSelfFocus = 0; |
|
|
|
int8_t counterForFirstIdlePoint = 0; |
|
|
|
|
|
|
|
struct ScopedContext { |
|
|
|
CardinalPluginContext* const context; |
|
|
@@ -428,10 +428,9 @@ public: |
|
|
|
|
|
|
|
void uiIdle() override |
|
|
|
{ |
|
|
|
if (counterForSelfFocus >= 0 && ++counterForSelfFocus == 5) |
|
|
|
if (counterForFirstIdlePoint >= 0 && ++counterForFirstIdlePoint == 5) |
|
|
|
{ |
|
|
|
counterForSelfFocus = -1; |
|
|
|
getWindow().focus(); |
|
|
|
counterForFirstIdlePoint = -1; |
|
|
|
|
|
|
|
#ifdef DISTRHO_OS_WASM |
|
|
|
if (rack::patchStorageSlug != nullptr) |
|
|
@@ -690,6 +689,9 @@ protected: |
|
|
|
|
|
|
|
bool onMouse(const MouseEvent& ev) override |
|
|
|
{ |
|
|
|
if (ev.press) |
|
|
|
getWindow().focus(); |
|
|
|
|
|
|
|
const int action = ev.press ? GLFW_PRESS : GLFW_RELEASE; |
|
|
|
int mods = glfwMods(ev.mod); |
|
|
|
|
|
|
@@ -850,14 +852,9 @@ protected: |
|
|
|
setState("windowSize", sizeString); |
|
|
|
} |
|
|
|
|
|
|
|
void uiFocus(const bool focus, const CrossingMode mode) override |
|
|
|
void uiFocus(const bool focus, CrossingMode) override |
|
|
|
{ |
|
|
|
if (focus) |
|
|
|
{ |
|
|
|
if (mode == kCrossingNormal) |
|
|
|
getWindow().focus(); |
|
|
|
} |
|
|
|
else |
|
|
|
if (!focus) |
|
|
|
{ |
|
|
|
const ScopedContext sc(this, 0); |
|
|
|
context->event->handleLeave(); |
|
|
|