[Libreoffice-commits] core.git: 2 commits - chart2/inc sc/source

Markus Mohrhard markus.mohrhard at collabora.co.uk
Mon May 12 00:07:24 PDT 2014


 chart2/inc/ChartView.hxx      |    8 ++++----
 sc/source/ui/view/gridwin.cxx |   27 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 4 deletions(-)

New commits:
commit 30d6bf6f25c1531e10454739b791ee572b59b251
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon May 12 08:51:51 2014 +0200

    volatile does not make any sense here
    
    Change-Id: I895f6d04bbd5bd1829ec72b2051e640cbc153b26

diff --git a/chart2/inc/ChartView.hxx b/chart2/inc/ChartView.hxx
index bc458a9..0ba3bf8 100644
--- a/chart2/inc/ChartView.hxx
+++ b/chart2/inc/ChartView.hxx
@@ -252,10 +252,10 @@ private: //member
     ::cppu::OMultiTypeInterfaceContainerHelper
                         m_aListenerContainer;
 
-    bool volatile       m_bViewDirty; //states whether the view needs to be rebuild
-    bool volatile       m_bInViewUpdate;
-    bool volatile       m_bViewUpdatePending;
-    bool volatile       m_bRefreshAddIn;
+    bool m_bViewDirty; //states whether the view needs to be rebuild
+    bool m_bInViewUpdate;
+    bool m_bViewUpdatePending;
+    bool m_bRefreshAddIn;
 
     //better performance for big data
     ::com::sun::star::awt::Size m_aPageResolution;
commit a2576b2d43684c54a9270ce93b5a721296faf8da
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon May 12 08:28:36 2014 +0200

    send mouse events to the OpenGL window
    
    No idea why the events are send to ScgridWindow but this hack works for
    now. It is not perfect and surely not beautiful but does work.
    
    Change-Id: If620e471083d34004ee877a25f8731d7b4212f3c

diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 2082d8d..95ce9fd 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -1636,6 +1636,33 @@ bool ScGridWindow::TestMouse( const MouseEvent& rMEvt, bool bAction )
 
 void ScGridWindow::MouseButtonDown( const MouseEvent& rMEvt )
 {
+    if(!maChildWindows.empty())
+    {
+        const Point& rPos = rMEvt.GetPosPixel();
+        for(boost::ptr_vector<Window>::iterator itr = maChildWindows.begin(),
+                itrEnd = maChildWindows.end(); itr != itrEnd; ++itr)
+        {
+            Point aPoint = itr->GetPosPixel();
+            Size aSize = itr->GetSizePixel();
+
+            if(rPos.X() >= aPoint.X() && rPos.X() <= (aPoint.X() + aSize.Width())
+                    && rPos.Y() >= aPoint.Y() && rPos.Y() <= (aPoint.Y() + aSize.Height()))
+            {
+                // we found a mouse event for the child window
+                // we need to recalculate the position based on the child window
+
+                Point aNewPos = rPos - aPoint;
+                sal_uInt16 nClicks = rMEvt.GetClicks();
+                sal_uInt16 nMode = rMEvt.GetMode();
+                sal_uInt16 nButtons = rMEvt.GetButtons();
+                sal_uInt16 nModifier = rMEvt.GetModifier();
+
+                MouseEvent aEvent(aNewPos, nClicks, nMode, nButtons, nModifier);
+                itr->MouseButtonDown(aEvent);
+                return;
+            }
+        }
+    }
     nNestedButtonState = SC_NESTEDBUTTON_DOWN;
 
     MouseEventState aState;


More information about the Libreoffice-commits mailing list