Merge pull request #1083 from jitsi/fix_hover_thumbnail

fix(Thubmnail_PopupMenu): the thumbnail should be considered hovered when the popup menu is hovered
This commit is contained in:
Дамян Минков 2016-10-28 11:59:36 -05:00 committed by GitHub
commit d2f52b534a
2 changed files with 23 additions and 0 deletions

View File

@ -83,6 +83,11 @@ var JitsiPopover = (function () {
JitsiPopover.prototype.forceHide = function () {
$(".jitsipopover").remove();
this.popoverShown = false;
if(this.popoverIsHovered) { //the browser is not firing hover events
//when the element was on hover if got removed.
this.popoverIsHovered = false;
this.onHoverPopover(this.popoverIsHovered);
}
};
/**

View File

@ -34,6 +34,7 @@ function RemoteVideo(user, VideoLayout, emitter) {
this.bindHoverHandler();
this.flipX = false;
this.isLocal = false;
this.popupMenuIsHovered = false;
/**
* The flag is set to <tt>true</tt> after the 'onplay' event has been
* triggered on the current video element. It goes back to <tt>false</tt>
@ -89,6 +90,10 @@ RemoteVideo.prototype._initPopupMenu = function (popupMenuElement) {
};
let element = $("#" + this.videoSpanId + " .remotevideomenu");
this.popover = new JitsiPopover(element, options);
this.popover.addOnHoverPopover(isHovered => {
this.popupMenuIsHovered = isHovered;
this.updateView();
});
// override popover show method to make sure we will update the content
// before showing the popover
@ -102,6 +107,19 @@ RemoteVideo.prototype._initPopupMenu = function (popupMenuElement) {
}.bind(this);
};
/**
* Checks whether current video is considered hovered. Currently it is hovered
* if the mouse is over the video, or if the connection indicator or the popup
* menu is shown(hovered).
* @private
* NOTE: extends SmallVideo's method
*/
RemoteVideo.prototype._isHovered = function () {
let isHovered = SmallVideo.prototype._isHovered.call(this)
|| this.popupMenuIsHovered;
return isHovered;
};
/**
* Generates the popup menu content.
*