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.prototype.forceHide = function () {
$(".jitsipopover").remove(); $(".jitsipopover").remove();
this.popoverShown = false; 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.bindHoverHandler();
this.flipX = false; this.flipX = false;
this.isLocal = false; this.isLocal = false;
this.popupMenuIsHovered = false;
/** /**
* The flag is set to <tt>true</tt> after the 'onplay' event has been * 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> * 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"); let element = $("#" + this.videoSpanId + " .remotevideomenu");
this.popover = new JitsiPopover(element, options); 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 // override popover show method to make sure we will update the content
// before showing the popover // before showing the popover
@ -102,6 +107,19 @@ RemoteVideo.prototype._initPopupMenu = function (popupMenuElement) {
}.bind(this); }.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. * Generates the popup menu content.
* *