parent
f1e7adc3e2
commit
ac6e1758bb
@ -0,0 +1,39 @@
|
||||
From 342f3cfe6f2b27ea62bd9883e16014c188276356 Mon Sep 17 00:00:00 2001
|
||||
From: Kohei Yoshida <kyoshida@novell.com>
|
||||
Date: Wed, 22 Dec 2010 12:31:22 -0500
|
||||
Subject: [PATCH 1/2] Avoid double-paste when pasting text into cell comment. (fdo#32572)
|
||||
|
||||
Original patch is from Caolan. I re-worked it to handle more use
|
||||
cases.
|
||||
---
|
||||
sc/source/ui/view/gridwin.cxx | 20 ++++++++++++++++++++
|
||||
1 files changed, 20 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
|
||||
index 0d32bae..6826829 100644
|
||||
--- a/sc/source/ui/view/gridwin.cxx
|
||||
+++ b/sc/source/ui/view/gridwin.cxx
|
||||
@@ -4298,6 +4298,23 @@ void ScGridWindow::PasteSelection( const Point& rPosPixel )
|
||||
SCsROW nPosY;
|
||||
pViewData->GetPosFromPixel( rPosPixel.X(), rPosPixel.Y(), eWhich, nPosX, nPosY );
|
||||
|
||||
+ // If the mouse down was inside a visible note window, ignore it and
|
||||
+ // leave it up to the ScPostIt to handle it
|
||||
+ SdrView* pDrawView = pViewData->GetViewShell()->GetSdrView();
|
||||
+ if (pDrawView)
|
||||
+ {
|
||||
+ ULONG nCount = pDrawView->GetMarkedObjectCount();
|
||||
+ for (ULONG i = 0; i < nCount; ++i)
|
||||
+ {
|
||||
+ SdrObject* pObj = pDrawView->GetMarkedObjectByIndex(i);
|
||||
+ if (pObj && pObj->GetLogicRect().IsInside(aLogicPos))
|
||||
+ {
|
||||
+ // Inside an active drawing object. Bail out.
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
ScSelectionTransferObj* pOwnSelection = SC_MOD()->GetSelectionTransfer();
|
||||
if ( pOwnSelection )
|
||||
{
|
@ -1,27 +0,0 @@
|
||||
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
|
||||
index 0d32bae..7ecdbfa 100644
|
||||
--- a/sc/source/ui/view/gridwin.cxx
|
||||
+++ b/sc/source/ui/view/gridwin.cxx
|
||||
@@ -1689,6 +1689,22 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt )
|
||||
SCTAB nTab = pViewData->GetTabNo();
|
||||
ScDocument* pDoc = pViewData->GetDocument();
|
||||
|
||||
+ {
|
||||
+ //If the mouse down was inside a visible note window, ignore it and leave
|
||||
+ //it up to the ScPostIt to handle it
|
||||
+ ScAddress aCellPos(pViewData->GetCurX(), pViewData->GetCurY(), pViewData->GetTabNo());
|
||||
+ ScPostIt* pNote = pDoc->GetNote(aCellPos);
|
||||
+ SdrObject* pObj = pNote ? pNote->GetCaption() : 0;
|
||||
+ if (pObj && ScDrawLayer::IsNoteCaption(pObj))
|
||||
+ {
|
||||
+ Point aLogicPos = PixelToLogic(aPos);
|
||||
+ if (pObj->GetLogicRect().IsInside(aLogicPos))
|
||||
+ {
|
||||
+ bEEMouse = TRUE;
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
|
||||
//
|
||||
// AutoFilter buttons
|
Loading…
Reference in new issue