mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 09:16:17 +00:00
[MSPAINT] Scrolled canvas has defects in dragging a selection
CORE-18990, CORE-18867
This commit is contained in:
parent
62b6859a67
commit
cb245ff711
2 changed files with 13 additions and 13 deletions
|
@ -258,7 +258,7 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
|
||||||
{
|
{
|
||||||
if (bLeftButton)
|
if (bLeftButton)
|
||||||
{
|
{
|
||||||
UnZoomed(pt);
|
CanvasToImage(pt);
|
||||||
StartSelectionDrag(hitSelection, pt);
|
StartSelectionDrag(hitSelection, pt);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -741,7 +741,7 @@ VOID CCanvasWindow::finishDrawing()
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
CANVAS_HITTEST CCanvasWindow::SelectionHitTest(POINT ptZoomed)
|
CANVAS_HITTEST CCanvasWindow::SelectionHitTest(POINT ptImage)
|
||||||
{
|
{
|
||||||
if (!selectionModel.m_bShow)
|
if (!selectionModel.m_bShow)
|
||||||
return HIT_NONE;
|
return HIT_NONE;
|
||||||
|
@ -751,28 +751,28 @@ CANVAS_HITTEST CCanvasWindow::SelectionHitTest(POINT ptZoomed)
|
||||||
::OffsetRect(&rcSelection, GRIP_SIZE - GetScrollPos(SB_HORZ), GRIP_SIZE - GetScrollPos(SB_VERT));
|
::OffsetRect(&rcSelection, GRIP_SIZE - GetScrollPos(SB_HORZ), GRIP_SIZE - GetScrollPos(SB_VERT));
|
||||||
::InflateRect(&rcSelection, GRIP_SIZE, GRIP_SIZE);
|
::InflateRect(&rcSelection, GRIP_SIZE, GRIP_SIZE);
|
||||||
|
|
||||||
return getSizeBoxHitTest(ptZoomed, &rcSelection);
|
return getSizeBoxHitTest(ptImage, &rcSelection);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CCanvasWindow::StartSelectionDrag(CANVAS_HITTEST hit, POINT ptUnZoomed)
|
VOID CCanvasWindow::StartSelectionDrag(CANVAS_HITTEST hit, POINT ptImage)
|
||||||
{
|
{
|
||||||
m_hitSelection = hit;
|
m_hitSelection = hit;
|
||||||
selectionModel.m_ptHit = ptUnZoomed;
|
selectionModel.m_ptHit = ptImage;
|
||||||
selectionModel.TakeOff();
|
selectionModel.TakeOff();
|
||||||
|
|
||||||
SetCapture();
|
SetCapture();
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CCanvasWindow::SelectionDragging(POINT ptUnZoomed)
|
VOID CCanvasWindow::SelectionDragging(POINT ptImage)
|
||||||
{
|
{
|
||||||
selectionModel.Dragging(m_hitSelection, ptUnZoomed);
|
selectionModel.Dragging(m_hitSelection, ptImage);
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID CCanvasWindow::EndSelectionDrag(POINT ptUnZoomed)
|
VOID CCanvasWindow::EndSelectionDrag(POINT ptImage)
|
||||||
{
|
{
|
||||||
selectionModel.Dragging(m_hitSelection, ptUnZoomed);
|
selectionModel.Dragging(m_hitSelection, ptImage);
|
||||||
m_hitSelection = HIT_NONE;
|
m_hitSelection = HIT_NONE;
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,10 +61,10 @@ protected:
|
||||||
VOID OnHVScroll(WPARAM wParam, INT fnBar);
|
VOID OnHVScroll(WPARAM wParam, INT fnBar);
|
||||||
VOID drawZoomFrame(INT mouseX, INT mouseY);
|
VOID drawZoomFrame(INT mouseX, INT mouseY);
|
||||||
|
|
||||||
CANVAS_HITTEST SelectionHitTest(POINT ptZoomed);
|
CANVAS_HITTEST SelectionHitTest(POINT ptImage);
|
||||||
VOID StartSelectionDrag(CANVAS_HITTEST hit, POINT ptUnZoomed);
|
VOID StartSelectionDrag(CANVAS_HITTEST hit, POINT ptImage);
|
||||||
VOID SelectionDragging(POINT ptUnZoomed);
|
VOID SelectionDragging(POINT ptImage);
|
||||||
VOID EndSelectionDrag(POINT ptUnZoomed);
|
VOID EndSelectionDrag(POINT ptImage);
|
||||||
|
|
||||||
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
||||||
LRESULT OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
LRESULT OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue