diff options
author | Rafael Dominguez <venccsralph@gmail.com> | 2013-03-25 22:32:32 -0430 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2013-03-26 17:10:04 +0100 |
commit | 28d5ced7f9982257d263ffc3e550bd479a9542f8 (patch) | |
tree | fb5a5496e4649c0150892931b1882a58e825a445 | |
parent | 1c9f13f921cb5bf955b8568ffb5d14047738eef9 (diff) |
Fix template manager item selection behaviour with mouse.
Change-Id: Icf63454973b4044443eea1cc583fce3a78c5594d
-rw-r--r-- | sfx2/source/control/thumbnailview.cxx | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 6d66ed2cd2c8..d7521b0638bd 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -606,15 +606,22 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) { if ( rMEvt.GetClicks() == 1 ) { - if (pItem->isSelected() && rMEvt.IsMod1()) - pItem->setSelection(false); + if (rMEvt.IsMod1()) + { + //Keep selected item group state and just invert current desired one state + pItem->setSelection(!pItem->isSelected()); + } else { - if (!pItem->isSelected() && !rMEvt.IsMod1()) - deselectItems( ); - + //If we got a group of selected items deselect the rest and only keep the desired one + //mark items as not selected to not fire unnecessary change state events. + pItem->setSelection(false); + deselectItems(); pItem->setSelection(true); + } + if (pItem->isSelected()) + { bool bClickOnTitle = pItem->getTextArea().IsInside(rMEvt.GetPosPixel()); pItem->setEditTitle(bClickOnTitle); } @@ -623,13 +630,11 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) DrawItem(pItem); maItemStateHdl.Call(pItem); + + //fire accessible event?? } else if ( rMEvt.GetClicks() == 2 ) { - // The mouse button down event 1 click right before is pointless - pItem->setSelection(false); - maItemStateHdl.Call(pItem); - Rectangle aRect(pItem->getDrawArea()); if (aRect.IsInside(rMEvt.GetPosPixel())) |