Commit Graph
364 Commits
Author SHA1 Message Date
fanlusky eb1211e595 Add preedit font size settings. 2026-08-15 03:58:43 +08:00
fanlusky 67ce190071 Adjust settings wnd splash effect. 2026-08-15 03:11:52 +08:00
fanlusky a2822cfb5c Adjust emoji panel's emoji data. 2026-08-15 02:34:34 +08:00
fanlusky 9a5e415966 Add switch for voice indicate sound. 2026-08-14 17:14:04 +08:00
fanlusky 2e17fc7590 Adjust voice indicator style. 2026-08-14 17:07:20 +08:00
fanlusky a09ea0a238 Add doubao asr support. 2026-08-14 16:36:34 +08:00
fanlusky a80835b37f Added English dictionary weight management, weighted querying, batch import, and weight-preserving export. 2026-08-14 01:05:53 +08:00
fanlusky 0ce0ef5fc1 feat(ui): add a WeChat-inspired skin with light/dark variants and synchronized candidate and toolbar previews 2026-08-13 04:06:48 +08:00
fanlusky 8ec9ec9f17 Add the feature that repeated smart punctuation input switches to Chinese punctuation. 2026-08-10 03:23:50 +08:00
fanlusky 6f50814266 Add Microsoft Shuangpin scheme. 2026-08-10 01:54:27 +08:00
fanlusky a2aedbf39f Support paired punctuation. 2026-08-10 00:38:09 +08:00
fanlusky dd113048f8 Add validation for dictionary insertion. 2026-08-09 22:27:16 +08:00
fanlusky 608eac7552 Fix the issue where the menu displays a scrollbar. 2026-08-09 21:24:51 +08:00
fanlusky d046b0ab9d Add a visible-area guard to the FTB. 2026-08-09 20:00:06 +08:00
fanlusky 4495fc7795 Fix the style issue of the FTB when the resolution switches to 1920x1080. 2026-08-09 19:40:38 +08:00
fanlusky 67d9da572a Add the English input method status to the toolbar. 2026-08-09 19:05:39 +08:00
fanlusky 29242b2641 Also add short english words to cands. 2026-08-09 18:37:04 +08:00
fanlusky 32d9978fd5 Add some time and date styles. 2026-08-09 18:13:48 +08:00
fanlusky ac8d47ef09 Change the candidate window to a stable transparent host window occupying about 1/4 of the screen (updating with the cursor monitor/DPI), with content wrapping according to the host width and scrolling according to the host height, and fix the issues of high-DPI edge cropping and inconsistency between measurement and CSS limits. 2026-08-08 21:37:09 +08:00
fanlusky 73fd24b53d Strengthen the adaptive sizing of the FTB when the resolution changes. 2026-08-08 19:49:19 +08:00
fanlusky 33a86c11b6 Add date-time quick input (T-mode) feature, strengthen installation to not overwrite user's config.toml, and add a cold-start protection for FTB that "displays within the page ready / up to 6s grace period, then shows/hides according to actual status" (still rebuilds webview2 on upgrade). 2026-08-08 12:37:24 +08:00
fanlusky 08b0ecb738 Regression issue: fix the issue where the previous modification may cause the host to briefly stall. 2026-08-04 14:17:13 +08:00
fanlusky 5a11c7dc87 Attempt to fix the issue where the candidate window is truncated in some windows, such as in CAD. 2026-08-04 12:20:33 +08:00
fanlusky 28b7f174e6 Fix the issue where words created from cloud candidates cannot be deleted. 2026-08-04 02:50:05 +08:00
fanlusky 4f608437a0 Fix UILess Mode issues to support Chinese input in Delta Force. 2026-08-04 01:09:38 +08:00
fanlusky 6a7b6c58d0 Fix the issue where the configuration for 9 candidates does not take effect. 2026-08-03 22:29:24 +08:00
fanlusky 5f85070f2b Add more auxiliary code schemes. 2026-08-03 01:12:45 +08:00
fanlusky b7f17facfa Expand the range of the candidate window font size setting slightly.
Fix the issue where AI predictions cannot be directly committed and instead trigger word-creation mode, and fix the issue where words generated by AI predictions cannot be deleted via right-click.
2026-08-03 00:07:20 +08:00
fanlusky 73128d7b46 Expand the candidate window font size setting range slightly. 2026-08-02 23:41:03 +08:00
fanlusky aad3992541 Migrate some shortcuts to keyeventsink. 2026-08-02 22:57:21 +08:00
fanlusky 6605398b99 In English input mode, when no results are found, put the raw string in. 2026-08-02 22:38:58 +08:00
fanlusky a4206951a9 Fix the issue where the Chinese/English status between the tray icon and the FTB is not synchronized in VSCode multi-window scenarios, and also fix the issue where Chrome applications do not follow the default Chinese/English status when opened. 2026-08-02 21:47:54 +08:00
fanlusky bf0977b696 Remove logs 2026-08-01 23:22:18 +08:00
fanlusky 9fa82d8878 Add English input mode. 2026-08-01 23:15:02 +08:00
fanlusky 223f8d70eb Implement smart punctuation, automatically using English punctuation , . : after English letters and numbers. 2026-08-01 19:54:57 +08:00
fanlusky 4848ac1cff Fix the issue where selecting candidates with the numeric keypad fails to commit and causes the interface to flicker and freeze. 2026-08-01 17:45:12 +08:00
fanlusky 70d40bfa10 Fix: 仓耳今楷 now is supported in cand wnd and settings wnd preview. 2026-08-01 15:33:00 +08:00
fanlusky ef8cad988c Try to locate tray-menu not render issue once installed. 2026-08-01 14:52:08 +08:00
fanlusky de6b5affc0 Add shoudao shuangpin schema. 2026-08-01 04:30:15 +08:00
fanlusky 3b3b7304ec Preserve user configuration during upgrade. 2026-08-01 03:33:42 +08:00
fanlusky 03a7ae6fbd fix(ftb): recover the toolbar when activation races window creation 2026-08-01 00:36:39 +08:00
fanlusky f0b9932c3e Continue trying to stabilize the WebView2 loading process during server initialization. 2026-07-31 19:51:56 +08:00
fanlusky ee5449a8ec Keep the menu always inactive. 2026-07-31 17:36:35 +08:00
fanlusky f70d210465 In auxiliary code mode, AI prediction should not send requests, just like cloud prediction. 2026-07-31 16:12:03 +08:00
fanlusky 8caf0eb399 fix(ftb): stop the floating toolbar from rendering blank
The toolbar occasionally stayed invisible while its host window looked
perfectly healthy: the HWND was shown at the right position and size, so
screenshot tools could still frame it, but WebView2 never painted into
it. Two independent causes, both specific to the toolbar.

