Kaynağa Gözat

[core] Add a scrollYFixedTop setting for Flex-based scrollbars

Enrico Berti 9 yıl önce
ebeveyn
işleme
6fb88fe1d2

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 1
desktop/core/src/desktop/static/desktop/ext/css/perfect-scrollbar.min.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 1
desktop/core/src/desktop/static/desktop/ext/js/jquery/plugins/perfect-scrollbar.jquery.min.js


+ 3 - 2
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -3073,7 +3073,8 @@
 
         $container.perfectScrollbar({
           minScrollbarLength: options.minScrollbarLength || 20,
-          suppressScrollX: options.suppressScrollX || true
+          suppressScrollX: options.suppressScrollX || true,
+          scrollYFixedTop: options.scrollYFixedTop ? $container.position().top : null
         });
         $container.on('ps-scroll-x', function () {
           $(element).trigger('scroll');
@@ -3084,7 +3085,7 @@
       }
       else {
         window.setTimeout(function(){
-          $container.perfectScrollbar('update');
+          $container.perfectScrollbar('update', {scrollYFixedTop: $container.position().top});
         }, 200);
       }
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
desktop/core/src/desktop/static/desktop/js/perfect-scrollbar.jquery.min.js


+ 1 - 1
desktop/core/src/desktop/templates/file_browser.mako

@@ -521,7 +521,7 @@ from desktop.views import _ko
 
 
       <div class="fb-list" data-bind="with: activeEntry">
-        <ul data-bind="foreachVisible: { data: entries, minHeight: 39, container: '.fb-list' }">
+        <ul data-bind="foreachVisible: { data: entries, minHeight: 39, container: '.fb-list', scrollYFixedTop: true }">
           <li data-bind="fileSelect: $parent.entries, fileDroppable: { entries: $parent.entries }, css: { 'fb-selected': selected }">
             <div style="width: 100%; height: 100%" data-bind="contextMenu: { menuSelector: '.hue-context-menu', beforeOpen: beforeContextOpen }">
               <ul class="hue-context-menu">

+ 2 - 2
tools/perfect-scrollbar/src/js/adaptor/jquery.js

@@ -4,7 +4,7 @@ var ps = require('../main')
   , psInstances = require('../plugin/instances');
 
 function mountJQuery(jQuery) {
-  jQuery.fn.perfectScrollbar = function (settingOrCommand) {
+  jQuery.fn.perfectScrollbar = function (settingOrCommand, updateSettings) {
     return this.each(function () {
       if (typeof settingOrCommand === 'object' ||
           typeof settingOrCommand === 'undefined') {
@@ -19,7 +19,7 @@ function mountJQuery(jQuery) {
         var command = settingOrCommand;
 
         if (command === 'update') {
-          ps.update(this);
+          ps.update(this, updateSettings);
         } else if (command === 'destroy') {
           ps.destroy(this);
         }

+ 2 - 1
tools/perfect-scrollbar/src/js/plugin/default-setting.js

@@ -14,5 +14,6 @@ module.exports = {
   useSelectionScroll: false,
   wheelPropagation: false,
   wheelSpeed: 1,
-  theme: 'default'
+  theme: 'default',
+  scrollYFixedTop: null
 };

+ 3 - 0
tools/perfect-scrollbar/src/js/plugin/update-geometry.js

@@ -31,6 +31,9 @@ function updateCss(element, i) {
   d.css(i.scrollbarXRail, xRailOffset);
 
   var yRailOffset = {top: element.scrollTop, height: i.railYHeight};
+  if (i.settings.scrollYFixedTop) {
+    yRailOffset.top = i.settings.scrollYFixedTop;
+  }
   if (i.isScrollbarYUsingRight) {
     if (i.isRtl) {
       yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth;

+ 7 - 1
tools/perfect-scrollbar/src/js/plugin/update.js

@@ -6,13 +6,19 @@ var d = require('../lib/dom')
   , updateGeometry = require('./update-geometry')
   , updateScroll = require('./update-scroll');
 
-module.exports = function (element) {
+module.exports = function (element, settings) {
   var i = instances.get(element);
 
   if (!i) {
     return;
   }
 
+  if (settings) {
+    Object.keys(settings).forEach(function (key) {
+      i.settings[key] = settings[key];
+    });
+  }
+
   // Recalcuate negative scrollLeft adjustment
   i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;
 

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor