[Pkg-owncloud-commits] [owncloud] 18/62: adjust controls bar width to not overlay scrollbar

David Prévot taffit at moszumanska.debian.org
Tue Jun 23 23:39:34 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.0.5beta
in repository owncloud.

commit eeace88beb588a902c17462dc5ac857c2ec3b629
Author: Jan-Christoph Borchardt <hey at jancborchardt.net>
Date:   Fri Mar 27 01:34:55 2015 +0100

    adjust controls bar width to not overlay scrollbar
---
 apps/files/js/filelist.js |  7 ++++++-
 core/js/js.js             | 52 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 43b8c16..4fde8e8 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -635,6 +635,8 @@
 		 * @param filesArray array of file data (map)
 		 */
 		setFiles: function(filesArray) {
+			var self = this;
+
 			// detach to make adding multiple rows faster
 			this.files = filesArray;
 
@@ -655,7 +657,10 @@
 			this.updateSelectionSummary();
 			$(window).scrollTop(0);
 
-			this.$fileList.trigger(jQuery.Event("updated"));
+			this.$fileList.trigger(jQuery.Event('updated'));
+			_.defer(function() {
+				self.$el.closest('#app-content').trigger(jQuery.Event('apprendered'));
+			});
 		},
 		/**
 		 * Creates a new table row element using the given file data.
diff --git a/core/js/js.js b/core/js/js.js
index 78342ce..410d515 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -1191,6 +1191,32 @@ function initCore() {
 		// initial call
 		toggleSnapperOnSize();
 
+		// adjust controls bar width
+		var adjustControlsWidth = function() {
+			if($('#controls').length) {
+				// if there is a scrollbar …
+				if($('#app-content').get(0).scrollHeight > $('#app-content').height()) {
+					if($(window).width() > 768) {
+						var controlsWidth = $('#content').width() - $('#app-navigation').width() - getScrollBarWidth();
+					} else {
+						var controlsWidth = $('#content').width() - getScrollBarWidth();
+					}
+				} else { // if there is none
+					if($(window).width() > 768) {
+						var controlsWidth = $('#content').width() - $('#app-navigation').width();
+					} else {
+						var controlsWidth = $('#content').width();
+					}
+				}
+				$('#controls').css('width', controlsWidth);
+				$('#controls').css('min-width', controlsWidth);
+			}
+		};
+
+		$(window).resize(_.debounce(adjustControlsWidth, 250));
+
+		$('body').delegate('#app-content', 'apprendered', adjustControlsWidth);
+
 	}
 
 }
@@ -1615,3 +1641,29 @@ jQuery.fn.selectRange = function(start, end) {
 jQuery.fn.exists = function(){
 	return this.length > 0;
 };
+
+function getScrollBarWidth() {
+	var inner = document.createElement('p');
+	inner.style.width = "100%";
+	inner.style.height = "200px";
+
+	var outer = document.createElement('div');
+	outer.style.position = "absolute";
+	outer.style.top = "0px";
+	outer.style.left = "0px";
+	outer.style.visibility = "hidden";
+	outer.style.width = "200px";
+	outer.style.height = "150px";
+	outer.style.overflow = "hidden";
+	outer.appendChild (inner);
+
+	document.body.appendChild (outer);
+	var w1 = inner.offsetWidth;
+	outer.style.overflow = 'scroll';
+	var w2 = inner.offsetWidth;
+	if (w1 == w2) w2 = outer.clientWidth;
+
+	document.body.removeChild (outer);
+
+	return (w1 - w2);
+};

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list