mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-07 15:13:51 +08:00
- 在主程序 Dock 菜单动态列出并聚焦已就绪的独立窗口 - 在 Wails 启动前固定子进程为 Accessory,消除临时 Dock 图标闪现 - 按多显示器可见区域修正越界窗口并回写实际坐标 - 将自定义 AI 面板快捷键同步到独立窗口并转交主窗口处理 - 补齐 Go、Objective-C、前端及 Wails 绑定回归测试
70 lines
2.2 KiB
Go
70 lines
2.2 KiB
Go
package nativewindow
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeDetachedWindowBoundsForDisplaysRecentersOffscreenWindow(t *testing.T) {
|
|
displays := []WindowBounds{{X: 0, Y: 24, Width: 2048, Height: 1128}}
|
|
|
|
got := normalizeDetachedWindowBoundsForDisplays(
|
|
WindowBounds{X: 0, Y: 1152, Width: 921, Height: 812},
|
|
displays,
|
|
)
|
|
|
|
want := WindowBounds{X: 563, Y: 182, Width: 921, Height: 812}
|
|
if got != want {
|
|
t.Fatalf("normalized bounds = %#v, want %#v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeDetachedWindowBoundsForDisplaysPreservesVisibleSecondaryDisplay(t *testing.T) {
|
|
displays := []WindowBounds{
|
|
{X: 0, Y: 24, Width: 2048, Height: 1128},
|
|
{X: -1920, Y: 0, Width: 1920, Height: 1080},
|
|
}
|
|
want := WindowBounds{X: -1600, Y: 120, Width: 921, Height: 812}
|
|
|
|
if got := normalizeDetachedWindowBoundsForDisplays(want, displays); got != want {
|
|
t.Fatalf("normalized bounds = %#v, want unchanged %#v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeDetachedWindowBoundsForDisplaysPreservesDisplayAbovePrimary(t *testing.T) {
|
|
displays := []WindowBounds{
|
|
{X: 0, Y: 24, Width: 2048, Height: 1128},
|
|
{X: 224, Y: -900, Width: 1600, Height: 900},
|
|
}
|
|
want := WindowBounds{X: 420, Y: -820, Width: 921, Height: 812}
|
|
|
|
if got := normalizeDetachedWindowBoundsForDisplays(want, displays); got != want {
|
|
t.Fatalf("normalized bounds = %#v, want unchanged %#v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeDetachedWindowBoundsForDisplaysFitsOversizedWindow(t *testing.T) {
|
|
displays := []WindowBounds{{X: 0, Y: 24, Width: 1280, Height: 696}}
|
|
|
|
got := normalizeDetachedWindowBoundsForDisplays(
|
|
WindowBounds{X: 2200, Y: 200, Width: 1600, Height: 900},
|
|
displays,
|
|
)
|
|
|
|
want := WindowBounds{X: 0, Y: 24, Width: 1280, Height: 696}
|
|
if got != want {
|
|
t.Fatalf("normalized bounds = %#v, want %#v", got, want)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeDetachedWindowBoundsForDisplaysFitsVisibleOversizedWindow(t *testing.T) {
|
|
displays := []WindowBounds{{X: 0, Y: 24, Width: 1280, Height: 696}}
|
|
|
|
got := normalizeDetachedWindowBoundsForDisplays(
|
|
WindowBounds{X: 0, Y: 24, Width: 1600, Height: 900},
|
|
displays,
|
|
)
|
|
|
|
want := WindowBounds{X: 0, Y: 24, Width: 1280, Height: 696}
|
|
if got != want {
|
|
t.Fatalf("normalized bounds = %#v, want %#v", got, want)
|
|
}
|
|
}
|