[Libreoffice-commits] online.git: 2 commits - loleaflet/src
Pranav Kant
pranavk at collabora.co.uk
Wed Nov 15 12:47:11 UTC 2017
loleaflet/src/control/Control.LokDialog.js | 41 ++++++++++++++++++++++++++---
1 file changed, 37 insertions(+), 4 deletions(-)
New commits:
commit 35457c4cf7c9408fb5cb8736e284800fd2fa3bda
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Tue Nov 14 18:47:58 2017 +0530
lokdialog: Handle 'cursor_visible' callback to hide the cursor
Change-Id: Ia4be5f1533226b493387af896812924d4bf81a72
diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js
index d599d6a3..0914d9b6 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -35,10 +35,15 @@ L.Control.LokDialog = L.Control.extend({
var height = parseInt(rectangle[3]);
$('#' + e.dialogId + '-cursor').css({height: height});
-
// set the position of the lokdialog-cursor
$(this._dialogs[e.dialogId].cursor).css({left: x, top: y});
}
+ } else if (e.action === 'cursor_visible') {
+ var visible = e.visible === 'true';
+ if (visible)
+ $('#' + e.dialogId + '-cursor').css({display: 'block'});
+ else
+ $('#' + e.dialogId + '-cursor').css({display: 'none'});
} else if (e.action === 'close') {
this._onDialogClose(e.dialogId);
}
commit 2dcd75ccac9b4c219777c2d4e8e1859928b9c146
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Mon Nov 13 17:25:47 2017 +0530
lokdialog: Blinking cursor for editing fields in dialog
Change-Id: Ib75e87134e650053dbcd5e78f9c52ea7b7fb4f98
diff --git a/loleaflet/src/control/Control.LokDialog.js b/loleaflet/src/control/Control.LokDialog.js
index 8460eb0d..d599d6a3 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -15,7 +15,9 @@ L.Control.LokDialog = L.Control.extend({
_dialogs: {},
_isOpen: function(dialogId) {
- return $('#' + dialogId).length > 0;
+ return this._dialogs[dialogId] &&
+ this._dialogs[dialogId].open &&
+ $('#' + dialogId).length > 0;
},
_onDialogMsg: function(e) {
@@ -25,6 +27,18 @@ L.Control.LokDialog = L.Control.extend({
if (this._isOpen(e.dialogId)) {
this._map.sendDialogCommand(e.dialogId, e.rectangle);
}
+ } else if (e.action === 'cursor_invalidate') {
+ if (this._isOpen(e.dialogId) && !!e.rectangle) {
+ var rectangle = e.rectangle.split(',');
+ var x = parseInt(rectangle[0]);
+ var y = parseInt(rectangle[1]);
+ var height = parseInt(rectangle[3]);
+
+ $('#' + e.dialogId + '-cursor').css({height: height});
+
+ // set the position of the lokdialog-cursor
+ $(this._dialogs[e.dialogId].cursor).css({left: x, top: y});
+ }
} else if (e.action === 'close') {
this._onDialogClose(e.dialogId);
}
@@ -32,11 +46,21 @@ L.Control.LokDialog = L.Control.extend({
_openDialog: function(e) {
e.dialogId = e.dialogId.replace('.uno:', '');
- this._dialogs[e.dialogId] = true;
+ this._dialogs[e.dialogId] = {open: true};
this._map.sendDialogCommand(e.dialogId);
},
+ _launchDialogCursor: function(dialogId) {
+ if (!this._isOpen(dialogId))
+ return;
+
+ this._dialogs[dialogId].cursor = L.DomUtil.create('div', 'leaflet-cursor-container', L.DomUtil.get(dialogId));
+ var cursor = L.DomUtil.create('div', 'leaflet-cursor lokdialog-cursor', this._dialogs[dialogId].cursor);
+ cursor.id = dialogId + '-cursor';
+ L.DomUtil.addClass(cursor, 'blinking-cursor');
+ },
+
_launchDialog: function(dialogId, width, height) {
var canvas = '<div class="lokdialog" style="padding: 0px; margin: 0px; overflow: hidden;" id="' + dialogId + '">' +
'<canvas class="lokdialog_canvas" tabindex="0" id="' + dialogId + '-canvas" width="' + width + 'px" height="' + height + 'px"></canvas>' +
@@ -87,7 +111,11 @@ L.Control.LokDialog = L.Control.extend({
return false;
});
- this._dialogs[dialogId] = true;
+ // set the dialog's cursor
+ this._launchDialogCursor(dialogId);
+
+ if (!this._dialogs[dialogId] || !this._dialogs[dialogId].open)
+ this._dialogs[dialogId] = { open: true };
},
_postDialogMouseEvent: function(type, dialogid, x, y, count, buttons, modifier) {
@@ -195,7 +223,7 @@ L.Control.LokDialog = L.Control.extend({
_onDialogPaint: function (e) {
var dialogId = e.id.replace('.uno:', '');
// is our request to open dialog still valid?
- if (!this._dialogs[dialogId])
+ if (!this._dialogs[dialogId] || !this._dialogs[dialogId].open)
return;
if (!this._isOpen(dialogId)) {
More information about the Libreoffice-commits
mailing list