mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-11 01:03:51 +08:00
- 在主程序 Dock 菜单动态列出并聚焦已就绪的独立窗口 - 在 Wails 启动前固定子进程为 Accessory,消除临时 Dock 图标闪现 - 按多显示器可见区域修正越界窗口并回写实际坐标 - 将自定义 AI 面板快捷键同步到独立窗口并转交主窗口处理 - 补齐 Go、Objective-C、前端及 Wails 绑定回归测试
37 lines
824 B
Go
37 lines
824 B
Go
//go:build darwin && cgo
|
|
|
|
package nativewindow
|
|
|
|
/*
|
|
#include <stdlib.h>
|
|
|
|
void gonaviInstallDetachedDockMenu(void);
|
|
void gonaviPublishDetachedDockMenuSnapshot(const char *snapshotJSON, unsigned long long revision);
|
|
*/
|
|
import "C"
|
|
|
|
import "unsafe"
|
|
|
|
func supportsDetachedDockMenu() bool {
|
|
return true
|
|
}
|
|
|
|
func installDetachedDockMenu() {
|
|
C.gonaviInstallDetachedDockMenu()
|
|
}
|
|
|
|
func publishDetachedDockMenuSnapshotToPlatform(payload []byte, revision uint64) {
|
|
snapshotJSON := C.CString(string(payload))
|
|
defer C.free(unsafe.Pointer(snapshotJSON))
|
|
C.gonaviPublishDetachedDockMenuSnapshot(snapshotJSON, C.ulonglong(revision))
|
|
}
|
|
|
|
//export gonaviFocusDetachedDockMenuWindow
|
|
func gonaviFocusDetachedDockMenuWindow(windowID *C.char) {
|
|
if windowID == nil {
|
|
return
|
|
}
|
|
id := C.GoString(windowID)
|
|
go focusDetachedDockMenuWindow(id)
|
|
}
|