summaryrefslogtreecommitdiff
path: root/avmedia
diff options
context:
space:
mode:
authorZolnai Tamás <tamas.zolnai@collabora.com>2014-07-16 14:55:43 +0200
committerCaolán McNamara <caolanm@redhat.com>2014-07-21 08:19:58 +0000
commit4641e8f3e2675386df4418506861945e35cd69a0 (patch)
treee64c632451aa4cc8b65531b87719b535c5945aa1 /avmedia
parent830aa8da71f798b83befd392c7773d81c142510e (diff)
fdo#81182: Resizing glTF window affects camera position
Camera moves by click and drag, with checking the last mouse position we can make sure click was done inside the window before drag. Resizing can trigger drag event, but not click event. (cherry picked from commit 51ba2df1cb29d4343f92174da6dc8f36ba9152eb) Conflicts: avmedia/source/opengl/oglwindow.cxx Change-Id: I9e8b70fcb4a0abf26e76e03cafd026f940eceb10 Reviewed-on: https://gerrit.libreoffice.org/10353 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'avmedia')
-rw-r--r--avmedia/source/opengl/oglwindow.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/avmedia/source/opengl/oglwindow.cxx b/avmedia/source/opengl/oglwindow.cxx
index 2650faf67c32..09a6333f1093 100644
--- a/avmedia/source/opengl/oglwindow.cxx
+++ b/avmedia/source/opengl/oglwindow.cxx
@@ -20,7 +20,7 @@ OGLWindow::OGLWindow( glTFHandle& rHandle, OpenGLContext& rContext, Window& rEve
, m_rEventHandler( rEventHandlerParent )
, m_bVisible ( false )
, meZoomLevel( media::ZoomLevel_ORIGINAL )
- , m_aLastMousePos(Point())
+ , m_aLastMousePos(Point(0,0))
, m_bIsOrbitMode( false )
, m_fCameraDistance(0.0)
{
@@ -356,7 +356,7 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent)
m_rEventHandler.GrabFocus();
}
MouseEvent* pMouseEvt = (MouseEvent*)pEvent->GetData();
- if(pMouseEvt && pMouseEvt->IsLeft())
+ if(pMouseEvt && pMouseEvt->IsLeft() && m_aLastMousePos != Point(0,0))
{
const Point& aCurPos = pMouseEvt->GetPosPixel();
float fSensitivity = std::min(m_rHandle.viewport.width, m_rHandle.viewport.height);
@@ -388,6 +388,7 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent)
MouseEvent* pMouseEvt = (MouseEvent*)pEvent->GetData();
if(pMouseEvt && pMouseEvt->IsLeft() && pMouseEvt->GetClicks() == 1)
{
+ m_aLastMousePos = Point(0,0);
gltf_renderer_stop_rotate_model(&m_rHandle);
}
}