The toolbar was the only small window left out of the cloaked warmup, so
whenever no client was active at startup its controller was created
against a hidden host and WebView2 never finished raster setup. The later
ShowWindow could not repair that.

The toolbar was also the only small window not renotified after
HWND_TOPMOST was applied. Pinning moves the host between z-bands, and in
a uiAccess process a WebView2 that is not told about it keeps compositing
against the old parent state. The toolbar reports navigation-ready last,
so the topmost gate normally opened inside its own navigation-completed
handler, before it had painted a single frame.

Changes:
- Warm up the toolbar host DWM-cloaked like the candidate and menu hosts,
  and express hide as a cloak until the first navigation completes so the
  warmup cannot be cut short. HideFloatingToolbarHost replaces the raw
  ShowWindow(SW_HIDE), including in the fullscreen hook.
- Give the toolbar the same post-topmost put_Bounds +
  NotifyParentWindowPositionChanged the menu host already had.
- Defer the first topmost application to a later message-loop turn via
  WM_APPLY_SMALL_WINDOW_TOPMOST, and route EnsureSmallWindowsTopmost
  through the same path so it can no longer pin inline.
- Add an opt-out diagnostic trace (ftb-diagnostic.log, disabled with
  MSIME_FTB_DIAG=0) recording every visibility decision together with the
  host and controller state, plus the foreground window behind a
  fullscreen hide.

Also drops the earlier attempt at deriving g_is_ime_active from the IPC
active client, which targeted a different failure mode than the one
actually reproduced.
2026-07-31 14:39:13 +08:00
fanlusky fb4a2d02c9 fix(candwnd): keep measure-time WebView bounds after host resize
Avoid shrinking the candidate WebView to the host client on first show
near a screen edge, which made the card wrap and get clipped.
2026-07-31 02:58:40 +08:00
fanlusky de5b764a72 fix(ftb): reconcile toolbar visibility from IPC active-client state
WM_IMEACTIVATE could be dropped or skipped when activation was unchanged,
leaving the floating toolbar hidden until the user switched IME away and
back. Derive g_is_ime_active from the live active client on every visibility
apply, and re-apply once the FTB WebView finishes its first navigation.
Also restore Watchdog startup with a short profile-ready retry window.
2026-07-31 00:43:55 +08:00
fanlusky 31f30899f6 Remove MetasequoiaImeWatchdog from the Server build and startup path.
TSF now revives the Server directly, so the Server no longer builds or starts a companion watchdog.
2026-07-30 21:19:48 +08:00
fanlusky 68f7557048 chore(traymenu): remove temporary traymenu-diag logging
Drop TrayMenuDiag / DescribeHostWindow and all call sites added while
debugging the uiAccess TOPMOST WebView2 init failure, now that the fix
is verified.
2026-07-30 03:16:28 +08:00
fanlusky c029fb7222 fix(webview2): prevent TOPMOST from blocking controller creation in uiAccess process
In a uiAccess=true process, a WS_EX_TOPMOST parent window causes
WebView2's internal cross-process SetParent to be rejected by UIPI,
returning E_INVALIDARG (0x80070057) from CreateCoreWebView2Controller.

This was triggered when the watchdog restarted the server while the IME
was already active: the floating toolbar showed early, which mistakenly
raised the DWM-cloaked (warmup) menu host to TOPMOST before its
controller existed. Manual launches never hit this because the IME was
inactive at startup time.

Changes:
- Gate RaiseTrayMenuAboveSmallWindows on menu controller existence so
  a cloaked warmup host is never prematurely pinned TOPMOST.
- Strip WS_EX_TOPMOST from any host window before requesting its
  controller; the lazy-topmost gate re-pins all three once ready.
- Serialize controller creation (one in-flight at a time) to avoid
  E_INVALIDARG from concurrent CreateCoreWebView2Controller calls on
  the same environment.
- Rotate past a persistently failing host so it cannot starve siblings.
- Harden LOCALAPPDATA resolution with SHGetKnownFolderPath fallback.
- Increase watchdog restart delay to 2s for user-data-folder lock drain.
- Add diagnostic logging (traymenu-diag.log) for WebView2 init states.
2026-07-30 03:08:42 +08:00