resolve tray window position manually, remove positioner plugin
This commit is contained in:
@@ -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
|
||||
|
||||
+13
-3
@@ -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)
|
||||
|
||||
+15
-5
@@ -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
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
Generated
-16
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user