From 75551a6b62017347534a645db6a172492f559658 Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Wed, 18 Jun 2025 10:49:49 -0700 Subject: [PATCH 1/2] fix: Fix bug that prevented navigating into flyouts. --- src/actions/arrow_navigation.ts | 1 - src/navigation.ts | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/actions/arrow_navigation.ts b/src/actions/arrow_navigation.ts index d0d6de0e..262cfbcf 100644 --- a/src/actions/arrow_navigation.ts +++ b/src/actions/arrow_navigation.ts @@ -79,7 +79,6 @@ export class ArrowNavigation { // @ts-expect-error private method isHandled = toolbox && toolbox.selectChild(); if (!isHandled && flyout) { - Blockly.getFocusManager().focusTree(flyout.getWorkspace()); this.navigation.defaultFlyoutCursorIfNeeded(workspace); } return true; diff --git a/src/navigation.ts b/src/navigation.ts index e8e9b430..26ad49fc 100644 --- a/src/navigation.ts +++ b/src/navigation.ts @@ -306,8 +306,13 @@ export class Navigation { const curNode = flyoutCursor.getCurNode(); const sourceBlock = flyoutCursor.getSourceBlock(); - if (curNode && !this.isFlyoutItemDisposed(curNode, sourceBlock)) + if ( + curNode && + curNode.getFocusableTree() === flyout.getWorkspace() && + !this.isFlyoutItemDisposed(curNode, sourceBlock) + ) { return false; + } const flyoutContents = flyout.getContents(); const defaultFlyoutItem = From 841c7adf39aaa7b882a1a96b2b9986429a380386 Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Wed, 18 Jun 2025 12:28:25 -0700 Subject: [PATCH 2/2] fix: Fix bug that prevented navigation when a flyout workspace is selected. --- src/navigation.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/navigation.ts b/src/navigation.ts index 26ad49fc..29b0698e 100644 --- a/src/navigation.ts +++ b/src/navigation.ts @@ -306,8 +306,10 @@ export class Navigation { const curNode = flyoutCursor.getCurNode(); const sourceBlock = flyoutCursor.getSourceBlock(); + // If the current node is a child of the flyout, nothing needs to be done. if ( curNode && + curNode !== flyout.getWorkspace() && curNode.getFocusableTree() === flyout.getWorkspace() && !this.isFlyoutItemDisposed(curNode, sourceBlock) ) {