http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89841
Revision: 89841
Author: foxtrott
Date: 2011-06-10 19:05:39 +0000 (Fri, 10 Jun 2011)
Log Message:
-----------
minor fixes for tooltip positioning and event handling
Modified Paths:
--------------
trunk/extensions/Lingo/libs/Lingo.js
Modified: trunk/extensions/Lingo/libs/Lingo.js
===================================================================
--- trunk/extensions/Lingo/libs/Lingo.js 2011-06-10 19:00:40 UTC (rev
89840)
+++ trunk/extensions/Lingo/libs/Lingo.js 2011-06-10 19:05:39 UTC (rev
89841)
@@ -1,15 +1,22 @@
jQuery(function ($){
$(".tooltip")
- .mouseenter(function(){
+ .mouseenter(function( event ){
+ event.stopImmediatePropagation();
+
var tip = $(this);
var wrapper = tip.find(".tooltip_tipwrapper");
var tipdef = wrapper.find(".tooltip_tip");
- var maxAvailableWidth = window.innerWidth - 15; // -15 for
scrollbar
+ if ( wrapper.css("display") == "block" ) {
+ return;
+ }
+
+ var termLineHeight = tip.outerHeight() + 5;
+ var maxAvailableWidth = $(window).width();
var maxAvailableHeightAbove = tip.offset().top -
$(window).scrollTop() - 5;
- var maxAvailableHeightBelow = window.innerHeight -
(tip.offset().top - $(window).scrollTop()) - tip.outerHeight() - 5 - 15; //
-15 for scrollbar
+ var maxAvailableHeightBelow = $(window).height() -
(tip.offset().top - $(window).scrollTop()) - termLineHeight;
var maxWidthWithoutBreak = maxAvailableWidth / 3;
@@ -40,6 +47,8 @@
maxAvailableHeightBelow -= borderWidth;
maxWidthWithoutBreak -= borderWidth;
+ var maxAvailableWidthRight = maxAvailableWidth -
(tip.offset().left - $(window).scrollLeft() );
+
tipdef.width( maxAvailableWidth );
// height if constrained to the window width, i.e.
@@ -77,11 +86,11 @@
// done with it
wrapper.css({
'width': maxAvailableWidth + 'px',
- 'padding-left': '10px',
- 'left': '0px',
+ 'padding-left': '0px',
+ 'left': (maxAvailableWidthRight -
maxAvailableWidth) +'px',
'top': '0px',
'padding-bottom': '0px',
- 'padding-top' : (tip.outerHeight() + 5 ) +'px'
+ 'padding-top' : termLineHeight +'px'
});
} else {
@@ -109,8 +118,6 @@
wrapper.height(tipdef.height());
- var maxAvailableWidthRight = window.innerWidth -
(tip.offset().left - $(window).scrollLeft() ) - borderWidth;
-
if ( maxAvailableWidthRight - 10 >= width ) {
// will not bump into right window border
wrapper.css({
@@ -121,8 +128,7 @@
} else {
// will bump into right window border
- var left = maxAvailableWidthRight - width -
borderWidth;
- wrapper.width(width);
+ var left = maxAvailableWidthRight - width;
wrapper.css({
'width': width + 'px',
'padding-left': '0px',
@@ -133,7 +139,7 @@
if ( placeAbove ) {
wrapper.css({
'top': ( - tipdef.outerHeight() - 5) +
'px',
- 'padding-bottom': (tip.outerHeight() +
5 ) +'px',
+ 'padding-bottom': termLineHeight +'px',
'padding-top' : '0px'
});
@@ -142,7 +148,7 @@
//
'position': 'absolute',
'top': '0px',
'padding-bottom': '0px',
- 'padding-top' : (tip.outerHeight() + 5
) +'px'
+ 'padding-top' : termLineHeight +'px'
});
}
@@ -164,13 +170,20 @@
.fadeIn(200);
})
- .mouseleave(function(){
- $(".tooltip_tipwrapper", this).fadeOut(200);
+ .mouseleave( function( event ){
+ event.stopImmediatePropagation();
+
+ $(this).find(".tooltip_tipwrapper").fadeOut(200);
})
-
+
+ .find(".tooltip_tipwrapper")
+ .css( "display", "none" )
+
.find(".tooltip_tip")
- .mouseleave(function(){
- $(this).parent().parent().mouseleave();
+ .mouseleave( function( event ){
+ event.stopImmediatePropagation();
+
+ $(this).parent().fadeOut(200);
})
});
\ No newline at end of file
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs