Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions src/flyout_cursor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,18 @@ export class FlyoutCursor extends Blockly.LineCursor {
export const registrationType = Blockly.registry.Type.CURSOR;
export const registrationName = 'FlyoutCursor';

Blockly.registry.register(registrationType, registrationName, FlyoutCursor);

export const pluginInfo = {
[registrationType.toString()]: registrationName,
};

/**
* Registers the FlyoutCursor with Blockly's registry.
*/
export function registerFlyoutCursor() {
Blockly.registry.register(
registrationType,
registrationName,
FlyoutCursor,
true,
);
}
2 changes: 0 additions & 2 deletions src/navigation_controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
* @author [email protected] (Abby Schmiedt)
*/

import './toolbox_monkey_patch';

import * as Blockly from 'blockly/core';
import {
ShortcutRegistry,
Expand Down
30 changes: 30 additions & 0 deletions src/navigation_deferring_toolbox.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/

import * as Blockly from 'blockly/core';

/**
* Toolbox class that does not handle keyboard navigation.
*/
export class NavigationDeferringToolbox extends Blockly.Toolbox {
// eslint-disable-next-line @typescript-eslint/naming-convention
protected override onKeyDown_(e: KeyboardEvent) {
// No-op, prevent keyboard handling by superclass in order to defer to
// global keyboard navigation.
}
}

/**
* Registers the navigation-deferring toolbox with Blockly.
*/
export function registerNavigationDeferringToolbox() {
Blockly.registry.register(
Blockly.registry.Type.TOOLBOX,
Blockly.registry.DEFAULT,
NavigationDeferringToolbox,
true,
);
}
12 changes: 0 additions & 12 deletions src/toolbox_monkey_patch.js

This file was deleted.

4 changes: 4 additions & 0 deletions test/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import * as Blockly from 'blockly';
import 'blockly/blocks';
import {installAllBlocks as installColourBlocks} from '@blockly/field-colour';
import {KeyboardNavigation} from '../src/index';
import {registerFlyoutCursor} from '../src/flyout_cursor';
import {registerNavigationDeferringToolbox} from '../src/navigation_deferring_toolbox';
// @ts-expect-error No types in js file
import {forBlock} from './blocks/p5_generators';
// @ts-expect-error No types in js file
Expand Down Expand Up @@ -92,6 +94,8 @@ function createWorkspace(): Blockly.WorkspaceSvg {

// Must be called before injection.
KeyboardNavigation.registerKeyboardNavigationStyles();
registerFlyoutCursor();
registerNavigationDeferringToolbox();
const workspace = Blockly.inject(blocklyDiv, injectOptions);

Blockly.ContextMenuItems.registerCommentOptions();
Expand Down
4 changes: 4 additions & 0 deletions test/webdriverio/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import * as Blockly from 'blockly';
import 'blockly/blocks';
import {installAllBlocks as installColourBlocks} from '@blockly/field-colour';
import {KeyboardNavigation} from '../../src/index';
import {registerFlyoutCursor} from '../../src/flyout_cursor';
import {registerNavigationDeferringToolbox} from '../../src/navigation_deferring_toolbox';
// @ts-expect-error No types in js file
import {blocks} from './../blocks/p5_blocks';
// @ts-expect-error No types in js file
Expand Down Expand Up @@ -80,6 +82,8 @@ function createWorkspace(): Blockly.WorkspaceSvg {
}
// Must be called before injection.
KeyboardNavigation.registerKeyboardNavigationStyles();
registerFlyoutCursor();
registerNavigationDeferringToolbox();
const workspace = Blockly.inject(blocklyDiv, injectOptions);

Blockly.ContextMenuItems.registerCommentOptions();
Expand Down
Loading