Files
MyGoNavi/internal/nativewindow/dock_menu_darwin.go
Syngnat 5c3535c85d feat(native-window): 支持 macOS Dock 管理独立窗口
- 在主程序 Dock 菜单动态列出并聚焦已就绪的独立窗口
- 在 Wails 启动前固定子进程为 Accessory,消除临时 Dock 图标闪现
- 按多显示器可见区域修正越界窗口并回写实际坐标
- 将自定义 AI 面板快捷键同步到独立窗口并转交主窗口处理
- 补齐 Go、Objective-C、前端及 Wails 绑定回归测试
2026-07-21 18:52:54 +08:00

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)
}