[Libreoffice-commits] online.git: loleaflet/src

Ashod Nakashian ashod.nakashian at collabora.co.uk
Sun Apr 24 22:24:44 UTC 2016


 loleaflet/src/core/Socket.js |    2 ++
 loleaflet/src/map/Map.js     |   39 ++++++++++++++++++++++++++++++++++-----
 2 files changed, 36 insertions(+), 5 deletions(-)

New commits:
commit 80429c6c1daeb9672a13d5bd9ecd60aca7207f7d
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Sun Apr 24 16:58:37 2016 -0400

    loleaflet: activate upon reconnection, reconnect upon activation
    
    Change-Id: I047b4e25a90dab25f92920f2cba272051e08c90c
    Reviewed-on: https://gerrit.libreoffice.org/24354
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/loleaflet/src/core/Socket.js b/loleaflet/src/core/Socket.js
index 9efb60f..5412d3a 100644
--- a/loleaflet/src/core/Socket.js
+++ b/loleaflet/src/core/Socket.js
@@ -96,6 +96,8 @@ L.Socket = L.Class.extend({
 			this._doSend(this._msgQueue[i].msg, this._msgQueue[i].coords);
 		}
 		this._msgQueue = [];
+
+		this._map._activate();
 	},
 
 	_onMessage: function (e) {
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index 4abd285..847ba85 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -64,6 +64,8 @@ L.Map = L.Evented.extend({
 		this._bDisableKeyboard = false;
 		this._active = true;
 
+		vex.dialog_id = -1;
+
 		this.callInitHooks();
 
 		if (this.options.imagePath) {
@@ -690,17 +692,44 @@ L.Map = L.Evented.extend({
 
 	_activate: function () {
 		clearTimeout(vex.timer);
-		this._socket.sendMessage('useractive');
-		this._docLayer._onMessage('invalidatetiles: part=0 x=0 y=0 width=2147483647 height=2147483647', null);
 
-		return vex.close(vex.globalID - 1);
+		if (!this._active) {
+			this._socket.sendMessage('useractive');
+
+			// Only activate when we are connected.
+			if (this._socket.connected()) {
+				this._docLayer._onMessage('invalidatetiles: part=0 x=0 y=0 width=2147483647 height=2147483647', null);
+				this._active = true;
+
+				if (vex.dialog_id > 0) {
+					id = vex.dialog_id;
+					vex.dialog_id = -1;
+					return vex.close(id);
+				}
+			}
+		}
+
+		return false;
 	},
 
 	_deactivate: function () {
+		clearTimeout(vex.timer);
+
+		if (!this._active || vex.dialog_id > 0) {
+			// A dialog is already dimming the screen and probably
+			// shows an error message. Leave it alone.
+			this._active = false;
+			this._docLayer._onMessage('textselection:', null);
+			if (this._socket.connected()) {
+				this._socket.sendMessage('userinactive');
+			}
+
+			return;
+		}
+
 		var map = this;
 		vex.timer = setTimeout(function() {
-			L.Log.log("Deactivating");
-			this._active = false;
+			map._active = false;
 			clearTimeout(vex.timer);
 
 			options = $.extend({}, vex.defaultOptions, {contentCSS: {"background":"rgba(0, 0, 0, 0)"}});


More information about the Libreoffice-commits mailing list