Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java
index e1e8b9990a..6df34525d0 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/TabFolder.java
@@ -745,6 +745,16 @@ void setSelection (int index, boolean notify) {
}
}
+boolean updateTextDirection(int textDirection) {
+ if (super.updateTextDirection(textDirection)) {
+ for (int i = 0, n = items.length; i < n && items[i] != null; i++) {
+ items[i].updateTextDirection (textDirection);
+ }
+ return true;
+ }
+ return false;
+}
+
String toolTipText (NMTTDISPINFO hdr) {
if ((hdr.uFlags & OS.TTF_IDISHWND) != 0) {
return null;
@@ -759,7 +769,8 @@ String toolTipText (NMTTDISPINFO hdr) {
* enters the control from the top edge. The fix is
* to explicitly set TTF_RTLREADING.
*/
- if ((style & SWT.RIGHT_TO_LEFT) != 0) {
+ int flags = SWT.RIGHT_TO_LEFT | SWT.FLIP_TEXT_DIRECTION;
+ if ((style & flags) != 0 && (style & flags) != flags) {
hdr.uFlags |= OS.TTF_RTLREADING;
} else {
hdr.uFlags &= ~OS.TTF_RTLREADING;
@@ -805,6 +816,7 @@ void updateOrientation () {
} else {
bits &= ~OS.WS_EX_LAYOUTRTL;
}
+ bits &= ~OS.WS_EX_RTLREADING;
OS.SetWindowLong (hwndChild, OS.GWL_EXSTYLE, bits);
OS.InvalidateRect (hwndChild, null, true);
break;

Back to the top