diff --git a/packages/web/src/appobj/AppObjectCore.svelte b/packages/web/src/appobj/AppObjectCore.svelte index facb0e1d9..7370635ae 100644 --- a/packages/web/src/appobj/AppObjectCore.svelte +++ b/packages/web/src/appobj/AppObjectCore.svelte @@ -38,6 +38,14 @@ } } + function handleMouseUp(e) { + if (e.button == 1) { + dispatch('middleclick'); + e.preventDefault(); + e.stopPropagation(); + } + } + function setChecked(value) { if (!value && isChecked) { checkedObjectsStore.update(x => x.filter(y => module.extractKey(data) != module.extractKey(y))); @@ -53,6 +61,7 @@ class:isBold draggable={true} on:click={handleClick} + on:mouseup={handleMouseUp} use:contextMenu={disableContextMenu ? null : menu} on:dragstart={e => { e.dataTransfer.setData('app_object_drag_data', JSON.stringify(data)); diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index 1d4f07612..cc022983c 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -190,4 +190,11 @@ on:click={handleConnect} on:click on:expand + on:middleclick={() => { + if (data.singleDatabase) { + getDatabaseMenuItems(data, data.defaultDatabase, $extensions, $currentDatabase) + .find(x => x.isNewQuery) + .onClick(); + } + }} /> diff --git a/packages/web/src/appobj/DatabaseAppObject.svelte b/packages/web/src/appobj/DatabaseAppObject.svelte index 53a7f97a6..f275c5987 100644 --- a/packages/web/src/appobj/DatabaseAppObject.svelte +++ b/packages/web/src/appobj/DatabaseAppObject.svelte @@ -54,7 +54,7 @@ }; return [ - { onClick: handleNewQuery, text: 'New query' }, + { onClick: handleNewQuery, text: 'New query', isNewQuery: true }, { onClick: handleImport, text: 'Import' }, { onClick: handleExport, text: 'Export' }, { onClick: handleSqlGenerator, text: 'SQL Generator' }, @@ -68,7 +68,7 @@ handleClick()} + on:middleclick={() => handleClick(true)} on:expand />