diff --git a/README.md b/README.md index 5d1d8dd..1c81419 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,6 @@ - @tauri-apps/plugin-fs : 2.2.0 - tauri-plugin-opener 🦀: 2.2.3 - @tauri-apps/plugin-opener : 2.2.5 - - tauri-plugin-positioner 🦀: 2.2.0 - - @tauri-apps/plugin-positioner : 2.2.0 #### App - build-type: bundle diff --git a/lib/tray.ts b/lib/tray.ts index 9d76645..0068cfc 100644 --- a/lib/tray.ts +++ b/lib/tray.ts @@ -4,13 +4,22 @@ import { MenuItem } from '@tauri-apps/api/menu' import { resolveResource } from '@tauri-apps/api/path' import type { TrayIconEvent } from '@tauri-apps/api/tray' import { TrayIcon } from '@tauri-apps/api/tray' -import { getAllWindows } from '@tauri-apps/api/window' +import { getAllWindows, PhysicalPosition, PhysicalSize } from '@tauri-apps/api/window' import { ask } from '@tauri-apps/plugin-dialog' -import { handleIconState } from '@tauri-apps/plugin-positioner' import { exit } from '@tauri-apps/plugin-process' import { buildMenu } from './menu' import { resetMainWindow } from './window' +let trayPosition = new PhysicalPosition(0, 0) +let traySize = new PhysicalSize(0, 0) + +export function getTrayRect() { + return { + position: trayPosition, + size: traySize, + } +} + export async function getMainTray() { return await TrayIcon.getById('main-tray') } @@ -36,7 +45,8 @@ export async function rebuildTrayMenu() { } async function onTrayAction(event: TrayIconEvent) { - await handleIconState(event) + trayPosition = event.rect.position + traySize = event.rect.size if (event.type === 'Click') { console.log('Tray clicked:', event) diff --git a/lib/window.ts b/lib/window.ts index 0de706c..e3dec26 100644 --- a/lib/window.ts +++ b/lib/window.ts @@ -1,6 +1,7 @@ import { WebviewWindow } from '@tauri-apps/api/webviewWindow' -import { LogicalSize, PhysicalSize, currentMonitor, getAllWindows } from '@tauri-apps/api/window' +import { LogicalSize, PhysicalPosition, PhysicalSize, currentMonitor, getAllWindows } from '@tauri-apps/api/window' import { Position, moveWindow } from '@tauri-apps/plugin-positioner' +import { getTrayRect } from './tray' export async function resetMainWindow() { const window = await getAllWindows().then((w) => w.find((w) => w.label === 'main')) @@ -108,10 +109,19 @@ export async function openTrayWindow({ await new Promise((resolve) => setTimeout(resolve, 1500)) await w.hide() - await w.setSize(new LogicalSize(400, 600)) - // await w.center() - await w.show() - await moveWindow(Position.TrayCenter) + const windowSize = new LogicalSize(400, 600) + await w.setSize(windowSize) + const trayRect = getTrayRect() + const windowPhysicalSize = windowSize.toPhysical(await w.scaleFactor()) + await w.setPosition( + new PhysicalPosition( + trayRect.position.x + + trayRect.size.width / 2 - + windowPhysicalSize.width / 2, + trayRect.position.y + ) + ) + await w.show() return w } diff --git a/package.json b/package.json index 5582d87..5143b7d 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "@tauri-apps/plugin-notification": "^2.2.1", "@tauri-apps/plugin-opener": "^2.2.5", "@tauri-apps/plugin-os": "^2.2.0", - "@tauri-apps/plugin-positioner": "^2.2.0", "@tauri-apps/plugin-process": "^2.2.0", "@tauri-apps/plugin-shell": "^2.2.0", "@tauri-apps/plugin-store": "^2.2.0", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 540a6d4..ccd73cc 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -119,7 +119,6 @@ dependencies = [ "tauri-plugin-notification", "tauri-plugin-opener", "tauri-plugin-os", - "tauri-plugin-positioner", "tauri-plugin-process", "tauri-plugin-shell", "tauri-plugin-single-instance", @@ -4768,21 +4767,6 @@ dependencies = [ "thiserror 2.0.10", ] -[[package]] -name = "tauri-plugin-positioner" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c95b371d489bee3d1be5e5bd1538080ad408317fcc2d8546d24b290249f7bb5" -dependencies = [ - "log", - "serde", - "serde_json", - "serde_repr", - "tauri", - "tauri-plugin", - "thiserror 2.0.10", -] - [[package]] name = "tauri-plugin-process" version = "2.2.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ea68429..0decba5 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -28,7 +28,6 @@ tauri-plugin-shell = "2.2.0" tauri-plugin-dialog = "2.2.0" tauri-plugin-fs = "2.2.0" tauri-plugin-opener = "2.2.3" -tauri-plugin-positioner = { version = "2.2.0", features = ["tray-icon"] } tauri-plugin-http = "2.2.0" tauri-plugin-store = "2.2.0" tauri-plugin-process = "2" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index fd1bcdc..5cbfd53 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -242,11 +242,6 @@ }, "opener:default", - "positioner:default", - "positioner:allow-move-window", - "positioner:allow-move-window-constrained", - "positioner:allow-set-tray-icon-state", - { "identifier": "http:default", "allow": [ diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index d3c784e..0067b52 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -83,7 +83,6 @@ pub fn run() { // })) .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_http::init()) - .plugin(tauri_plugin_positioner::init()) .plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_log::Builder::new().build())