12 Commits
Author SHA1 Message Date
ZASENJC db1a28da00 fix(macos): 修复 Release 优化下动态 NSColor 闭包提前释放导致启动崩溃
- 在 pale_ink 动态提供器闭包中使用 Retained::autorelease_ptr(color) 将 NSColor 放入自动释放池后再返回裸指针,避免 Release 模式下 objc_retainAutoreleasedReturnValue 优化导致函数返回前即被 drop 释放
- 升级版本至 0.2.4
2026-10-16 18:53:08 +08:00
ZASENJC 0df6e9859d fix(macos): 翻译面板根据底层窗口背景亮度动态平滑切换文字对比色
- 将 pale_ink 改为基于 NSColor::colorWithName_dynamicProvider 的动态颜色提供器,并在浅色背景上适度增强低透明度层级的对比度
- 按钮背景改用 NSButtonCell 动态背景色以跟随文字色调切换
- 通过 CGWindowListCreateImage(OnScreenBelowWindow) 采样窗口底层中心区域亮度,结合迟滞阈值(0.44/0.56)与指数平滑过渡(step_ink_tone)实现亮/暗背景间的自然渐变
- 同步更新窗口 NSAppearance 并触发视图树重绘,升级版本至 0.2.3
2026-10-16 18:05:14 +08:00
ZASENJC b0671bbf73 fix(translate): follow Bing geo redirects and surface both provider errors (#3)
- Follow 301/302/303/307/308 redirects within *.bing.com when fetching the Bing translator token and posting to /ttranslatev3, preserving the POST method/form body and caching the resolved origin on BingToken.
- Combine primary and secondary provider error messages when hedged free translation fails on both channels instead of discarding the first error.
- Fix debug-mode objc2 type encoding check in macOS make_button by using typed NSColor::CGColor and CALayer::setBackgroundColor methods.
- Bump workspace version to 0.2.2.
2026-10-16 17:34:59 +08:00
lingr25 1fde401b3a feat(windows): add a normal window mode switch
Add a 普通窗口模式 switch to the general settings section. When enabled the
window is created with WS_EX_APPWINDOW instead of WS_EX_TOOLWINDOW, so it
appears in the taskbar and Alt+Tab, and losing focus no longer hides it. The
extended style switches live without a restart; a failed save rolls the
checkbox back and reports the error, and the general section now reports
save failures instead of discarding them.

The switch is drawn anti-aliased. GDI's RoundRect has no smoothing, and at
22 logical pixels tall the staircase on the pill and the knob read as a
low-resolution control, so both shapes are rasterized together at 4x and
halftone-downscaled. The off track uses p.faint: p.line is the card border
and p.pill is the card fill, so the previous colours made the switch
disappear into the card it sits on.
2026-10-16 14:09:40 +09:00
lingr25 6b59eb12e5 feat(hotkeys): record shortcuts from native key presses 2026-10-16 12:46:28 +09:00
lingr25 b7f1839d9b fix(hotkeys): use platform modifiers and preserve bindings on failure 2026-10-16 12:07:05 +09:00
lingr25 63e111f171 fix(windows): prevent input-triggered window flicker
Update source input geometry only when text emptiness changes and preserve overflow scrolling. Add native input repaint regression coverage and require sessions to commit verified changes in AGENTS.md.
2026-10-16 12:06:20 +09:00
lingr25 f37722f321 fix(windows): show window on launch and reuse running instance 2026-10-16 12:00:30 +09:00
ZASENJC a4ddb522af feat: add signed native updates for macOS and Windows 2026-10-16 02:06:09 +08:00
ZASENJC 823ba44d78 fix: register signing keychain and verify signing before universal builds 2026-10-16 00:29:48 +08:00
ZASENJC 63fd5c97f3 feat: use transparent adaptive tray marks on both native apps 2026-10-16 00:20:07 +08:00
ZASENJC 8d4628aeed refactor: separate native platforms and automate signed dual-platform releases 2026-10-16 00:05:02 +08:00