@@ -396,13 +396,19 @@ class CanvasViewport : public Viewport
396396
397397 // removeMouseListener(cnv->quickCanvas.get());
398398 cnv->quickCanvas .reset ();
399+ editor->getTabComponent ().repaint ();
399400 }
400401 }
401402 cnv->repaint ();
402403 if (cnv->quickCanvas ) {
403404 cnv->quickCanvas ->repaint ();
404405 }
405406 } break ;
407+ case Timers::QuickCanvasBlock: {
408+ quickCanvasBlocked = false ;
409+ stopTimer (Timers::QuickCanvasBlock);
410+
411+ } break ;
406412 }
407413 }
408414
@@ -491,7 +497,16 @@ class CanvasViewport : public Viewport
491497 quickCanvasShowingOrHiding = true ;
492498 }
493499 if (cnv->quickCanvas && quickCanvasShowingOrHiding) {
494- // TODO: Enter quick canvas, replace the current canvas with the quick canvas completely
500+ if (quickCanvasBlocked) {
501+ startTimer (Timers::QuickCanvasBlock, 1000 / 5 );
502+ quickCanvasBlocked = true ;
503+ quickCanvasTimerCount = 0 ;
504+ return ;
505+ }
506+ editor->getTabComponent ().openPatch (cnv->quickCanvas ->patch );
507+ cnv->quickCanvas .reset ();
508+ editor->getTabComponent ().repaint ();
509+ return ;
495510 }
496511 if (!cnv->quickCanvas && quickCanvasShowingOrHiding) {
497512 for (auto obj: cnv->objects ) {
@@ -518,6 +533,9 @@ class CanvasViewport : public Viewport
518533 cnv->quickCanvas ->grabKeyboardFocus ();
519534
520535 cnv->resized ();
536+ editor->getTabComponent ().repaint ();
537+ startTimer (Timers::QuickCanvasBlock, 1000 / 5 );
538+ quickCanvasBlocked = true ;
521539 return ;
522540 }
523541 }
@@ -669,9 +687,10 @@ class CanvasViewport : public Viewport
669687 std::function<void ()> onScroll = []() { };
670688
671689private:
672- enum Timers { ResizeTimer, AnimationTimer, QuickCanvasTimer, QuickCanvasAnimationTimer };
690+ enum Timers { ResizeTimer, AnimationTimer, QuickCanvasTimer, QuickCanvasAnimationTimer, QuickCanvasBlock };
673691 int quickCanvasTimerCount = 0 ;
674692 bool quickCanvasShowingOrHiding = false ;
693+ bool quickCanvasBlocked = false ;
675694
676695 Point<int > startPos;
677696 Point<int > targetPos;
0 commit comments