diff --git a/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/TipTapEditor.vue b/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/TipTapEditor.vue
index 0e114c49ea..f24bc53c52 100644
--- a/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/TipTapEditor.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/TipTapEditor.vue
@@ -27,8 +27,10 @@
@minimize="emitMinimize"
/>
@@ -167,6 +169,13 @@
'insert-math': target => mathHandler.openCreateMathModal({ targetElement: target }),
}));
+ // Tabbing into the bar blurs the editor, which would otherwise unmount
+ // the bar before focus lands on it.
+ const formattingBarHasFocus = ref(false);
+ const handleFormattingBarFocusout = event => {
+ formattingBarHasFocus.value = event.currentTarget.contains(event.relatedTarget);
+ };
+
const handleDrop = event => {
const file = event.dataTransfer.files[0];
if (file) {
@@ -279,6 +288,8 @@
editorContainer,
isReady,
isFocused,
+ formattingBarHasFocus,
+ handleFormattingBarFocusout,
handleDrop,
linkHandler,
editor,
diff --git a/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/components/EditorToolbar.vue b/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/components/EditorToolbar.vue
index df6732dff6..c159c85207 100644
--- a/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/components/EditorToolbar.vue
+++ b/contentcuration/contentcuration/frontend/shared/views/TipTapEditor/TipTapEditor/components/EditorToolbar.vue
@@ -81,6 +81,7 @@