diff --git a/manifest.json b/manifest.json index d6e2750..6c92e64 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "gridexplorer", "name": "GridExplorer", - "version": "2.9.12", + "version": "2.9.13", "minAppVersion": "1.1.0", "description": "Browse note files in a grid view.", "author": "Devon22", diff --git a/package-lock.json b/package-lock.json index e9c74b0..c270d20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gridexplorer", - "version": "2.9.12", + "version": "2.9.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gridexplorer", - "version": "2.9.12", + "version": "2.9.13", "license": "MIT", "devDependencies": { "@types/node": "^16.11.6", diff --git a/package.json b/package.json index cb9ea8a..087e3ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gridexplorer", - "version": "2.9.12", + "version": "2.9.13", "description": "Browse note files in a grid view.", "main": "main.js", "scripts": { diff --git a/src/GridView.ts b/src/GridView.ts index 84651fe..faf6ce6 100644 --- a/src/GridView.ts +++ b/src/GridView.ts @@ -1249,10 +1249,13 @@ export class GridView extends ItemView { const onKeyDown = (e: KeyboardEvent) => { // 只有在滑鼠確實懸停在此項目上且按下 Ctrl 時才觸發 // 且滑鼠沒有按下(避免干擾 Ctrl+click) - if (isHovering && e.ctrlKey && !isMouseDown) { + // 並且當前 GridView 必須是活動視圖 + if (isHovering && e.ctrlKey && !isMouseDown && + this.app.workspace.getActiveViewOfType(GridView) === this) { // 短暫延遲以確保不是 Ctrl+click 操作 setTimeout(() => { - if (isHovering && !triggeredInHover && !isMouseDown) { + if (isHovering && !triggeredInHover && !isMouseDown && + this.app.workspace.getActiveViewOfType(GridView) === this) { trigger(); } }, 300); diff --git a/styles.css b/styles.css index d009e31..d9a84a4 100644 --- a/styles.css +++ b/styles.css @@ -667,12 +667,13 @@ display: flex; align-items: center; justify-content: center; - transition: opacity 0.2s ease; + transition: opacity 0.2s ease, background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } .ge-sort-button:hover { opacity: 1; background-color: var(--background-modifier-hover); + box-shadow: 0 1px 0 rgba(0,0,0,0.05) inset; } .ge-sort-button svg { @@ -686,23 +687,37 @@ white-space: nowrap; overflow: hidden; color: var(--text-normal); + /* keep size; beautify look */ border: 1px solid var(--background-secondary) !important; font-size: var(--font-ui-small); display: inline-flex; align-items: center; - border: none; margin-right: 6px; + border-radius: 6px; + gap: 6px; + transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } a.ge-mode-title { border: 1px solid var(--background-modifier-border) !important; - border-radius: 4px; + border-radius: 6px; cursor: pointer; + box-shadow: 0 1px 1px rgba(0,0,0,0.04); + background: var(--background-primary); } a.ge-mode-title:hover { text-decoration: none; background-color: var(--background-modifier-hover); + border-color: var(--background-modifier-border); + box-shadow: 0 0 0 1px var(--background-modifier-border) inset; +} + +/* Root span mode title should look plain: no chip background/border */ +span.ge-mode-title { + background: transparent !important; + border: none !important; + box-shadow: none !important; } .ge-sub-option { @@ -716,16 +731,20 @@ a.ge-mode-title:hover { display: inline-flex; align-items: center; border: none; - border-radius: 4px; + border-radius: 6px; border: 1px solid var(--background-modifier-hover); + background: var(--background-primary); cursor: pointer; margin-right: 4px; + gap: 6px; + transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } .ge-sub-option:hover { - border-radius: 4px; + border-radius: 6px; background-color: var(--background-modifier-hover); text-decoration: none; + border-color: var(--interactive-accent); } .ge-settings-gear { @@ -736,6 +755,7 @@ a.ge-mode-title:hover { color: var(--text-muted); opacity: 0.7; cursor: pointer; + transition: background-color 0.15s ease, opacity 0.15s ease; } .ge-settings-gear:hover { @@ -759,7 +779,7 @@ a.ge-mode-title:hover { white-space: nowrap; overflow: hidden; max-width: 200px; - border-radius: 4px; + border-radius: 6px; border: 1px solid var(--background-modifier-hover); color: var(--text-normal); font-size: var(--font-ui-small); @@ -767,11 +787,15 @@ a.ge-mode-title:hover { align-items: center; cursor: pointer; margin-right: 6px; + background: var(--background-primary); + gap: 6px; + transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } .ge-parent-folder-link:hover { text-decoration: none; background-color: var(--background-modifier-hover); + border-color: var(--background-modifier-border); } .ge-parent-folder-link.ge-dragover { @@ -796,11 +820,15 @@ a.ge-current-folder { text-decoration: none; padding: 3px 8px !important; border: 1px solid var(--background-modifier-hover); + border-radius: 6px; + background: var(--background-primary); + transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } a.ge-current-folder:hover { text-decoration: none; background-color: var(--background-modifier-hover); + border-color: var(--background-modifier-border); } /* --------------------------------------------------------------------------- */ @@ -2211,7 +2239,12 @@ a.ge-current-folder:hover { /* 只有有子目錄的資料夾名稱才顯示懸停效果 */ .ge-explorer-folder-header:not(.ge-no-children) .ge-explorer-folder-name:hover { background-color: var(--background-modifier-hover); - color: var(--text-accent); + /* color: var(--text-accent); */ +} + +/* 有子目錄的資料夾整個 header 懸停時不顯示效果 */ +.ge-explorer-folder-header:not(.ge-no-children):not(.ge-explorer-mode-item):not(.ge-explorer-stash-item):hover { + background-color: transparent !important; } /* 沒有子目錄的資料夾名稱不顯示特殊游標和懸停效果 */ diff --git a/versions.json b/versions.json index 396f9ba..313493d 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,3 @@ { - "2.9.12": "1.1.0" + "2.9.13": "1.1.0" } \ No newline at end of file