Files
Just-DataInspector/Components
DeepSeek V4.1 Flash a566d98bab 交互修正:悬停提示跟随鼠标、信号拖拽手掌/抓握光标、增量只显示在右侧光标
- 信号悬停提示改为真正跟随鼠标(PaintSignalInteraction 用 m_mouseX/m_mouseY 定位,
  删除 m_hoverAnchorX/m_hoverAnchorY)。
  根因:OnMouseMove 只在状态变化时返回 changed,仅鼠标位置变化时返回 false,
  宿主不重绘 → 提示停在上一帧位置。现补上
  `if (m_hoverSignal.IsValid() && mouseMoved) changed = true;`(mouseMoved 由前后坐标比较得出),
  鼠标在可拖拽区域内持续移动时提示条会跟随。

- 可拖拽信号的光标响应参考 Photoshop 平移元素:
  悬停时用手掌光标(IDC_HAND),按住左键拖拽途中用抓握光标(IDC_SIZEALL)。

- 双光标增量差值:改为**只**由"右侧光标"(时间较大的那条)显示,
  按差值显式给出正负号(+ / -,不再固定用 ±);把右光标拖到左侧后,
  增量会自动改由新的右侧光标显示。(判定改用时间比较,不再用 m_activeCursor。)

- 光标时间读数标签与 Δt 差值标签:悬停(未按下)时不再改变鼠标光标,
  真正拖拽时统一使用左右箭头(IDC_SIZEWE)。
  两个标签都叠在光标线正上方,因此在 QueryCursor 中必须先于光标线判定返回 nullptr,
  否则会命中光标线给出 SIZEWE。

- Δt 差值文案由 "Δt " 改为 "Δt:"(全角冒号)。

- 一并移除遗留的 TEMP-PROBE 调试输出(HitTestSignal / PaintSignalInteraction /
  OnMouseMove 探针)与已不再使用的 m_dragOnLabel。

验证(TestData/VERY_BIG_DATA.CSV,编码器A相密集方波,125%、1725x996):
- 提示跟随:悬停 (700,250)→(700,400)→(760,620)→(900,700) 后,
  提示条出现在最后一次鼠标位置旁(截图核对),不再停留在首次出现处。
- 光标形态探测:信号悬停 = HAND;拖拽信号 = SIZEALL;
  时间读数标签/Δt 标签悬停 = ARROW(不改变);Δt 标签拖拽 = SIZEWE;
  时间读数标签拖拽 = SIZEWE;光标线上方悬停 = SIZEWE。
- 增量归属:默认双光标左 4.9417(无增量)/ 右 4.9425 , +0.0008;
  把右光标拖到左侧后变为左 0.288688(无增量)/ 右 4.9417 , +4.65301;
  把右光标拖到低电平处得到 4.80724 , -0.134458(负号正确)。
- Δt 文案:截图确认显示 "Δt: 15s 457.214ms"。
- 回归([1].CSV 双光标):左 426.316(无增量)/ 右 538.583 , +112.267;
  Δt:151ms 200us。
- make clean && make all 无警告无错误。
2026-10-08 21:51:16 +08:00
..