loleaflet/src/control/Control.LokDialog.js |   43 ++++++++++++++++++++++++++---
 1 file changed, 40 insertions(+), 3 deletions(-)

New commits:
commit 9e219313537f4bc8797fce27690fd860c485a91e
Author:     Ashod Nakashian <ashod.nakash...@collabora.co.uk>
AuthorDate: Sun Dec 1 16:56:34 2019 -0500
Commit:     Ashod Nakashian <ashnak...@gmail.com>
CommitDate: Mon Dec 2 04:42:59 2019 +0100

    leaflet: improved sidebar closing
    
    Change-Id: I547ef3e65b746c4b37176969db8eb766fc037aa9
    Reviewed-on: https://gerrit.libreoffice.org/84181
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js 
b/loleaflet/src/control/Control.LokDialog.js
index e91a075f4..3f4f5fe32 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -875,12 +875,16 @@ L.Control.LokDialog = L.Control.extend({
 
        _onSidebarClose: function(dialogId) {
                this._resizeSidebar(dialogId, 0);
-               $('#' + this._currentDeck.strId).remove();
-               this._map.focus();
                delete this._dialogs[dialogId];
-               this._currentDeck = null;
+               if (this._currentDeck) {
+                       $('#' + this._currentDeck.strId).remove();
+                       this._currentDeck = null;
+               }
 
                $('#sidebar-dock-wrapper').css({display: ''});
+               this._map.fire('editorgotfocus');
+               this._map.focus();
+
        },
 
        _onCalcInputBarClose: function(dialogId) {
commit 0cc3319b30733210850f3be6761b183c00a6d6b9
Author:     Ashod Nakashian <ashod.nakash...@collabora.co.uk>
AuthorDate: Sun Dec 1 16:53:34 2019 -0500
Commit:     Ashod Nakashian <ashnak...@gmail.com>
CommitDate: Mon Dec 2 04:42:49 2019 +0100

    leaflet: properly handle sidebar id changes from Core
    
    Change-Id: Ic8fceb097ce8d269bf957038d84bcb536cb3b250
    Reviewed-on: https://gerrit.libreoffice.org/84180
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js 
b/loleaflet/src/control/Control.LokDialog.js
index 70f1592f7..e91a075f4 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -612,6 +612,39 @@ L.Control.LokDialog = L.Control.extend({
                var strId = this._toStrId(id);
 
                if (this._currentDeck) {
+
+                       var oldId = this._currentDeck.id;
+                       if (oldId != id) {
+                               // This is a new deck; update the HTML elements 
in-place.
+                               var strOldId = this._toStrId(oldId);
+
+                               var oldPanel = 
document.getElementById(strOldId);
+                               if (oldPanel)
+                                       oldPanel.id = strOldId + '-offscreen';
+                               var oldCanvas = 
document.getElementById(strOldId + '-canvas');
+                               if (oldCanvas)
+                                       oldCanvas.id = strOldId + '-offscreen';
+
+                               $('#' + this._currentDeck.strId).remove();
+                               delete this._dialogs[oldId];
+                               this._currentDeck = null;
+
+                               this._createSidebar(id, strId, width, height);
+
+                               var newCanvas = document.getElementById(strId + 
'-canvas');
+                               if (oldCanvas && newCanvas)
+                               {
+                                       this._setCanvasWidthHeight(newCanvas, 
oldCanvas.width, oldCanvas.height);
+                                       var ctx = newCanvas.getContext('2d');
+                                       ctx.drawImage(oldCanvas, 0, 0);
+                               }
+
+                               oldPanel.remove();
+
+                               return;
+                       }
+
+                       // Update the existing sidebar.
                        this._currentDeck.width = width;
                        this._currentDeck.height = height;
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to