resolve tray window position manually, remove positioner plugin

This commit is contained in:
Lucas Nogueira
2025-01-28 10:36:03 -03:00
parent 35d6bd9d72
commit 236c664867
8 changed files with 28 additions and 34 deletions
-2
View File
@@ -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
View File
@@ -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
View File
@@ -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
}
-1
View File
@@ -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",
-16
View File
@@ -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"
-1
View File
@@ -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"
-5
View File
@@ -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": [
-1
View File
@@ -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())