loleaflet/src/control/Control.PartsPreview.js |   16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

New commits:
commit 685f10a287c23e22ad77468f10cfc0f2dac5955e
Author:     Ashod Nakashian <ashod.nakash...@collabora.co.uk>
AuthorDate: Fri Nov 23 01:36:17 2018 -0500
Commit:     Ashod Nakashian <ashnak...@gmail.com>
CommitDate: Mon Apr 15 05:02:39 2019 +0200

    leaflet: support reordering slides to first position
    
    Change-Id: I23fba5d7e10d861ec482974cf355c9fb1ae13a64
    Reviewed-on: https://gerrit.libreoffice.org/69637
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loleaflet/src/control/Control.PartsPreview.js 
b/loleaflet/src/control/Control.PartsPreview.js
index 23ef831d2..1492f03ab 100644
--- a/loleaflet/src/control/Control.PartsPreview.js
+++ b/loleaflet/src/control/Control.PartsPreview.js
@@ -66,7 +66,7 @@ L.Control.PartsPreview = L.Control.extend({
                                this._map.on('click', function() {
                                        this.partsFocused = false;
                                }, this);
-                               
+
                                this._map.on('keydown', function(e) {
                                        if (this.partsFocused === true) {
                                                switch 
(e.originalEvent.keyCode) {
@@ -82,6 +82,12 @@ L.Control.PartsPreview = L.Control.extend({
 
                                this._scrollContainer = $('#slide-sorter 
.mCSB_container').get(0);
 
+                               // Add a special frame just as a drop-site for 
reordering.
+                               var frame = L.DomUtil.create('div', 
'preview-frame', this._scrollContainer);
+                               this._addDnDHandlers(frame);
+                               frame.setAttribute('draggable', false);
+                               L.DomUtil.setStyle(frame, 'height', '12px');
+
                                // Create the preview parts
                                for (var i = 0; i < parts; i++) {
                                        
this._previewTiles.push(this._createPreview(i, e.partNames[i], bottomBound));
@@ -189,12 +195,12 @@ L.Control.PartsPreview = L.Control.extend({
                                                
$('#slide-sorter').mCustomScrollbar('scrollTo', 
nodePos-(sliderHeight-nodeHeight-nodeHeight/2));
                                        }, 50);
                                }
-                       } 
+                       }
                        return;
                }
                var part = $('#slide-sorter .mCSB_container 
.preview-frame').index(e.target.parentNode);
                if (part !== null) {
-                       var partId = parseInt(part);
+                       var partId = parseInt(part) - 1; // The first part is 
just a drop-site for reordering.
 
                        if (e.ctrlKey) {
                                this._map.selectPart(partId, 2, false); // 
Toggle selection on ctrl+click.
@@ -381,7 +387,9 @@ L.Control.PartsPreview = L.Control.extend({
 
                var part = $('#slide-sorter .mCSB_container 
.preview-frame').index(e.target.parentNode);
                if (part !== null) {
-                       var partId = parseInt(part);
+                       var partId = parseInt(part) - 1; // First frame is a 
drop-site for reordering.
+                       if (partId < 0)
+                               partId = -1; // First item is -1.
                        
this.partsPreview._map._socket.sendMessage('moveselectedclientparts position=' 
+ partId);
                }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to