[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4-0-4' - 8 commits - configure.ac ios/config.h.in ios/Mobile loleaflet/html loleaflet/js loleaflet/Makefile.am loleaflet/plugins loleaflet/src wsd/LOOLWSD.cpp

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed May 1 19:56:02 UTC 2019


 configure.ac                                           |   20 ++++++------
 ios/Mobile/Info.plist.in                               |    2 -
 ios/config.h.in                                        |    2 +
 loleaflet/Makefile.am                                  |    2 -
 loleaflet/html/loleaflet.html.m4                       |    2 +
 loleaflet/js/jquery.mCustomScrollbar.js                |   27 +++++++++++------
 loleaflet/plugins/path-transform/src/Path.Transform.js |   26 ++++++++++++++--
 loleaflet/src/control/Control.Scroll.js                |    5 ++-
 loleaflet/src/core/Socket.js                           |   15 +++++----
 loleaflet/src/layer/tile/TileLayer.js                  |   10 ++----
 loleaflet/src/layer/tile/WriterTileLayer.js            |    7 +++-
 loleaflet/src/map/Map.js                               |    9 +++++
 wsd/LOOLWSD.cpp                                        |    3 +
 13 files changed, 93 insertions(+), 37 deletions(-)

New commits:
commit a83d10b57713f6144db93a9dc3ef3e5711382e80
Author:     Marco Cecchetti <mrcekets at gmail.com>
AuthorDate: Mon Mar 4 20:36:45 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:54:20 2019 +0200

    leaflet: after resizing a shape, dragging cursor with mouse pans view
    
    The problem was in Path.Transform._apply executed at scale/rotate end
    which enabled map dragging unconditionally.
    
    Change-Id: Id42dc7de397a2ca2774f9d31a698c32b5e1c8514
    Reviewed-on: https://gerrit.libreoffice.org/70559
    Reviewed-by: Henry Castro <hcastro at collabora.com>
    Tested-by: Henry Castro <hcastro at collabora.com>

diff --git a/loleaflet/plugins/path-transform/src/Path.Transform.js b/loleaflet/plugins/path-transform/src/Path.Transform.js
index f7efd72cc..3ea9ddaab 100644
--- a/loleaflet/plugins/path-transform/src/Path.Transform.js
+++ b/loleaflet/plugins/path-transform/src/Path.Transform.js
@@ -282,6 +282,7 @@ L.Handler.PathTransform = L.Handler.extend({
 		var matrix = this._matrix.clone();
 		var angle = this._angle;
 		var scale = this._scale.clone();
+		var moved = this._handleDragged;
 
 		this._transformGeometries();
 
@@ -299,7 +300,11 @@ L.Handler.PathTransform = L.Handler.extend({
 
 		this._updateHandlers();
 
-		map.dragging.enable();
+		if (this._mapDraggingWasEnabled) {
+			if (moved) L.DomEvent._fakeStop({ type: 'click' });
+			map.dragging.enable();
+		}
+
 		this._path.fire('transformed', {
 			matrix: matrix,
 			scale: scale,
@@ -576,7 +581,12 @@ L.Handler.PathTransform = L.Handler.extend({
 	_onRotateStart: function(evt) {
 		var map = this._map;
 
-		map.dragging.disable();
+		this._handleDragged = false;
+		this._mapDraggingWasEnabled = false;
+		if (map.dragging.enabled()) {
+			map.dragging.disable();
+			this._mapDraggingWasEnabled = true;
+		}
 
 		this._originMarker     = null;
 		this._rotationOriginPt = map.latLngToLayerPoint(this._getRotationOrigin());
@@ -604,6 +614,8 @@ L.Handler.PathTransform = L.Handler.extend({
 		var previous = this._rotationStart;
 		var origin   = this._rotationOriginPt;
 
+		this._handleDragged = true;
+
 		// rotation step angle
 		this._angle = Math.atan2(pos.y - origin.y, pos.x - origin.x) -
 			Math.atan2(previous.y - origin.y, previous.x - origin.x);
@@ -649,7 +661,12 @@ L.Handler.PathTransform = L.Handler.extend({
 		var marker = evt.target;
 		var map = this._map;
 
-		map.dragging.disable();
+		this._handleDragged = false;
+		this._mapDraggingWasEnabled = false;
+		if (map.dragging.enabled()) {
+			map.dragging.disable();
+			this._mapDraggingWasEnabled = true;
+		}
 
 		this._activeMarker = marker;
 
@@ -688,6 +705,9 @@ L.Handler.PathTransform = L.Handler.extend({
 	_onScale: function(evt) {
 		var originPoint = this._originMarker._point;
 		var ratioX, ratioY;
+
+		this._handleDragged = true;
+
 		if (this.options.uniformScaling) {
 			ratioX = originPoint.distanceTo(evt.layerPoint) / this._initialDist;
 			ratioY = ratioX;
commit de348d2f9624b85470a389e0c1efc38a801c3539
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Mar 13 18:05:14 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:53:27 2019 +0200

    Show progressbar centered in the mobile
    
    When Online was embodied in the nextcloud app (Android)
    the progressbar was moved into top-left corner.
    During a loading all functions to get container
    or browser size were returning (0,0).
    This hack assumed that webview size is almost equal
    to the mobile screen size.
    
    Change-Id: I0fff53639a3baa88b57d91bf671e00ad8c71180d
    Reviewed-on: https://gerrit.libreoffice.org/69219
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 6f213dd9d..4aad141c5 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -108,7 +108,14 @@ L.Map = L.Evented.extend({
 		}
 		this._addLayers(this.options.layers);
 		this._socket = L.socket(this);
-		this._progressBar = L.progressOverlay(this.getCenter(), L.point(150, 25));
+
+		var center = this.getCenter();
+		if (L.Browser.mobile) {
+			var doubledProgressHeight = 200;
+			var size = new L.point(screen.width, screen.height - doubledProgressHeight);
+			center = this.layerPointToLatLng(size._divideBy(2));
+		}
+		this._progressBar = L.progressOverlay(center, new L.point(150, 25));
 
 		if (L.Browser.mobile) {
 			this._clipboardContainer = L.control.mobileInput().addTo(this);
commit ef640bf25fefc0619439901fc96a8fcdd307c7b7
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Thu Apr 11 13:32:24 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:52:38 2019 +0200

    Prevent view from jumping on zoom in/out on mobile
    
    Change-Id: I29262d518d61a4a06d66271033c958e56ff16a2b
    Reviewed-on: https://gerrit.libreoffice.org/70592
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>

diff --git a/loleaflet/js/jquery.mCustomScrollbar.js b/loleaflet/js/jquery.mCustomScrollbar.js
index 442b20504..2785ec65c 100644
--- a/loleaflet/js/jquery.mCustomScrollbar.js
+++ b/loleaflet/js/jquery.mCustomScrollbar.js
@@ -284,6 +284,11 @@ and dependencies (minified).
 				*/
 				updateOnContentResize:true,
 				/*
+				prevent from updating view position after content resize to avoid jumping on mobile devices
+				values: boolean
+				*/
+				jumpOnContentResize:true,
+				/*
 				auto-update scrollbars each time each image inside the element is fully loaded 
 				values: "auto", boolean
 				*/
@@ -561,31 +566,37 @@ and dependencies (minified).
 						var to=[Math.abs(mCSB_container[0].offsetTop),Math.abs(mCSB_container[0].offsetLeft)];
 						if(o.axis!=="x"){ /* y/yx axis */
 							if(!d.overflowed[0]){ /* y scrolling is not required */
-								_resetContentPosition.call(this); /* reset content position */
+								if(o.advanced.jumpOnContentResize)
+									_resetContentPosition.call(this); /* reset content position */
 								if(o.axis==="y"){
 									_unbindEvents.call(this);
-								}else if(o.axis==="yx" && d.overflowed[1]){
+								}else if(o.axis==="yx" && d.overflowed[1] && o.advanced.jumpOnContentResize){
 									_scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"});
 								}
-							}else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()){
+							}else if(mCSB_dragger[0].height()>mCSB_dragger[0].parent().height()
+									&& o.advanced.jumpOnContentResize){
 								_resetContentPosition.call(this); /* reset content position */
 							}else{ /* y scrolling is required */
-								_scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"});
+								if(o.advanced.jumpOnContentResize)
+									_scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"});
 								d.contentReset.y=null;
 							}
 						}
 						if(o.axis!=="y"){ /* x/yx axis */
 							if(!d.overflowed[1]){ /* x scrolling is not required */
-								_resetContentPosition.call(this); /* reset content position */
+								if(o.advanced.jumpOnContentResize)
+									_resetContentPosition.call(this); /* reset content position */
 								if(o.axis==="x"){
 									_unbindEvents.call(this);
-								}else if(o.axis==="yx" && d.overflowed[0]){
+								}else if(o.axis==="yx" && d.overflowed[0] && o.advanced.jumpOnContentResize){
 									_scrollTo($this,to[0].toString(),{dir:"y",dur:0,overwrite:"none"});
 								}
 							}else if(mCSB_dragger[1].width()>mCSB_dragger[1].parent().width()){
-								_resetContentPosition.call(this); /* reset content position */
+								if(o.advanced.jumpOnContentResize)
+									_resetContentPosition.call(this); /* reset content position */
 							}else{ /* x scrolling is required */
-								_scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"});
+								if(o.advanced.jumpOnContentResize)
+									_scrollTo($this,to[1].toString(),{dir:"x",dur:0,overwrite:"none"});
 								d.contentReset.x=null;
 							}
 						}
diff --git a/loleaflet/src/control/Control.Scroll.js b/loleaflet/src/control/Control.Scroll.js
index e8df36eb8..adb85d55b 100644
--- a/loleaflet/src/control/Control.Scroll.js
+++ b/loleaflet/src/control/Control.Scroll.js
@@ -31,7 +31,10 @@ L.Control.Scroll = L.Control.extend({
 			axis: 'yx',
 			theme: 'minimal-dark',
 			scrollInertia: 0,
-			advanced:{autoExpandHorizontalScroll: true}, /* weird bug, it should be false */
+			advanced:{
+				autoExpandHorizontalScroll: true, /* weird bug, it should be false */
+				jumpOnContentResize: false /* prevent from jumping on a mobile devices */
+			},
 			callbacks:{
 				onScrollStart: function() {
 					control._map.fire('closepopup');
commit 6f484bd35bd059a6b93c80c26421dbe4b5be5ca8
Author:     Jan Holesovsky <kendy at collabora.com>
AuthorDate: Sat Mar 30 19:12:19 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:51:46 2019 +0200

    Use the app name more generally, not only on iOS.
    
    Preparation for using it on Android too.
    
    Change-Id: Iee7778b2625a02a98daff5df87c39f4ab1d18144
    Reviewed-on: https://gerrit.libreoffice.org/70651
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Tested-by: Tor Lillqvist <tml at collabora.com>

diff --git a/configure.ac b/configure.ac
index dace37db4..5f60b3d23 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,10 +69,6 @@ AC_ARG_ENABLE([iosapp],
                               to be copied to a Mac where the iOS app is being built, *or* in a tree where
                               you will build the iOS app.]))
 
-AC_ARG_WITH([iosapp-name],
-              AS_HELP_STRING([--with-iosapp-name=<name>],
-                             [Set the user-visible name of the iOS app you build. Default "Mobile".]))
-
 AC_ARG_WITH([iosapp-appicon],
               AS_HELP_STRING([--with-iosapp-appicon=<path>],
                              [Point to a directory containing an icon set to use instead of the default empty one.]))
@@ -88,6 +84,10 @@ AC_ARG_ENABLE([gtkapp],
                               to work similarly to the iOS app, from the JavaScript and the pseudo WebSocket
                               message plumbing point of view. See gtk/README.]))
 
+AC_ARG_WITH([app-name],
+              AS_HELP_STRING([--with-app-name=<name>],
+                             [Set the user-visible name of the app you build.]))
+
 AC_ARG_ENABLE([seccomp],
               AS_HELP_STRING([--disable-seccomp],
                              [Disable use of linux/seccomp.h header when kernel on target system does not support it.
@@ -224,15 +224,18 @@ if test -z "$anonym_msg";  then
   anonym_msg="no anonymization of usernames or filenames"
 fi
 
+APP_NAME="LOOL"
+if test -n "$with_app_name"; then
+   APP_NAME="$with_app_name"
+fi
+AC_DEFINE_UNQUOTED([APP_NAME],["$APP_NAME"],[The user-visible name of the app you build.])
+AC_SUBST(APP_NAME)
+
 ENABLE_IOSAPP=
-MOBILE_APP_NAME="Mobile"
 IOSAPP_BUNDLE_VERSION=
 
 if test "$enable_iosapp" = "yes"; then
    ENABLE_IOSAPP=true
-   if test -n "$with_iosapp_name"; then
-      MOBILE_APP_NAME="$with_iosapp_name"
-   fi
 
    if test -f BUNDLE-VERSION; then
        IOSAPP_BUNDLE_VERSION=$(cat BUNDLE-VERSION)
@@ -287,7 +290,6 @@ if test "$enable_iosapp" = "yes"; then
 fi
 AC_SUBST(ENABLE_IOSAPP)
 AM_CONDITIONAL([ENABLE_IOSAPP], [test "$ENABLE_IOSAPP" = "true"])
-AC_SUBST(MOBILE_APP_NAME)
 AC_SUBST(IOSAPP_BUNDLE_VERSION)
 
 ENABLE_GTKAPP=
diff --git a/ios/Mobile/Info.plist.in b/ios/Mobile/Info.plist.in
index 5dd1931e1..cb16bde94 100644
--- a/ios/Mobile/Info.plist.in
+++ b/ios/Mobile/Info.plist.in
@@ -34,7 +34,7 @@
     <key>CFBundleDevelopmentRegion</key>
     <string>$(DEVELOPMENT_LANGUAGE)</string>
     <key>CFBundleDisplayName</key>
-    <string>@MOBILE_APP_NAME@</string>
+    <string>@APP_NAME@</string>
     <key>CFBundleDocumentTypes</key>
     <array>
        <!-- Document sub-types are listed in order ODF, OOXML, MSO, other -->
diff --git a/ios/config.h.in b/ios/config.h.in
index 18ca58e4e..c1f501fe9 100644
--- a/ios/config.h.in
+++ b/ios/config.h.in
@@ -1,6 +1,8 @@
 /* config.h.  Manually edited from config.h.in.  */
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+#define APP_NAME "@APP_NAME@"
+
 /* Whether to disable SECCOMP */
 #define DISABLE_SECCOMP 1
 
diff --git a/loleaflet/Makefile.am b/loleaflet/Makefile.am
index 2732e1928..258801b0e 100644
--- a/loleaflet/Makefile.am
+++ b/loleaflet/Makefile.am
@@ -244,7 +244,7 @@ $(builddir)/dist/loleaflet.html: $(srcdir)/html/loleaflet.html.m4 $(LOLEAFLET_HT
 	@m4 -E -DDEBUG=$(ENABLE_DEBUG) \
 		-DIOSAPP=$(ENABLE_IOSAPP) \
 		-DGTKAPP=$(ENABLE_GTKAPP) \
-		-DMOBILEAPPNAME="$(MOBILE_APP_NAME)" \
+		-DMOBILEAPPNAME="$(APP_NAME)" \
 		-DLOLEAFLET_CSS="$(subst $(SPACE),$(COMMA),$(LOLEAFLET_CSS_M4))" \
 		-DLOLEAFLET_JS="$(subst $(SPACE),$(COMMA),$(GLOBAL_JS) $(NODE_MODULES_JS) \
 		$(call LOLEAFLET_JS,$(srcdir)/build/build.js) \
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 9227f6f3f..4e7437d52 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -2792,6 +2792,9 @@ private:
         // Hint to encourage use on mobile devices
         capabilities->set("hasMobileSupport", true);
 
+        // Set the product name
+        capabilities->set("productName", APP_NAME);
+
         std::ostringstream ostrJSON;
         capabilities->stringify(ostrJSON);
         return ostrJSON.str();
commit b59e3ea3533a2819c1f8e93e121144e0e84ef290
Author:     Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Sat Mar 30 12:15:09 2019 -0400
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:51:10 2019 +0200

    leaflet: suppress empty error messages
    
    This also adds support to suppress errors
    by setting their message to blank.
    
    Change-Id: I2baabd121afb59c48e950b139f984c64d1720512
    Reviewed-on: https://gerrit.libreoffice.org/70032
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 85c459c0f..b21a3b496 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -547,12 +547,15 @@ L.Socket = L.Class.extend({
 				return;
 			}
 
-			// Parse the storage url as link
-			var tmpLink = document.createElement('a');
-			tmpLink.href = this._map.options.doc;
-			// Insert the storage server address to be more friendly
-			storageError = storageError.replace('%storageserver', tmpLink.host);
-			this._map.fire('warn', {msg: storageError});
+			// Skip empty errors (and allow for suppressing errors by making them blank).
+			if (storageError != '') {
+				// Parse the storage url as link
+				var tmpLink = document.createElement('a');
+				tmpLink.href = this._map.options.doc;
+				// Insert the storage server address to be more friendly
+				storageError = storageError.replace('%storageserver', tmpLink.host);
+				this._map.fire('warn', {msg: storageError});
+			}
 
 			return;
 		}
commit c5fa950608e2368835ff2f6e70c9e6dc8eb19535
Author:     Andras Timar <andras.timar at collabora.com>
AuthorDate: Wed Apr 3 16:26:51 2019 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:50:22 2019 +0200

    [cp] add copyright notice to About Box
    
    Change-Id: I51c2c5e7c2b0cf232b8a2f2dbcb3b9f3f04737ea
    Reviewed-on: https://gerrit.libreoffice.org/70205
    Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
    Tested-by: Michael Meeks <michael.meeks at collabora.com>

diff --git a/loleaflet/html/loleaflet.html.m4 b/loleaflet/html/loleaflet.html.m4
index 736dd26a9..bc16fb254 100644
--- a/loleaflet/html/loleaflet.html.m4
+++ b/loleaflet/html/loleaflet.html.m4
@@ -4,6 +4,7 @@ dnl# foreachq(x, `item_1, item_2, ..., item_n', stmt)
 dnl# quoted list, alternate improved version
 define([foreachq],[ifelse([$2],[],[],[pushdef([$1])_$0([$1],[$3],[],$2)popdef([$1])])])dnl
 define([_foreachq],[ifelse([$#],[3],[],[define([$1],[$4])$2[]$0([$1],[$2],shift(shift(shift($@))))])])dnl
+define(_YEAR_,esyscmd(date +%Y|tr -d '\n'))
 <!DOCTYPE html>
 <!-- saved from url=(0054)http://leafletjs.com/examples/quick-start-example.html -->
 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -146,6 +147,7 @@ ifelse(MOBILEAPP,[true],
       <div id="loolwsd-version"></div>
       <h3>LOKit</h3>
       <div id="lokit-version"></div>
+      <p>Copyright _YEAR_, Collabora Productivity Limited.</p>
     </div>
 
     <script>
commit b374ad3ffbbc7af7e929be7f6a13a9c4cf2ce10e
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Wed Mar 20 09:34:19 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:49:25 2019 +0200

    Avoid syntax errors while paring command results
    
    Change-Id: I7d778fd62aeb32c8304afb90c21aafd83379c170

diff --git a/loleaflet/src/layer/tile/WriterTileLayer.js b/loleaflet/src/layer/tile/WriterTileLayer.js
index f7bca842b..ece0ddfa4 100644
--- a/loleaflet/src/layer/tile/WriterTileLayer.js
+++ b/loleaflet/src/layer/tile/WriterTileLayer.js
@@ -54,7 +54,12 @@ L.WriterTileLayer = L.TileLayer.extend({
 	},
 
 	_onCommandValuesMsg: function (textMsg) {
-		var values = JSON.parse(textMsg.substring(textMsg.indexOf('{')));
+		var braceIndex = textMsg.indexOf('{');
+		if (braceIndex < 0) {
+			return;
+		}
+
+		var values = JSON.parse(textMsg.substring(braceIndex));
 		if (!values) {
 			return;
 		}
commit 930ec1b5b3ebdd73c5afa55c96ac0b43052a9a1b
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Sat Mar 23 14:51:27 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Wed May 1 21:49:10 2019 +0200

    Make all pages accessible after zooming
    
    After zooming scrollbar was updated and scroll
    position was incorrect what caused first pages
    not accessible.
    
    Regression was introduced by:
    ffd7151443ee360c7764aaa77f9e7fe5f5d64eee
    
    Second problem was jumping to the cursor
    during zooming. Solution was to not update
    the cursors on zooming start.
    
    Change-Id: I0891799b03ed4eccb211ee43eb30e546317a90fc
    Reviewed-on: https://gerrit.libreoffice.org/69606
    Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
    Tested-by: Szymon Kłos <szymon.klos at collabora.com>

diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 643a9ba06..f39102829 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1593,14 +1593,12 @@ L.TileLayer = L.GridLayer.extend({
 
 	_onZoomStart: function () {
 		this._isZooming = true;
-		this._onUpdateCursor();
-		this.updateAllViewCursors();
 	},
 
 
 	_onZoomEnd: function () {
 		this._isZooming = false;
-		this._onUpdateCursor();
+		this._onUpdateCursor(null, true);
 		this.updateAllViewCursors();
 	},
 
@@ -1624,16 +1622,16 @@ L.TileLayer = L.GridLayer.extend({
 	},
 
 	// Update cursor layer (blinking cursor).
-	_onUpdateCursor: function (scroll) {
+	_onUpdateCursor: function (scroll, zoom) {
 		var cursorPos = this._visibleCursor.getNorthWest();
 		var docLayer = this._map._docLayer;
 
-		if ((scroll !== false) && !this._map.getBounds().contains(this._visibleCursor) && this._isCursorVisible) {
+		if ((!zoom && scroll !== false) && !this._map.getBounds().contains(this._visibleCursor) && this._isCursorVisible) {
 			var center = this._map.project(cursorPos);
 			center = center.subtract(this._map.getSize().divideBy(2));
 			center.x = Math.round(center.x < 0 ? 0 : center.x);
 			center.y = Math.round(center.y < 0 ? 0 : center.y);
-			if (!(this._selectionHandles.start && this._selectionHandles.start.isDragged) &&
+			if (!zoom && !(this._selectionHandles.start && this._selectionHandles.start.isDragged) &&
 			    !(this._selectionHandles.end && this._selectionHandles.end.isDragged) &&
 			    !(docLayer._followEditor || docLayer._followUser)) {
 				if (window.ThisIsAMobileApp) {


More information about the Libreoffice-commits mailing list