feat: unified shell, diagnostics pack, native Office, sticky board
All checks were successful
CI / Windows build (push) Successful in 14m22s

Make Surface remote debugging and classroom workflows viable: always-on
structured logs with one-click zip export, a single AppShell chrome,
OOXML PPTX/DOCX annotation without LibreOffice, and a first-class sticky
board. Also drop spike/legacy ink widgets and tighten pen feel
(predictor, PenInfoHistory, page-tile layer).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-05 17:55:27 +08:00
parent 3cabc7e074
commit d346cc2670
49 changed files with 2883 additions and 2515 deletions

View File

@@ -89,6 +89,7 @@ void ObservePenMessage(UINT message, WPARAM wparam, LPARAM lparam) {
int raw_pen_flags = 0;
int raw_pen_mask = 0;
int btn_change = 0;
int history_count = 0;
if (is_pointer) {
++g_ptr_msgs;
@@ -124,6 +125,13 @@ void ObservePenMessage(UINT message, WPARAM wparam, LPARAM lparam) {
const int ay = ppi.tiltY < 0 ? -ppi.tiltY : ppi.tiltY;
if (ax > g_tilt_abs_max) g_tilt_abs_max = ax;
if (ay > g_tilt_abs_max) g_tilt_abs_max = ay;
// Coalesce recent history (diagnostic + future batching).
POINTER_PEN_INFO history[32];
UINT32 hist_n = 32;
if (GetPointerPenInfoHistory(pointerId, &hist_n, history)) {
history_count = static_cast<int>(hist_n);
}
}
}
if (message == WM_POINTERUP) {
@@ -151,6 +159,7 @@ void ObservePenMessage(UINT message, WPARAM wparam, LPARAM lparam) {
{flutter::EncodableValue("orPenMask"), flutter::EncodableValue(g_pen_mask_or)},
{flutter::EncodableValue("btnChangeLast"), flutter::EncodableValue(g_btn_change_last)},
{flutter::EncodableValue("tiltAbsMax"), flutter::EncodableValue(g_tilt_abs_max)},
{flutter::EncodableValue("historyCount"), flutter::EncodableValue(history_count)},
};
g_pen_sink->Success(flutter::EncodableValue(payload));
}