You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2019/07/08 16:21:27 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2079] last WB slide is selectable

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 7b8b6c7  [OPENMEETINGS-2079] last WB slide is selectable
7b8b6c7 is described below

commit 7b8b6c74c828c7922d0c3c5ae460799702d9f67a
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Mon Jul 8 23:21:16 2019 +0700

    [OPENMEETINGS-2079] last WB slide is selectable
---
 .../apache/openmeetings/web/room/wb/WbPanel.html   |  1 +
 .../openmeetings/web/room/wb/raw-wb-board.js       | 26 ++++++++++++++++------
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
index 7c8dda2..7cbafac 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
@@ -85,6 +85,7 @@
 		<div id="wb-area">
 			<div class="scroll-container">
 				<div class="canvases"></div>
+				<div class="bottom-bumper"></div>
 			</div>
 		</div>
 		<div id="wb-zoom" class="wb-zoom">
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
index 9bbfeba..8fa4a63 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
@@ -4,7 +4,7 @@ var Wb = function() {
 		, area = $('.room.wb.area .wb-area .tabs.ui-tabs'), bar = area.find('.wb-tabbar')
 		, extraProps = ['uid', 'fileId', 'fileType', 'count', 'slide', 'omType', '_src', 'formula'];
 	let a, t, z, s, f, mode, slide = 0, width = 0, height = 0
-			, zoom = 1., zoomMode = 'pageWidth', role = null;
+			, zoom = 1., zoomMode = 'pageWidth', role = null, scrollTimeout = null;
 
 	function _getBtn(m) {
 		return !!t ? t.find('.om-icon.' + (m || mode) + ':not(.stub)') : null;
@@ -623,14 +623,26 @@ var Wb = function() {
 		objCreatedHandler(o.path);
 	};
 	function scrollHandler() {
-		$(this).find('.canvas-container').each(function(idx) {
-			const h = $(this).height(), pos = $(this).position();
-			if (slide !== idx && pos.top > BUMPER - h && pos.top < BUMPER) {
-				//TODO might be done without iterating
-				_setSlide(idx);
+		if (scrollTimeout !== null) {
+			clearTimeout(scrollTimeout);
+		}
+		scrollTimeout = setTimeout(function() {
+			const sc = a.find('.scroll-container')
+				, canvases = sc.find('.canvas-container');
+			if (Math.round(sc.height() + sc[0].scrollTop) === sc[0].scrollHeight) {
+				if (slide !== canvases.length - 1) {
+					_setSlide(canvases.length - 1);
+				}
 				return false;
 			}
-		});
+			canvases.each(function(idx) {
+				const h = $(this).height(), pos = $(this).position();
+				if (slide !== idx && pos.top > BUMPER - h && pos.top < BUMPER) {
+					_setSlide(idx);
+					return false;
+				}
+			});
+		}, 100);
 	}
 	function showCurrentSlide() {
 		a.find('.scroll-container .canvas-container').each(function(idx) {