|
 |
f085be |
From b179235f702e474b115ca479b603052f422346fd Mon Sep 17 00:00:00 2001
|
|
 |
f085be |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
f085be |
Date: Wed, 7 May 2014 16:16:17 +0100
|
|
 |
f085be |
Subject: [PATCH] center slide after changing zoom
|
|
 |
f085be |
|
|
 |
f085be |
Change-Id: I08698b06d0485d2cd3573af665e0621b42d37349
|
|
 |
f085be |
---
|
|
 |
f085be |
sd/source/ui/inc/ViewShell.hxx | 1 +
|
|
 |
f085be |
sd/source/ui/view/viewshe2.cxx | 27 +++++++++++++++++++++++++++
|
|
 |
f085be |
sd/source/ui/view/viewshel.cxx | 1 +
|
|
 |
f085be |
3 files changed, 29 insertions(+)
|
|
 |
f085be |
|
|
 |
f085be |
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
|
|
 |
f085be |
index ce5ea31..87edbc5 100644
|
|
 |
f085be |
--- a/sd/source/ui/inc/ViewShell.hxx
|
|
 |
f085be |
+++ b/sd/source/ui/inc/ViewShell.hxx
|
|
 |
f085be |
@@ -206,6 +206,7 @@ public:
|
|
 |
f085be |
virtual void UpdateScrollBars (void);
|
|
 |
f085be |
void Scroll(long nX, long nY);
|
|
 |
f085be |
void ScrollLines(long nX, long nY);
|
|
 |
f085be |
+ void ScrollCenter();
|
|
 |
f085be |
virtual void SetZoom(long nZoom);
|
|
 |
f085be |
virtual void SetZoomRect(const Rectangle& rZoomRect);
|
|
 |
f085be |
void InitWindows(const Point& rViewOrigin, const Size& rViewSize,
|
|
 |
f085be |
diff --git a/sd/source/ui/view/viewshe2.cxx b/sd/source/ui/view/viewshe2.cxx
|
|
 |
f085be |
index 5f98d68..8f91d6c 100644
|
|
 |
f085be |
--- a/sd/source/ui/view/viewshe2.cxx
|
|
 |
f085be |
+++ b/sd/source/ui/view/viewshe2.cxx
|
|
 |
f085be |
@@ -365,6 +365,33 @@ void ViewShell::SetZoom(long nZoom)
|
|
 |
f085be |
UpdateScrollBars();
|
|
 |
f085be |
}
|
|
 |
f085be |
|
|
 |
f085be |
+namespace
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ void CenterScrollBar(ScrollBar *pBar)
|
|
 |
f085be |
+ {
|
|
 |
f085be |
+ long nVisSize = pBar->GetVisibleSize();
|
|
 |
f085be |
+ long nMin = pBar->GetRangeMin();
|
|
 |
f085be |
+ long nMax = pBar->GetRangeMax();
|
|
 |
f085be |
+ long nLen = nMax - nMin - nVisSize;
|
|
 |
f085be |
+ long nPos = nMin + nLen/2;
|
|
 |
f085be |
+ pBar->DoScroll(nPos);
|
|
 |
f085be |
+ }
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
+void ViewShell::ScrollCenter()
|
|
 |
f085be |
+{
|
|
 |
f085be |
+ if (mpHorizontalScrollBar.get() != NULL)
|
|
 |
f085be |
+ CenterScrollBar(mpHorizontalScrollBar.get());
|
|
 |
f085be |
+
|
|
 |
f085be |
+ //zoom mode with no panning of the current slide, i.e. the
|
|
 |
f085be |
+ //scrollbar is in change slide mode not pan slide mode
|
|
 |
f085be |
+ if (IsPageFlipMode())
|
|
 |
f085be |
+ return;
|
|
 |
f085be |
+
|
|
 |
f085be |
+ if (mpVerticalScrollBar.get() != NULL)
|
|
 |
f085be |
+ CenterScrollBar(mpVerticalScrollBar.get());
|
|
 |
f085be |
+}
|
|
 |
f085be |
+
|
|
 |
f085be |
/**
|
|
 |
f085be |
* Set zoom rectangle for active window. Sets all split windows to the same zoom
|
|
 |
f085be |
* factor.
|
|
 |
f085be |
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
|
|
 |
f085be |
index 28e272e..17bcf5f 100644
|
|
 |
f085be |
--- a/sd/source/ui/view/viewshel.cxx
|
|
 |
f085be |
+++ b/sd/source/ui/view/viewshel.cxx
|
|
 |
f085be |
@@ -683,6 +683,7 @@ bool ViewShell::HandleScrollCommand(const CommandEvent& rCEvt, ::sd::Window* pWi
|
|
 |
f085be |
nNewZoom = std::min( (long) pWin->GetMaxZoom(), basegfx::zoomtools::zoomIn( nOldZoom ));
|
|
 |
f085be |
|
|
 |
f085be |
SetZoom( nNewZoom );
|
|
 |
f085be |
+ ScrollCenter(); //center slide after changing zoom
|
|
 |
f085be |
Invalidate( SID_ATTR_ZOOM );
|
|
 |
f085be |
Invalidate( SID_ATTR_ZOOMSLIDER );
|
|
 |
f085be |
|
|
 |
f085be |
--
|
|
 |
f085be |
1.9.0
|
|
 |
f085be |
|