Browse Source

Improved fullscreen enter/leave in photo view.

Previously, document.mouse{enter,leave} was used for that. This
has the disadvantage that is doesn't work when the browser is
in fullscreen mode (at least, in Chromium), because the mouse
can no longer leave the document.

With this commit, mousemove is used to switch to fullscreen
in the photo view after the user has not moved the mouse for
some time. It is left again, if the user moves the mouse.
Nils Asmussen 7 years ago
parent
commit
e41b0f81bd
2 changed files with 8 additions and 6 deletions
  1. 1 1
      src/scripts/multiselect.js
  2. 7 5
      src/scripts/view.js

+ 1 - 1
src/scripts/multiselect.js

@@ -159,7 +159,7 @@ multiselect.resize = function(e) {
 
 multiselect.stopResize = function() {
 
-	$(document).off('mousemove mouseup')
+	if (multiselect.position.top!==null) $(document).off('mousemove mouseup')
 
 }
 

+ 7 - 5
src/scripts/view.js

@@ -309,9 +309,12 @@ view.photo = {
 		$('body').css('overflow', 'hidden')
 
 		// Fullscreen
-		$(document)
-			.bind('mouseenter', header.show)
-			.bind('mouseleave', header.hide)
+		var timeout
+		$(document).bind('mousemove', function() {
+			clearTimeout(timeout)
+			header.show()
+			timeout = setTimeout(header.hide, 500)
+		})
 
 		lychee.animate(lychee.imageview, 'fadeIn')
 
@@ -329,8 +332,7 @@ view.photo = {
 
 		// Disable Fullscreen
 		$(document)
-			.unbind('mouseenter')
-			.unbind('mouseleave')
+			.unbind('mousemove')
 
 		// Hide Photo
 		lychee.animate(lychee.imageview, 'fadeOut')