summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorRafael Dominguez <venccsralph@gmail.com>2013-03-25 22:32:32 -0430
committerMiklos Vajna <vmiklos@suse.cz>2013-03-28 12:23:37 +0000
commit82a320dbb30e843ef5e69ec82be7179a8fba28bc (patch)
tree2224d4f100a2457ee9549aa8444024e7f6d6933b /sfx2
parent141ad5a104b41445a09e7aad57bd68ccb4207798 (diff)
Fix template manager item selection behaviour with mouse.
Change-Id: Icf63454973b4044443eea1cc583fce3a78c5594d (cherry picked from commit 28d5ced7f9982257d263ffc3e550bd479a9542f8) Reviewed-on: https://gerrit.libreoffice.org/3090 Reviewed-by: Miklos Vajna <vmiklos@suse.cz> Tested-by: Miklos Vajna <vmiklos@suse.cz>
Diffstat (limited to 'sfx2')
-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 b3b1251ff792..8b2840daef79 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -609,15 +609,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);
}
@@ -626,13 +633,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()))