diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java')
-rwxr-xr-x | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java index dc0b14f966..b7fa98ff9d 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Control.java @@ -1016,16 +1016,20 @@ public int internal_new_GC (GCData data) { } if (hDC == 0) SWT.error(SWT.ERROR_NO_HANDLES); if (data != null) { - int mask = SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT; - if ((data.style & mask) != 0) { - data.layout = (data.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.LAYOUT_RTL : 0; - } else { - int flags = OS.GetLayout (hDC); - if ((flags & OS.LAYOUT_RTL) != 0) { - data.style |= SWT.RIGHT_TO_LEFT | SWT.MIRRORED; + if ((OS.WIN32_MAJOR << 16 | OS.WIN32_MINOR) >= (4 << 16 | 10)) { + int mask = SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT; + if ((data.style & mask) != 0) { + data.layout = (data.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.LAYOUT_RTL : 0; } else { - data.style |= SWT.LEFT_TO_RIGHT; + int flags = OS.GetLayout (hDC); + if ((flags & OS.LAYOUT_RTL) != 0) { + data.style |= SWT.RIGHT_TO_LEFT | SWT.MIRRORED; + } else { + data.style |= SWT.LEFT_TO_RIGHT; + } } + } else { + data.style |= SWT.LEFT_TO_RIGHT; } data.device = getDisplay (); data.foreground = getForegroundPixel (); |