summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Dominguez <venccsralph@gmail.com>2013-03-25 22:32:32 -0430
committerCédric Bosdonnat <cedric.bosdonnat@free.fr>2013-03-26 17:10:04 +0100
commit28d5ced7f9982257d263ffc3e550bd479a9542f8 (patch)
treefb5a5496e4649c0150892931b1882a58e825a445
parent1c9f13f921cb5bf955b8568ffb5d14047738eef9 (diff)
Fix template manager item selection behaviour with mouse.
Change-Id: Icf63454973b4044443eea1cc583fce3a78c5594d
-rw-r--r--sfx2/source/control/thumbnailview.cxx23
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()))