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
/>