summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
diff options
context:
space:
mode:
authorBogdan Gheorghe <gheorghe>2008-04-03 19:46:34 +0000
committerBogdan Gheorghe <gheorghe>2008-04-03 19:46:34 +0000
commit0484a0c9dec969c27763b2f5da7ad5db559b1597 (patch)
treeeda9f6f6ed49da971310926ad62def0fcd27e157 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
parent2486773519200a5726741a30e65461bdad86a446 (diff)
downloadeclipse.platform.swt-0484a0c9dec969c27763b2f5da7ad5db559b1597.tar.gz
eclipse.platform.swt-0484a0c9dec969c27763b2f5da7ad5db559b1597.tar.xz
eclipse.platform.swt-0484a0c9dec969c27763b2f5da7ad5db559b1597.zip
224121 BIDI3.4:HCG Print dialog is not mirrored completely
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
index cf10b83c27..502e166662 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/MessageBox.java
@@ -148,17 +148,22 @@ public int open () {
buffer = Converter.wcsToMbcs(null, title, true);
OS.gtk_window_set_title(handle,buffer);
Display display = parent != null ? parent.getDisplay (): Display.getCurrent ();
- if ((style & SWT.RIGHT_TO_LEFT) != 0) {
- OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
- OS.gtk_container_forall (handle, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);
- }
display.addIdleProc ();
Dialog oldModal = null;
if (OS.gtk_window_get_modal (handle)) {
oldModal = display.getModalDialog ();
display.setModalDialog (this);
}
+ int signalId = 0;
+ int /*long*/ hookId = 0;
+ if ((style & SWT.RIGHT_TO_LEFT) != 0) {
+ signalId = OS.g_signal_lookup (OS.map, OS.GTK_TYPE_WIDGET());
+ hookId = OS.g_signal_add_emission_hook (signalId, 0, display.setDirectionProc, handle, 0);
+ }
int response = OS.gtk_dialog_run (handle);
+ if ((style & SWT.RIGHT_TO_LEFT) != 0) {
+ OS.g_signal_remove_emission_hook (signalId, hookId);
+ }
if (OS.gtk_window_get_modal (handle)) {
display.setModalDialog (oldModal);
}