fix: 自定义颜色色块与预设色块保持一致,拾色浮窗改为锚点定位并放行面板内点击
- 自定义颜色入口改为与预设色块完全一致的呈现:当前颜色不在预设中时, 方格直接填充该自定义颜色(并自动选择浅色/深色加号图标以保证可读性), 外框尺寸与选中样式与预设色块完全相同。 - 拾色浮窗改为以触发控件矩形为锚点定位:优先紧贴其下方展开,空间不足时改到上方, 修复此前浮窗遮挡「加号」方格的问题。 - 拾色浮窗展开时点击面板内的其它控件(预设色、线宽、样式、透明度等)不再被吞掉, 改为「先收起浮窗、再放行该次点击」,一次点击即可切换预设色; 点击面板外或绘图区仍只收起浮窗。
This commit is contained in:
1 parent
729494d1ec
commit
0f98dd9a85
4 files changed
+64
-31
No files matched your search
@@ -1183,13 +1183,25 @@ namespace jdi
|
||||
m_plot.OnLButtonUp(0, 0);
|
||||
m_activeTarget = Target::NONE;
|
||||
m_draggingSplitter = false;
|
||||
m_colorPicker.OnLButtonDown(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
|
||||
if (m_colorPicker.IsOpen())
|
||||
|
||||
// 点击拾色器外部时收起;若落点落在信号面板内则放行本次点击,
|
||||
// 便于用户在展开状态下直接改选预设色、线宽等其它样式。
|
||||
if (m_colorPicker.ContainsPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)))
|
||||
{
|
||||
m_colorPicker.OnLButtonDown(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
|
||||
SetCapture(hwnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_colorPicker.Close();
|
||||
if (!m_panel.HitTest(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)))
|
||||
{
|
||||
InvalidateRect(hwnd, nullptr, FALSE);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
repaint = true;
|
||||
consume = true;
|
||||
consume = false;
|
||||
break;
|
||||
case WM_LBUTTONUP:
|
||||
m_colorPicker.OnLButtonUp();
|
||||
|
||||
Reference in new issue
Block a user