Index: trunk/extensions/WebFonts/resources/ext.webfonts.js |
— | — | @@ -348,17 +348,34 @@ |
349 | 349 | .attr( 'title', mw.msg( 'webfonts-menu-tooltip' ) ); |
350 | 350 | // This is the fonts link |
351 | 351 | var $li = $( '<li>' ).attr( 'id', 'pt-webfont' ).append( $link ); |
| 352 | + var positionFunction, menuSide; |
| 353 | + if ( $( 'body' ).hasClass( 'rtl' ) ) { |
| 354 | + positionFunction = 'append'; |
| 355 | + menuSide = 'left'; |
| 356 | + } |
| 357 | + else { |
| 358 | + positionFunction = 'prepend'; |
| 359 | + menuSide = 'right'; |
| 360 | + } |
352 | 361 | // If RTL, add to the right of top personal links. Else, to the left |
353 | | - var fn = $( 'body' ).hasClass( 'rtl' ) ? 'append' : 'prepend'; |
354 | | - $( '#p-personal ul:first' )[fn]( $li ); |
| 362 | + $( '#p-personal ul:first' )[positionFunction]( $li ); |
| 363 | + |
355 | 364 | $( 'body' ).prepend( $menu ); |
356 | 365 | $li.click( function( event ) { |
357 | | - $menuItemsDiv.css( 'left', $li.offset().left ); |
358 | | - if( $menu.hasClass( 'open' ) ){ |
| 366 | + var menuOffset; |
| 367 | + if ( $( 'body' ).hasClass( 'rtl' ) ) { |
| 368 | + menuOffset = $li.offset().left; |
| 369 | + } |
| 370 | + else { |
| 371 | + menuOffset = $(window).width() - ( $li.offset().left + $li.outerWidth() ); |
| 372 | + } |
| 373 | + $menuItemsDiv.css( menuSide, menuOffset ); |
| 374 | + |
| 375 | + if( $menu.hasClass( 'open' ) ) { |
359 | 376 | $menu.removeClass( 'open' ); |
360 | | - } else{ |
| 377 | + } else { |
361 | 378 | $( 'div.open' ).removeClass( 'open' ); |
362 | | - $menu.addClass( 'open' ); |
| 379 | + $menu.addClass( 'open' ); |
363 | 380 | event.stopPropagation(); |
364 | 381 | } |
365 | 382 | } ); |