Mooeypoo has uploaded a new change for review.
https://gerrit.wikimedia.org/r/69281
Change subject: [WIP] Link surface fix for RTL
......................................................................
[WIP] Link surface fix for RTL
This is NOT ready for merge, I fixed most of the problem and the link
surface appears in RTL, however, I got stuck with the position for the
TextInputMenuWidget, and I need a second (third/fourth/tenth) pair of
eyes. Help is appreciated, and thanks in advance!
Bug: 49416
Change-Id: I312610ca630a8f75f1a0778e97f227f35a003b41
---
M modules/ve/ui/styles/ve.ui.Surface.css
M modules/ve/ui/ve.ui.Context.js
M modules/ve/ui/ve.ui.Surface.js
M modules/ve/ui/widgets/ve.ui.TextInputMenuWidget.js
4 files changed, 40 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/81/69281/1
diff --git a/modules/ve/ui/styles/ve.ui.Surface.css
b/modules/ve/ui/styles/ve.ui.Surface.css
index 5e45bc0..6a7fcbf 100644
--- a/modules/ve/ui/styles/ve.ui.Surface.css
+++ b/modules/ve/ui/styles/ve.ui.Surface.css
@@ -23,3 +23,14 @@
left: 0;
z-index: 1000;
}
+
+ /* @noflip */
+.ve-ui-surface-overlay-rtl {
+ font-family: sans-serif;
+ line-height: 1.5em;
+ font-size: 1em;
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 1000;
+}
\ No newline at end of file
diff --git a/modules/ve/ui/ve.ui.Context.js b/modules/ve/ui/ve.ui.Context.js
index 99ceb77..325a3f8 100644
--- a/modules/ve/ui/ve.ui.Context.js
+++ b/modules/ve/ui/ve.ui.Context.js
@@ -276,7 +276,14 @@
$container = inspector ? this.inspectors.$ : this.$menu;
this.popup.align = 'center';
}
- this.$.css( { 'left': position.x, 'top': position.y } );
+
+ if ( $('html').css( 'direction' ) === 'rtl' ) {
+ position.x = (window.innerWidth - position.x);
+ this.$.css( { 'right': position.x, 'top': position.y }
);
+ } else {
+ this.$.css( { 'left': position.x, 'top': position.y } );
+ }
+
this.popup.display(
position.x,
position.y,
diff --git a/modules/ve/ui/ve.ui.Surface.js b/modules/ve/ui/ve.ui.Surface.js
index d21adfd..494099b 100644
--- a/modules/ve/ui/ve.ui.Surface.js
+++ b/modules/ve/ui/ve.ui.Surface.js
@@ -33,9 +33,16 @@
this.$
.addClass( 've-ui-surface' )
.append( this.view.$ );
- this.$localOverlay
+ if ( $( 'body' ).hasClass( 'rtl' ) ) {
+ // If the language direction is RTL, switch left/right
directions:
+ this.$localOverlay
+ .addClass( 've-ui-surface-overlay-rtl
ve-ui-surface-overlay-local' )
+ .append( this.context.$ );
+ } else {
+ this.$localOverlay
.addClass( 've-ui-surface-overlay ve-ui-surface-overlay-local' )
.append( this.context.$ );
+ }
this.$globalOverlay
.addClass( 've-ui-surface-overlay ve-ui-surface-overlay-global'
)
.append( this.dialogs.$ );
diff --git a/modules/ve/ui/widgets/ve.ui.TextInputMenuWidget.js
b/modules/ve/ui/widgets/ve.ui.TextInputMenuWidget.js
index 8639d1f..a16c517 100644
--- a/modules/ve/ui/widgets/ve.ui.TextInputMenuWidget.js
+++ b/modules/ve/ui/widgets/ve.ui.TextInputMenuWidget.js
@@ -96,6 +96,19 @@
dimensions.top += frameOffset.top;
}
+ if ( $('html').css( 'direction' ) === 'rtl' ) {
+ frameOffset = this.input.$$.frame.$.offset();
+ // The dimension should change from 'left' to 'right' to
accommodate the changes
+ // in the link surface definition. *However* the current
position of this container
+ // is all screwed up.
+
+ // The math here is driving me crazy. I've tried multiple
calculations over the left/right
+ // and widths so I can have the right position, but I keep
getting it wrong.
+ //Is there a way to get the 'right' property of the link of the
ve.ui.Surface
+ //that is defined for the link popup?
+ dimensions.right = window.innerWidth - frameOffset.left;
+ }
+
this.$.css( dimensions );
return this;
};
--
To view, visit https://gerrit.wikimedia.org/r/69281
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I312610ca630a8f75f1a0778e97f227f35a003b41
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits