@@ -310,10 +310,13 @@ LRESULT CCanvasWindow::OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
310
310
return 0 ;
311
311
}
312
312
313
- LRESULT CCanvasWindow::OnLRButtonDown (BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
313
+ LRESULT CCanvasWindow::OnButtonDown ( UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
314
314
{
315
315
POINT pt = { GET_X_LPARAM (lParam), GET_Y_LPARAM (lParam) };
316
316
317
+ m_nMouseDownMsg = nMsg;
318
+ BOOL bLeftButton = (m_nMouseDownMsg == WM_LBUTTONDOWN);
319
+
317
320
HITTEST hitSelection = SelectionHitTest (pt);
318
321
if (hitSelection != HIT_NONE)
319
322
{
@@ -333,7 +336,7 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
333
336
}
334
337
else
335
338
{
336
- canvasWindow. ClientToScreen (&pt);
339
+ ClientToScreen (&pt);
337
340
mainWindow.TrackPopupMenu (pt, 0 );
338
341
}
339
342
return 0 ;
@@ -347,13 +350,13 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
347
350
case TOOL_BEZIER:
348
351
case TOOL_SHAPE:
349
352
toolsModel.OnCancelDraw ();
350
- canvasWindow. Invalidate ();
353
+ Invalidate ();
351
354
break ;
352
355
353
356
case TOOL_FREESEL:
354
357
case TOOL_RECTSEL:
355
358
toolsModel.OnFinishDraw ();
356
- canvasWindow. Invalidate ();
359
+ Invalidate ();
357
360
break ;
358
361
359
362
default :
@@ -386,40 +389,21 @@ LRESULT CCanvasWindow::OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam
386
389
return 0 ;
387
390
}
388
391
389
- LRESULT CCanvasWindow::OnLButtonDown (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
390
- {
391
- return OnLRButtonDown (TRUE , nMsg, wParam, lParam, bHandled);
392
- }
393
-
394
- LRESULT CCanvasWindow::OnRButtonDown (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
395
- {
396
- return OnLRButtonDown (FALSE , nMsg, wParam, lParam, bHandled);
397
- }
398
-
399
- LRESULT CCanvasWindow::OnLRButtonDblClk (BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
392
+ LRESULT CCanvasWindow::OnButtonDblClk (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
400
393
{
401
394
POINT pt = { GET_X_LPARAM (lParam), GET_Y_LPARAM (lParam) };
402
395
CanvasToImage (pt);
403
396
404
397
m_drawing = FALSE ;
405
- ReleaseCapture ();
398
+ ::ReleaseCapture ();
399
+ m_nMouseDownMsg = 0 ;
406
400
407
- toolsModel.OnButtonDown (bLeftButton , pt.x , pt.y , TRUE );
401
+ toolsModel.OnButtonDown (nMsg == WM_LBUTTONDBLCLK , pt.x , pt.y , TRUE );
408
402
toolsModel.resetTool ();
409
403
Invalidate (FALSE );
410
404
return 0 ;
411
405
}
412
406
413
- LRESULT CCanvasWindow::OnLButtonDblClk (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
414
- {
415
- return OnLRButtonDblClk (TRUE , nMsg, wParam, lParam, bHandled);
416
- }
417
-
418
- LRESULT CCanvasWindow::OnRButtonDblClk (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
419
- {
420
- return OnLRButtonDblClk (FALSE , nMsg, wParam, lParam, bHandled);
421
- }
422
-
423
407
LRESULT CCanvasWindow::OnMouseMove (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
424
408
{
425
409
POINT pt = { GET_X_LPARAM (lParam), GET_Y_LPARAM (lParam) };
@@ -612,13 +596,16 @@ LRESULT CCanvasWindow::OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL
612
596
return 0 ;
613
597
}
614
598
615
- LRESULT CCanvasWindow::OnLRButtonUp (BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
599
+ LRESULT CCanvasWindow::OnButtonUp ( UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
616
600
{
617
601
POINT pt = { GET_X_LPARAM (lParam), GET_Y_LPARAM (lParam) };
618
602
CanvasToImage (pt);
619
603
620
604
::ReleaseCapture ();
621
605
606
+ BOOL bLeftButton = (m_nMouseDownMsg == WM_LBUTTONDOWN);
607
+ m_nMouseDownMsg = 0 ;
608
+
622
609
if (m_drawing)
623
610
{
624
611
m_drawing = FALSE ;
@@ -680,16 +667,6 @@ LRESULT CCanvasWindow::OnLRButtonUp(BOOL bLeftButton, UINT nMsg, WPARAM wParam,
680
667
return 0 ;
681
668
}
682
669
683
- LRESULT CCanvasWindow::OnLButtonUp (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
684
- {
685
- return OnLRButtonUp (TRUE , nMsg, wParam, lParam, bHandled);
686
- }
687
-
688
- LRESULT CCanvasWindow::OnRButtonUp (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
689
- {
690
- return OnLRButtonUp (FALSE , nMsg, wParam, lParam, bHandled);
691
- }
692
-
693
670
LRESULT CCanvasWindow::OnSetCursor (UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
694
671
{
695
672
if (CWaitCursor::IsWaiting ())
@@ -760,6 +737,7 @@ LRESULT CCanvasWindow::OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
760
737
{
761
738
// Cancel dragging
762
739
::ReleaseCapture ();
740
+ m_nMouseDownMsg = 0 ;
763
741
m_hitCanvasSizeBox = HIT_NONE;
764
742
::SetRectEmpty (&m_rcResizing);
765
743
Invalidate (TRUE );
0 commit comments