diff --git a/frontend/editor/src/core/components/shared/workbenchBar/WorkbenchBarMobileActions.tsx b/frontend/editor/src/core/components/shared/workbenchBar/WorkbenchBarMobileActions.tsx
index 6d1cf0efdf..7675c37e33 100644
--- a/frontend/editor/src/core/components/shared/workbenchBar/WorkbenchBarMobileActions.tsx
+++ b/frontend/editor/src/core/components/shared/workbenchBar/WorkbenchBarMobileActions.tsx
@@ -25,6 +25,13 @@ export default function WorkbenchBarMobileActions({
}: WorkbenchBarActionsProps) {
const { t } = useTranslation();
const exportDisabled = actionsDisabled || policyEnforcing;
+ const showPrint = currentView === "viewer";
+ const showFileActions = !isCustomView;
+
+ // Custom workbench views own their content, so none of these apply. The
+ // desktop cluster renders nothing at all in that case; without this the
+ // trigger would still be there, opening an empty dropdown.
+ if (!showPrint && !showFileActions) return null;
return (