loleaflet/src/control/Control.LokDialog.js |   14 ++++++++++++++
 loleaflet/src/control/Toolbar.js           |   10 +++-------
 2 files changed, 17 insertions(+), 7 deletions(-)

New commits:
commit c93a1caf3d8afd5d158bf6a71515e119fee47088
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Aug 12 15:49:43 2020 +0200
Commit:     Jan Holesovsky <ke...@collabora.com>
CommitDate: Fri Aug 14 13:48:22 2020 +0200

    Make dialogs modal, block sidebar actions when opened
    
    This change prevents user from creating multiple instances
    of dialogs eg. by using sidebar. Dialogs are modal now.
    Child dialogs still can be created from existing dialog and used.
    
    Change-Id: I388006d8857d0196d2884598e150f7bf5948ed47
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100598
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js 
b/loleaflet/src/control/Control.LokDialog.js
index b69c0e446..57b5fdc95 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -144,6 +144,14 @@ L.Control.LokDialog = L.Control.extend({
                return Object.keys(this._dialogs).length > nonDialogEntries;
        },
 
+       // method used to warn user about dialog modality
+       blinkOpenDialog: function() {
+               $('.lokdialog_container').addClass('lokblink');
+               setTimeout(function () {
+                       $('.lokdialog_container').removeClass('lokblink');
+               }, 600);
+       },
+
        _docLoaded: function(e) {
                if (!e.status) {
                        $('.lokdialog_container').remove();
@@ -1159,6 +1167,12 @@ L.Control.LokDialog = L.Control.extend({
 
                L.DomEvent.on(canvas, 'mousedown mouseup', function(e) {
                        L.DomEvent.stop(e);
+
+                       if ((this._isSidebar(id) || this.isCalcInputBar(id)) && 
this.hasOpenedDialog()) {
+                               this.blinkOpenDialog();
+                               return;
+                       }
+
                        if (this._isSelectionHandleDragged() && e.type === 
'mouseup') {
                                this._onSelectionHandleDrag(e);
                                return;
diff --git a/loleaflet/src/control/Toolbar.js b/loleaflet/src/control/Toolbar.js
index 4bf98dc0e..e873cf2b1 100644
--- a/loleaflet/src/control/Toolbar.js
+++ b/loleaflet/src/control/Toolbar.js
@@ -170,13 +170,9 @@ L.Map.include({
        sendUnoCommand: function (command, json) {
                var isAllowedInReadOnly = command == '.uno:WordCountDialog';
 
-               var hasOpenedDialog = this.dialog.hasOpenedDialog();
-               if (hasOpenedDialog) {
-                       $('.lokdialog_container').addClass('lokblink');
-                       setTimeout(function () {
-                               
$('.lokdialog_container').removeClass('lokblink');
-                       }, 600);
-               } else if (this.isPermissionEdit() || isAllowedInReadOnly) {
+               if (this.dialog.hasOpenedDialog())
+                       this.dialog.blinkOpenDialog();
+               else if (this.isPermissionEdit() || isAllowedInReadOnly) {
                        if (!this.messageNeedsToBeRedirected(command))
                                this._socket.sendMessage('uno ' + command + 
(json ? ' ' + JSON.stringify(json) : ''));
                }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to