[SCM] Debian packaging for swt-gtk. branch, master, updated. debian/3.6.2-1-6-g805470a

Ahmed El-Mahmoudy aelmahmoudy-guest at alioth.debian.org
Sat Jun 25 07:58:11 UTC 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Debian packaging for swt-gtk.".

The branch, master has been updated
       via  805470a61189113fb9ef58307d3a7afa0ccf8ccd (commit)
       via  0450eff5bce6b3cce09ed5c6c8f3696fef1c5e55 (commit)
       via  6c2655e54ff07844ac630580fc8dc884f2053fff (commit)
       via  0ef7f8c934d9358975800d1d6ed6eb264ea23655 (commit)
       via  4e5501e93d9bcb92210c38a2edb2025f0bc584e4 (commit)
       via  de8527be87ae450ddd01db4c3e500024a04a5f24 (commit)
      from  96c14966d70dcf0e2bb21ca1f9231f01979aec78 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 805470a61189113fb9ef58307d3a7afa0ccf8ccd
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Jun 25 08:12:54 2011 +0200

    Bumped Standards-Version to 3.9.2, no changes needed

commit 0450eff5bce6b3cce09ed5c6c8f3696fef1c5e55
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Jun 25 08:09:29 2011 +0200

    Mass rename 3.6[.2] => 3.7

commit 6c2655e54ff07844ac630580fc8dc884f2053fff
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Jun 25 08:01:16 2011 +0200

    Removed 02-webkit_linkage and 04-fix-webkit-includes patches as they got
    applied upstream.

commit 0ef7f8c934d9358975800d1d6ed6eb264ea23655
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Jun 25 07:59:07 2011 +0200

    Updated arch64.diff patch for new upstream release.

commit 4e5501e93d9bcb92210c38a2edb2025f0bc584e4
Merge: 96c1496 de8527b
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Jun 25 07:57:56 2011 +0200

    Merge commit 'upstream/3.7'

-----------------------------------------------------------------------

Summary of changes:
 atk.c                                              |   66 +
 atk_stats.c                                        |   16 +-
 atk_stats.h                                        |   12 +
 atk_structs.c                                      |   49 +
 atk_structs.h                                      |   12 +
 build.sh                                           |   18 +-
 cairo.c                                            |    2 +-
 cairo.h                                            |    2 +-
 cairo_custom.h                                     |    2 +-
 cairo_stats.c                                      |    2 +-
 cairo_stats.h                                      |    2 +-
 cairo_structs.c                                    |    2 +-
 cairo_structs.h                                    |    2 +-
 callback.c                                         |   16 -
 debian/Makefile                                    |    2 +-
 debian/control                                     |   36 +-
 debian/java-config/libswt-gtk-3.6-java             |    1 -
 debian/java-config/libswt-gtk-3.7-java             |    1 +
 ...ni.install => libswt-cairo-gtk-3.7-jni.install} |    0
 ...-jni.install => libswt-glx-gtk-3.7-jni.install} |    0
 ...ni.install => libswt-gnome-gtk-3.7-jni.install} |    0
 debian/libswt-gtk-3.6-java.links                   |    1 -
 ....6-java.install => libswt-gtk-3.7-java.install} |    0
 debian/libswt-gtk-3.7-java.links                   |    1 +
 ...-java.postinst => libswt-gtk-3.7-java.postinst} |    2 +-
 ...tk-3.6-java.prerm => libswt-gtk-3.7-java.prerm} |    2 +-
 ...-3.6-jni.install => libswt-gtk-3.7-jni.install} |    0
 ....install => libswt-mozilla-gtk-3.7-jni.install} |    0
 ...i.install => libswt-webkit-gtk-3.7-jni.install} |    0
 debian/patches/64/arch64.diff                      |10486 +++++++++++---------
 debian/patches/common/02-webkit_linkage.patch      |   15 -
 debian/patches/common/04-fix-webkit-includes.patch |   17 -
 gnome.h                                            |    2 +-
 make_aix.mak                                       |    2 +-
 make_common.mak                                    |    6 +-
 make_aix.mak => make_hpux.mak                      |   28 +-
 make_linux.mak                                     |    6 +-
 make_solaris.mak                                   |    6 +-
 org/eclipse/swt/SWT.java                           |  203 +-
 org/eclipse/swt/accessibility/Accessible.java      |  107 +-
 .../swt/accessibility/AccessibleActionEvent.java   |    2 +-
 .../accessibility/AccessibleAttributeAdapter.java  |    6 +-
 .../accessibility/AccessibleAttributeEvent.java    |    2 +-
 .../accessibility/AccessibleAttributeListener.java |    6 +-
 .../AccessibleEditableTextAdapter.java             |  107 +
 .../accessibility/AccessibleEditableTextEvent.java |   90 +
 .../AccessibleEditableTextListener.java            |  110 +
 .../swt/accessibility/AccessibleFactory.java       |   55 +-
 .../accessibility/AccessibleHyperlinkEvent.java    |    2 +-
 .../swt/accessibility/AccessibleObject.java        |  341 +
 .../accessibility/AccessibleTableCellEvent.java    |    2 +-
 .../swt/accessibility/AccessibleTableEvent.java    |    2 +-
 .../AccessibleTextAttributeEvent.java              |   64 +-
 .../AccessibleTextExtendedListener.java            |    4 +-
 .../swt/accessibility/AccessibleValueEvent.java    |    2 +-
 org/eclipse/swt/browser/Browser.java               |   56 +-
 org/eclipse/swt/browser/BrowserFactory.java        |   41 +
 org/eclipse/swt/browser/BrowserFunction.java       |   19 +-
 org/eclipse/swt/browser/External.java              |   44 +-
 org/eclipse/swt/browser/Mozilla.java               |  450 +-
 org/eclipse/swt/browser/MozillaDelegate.java       |    4 +-
 org/eclipse/swt/browser/WebBrowser.java            |   16 +-
 org/eclipse/swt/browser/WebKit.java                |  265 +-
 org/eclipse/swt/custom/CBanner.java                |    5 +-
 org/eclipse/swt/custom/CCombo.java                 |   51 +-
 org/eclipse/swt/custom/CTabFolder.java             |   35 +-
 org/eclipse/swt/custom/CTabFolderRenderer.java     |   69 +-
 org/eclipse/swt/custom/PopupList.java              |    7 +-
 org/eclipse/swt/custom/SashForm.java               |   22 +-
 org/eclipse/swt/custom/StyledText.java             |  143 +-
 org/eclipse/swt/custom/StyledTextRenderer.java     |    3 +-
 org/eclipse/swt/custom/TableEditor.java            |    9 +-
 org/eclipse/swt/dnd/Clipboard.java                 |   30 +-
 org/eclipse/swt/dnd/ClipboardProxy.java            |   24 +-
 org/eclipse/swt/events/GestureEvent.java           |  158 +
 .../{PaintListener.java => GestureListener.java}   |   31 +-
 org/eclipse/swt/events/TouchEvent.java             |   93 +
 ...{DragDetectListener.java => TouchListener.java} |   27 +-
 org/eclipse/swt/graphics/Device.java               |   23 +-
 org/eclipse/swt/graphics/Font.java                 |   12 +-
 org/eclipse/swt/graphics/FontData.java             |    2 +-
 org/eclipse/swt/graphics/GC.java                   |    7 +-
 org/eclipse/swt/graphics/Image.java                |    2 +-
 org/eclipse/swt/graphics/LineAttributes.java       |   59 +-
 org/eclipse/swt/graphics/TextLayout.java           |  102 +-
 org/eclipse/swt/graphics/TextStyle.java            |    8 +-
 org/eclipse/swt/internal/LONG.java                 |    4 +-
 org/eclipse/swt/internal/Library.java              |   38 +-
 org/eclipse/swt/internal/Lock.java                 |    2 +-
 org/eclipse/swt/internal/SWTMessages.properties    |   17 +-
 org/eclipse/swt/internal/SWTMessages_ar.properties |    9 +-
 ...ges_mn.properties => SWTMessages_bg.properties} |    2 +-
 org/eclipse/swt/internal/SWTMessages_cs.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_da.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_de.properties |   11 +-
 org/eclipse/swt/internal/SWTMessages_el.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_es.properties |    8 +
 org/eclipse/swt/internal/SWTMessages_et.properties |    3 +
 org/eclipse/swt/internal/SWTMessages_fa.properties |   54 +
 org/eclipse/swt/internal/SWTMessages_fi.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_fr.properties |   11 +-
 ...ges_mn.properties => SWTMessages_hi.properties} |    2 +-
 org/eclipse/swt/internal/SWTMessages_hu.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_it.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_iw.properties |   11 +-
 org/eclipse/swt/internal/SWTMessages_ja.properties |   11 +-
 org/eclipse/swt/internal/SWTMessages_ko.properties |   11 +-
 org/eclipse/swt/internal/SWTMessages_mn.properties |    3 +-
 org/eclipse/swt/internal/SWTMessages_nl.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_no.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_pl.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_pt.properties |    9 +-
 .../swt/internal/SWTMessages_pt_BR.properties      |    9 +-
 org/eclipse/swt/internal/SWTMessages_ro.properties |    7 +-
 org/eclipse/swt/internal/SWTMessages_ru.properties |    8 +
 org/eclipse/swt/internal/SWTMessages_sl.properties |   65 +
 org/eclipse/swt/internal/SWTMessages_sv.properties |    9 +-
 org/eclipse/swt/internal/SWTMessages_tr.properties |    7 +
 org/eclipse/swt/internal/SWTMessages_uk.properties |    3 +
 org/eclipse/swt/internal/SWTMessages_zh.properties |    9 +
 .../swt/internal/SWTMessages_zh_TW.properties      |   11 +-
 .../swt/internal/accessibility/gtk/ATK.java        |   13 +
 .../gtk/AtkEditableTextIface.java}                 |   23 +-
 org/eclipse/swt/internal/gtk/OS.java               |  252 +-
 org/eclipse/swt/internal/image/JPEGDecoder.java    |   18 +-
 org/eclipse/swt/internal/mozilla/XPCOM.java        |    2 +-
 .../{nsICancelable.java => init/GREProperty.java}  |   28 +-
 .../swt/internal/mozilla/init/GREVersionRange.java |   35 +-
 .../swt/internal/mozilla/init/XPCOMInit.java       |    9 +-
 .../internal/mozilla/nsDynamicFunctionLoad.java    |   35 +-
 org/eclipse/swt/internal/mozilla/nsID.java         |   21 +-
 org/eclipse/swt/internal/theme/ButtonDrawData.java |   12 +-
 org/eclipse/swt/internal/theme/ComboDrawData.java  |   13 +-
 org/eclipse/swt/internal/theme/Theme.java          |   10 +-
 org/eclipse/swt/internal/webkit/WebKitGTK.java     |    3 +-
 org/eclipse/swt/layout/GridData.java               |    2 +-
 org/eclipse/swt/layout/GridLayout.java             |    5 +-
 org/eclipse/swt/printing/PrintDialog.java          |   76 +-
 org/eclipse/swt/printing/Printer.java              |  203 +-
 org/eclipse/swt/printing/PrinterData.java          |   66 +-
 org/eclipse/swt/program/Program.java               |   67 +-
 org/eclipse/swt/widgets/Button.java                |  177 +-
 org/eclipse/swt/widgets/Caret.java                 |    3 +-
 org/eclipse/swt/widgets/ColorDialog.java           |   12 +-
 org/eclipse/swt/widgets/Combo.java                 |  111 +-
 org/eclipse/swt/widgets/Composite.java             |   29 +-
 org/eclipse/swt/widgets/Control.java               |  268 +-
 org/eclipse/swt/widgets/CoolBar.java               |   15 +-
 org/eclipse/swt/widgets/DateTime.java              |  885 ++-
 org/eclipse/swt/widgets/Decorations.java           |    7 +
 org/eclipse/swt/widgets/DirectoryDialog.java       |   20 +-
 org/eclipse/swt/widgets/Display.java               |   92 +-
 org/eclipse/swt/widgets/Event.java                 |   41 +-
 org/eclipse/swt/widgets/ExpandBar.java             |   11 +-
 org/eclipse/swt/widgets/ExpandItem.java            |   15 +-
 org/eclipse/swt/widgets/FileDialog.java            |   20 +-
 org/eclipse/swt/widgets/FontDialog.java            |   12 +-
 org/eclipse/swt/widgets/Group.java                 |   11 +-
 org/eclipse/swt/widgets/IME.java                   |    6 +-
 org/eclipse/swt/widgets/Label.java                 |   14 +-
 org/eclipse/swt/widgets/Link.java                  |    9 +-
 org/eclipse/swt/widgets/List.java                  |   25 +-
 org/eclipse/swt/widgets/Menu.java                  |   96 +-
 org/eclipse/swt/widgets/MenuItem.java              |   55 +-
 org/eclipse/swt/widgets/MessageBox.java            |   12 +-
 org/eclipse/swt/widgets/ProgressBar.java           |    3 +-
 org/eclipse/swt/widgets/Sash.java                  |    3 +-
 org/eclipse/swt/widgets/Scale.java                 |    3 +-
 org/eclipse/swt/widgets/ScrollBar.java             |   13 +-
 org/eclipse/swt/widgets/Scrollable.java            |   15 +-
 org/eclipse/swt/widgets/Shell.java                 |   79 +-
 org/eclipse/swt/widgets/Slider.java                |   10 +-
 org/eclipse/swt/widgets/Spinner.java               |   20 +-
 org/eclipse/swt/widgets/Synchronizer.java          |    5 +-
 org/eclipse/swt/widgets/TabFolder.java             |   11 +-
 org/eclipse/swt/widgets/TabItem.java               |   17 +-
 org/eclipse/swt/widgets/Table.java                 |   39 +-
 org/eclipse/swt/widgets/TableColumn.java           |   13 +-
 org/eclipse/swt/widgets/Text.java                  |  233 +-
 org/eclipse/swt/widgets/ToolBar.java               |   10 +-
 org/eclipse/swt/widgets/ToolItem.java              |   32 +-
 org/eclipse/swt/widgets/ToolTip.java               |    3 +-
 org/eclipse/swt/widgets/Touch.java                 |  100 +
 org/eclipse/swt/widgets/TouchSource.java           |   89 +
 org/eclipse/swt/widgets/TrayItem.java              |   10 +-
 org/eclipse/swt/widgets/Tree.java                  |   57 +-
 org/eclipse/swt/widgets/TreeColumn.java            |   13 +-
 org/eclipse/swt/widgets/TypedListener.java         |   12 +-
 org/eclipse/swt/widgets/Widget.java                |   10 +-
 os.c                                               |  362 +-
 os_custom.c                                        |   71 +-
 os_custom.h                                        |   20 +-
 os_stats.c                                         |   39 +-
 os_stats.h                                         |   35 +-
 swt.h                                              |    2 +-
 version.txt                                        |    2 +-
 webkitgtk.h                                        |    7 +-
 xpcom_custom.cpp                                   |    2 +-
 xpcom_custom.h                                     |    2 +-
 xpcominit.cpp                                      |   24 +-
 xpcominit_stats.cpp                                |    7 +-
 xpcominit_stats.h                                  |    3 +-
 xpcominit_structs.cpp                              |   36 +-
 xpcominit_structs.h                                |   14 +-
 204 files changed, 12016 insertions(+), 6403 deletions(-)

diff --git a/atk.c b/atk.c
index 3b25002..f542499 100644
--- a/atk.c
+++ b/atk.c
@@ -55,6 +55,18 @@ JNIEXPORT jintLong JNICALL ATK_NATIVE(ATK_1TYPE_1COMPONENT)
 }
 #endif
 
+#ifndef NO_ATK_1TYPE_1EDITABLE_1TEXT
+JNIEXPORT jintLong JNICALL ATK_NATIVE(ATK_1TYPE_1EDITABLE_1TEXT)
+	(JNIEnv *env, jclass that)
+{
+	jintLong rc = 0;
+	ATK_NATIVE_ENTER(env, that, ATK_1TYPE_1EDITABLE_1TEXT_FUNC);
+	rc = (jintLong)ATK_TYPE_EDITABLE_TEXT;
+	ATK_NATIVE_EXIT(env, that, ATK_1TYPE_1EDITABLE_1TEXT_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO_ATK_1TYPE_1HYPERTEXT
 JNIEXPORT jintLong JNICALL ATK_NATIVE(ATK_1TYPE_1HYPERTEXT)
 	(JNIEnv *env, jclass that)
@@ -223,6 +235,18 @@ JNIEXPORT jintLong JNICALL ATK_NATIVE(_1ATK_1COMPONENT_1GET_1IFACE)
 }
 #endif
 
+#ifndef NO__1ATK_1EDITABLE_1TEXT_1GET_1IFACE
+JNIEXPORT jintLong JNICALL ATK_NATIVE(_1ATK_1EDITABLE_1TEXT_1GET_1IFACE)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	jintLong rc = 0;
+	ATK_NATIVE_ENTER(env, that, _1ATK_1EDITABLE_1TEXT_1GET_1IFACE_FUNC);
+	rc = (jintLong)ATK_EDITABLE_TEXT_GET_IFACE(arg0);
+	ATK_NATIVE_EXIT(env, that, _1ATK_1EDITABLE_1TEXT_1GET_1IFACE_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1ATK_1HYPERTEXT_1GET_1IFACE
 JNIEXPORT jintLong JNICALL ATK_NATIVE(_1ATK_1HYPERTEXT_1GET_1IFACE)
 	(JNIEnv *env, jclass that, jintLong arg0)
@@ -737,6 +761,27 @@ JNIEXPORT void JNICALL ATK_NATIVE(memmove__JLorg_eclipse_swt_internal_accessibil
 }
 #endif
 
+#if (!defined(NO_memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2) && !defined(JNI64)) || (!defined(NO_memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2) && defined(JNI64))
+#ifndef JNI64
+JNIEXPORT void JNICALL ATK_NATIVE(memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1)
+#else
+JNIEXPORT void JNICALL ATK_NATIVE(memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1)
+#endif
+{
+#ifndef JNI64
+	ATK_NATIVE_ENTER(env, that, memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC);
+#else
+	ATK_NATIVE_ENTER(env, that, memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC);
+#endif
+	if (arg1) getAtkEditableTextIfaceFields(env, arg1, (AtkEditableTextIface *)arg0);
+#ifndef JNI64
+	ATK_NATIVE_EXIT(env, that, memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC);
+#else
+	ATK_NATIVE_EXIT(env, that, memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC);
+#endif
+}
+#endif
+
 #if (!defined(NO_memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2) && !defined(JNI64)) || (!defined(NO_memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2) && defined(JNI64))
 #ifndef JNI64
 JNIEXPORT void JNICALL ATK_NATIVE(memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2)(JNIEnv *env, jclass that, jintLong arg0, jobject arg1)
@@ -999,6 +1044,27 @@ JNIEXPORT void JNICALL ATK_NATIVE(memmove__Lorg_eclipse_swt_internal_accessibili
 }
 #endif
 
+#if (!defined(NO_memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I) && !defined(JNI64)) || (!defined(NO_memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J) && defined(JNI64))
+#ifndef JNI64
+JNIEXPORT void JNICALL ATK_NATIVE(memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1)
+#else
+JNIEXPORT void JNICALL ATK_NATIVE(memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1)
+#endif
+{
+#ifndef JNI64
+	ATK_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I_FUNC);
+#else
+	ATK_NATIVE_ENTER(env, that, memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J_FUNC);
+#endif
+	if (arg0) setAtkEditableTextIfaceFields(env, arg0, (AtkEditableTextIface *)arg1);
+#ifndef JNI64
+	ATK_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I_FUNC);
+#else
+	ATK_NATIVE_EXIT(env, that, memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J_FUNC);
+#endif
+}
+#endif
+
 #if (!defined(NO_memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2I) && !defined(JNI64)) || (!defined(NO_memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2J) && defined(JNI64))
 #ifndef JNI64
 JNIEXPORT void JNICALL ATK_NATIVE(memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2I)(JNIEnv *env, jclass that, jobject arg0, jintLong arg1)
diff --git a/atk_stats.c b/atk_stats.c
index 880122a..8563724 100644
--- a/atk_stats.c
+++ b/atk_stats.c
@@ -18,12 +18,13 @@
 
 #ifdef NATIVE_STATS
 
-int ATK_nativeFunctionCount = 74;
-int ATK_nativeFunctionCallCount[74];
+int ATK_nativeFunctionCount = 78;
+int ATK_nativeFunctionCallCount[78];
 char * ATK_nativeFunctionNames[] = {
 	"ATK_1IS_1NO_1OP_1OBJECT_1FACTORY",
 	"ATK_1TYPE_1ACTION",
 	"ATK_1TYPE_1COMPONENT",
+	"ATK_1TYPE_1EDITABLE_1TEXT",
 	"ATK_1TYPE_1HYPERTEXT",
 	"ATK_1TYPE_1OBJECT_1FACTORY",
 	"ATK_1TYPE_1SELECTION",
@@ -38,6 +39,7 @@ char * ATK_nativeFunctionNames[] = {
 	"GTK_1TYPE_1ACCESSIBLE",
 	"_1ATK_1ACTION_1GET_1IFACE",
 	"_1ATK_1COMPONENT_1GET_1IFACE",
+	"_1ATK_1EDITABLE_1TEXT_1GET_1IFACE",
 	"_1ATK_1HYPERTEXT_1GET_1IFACE",
 	"_1ATK_1OBJECT_1FACTORY_1CLASS",
 	"_1ATK_1SELECTION_1GET_1IFACE",
@@ -110,6 +112,11 @@ char * ATK_nativeFunctionNames[] = {
 	"memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkComponentIface_2",
 #endif
 #ifndef JNI64
+	"memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2",
+#else
+	"memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2",
+#endif
+#ifndef JNI64
 	"memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2",
 #else
 	"memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2",
@@ -170,6 +177,11 @@ char * ATK_nativeFunctionNames[] = {
 	"memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkComponentIface_2J",
 #endif
 #ifndef JNI64
+	"memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I",
+#else
+	"memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J",
+#endif
+#ifndef JNI64
 	"memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2I",
 #else
 	"memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2J",
diff --git a/atk_stats.h b/atk_stats.h
index 10e1400..4b40bb9 100644
--- a/atk_stats.h
+++ b/atk_stats.h
@@ -32,6 +32,7 @@ typedef enum {
 	ATK_1IS_1NO_1OP_1OBJECT_1FACTORY_FUNC,
 	ATK_1TYPE_1ACTION_FUNC,
 	ATK_1TYPE_1COMPONENT_FUNC,
+	ATK_1TYPE_1EDITABLE_1TEXT_FUNC,
 	ATK_1TYPE_1HYPERTEXT_FUNC,
 	ATK_1TYPE_1OBJECT_1FACTORY_FUNC,
 	ATK_1TYPE_1SELECTION_FUNC,
@@ -46,6 +47,7 @@ typedef enum {
 	GTK_1TYPE_1ACCESSIBLE_FUNC,
 	_1ATK_1ACTION_1GET_1IFACE_FUNC,
 	_1ATK_1COMPONENT_1GET_1IFACE_FUNC,
+	_1ATK_1EDITABLE_1TEXT_1GET_1IFACE_FUNC,
 	_1ATK_1HYPERTEXT_1GET_1IFACE_FUNC,
 	_1ATK_1OBJECT_1FACTORY_1CLASS_FUNC,
 	_1ATK_1SELECTION_1GET_1IFACE_FUNC,
@@ -118,6 +120,11 @@ typedef enum {
 	memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkComponentIface_2_FUNC,
 #endif
 #ifndef JNI64
+	memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC,
+#else
+	memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2_FUNC,
+#endif
+#ifndef JNI64
 	memmove__ILorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2_FUNC,
 #else
 	memmove__JLorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2_FUNC,
@@ -178,6 +185,11 @@ typedef enum {
 	memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkComponentIface_2J_FUNC,
 #endif
 #ifndef JNI64
+	memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2I_FUNC,
+#else
+	memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkEditableTextIface_2J_FUNC,
+#endif
+#ifndef JNI64
 	memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2I_FUNC,
 #else
 	memmove__Lorg_eclipse_swt_internal_accessibility_gtk_AtkHypertextIface_2J_FUNC,
diff --git a/atk_structs.c b/atk_structs.c
index 0f18573..cf07ec8 100644
--- a/atk_structs.c
+++ b/atk_structs.c
@@ -163,6 +163,55 @@ void setAtkComponentIfaceFields(JNIEnv *env, jobject lpObject, AtkComponentIface
 }
 #endif
 
+#ifndef NO_AtkEditableTextIface
+typedef struct AtkEditableTextIface_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID set_run_attributes, set_text_contents, insert_text, copy_text, cut_text, delete_text, paste_text;
+} AtkEditableTextIface_FID_CACHE;
+
+AtkEditableTextIface_FID_CACHE AtkEditableTextIfaceFc;
+
+void cacheAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject)
+{
+	if (AtkEditableTextIfaceFc.cached) return;
+	AtkEditableTextIfaceFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	AtkEditableTextIfaceFc.set_run_attributes = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "set_run_attributes", I_J);
+	AtkEditableTextIfaceFc.set_text_contents = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "set_text_contents", I_J);
+	AtkEditableTextIfaceFc.insert_text = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "insert_text", I_J);
+	AtkEditableTextIfaceFc.copy_text = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "copy_text", I_J);
+	AtkEditableTextIfaceFc.cut_text = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "cut_text", I_J);
+	AtkEditableTextIfaceFc.delete_text = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "delete_text", I_J);
+	AtkEditableTextIfaceFc.paste_text = (*env)->GetFieldID(env, AtkEditableTextIfaceFc.clazz, "paste_text", I_J);
+	AtkEditableTextIfaceFc.cached = 1;
+}
+
+AtkEditableTextIface *getAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject, AtkEditableTextIface *lpStruct)
+{
+	if (!AtkEditableTextIfaceFc.cached) cacheAtkEditableTextIfaceFields(env, lpObject);
+	lpStruct->set_run_attributes = (gboolean (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.set_run_attributes);
+	lpStruct->set_text_contents = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.set_text_contents);
+	lpStruct->insert_text = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.insert_text);
+	lpStruct->copy_text = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.copy_text);
+	lpStruct->cut_text = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.cut_text);
+	lpStruct->delete_text = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.delete_text);
+	lpStruct->paste_text = (void (*)())(*env)->GetIntLongField(env, lpObject, AtkEditableTextIfaceFc.paste_text);
+	return lpStruct;
+}
+
+void setAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject, AtkEditableTextIface *lpStruct)
+{
+	if (!AtkEditableTextIfaceFc.cached) cacheAtkEditableTextIfaceFields(env, lpObject);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.set_run_attributes, (jintLong)lpStruct->set_run_attributes);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.set_text_contents, (jintLong)lpStruct->set_text_contents);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.insert_text, (jintLong)lpStruct->insert_text);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.copy_text, (jintLong)lpStruct->copy_text);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.cut_text, (jintLong)lpStruct->cut_text);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.delete_text, (jintLong)lpStruct->delete_text);
+	(*env)->SetIntLongField(env, lpObject, AtkEditableTextIfaceFc.paste_text, (jintLong)lpStruct->paste_text);
+}
+#endif
+
 #ifndef NO_AtkHypertextIface
 typedef struct AtkHypertextIface_FID_CACHE {
 	int cached;
diff --git a/atk_structs.h b/atk_structs.h
index cc692cd..873fdae 100644
--- a/atk_structs.h
+++ b/atk_structs.h
@@ -51,6 +51,18 @@ void setAtkComponentIfaceFields(JNIEnv *env, jobject lpObject, AtkComponentIface
 #define AtkComponentIface_sizeof() 0
 #endif
 
+#ifndef NO_AtkEditableTextIface
+void cacheAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject);
+AtkEditableTextIface *getAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject, AtkEditableTextIface *lpStruct);
+void setAtkEditableTextIfaceFields(JNIEnv *env, jobject lpObject, AtkEditableTextIface *lpStruct);
+#define AtkEditableTextIface_sizeof() sizeof(AtkEditableTextIface)
+#else
+#define cacheAtkEditableTextIfaceFields(a,b)
+#define getAtkEditableTextIfaceFields(a,b,c) NULL
+#define setAtkEditableTextIfaceFields(a,b,c)
+#define AtkEditableTextIface_sizeof() 0
+#endif
+
 #ifndef NO_AtkHypertextIface
 void cacheAtkHypertextIfaceFields(JNIEnv *env, jobject lpObject);
 AtkHypertextIface *getAtkHypertextIfaceFields(JNIEnv *env, jobject lpObject, AtkHypertextIface *lpStruct);
diff --git a/build.sh b/build.sh
index 55f98da..1eb3a06 100755
--- a/build.sh
+++ b/build.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 #*******************************************************************************
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2000, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -24,6 +24,22 @@ if [ "${CC}" = "" ]; then
 	export CC
 fi
 
+# Check if we have to compile external.xpt from external.idl
+COMPONENTS_DIR=`pwd`/../../components
+if test ! -f ${COMPONENTS_DIR}/external.xpt; then
+	if test ! -f ${COMPONENTS_DIR}/external.idl; then
+		echo "Can't find ${COMPONENTS_DIR}/external.idl"
+	else
+		IDLDIR=`pkg-config --variable=idldir libxul | sed 's@/stable$@@'`/unstable
+		if test ! -d ${IDLDIR}; then
+			IDLDIR=`pkg-config --variable=idldir libxul`
+		fi
+		XPIDL=`pkg-config --variable=sdkdir libxul`/bin/xpidl
+		echo "${XPIDL} -m typelib -I ${IDLDIR} -e ${COMPONENTS_DIR}/external.xpt ${COMPONENTS_DIR}/external.idl"
+		${XPIDL} -m typelib -I ${IDLDIR} -e ${COMPONENTS_DIR}/external.xpt ${COMPONENTS_DIR}/external.idl
+	fi
+fi
+
 # Determine which OS we are on
 if [ "${OS}" = "" ]; then
 	OS=`uname -s`
diff --git a/cairo.c b/cairo.c
index cbdd5b1..e9ed5ad 100644
--- a/cairo.c
+++ b/cairo.c
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2008 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo.h b/cairo.h
index eb79671..0500b3b 100644
--- a/cairo.h
+++ b/cairo.h
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2006 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo_custom.h b/cairo_custom.h
index 44c5e55..0eb3d23 100644
--- a/cairo_custom.h
+++ b/cairo_custom.h
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2006 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2010 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo_stats.c b/cairo_stats.c
index 57be51f..b387ce3 100644
--- a/cairo_stats.c
+++ b/cairo_stats.c
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2008 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo_stats.h b/cairo_stats.h
index 1b2a1b5..f5f3bbf 100644
--- a/cairo_stats.h
+++ b/cairo_stats.h
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2008 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo_structs.c b/cairo_structs.c
index 3225703..085d180 100644
--- a/cairo_structs.c
+++ b/cairo_structs.c
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2008 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/cairo_structs.h b/cairo_structs.h
index 3a87645..1e0ece9 100644
--- a/cairo_structs.h
+++ b/cairo_structs.h
@@ -15,7 +15,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Cairo and SWT
- * -  Copyright (C) 2005, 2008 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2005, 2009 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 
diff --git a/callback.c b/callback.c
index a344d01..73d9851 100644
--- a/callback.c
+++ b/callback.c
@@ -26,9 +26,6 @@ static int callbackEnabled = 1;
 static int callbackEntryCount = 0;
 static int initialized = 0;
 static jint JNI_VERSION = 0;
-#ifdef COCOA
-static NSException *nsException = nil;
-#endif
 
 #ifdef DEBUG_CALL_PRINTS
 static int counter = 0;
@@ -1247,13 +1244,6 @@ jintLong callback(int index, ...)
 	va_end(vl);
 	ATOMIC_DEC(callbackEntryCount);
 
-#ifdef COCOA
-	if (callbackEntryCount == 0 && nsException) {
-		[nsException release];
-		nsException = nil;
-	}
-#endif
-				
 done:
 	/* If an exception has occurred in Java, return the error result. */
 	if ((ex = (*env)->ExceptionOccurred(env))) {
@@ -1263,12 +1253,6 @@ done:
 		(*env)->ExceptionDescribe(env);
 #endif
 		result = callbackData[index].errorResult;
-#ifdef COCOA
-		if (nsException == NULL) {
-			nsException = [[NSException alloc] initWithName:NSGenericException reason:@"Java exception occurred" userInfo:nil];
-			[nsException raise];
-		}
-#endif
 	}
 
 	if (detach) {
diff --git a/debian/Makefile b/debian/Makefile
index 5095e09..ccf39de 100644
--- a/debian/Makefile
+++ b/debian/Makefile
@@ -1,4 +1,4 @@
-RELEASE=3.6.2
+RELEASE=3.7
 JAVA=swt-gtk-$(RELEASE).jar
 CLEANFILES=*.files *.jar *-stamp
 
diff --git a/debian/control b/debian/control
index 2265ce3..29c8f09 100644
--- a/debian/control
+++ b/debian/control
@@ -9,16 +9,16 @@ Build-Depends: default-jdk, gcj-native-helper, libgnomeui-dev, libxtst-dev,
  xulrunner-dev, libxcb-render-util0-dev, libxt-dev,
  libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev,
  fastjar, cdbs, patchutils, debhelper (>= 8), libwebkit-dev
-Standards-Version: 3.9.1
+Standards-Version: 3.9.2
 Vcs-Git: git://git.debian.org/git/pkg-java/swt-gtk.git
 Vcs-Browser: http://git.debian.org/?p=pkg-java/swt-gtk.git
 Homepage: http://www.eclipse.org/swt/
 
-Package: libswt-gtk-3.6-java
+Package: libswt-gtk-3.7-java
 Architecture: any
 Section: java
-Depends: libswt-gtk-3.6-jni (= ${binary:Version}), ${misc:Depends}
-Suggests: libswt-gtk-3.6-java-gcj
+Depends: libswt-gtk-3.7-jni (= ${binary:Version}), ${misc:Depends}
+Suggests: libswt-gtk-3.7-java-gcj
 Description: Standard Widget Toolkit for GTK+ Java library
  The Standard Widget Toolkit (SWT) is a fast and rich GUI toolkit for the Java
  programming language. SWT provides efficient, portable and fast access to
@@ -27,10 +27,10 @@ Description: Standard Widget Toolkit for GTK+ Java library
  .
  This package includes the SWT JAR libraries.
 
-Package: libswt-gtk-3.6-jni
+Package: libswt-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Suggests: libswt-gnome-gtk-3.6-jni
+Suggests: libswt-gnome-gtk-3.7-jni
 Description: Standard Widget Toolkit for GTK+ JNI library
  The Standard Widget Toolkit (SWT) is a fast and rich GUI toolkit for the Java
  programming language. SWT provides efficient, portable and fast access to
@@ -39,7 +39,7 @@ Description: Standard Widget Toolkit for GTK+ JNI library
  .
  This package includes the JNI libraries (atk, awt, gtk, pi).
 
-Package: libswt-gnome-gtk-3.6-jni
+Package: libswt-gnome-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Standard Widget Toolkit for GTK+ GNOME JNI library
@@ -50,7 +50,7 @@ Description: Standard Widget Toolkit for GTK+ GNOME JNI library
  .
  This package includes the GNOME JNI library.
 
-Package: libswt-mozilla-gtk-3.6-jni
+Package: libswt-mozilla-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Standard Widget Toolkit for GTK+ Mozilla JNI library
@@ -61,7 +61,7 @@ Description: Standard Widget Toolkit for GTK+ Mozilla JNI library
  .
  This package includes the Mozilla JNI libraries.
 
-Package: libswt-cairo-gtk-3.6-jni
+Package: libswt-cairo-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Standard Widget Toolkit for GTK+ Cairo JNI library
@@ -72,7 +72,7 @@ Description: Standard Widget Toolkit for GTK+ Cairo JNI library
  .
  This package includes the Cairo JNI libraries.
 
-Package: libswt-glx-gtk-3.6-jni
+Package: libswt-glx-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Standard Widget Toolkit for GTK+ GLX JNI library
@@ -83,7 +83,7 @@ Description: Standard Widget Toolkit for GTK+ GLX JNI library
  .
  This package includes the GLX JNI libraries.
 
-Package: libswt-webkit-gtk-3.6-jni
+Package: libswt-webkit-gtk-3.7-jni
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Standard Widget Toolkit for GTK+ WebKit JNI library
@@ -94,16 +94,16 @@ Description: Standard Widget Toolkit for GTK+ WebKit JNI library
  .
  This package includes the WebKit JNI libraries.
 
-Package: libswt-gtk-3.6-java-gcj
+Package: libswt-gtk-3.7-java-gcj
 Architecture: any
 Section: java
 Depends: ${misc:Depends}, ${shlibs:Depends},
-	  libswt-cairo-gtk-3.6-jni (= ${binary:Version}),
-	  libswt-glx-gtk-3.6-jni (= ${binary:Version}),
-	  libswt-gnome-gtk-3.6-jni (= ${binary:Version}),
-	  libswt-gtk-3.6-jni (= ${binary:Version}),
-	  libswt-mozilla-gtk-3.6-jni (= ${binary:Version}),
-	  libswt-webkit-gtk-3.6-jni (= ${binary:Version})
+	  libswt-cairo-gtk-3.7-jni (= ${binary:Version}),
+	  libswt-glx-gtk-3.7-jni (= ${binary:Version}),
+	  libswt-gnome-gtk-3.7-jni (= ${binary:Version}),
+	  libswt-gtk-3.7-jni (= ${binary:Version}),
+	  libswt-mozilla-gtk-3.7-jni (= ${binary:Version}),
+	  libswt-webkit-gtk-3.7-jni (= ${binary:Version})
 Description: Standard Widget Toolkit for GTK+ native library
  The Standard Widget Toolkit (SWT) is a fast and rich GUI toolkit for the Java
  programming language. SWT provides efficient, portable and fast access to
diff --git a/debian/java-config/libswt-gtk-3.6-java b/debian/java-config/libswt-gtk-3.6-java
deleted file mode 100644
index 151b67d..0000000
--- a/debian/java-config/libswt-gtk-3.6-java
+++ /dev/null
@@ -1 +0,0 @@
-JARS=/usr/lib/java/swt-gtk-3.6.2.jar
diff --git a/debian/java-config/libswt-gtk-3.7-java b/debian/java-config/libswt-gtk-3.7-java
new file mode 100644
index 0000000..7402261
--- /dev/null
+++ b/debian/java-config/libswt-gtk-3.7-java
@@ -0,0 +1 @@
+JARS=/usr/lib/java/swt-gtk-3.7.jar
diff --git a/debian/libswt-cairo-gtk-3.6-jni.install b/debian/libswt-cairo-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-cairo-gtk-3.6-jni.install
rename to debian/libswt-cairo-gtk-3.7-jni.install
diff --git a/debian/libswt-glx-gtk-3.6-jni.install b/debian/libswt-glx-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-glx-gtk-3.6-jni.install
rename to debian/libswt-glx-gtk-3.7-jni.install
diff --git a/debian/libswt-gnome-gtk-3.6-jni.install b/debian/libswt-gnome-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-gnome-gtk-3.6-jni.install
rename to debian/libswt-gnome-gtk-3.7-jni.install
diff --git a/debian/libswt-gtk-3.6-java.links b/debian/libswt-gtk-3.6-java.links
deleted file mode 100644
index 980ee42..0000000
--- a/debian/libswt-gtk-3.6-java.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/java/swt-gtk-3.6.2.jar usr/share/java/swt-gtk-3.6.2.jar
diff --git a/debian/libswt-gtk-3.6-java.install b/debian/libswt-gtk-3.7-java.install
similarity index 100%
rename from debian/libswt-gtk-3.6-java.install
rename to debian/libswt-gtk-3.7-java.install
diff --git a/debian/libswt-gtk-3.7-java.links b/debian/libswt-gtk-3.7-java.links
new file mode 100644
index 0000000..c358ce2
--- /dev/null
+++ b/debian/libswt-gtk-3.7-java.links
@@ -0,0 +1 @@
+usr/lib/java/swt-gtk-3.7.jar usr/share/java/swt-gtk-3.7.jar
diff --git a/debian/libswt-gtk-3.6-java.postinst b/debian/libswt-gtk-3.7-java.postinst
similarity index 87%
rename from debian/libswt-gtk-3.6-java.postinst
rename to debian/libswt-gtk-3.7-java.postinst
index 3406439..5c65792 100644
--- a/debian/libswt-gtk-3.6-java.postinst
+++ b/debian/libswt-gtk-3.7-java.postinst
@@ -6,7 +6,7 @@ case "$1" in
         update-alternatives --install \
                 /usr/share/java/swt.jar \
                 swt.jar \
-                /usr/lib/java/swt-gtk-3.6.2.jar \
+                /usr/lib/java/swt-gtk-3.7.jar \
                 103
     ;;
 
diff --git a/debian/libswt-gtk-3.6-java.prerm b/debian/libswt-gtk-3.7-java.prerm
similarity index 83%
rename from debian/libswt-gtk-3.6-java.prerm
rename to debian/libswt-gtk-3.7-java.prerm
index e1ea3a5..05986f6 100644
--- a/debian/libswt-gtk-3.6-java.prerm
+++ b/debian/libswt-gtk-3.7-java.prerm
@@ -4,7 +4,7 @@ set -e
 case "$1" in
     remove|upgrade|deconfigure)
 		update-alternatives --remove swt.jar \
-                /usr/lib/java/swt-gtk-3.6.2.jar
+                /usr/lib/java/swt-gtk-3.7.jar
 	;;
     failed-upgrade)
 	;;
diff --git a/debian/libswt-gtk-3.6-jni.install b/debian/libswt-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-gtk-3.6-jni.install
rename to debian/libswt-gtk-3.7-jni.install
diff --git a/debian/libswt-mozilla-gtk-3.6-jni.install b/debian/libswt-mozilla-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-mozilla-gtk-3.6-jni.install
rename to debian/libswt-mozilla-gtk-3.7-jni.install
diff --git a/debian/libswt-webkit-gtk-3.6-jni.install b/debian/libswt-webkit-gtk-3.7-jni.install
similarity index 100%
rename from debian/libswt-webkit-gtk-3.6-jni.install
rename to debian/libswt-webkit-gtk-3.7-jni.install
diff --git a/debian/patches/64/arch64.diff b/debian/patches/64/arch64.diff
index 6ce1024..f853649 100644
--- a/debian/patches/64/arch64.diff
+++ b/debian/patches/64/arch64.diff
@@ -1,12 +1,13 @@
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.java swt-gtk-3.6.2/org/eclipse/swt/accessibility/AccessibleFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/accessibility/AccessibleFactory.java	2011-03-21 11:34:23.115736911 +0000
-@@ -144,13 +144,13 @@ class AccessibleFactory {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/accessibility/AccessibleFactory.java swt-gtk-3.7//org/eclipse/swt/accessibility/AccessibleFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/accessibility/AccessibleFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/accessibility/AccessibleFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -157,14 +157,14 @@
  	static final Callback InitValueIfaceCB;
  	static final Callback GTypeInfo_base_init_factory;
  	/* interface definitions */
 -	static final int /*long*/ ActionIfaceDefinition;
 -	static final int /*long*/ ComponentIfaceDefinition;
+-	static final int /*long*/ EditableTextIfaceDefinition;
 -	static final int /*long*/ HypertextIfaceDefinition;
 -	static final int /*long*/ SelectionIfaceDefinition;
 -	static final int /*long*/ TableIfaceDefinition;
@@ -14,6 +15,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
 -	static final int /*long*/ ValueIfaceDefinition;
 +	static final long /*int*/ ActionIfaceDefinition;
 +	static final long /*int*/ ComponentIfaceDefinition;
++	static final long /*int*/ EditableTextIfaceDefinition;
 +	static final long /*int*/ HypertextIfaceDefinition;
 +	static final long /*int*/ SelectionIfaceDefinition;
 +	static final long /*int*/ TableIfaceDefinition;
@@ -22,7 +24,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  	static {
  		AtkActionCB_do_action = newCallback (AccessibleObject.class, "atkAction_do_action", 2); //$NON-NLS-1$
  		AtkActionCB_get_n_actions = newCallback (AccessibleObject.class, "atkAction_get_n_actions", 1); //$NON-NLS-1$
-@@ -274,15 +274,15 @@ class AccessibleFactory {
+@@ -301,15 +301,15 @@
  		return callback;
  	}
  
@@ -41,7 +43,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		LONG type = null;
  		while (widgetType != 0 && (type = (LONG)Factories.get(new LONG(widgetType))) == null) {
  			widgetType = OS.g_type_parent (widgetType);
-@@ -291,14 +291,14 @@ class AccessibleFactory {
+@@ -318,14 +318,14 @@
  		return ((LONG)type).value;
  	}
  
@@ -58,7 +60,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  			ATK.atk_object_initialize (result, widget);
  			return result;
  		}
-@@ -306,10 +306,10 @@ class AccessibleFactory {
+@@ -333,10 +333,10 @@
  		if (accessible.accessibleObject != null) {
  			return accessible.accessibleObject.handle;
  		}
@@ -72,7 +74,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AccessibleObject object = new AccessibleObject (type, widget, accessible, false);
  		accessible.accessibleObject = object;
  		accessible.addRelations ();
-@@ -317,16 +317,16 @@ class AccessibleFactory {
+@@ -344,16 +344,16 @@
  	}
  	
  	static AccessibleObject createChildAccessible (Accessible accessible, int childId) {
@@ -92,7 +94,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AccessibleControlEvent event = new AccessibleControlEvent (accessible);
  		event.childID = childId;
  		Vector listeners = accessible.accessibleControlListeners;
-@@ -384,11 +384,11 @@ class AccessibleFactory {
+@@ -418,11 +418,11 @@
  		if (value) swtTypeName += "Value"; //$NON-NLS-1$
  
  		byte[] nameBytes = Converter.wcsToMbcs(null, swtTypeName, true);
@@ -106,7 +108,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  			OS.g_type_query (parentType, queryPtr);
  			GTypeQuery query = new GTypeQuery ();
  			OS.memmove (query, queryPtr, GTypeQuery.sizeof);
-@@ -397,7 +397,7 @@ class AccessibleFactory {
+@@ -431,7 +431,7 @@
  			typeInfo.base_init = GTypeInfo_base_init_type.getAddress ();
  			typeInfo.class_size = (short) query.class_size;
  			typeInfo.instance_size = (short) query.instance_size;
@@ -115,7 +117,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  			OS.memmove (definition, typeInfo, GTypeInfo.sizeof);
  			type = OS.g_type_register_static (parentType, nameBytes, definition, 0);
  			OS.g_type_add_interface_static (type, ATK.ATK_TYPE_COMPONENT(), ComponentIfaceDefinition);
-@@ -411,7 +411,7 @@ class AccessibleFactory {
+@@ -446,7 +446,7 @@
  		return type;
  	}
  
@@ -124,7 +126,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkObjectFactoryClass objectClass = new AtkObjectFactoryClass ();
  		ATK.memmove (objectClass, klass);
  		objectClass.create_accessible = AtkObjectFactoryCB_create_accessible.getAddress ();
-@@ -419,7 +419,7 @@ class AccessibleFactory {
+@@ -454,7 +454,7 @@
  		return 0;
  	}
  	
@@ -133,7 +135,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkObjectClass objectClass = new AtkObjectClass ();
  		ATK.memmove (objectClass, klass);
  		objectClass.get_name = AtkObjectCB_get_name.getAddress ();
-@@ -431,7 +431,7 @@ class AccessibleFactory {
+@@ -466,7 +466,7 @@
  		objectClass.get_index_in_parent = AtkObjectCB_get_index_in_parent.getAddress ();
  		objectClass.ref_child = AtkObjectCB_ref_child.getAddress ();
  		objectClass.get_attributes = AtkObjectCB_get_attributes.getAddress ();
@@ -142,7 +144,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		GObjectClass objectClassStruct = new GObjectClass ();
  		OS.memmove (objectClassStruct, gObjectClass);
  		objectClassStruct.finalize = GObjectClass_finalize.getAddress ();
-@@ -440,7 +440,7 @@ class AccessibleFactory {
+@@ -475,7 +475,7 @@
  		return 0;
  	}
  	
@@ -151,7 +153,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkActionIface inter = new AtkActionIface ();
  		ATK.memmove (inter, iface);
  		inter.do_action = AtkActionCB_do_action.getAddress (); 
-@@ -452,7 +452,7 @@ class AccessibleFactory {
+@@ -487,7 +487,7 @@
  		return 0;
  	}
  	
@@ -160,7 +162,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkComponentIface inter = new AtkComponentIface ();
  		ATK.memmove (inter, iface);
  		inter.get_extents = AtkComponentCB_get_extents.getAddress ();
-@@ -463,7 +463,7 @@ class AccessibleFactory {
+@@ -498,7 +498,7 @@
+ 		return 0;
+ 	}
+ 
+-	static int /*long*/ initEditableTextIfaceCB (int /*long*/ iface) {
++	static long /*int*/ initEditableTextIfaceCB (long /*int*/ iface) {
+ 		AtkEditableTextIface inter = new AtkEditableTextIface ();
+ 		ATK.memmove (inter, iface);
+ 		inter.set_run_attributes = AtkEditableTextCB_set_run_attributes.getAddress ();
+@@ -512,7 +512,7 @@
  		return 0;
  	}
  
@@ -169,7 +180,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkHypertextIface inter = new AtkHypertextIface ();
  		ATK.memmove (inter, iface);
  		inter.get_link = AtkHypertextCB_get_link.getAddress (); 
-@@ -473,7 +473,7 @@ class AccessibleFactory {
+@@ -522,7 +522,7 @@
  		return 0;
  	}
  
@@ -178,7 +189,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkSelectionIface inter = new AtkSelectionIface ();
  		ATK.memmove (inter, iface);
  		inter.is_child_selected = AtkSelectionCB_is_child_selected.getAddress ();
-@@ -482,7 +482,7 @@ class AccessibleFactory {
+@@ -531,7 +531,7 @@
  		return 0;
  	}
  
@@ -187,7 +198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkTableIface inter = new AtkTableIface ();
  		ATK.memmove (inter, iface);
  		inter.ref_at = AtkTableCB_ref_at.getAddress();
-@@ -512,7 +512,7 @@ class AccessibleFactory {
+@@ -561,7 +561,7 @@
  		return 0;
  	}
  
@@ -196,7 +207,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkTextIface inter = new AtkTextIface ();
  		ATK.memmove (inter, iface);
  		inter.get_range_extents = AtkTextCB_get_range_extents.getAddress ();
-@@ -537,7 +537,7 @@ class AccessibleFactory {
+@@ -586,7 +586,7 @@
  		return 0;
  	}
  
@@ -205,7 +216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		AtkValueIface inter = new AtkValueIface ();
  		ATK.memmove (inter, iface);
  		inter.get_current_value = AtkValueCB_get_current_value.getAddress ();
-@@ -549,10 +549,10 @@ class AccessibleFactory {
+@@ -598,10 +598,10 @@
  	}
  
  	static void registerAccessible (Accessible accessible) {
@@ -220,7 +231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		/* If NO_OP factory is registered then OS accessibility is not active */
  		if (ATK.ATK_IS_NO_OP_OBJECT_FACTORY(factory)) return;
  		String name = FACTORY_TYPENAME + getTypeName(widgetType);
-@@ -564,10 +564,10 @@ class AccessibleFactory {
+@@ -613,10 +613,10 @@
  			typeInfo.base_init = GTypeInfo_base_init_factory.getAddress ();
  			typeInfo.class_size = (short)ATK.AtkObjectFactoryClass_sizeof ();
  			typeInfo.instance_size = (short)ATK.AtkObjectFactory_sizeof ();
@@ -234,7 +245,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  			ATK.atk_registry_set_factory_type (registry, widgetType, swtFactoryType);
  			Factories.put (new LONG (widgetType), new LONG (parentType));
  		}
-@@ -576,7 +576,7 @@ class AccessibleFactory {
+@@ -625,7 +625,7 @@
  	}
  	
  	static void unregisterAccessible (Accessible accessible) {
@@ -243,10 +254,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleFactory.j
  		Accessibles.remove (new LONG (widget));
  		if (AccessibleObject.DEBUG) AccessibleObject.print("-->Deregister=" + accessible.control + " " + widget); //$NON-NLS-1$
  	}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/Accessible.java swt-gtk-3.6.2/org/eclipse/swt/accessibility/Accessible.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/Accessible.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/accessibility/Accessible.java	2011-03-21 11:34:23.145736485 +0000
-@@ -446,14 +446,14 @@ public class Accessible {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/accessibility/Accessible.java swt-gtk-3.7//org/eclipse/swt/accessibility/Accessible.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/accessibility/Accessible.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/accessibility/Accessible.java	2011-06-13 20:53:32.000000000 +0000
+@@ -475,14 +475,14 @@
  		return accessibleObject;
  	}
  
@@ -266,10 +277,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/Accessible.java swt
  					if (OS.GTK_WIDGET_VISIBLE (widget)) {
  						result = widget;
  						break;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.java swt-gtk-3.6.2/org/eclipse/swt/accessibility/AccessibleObject.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/accessibility/AccessibleObject.java	2011-03-21 11:34:23.135736623 +0000
-@@ -21,7 +21,7 @@ import org.eclipse.swt.internal.accessib
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/accessibility/AccessibleObject.java swt-gtk-3.7//org/eclipse/swt/accessibility/AccessibleObject.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/accessibility/AccessibleObject.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/accessibility/AccessibleObject.java	2011-06-13 20:53:32.000000000 +0000
+@@ -21,7 +21,7 @@
  import org.eclipse.swt.internal.gtk.*;
  
  class AccessibleObject {
@@ -278,7 +289,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  	int index = -1, id = ACC.CHILDID_SELF;
  	Accessible accessible;
  	AccessibleObject parent;
-@@ -32,10 +32,10 @@ class AccessibleObject {
+@@ -32,10 +32,10 @@
  	*/ 
  	boolean isLightweight = false;
  
@@ -293,7 +304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  	static final Hashtable AccessibleObjects = new Hashtable (9);
  	static final boolean DEBUG = Device.DEBUG;
  	
-@@ -45,7 +45,7 @@ class AccessibleObject {
+@@ -45,7 +45,7 @@
  		COLUMN_ROLE = ATK.atk_role_register(Converter.wcsToMbcs(null, "column", true)); //$NON-NLS-1$
  	}
  
@@ -302,7 +313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		super ();
  		handle = ATK.g_object_new (type, 0);
  		ATK.atk_object_initialize (handle, widget);
-@@ -59,7 +59,7 @@ class AccessibleObject {
+@@ -59,7 +59,7 @@
  		System.out.println (str);
  	}
  	
@@ -311,7 +322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_ACTION())) {
  			AtkActionIface iface = new AtkActionIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_ACTION_GET_IFACE (atkObject)));
-@@ -68,7 +68,7 @@ class AccessibleObject {
+@@ -68,7 +68,7 @@
  		return null;
  	}
  	
@@ -320,7 +331,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkAction_do_action");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -85,7 +85,7 @@ class AccessibleObject {
+@@ -85,7 +85,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -329,7 +340,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkActionIface iface = getActionIface (atkObject);
  		if (iface != null && iface.do_action != 0) {
  			parentResult = ATK.call (iface.do_action, atkObject, index);
-@@ -93,7 +93,7 @@ class AccessibleObject {
+@@ -93,7 +93,7 @@
  		return parentResult; 	
  	}
  
@@ -338,7 +349,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkAction_get_n_actions");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -109,7 +109,7 @@ class AccessibleObject {
+@@ -109,7 +109,7 @@
  				return event.count;
  			}
  		}
@@ -347,7 +358,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkActionIface iface = getActionIface (atkObject);
  		if (iface != null && iface.get_n_actions != 0) {
  			parentResult = ATK.call (iface.get_n_actions, atkObject);
-@@ -117,7 +117,7 @@ class AccessibleObject {
+@@ -117,7 +117,7 @@
  		return parentResult; 	
  	}
  	
@@ -356,7 +367,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkAction_get_description");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -136,7 +136,7 @@ class AccessibleObject {
+@@ -136,7 +136,7 @@
  				return descriptionPtr = getStringPtr (event.result);
  			}
  		}
@@ -365,7 +376,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkActionIface iface = getActionIface (atkObject);
  		if (iface != null && iface.get_description != 0) {
  			parentResult = ATK.call (iface.get_description, atkObject, index);
-@@ -144,10 +144,10 @@ class AccessibleObject {
+@@ -144,10 +144,10 @@
  		return parentResult; 	
  	}
  	
@@ -378,7 +389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkActionIface iface = getActionIface (atkObject);
  		if (iface != null && iface.get_keybinding != 0) {
  			parentResult = ATK.call (iface.get_keybinding, atkObject, index);
-@@ -187,10 +187,10 @@ class AccessibleObject {
+@@ -187,10 +187,10 @@
  		return parentResult;
  	}
  
@@ -391,7 +402,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkActionIface iface = getActionIface (atkObject);
  		if (iface != null && iface.get_name != 0) {
  			parentResult = ATK.call (iface.get_name, atkObject, index);
-@@ -232,7 +232,7 @@ class AccessibleObject {
+@@ -232,7 +232,7 @@
  		return parentResult;
  	}
  	
@@ -400,7 +411,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_COMPONENT())) {
  			AtkComponentIface iface = new AtkComponentIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_COMPONENT_GET_IFACE (atkObject)));
-@@ -241,7 +241,7 @@ class AccessibleObject {
+@@ -241,7 +241,7 @@
  		return null;
  	}
  
@@ -409,7 +420,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkComponent_get_extents: " + atkObject);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		OS.memmove (x, new int[] {0}, 4);
-@@ -291,7 +291,7 @@ class AccessibleObject {
+@@ -291,7 +291,7 @@
  		return 0;
  	}
  
@@ -418,7 +429,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkComponent_get_position, object: " + atkObject + " x: " + x + " y: " + y + " coord: " + coord_type);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		OS.memmove (x, new int[] {0}, 4);
-@@ -332,7 +332,7 @@ class AccessibleObject {
+@@ -332,7 +332,7 @@
  		return 0;
  	}
  
@@ -427,7 +438,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkComponent_get_size");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		OS.memmove (width, new int[] {0}, 4);
-@@ -363,7 +363,7 @@ class AccessibleObject {
+@@ -363,7 +363,7 @@
  		return 0;
  	}
  
@@ -436,7 +447,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkComponent_ref_accessible_at_point: " + atkObject + " " + x + "," + y);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -392,7 +392,7 @@ class AccessibleObject {
+@@ -392,7 +392,7 @@
  				}
  			}
  		}
@@ -445,16 +456,169 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkComponentIface iface = getComponentIface (atkObject);
  		if (iface != null && iface.ref_accessible_at_point != 0) {
  			parentResult = ATK.call (iface.ref_accessible_at_point, atkObject, x, y, coord_type);
-@@ -400,7 +400,7 @@ class AccessibleObject {
- 		return parentResult;
+@@ -401,7 +401,7 @@
  	}	
  
+ 	
+-	static AtkEditableTextIface getEditableTextIface (int /*long*/ atkObject) {
++	static AtkEditableTextIface getEditableTextIface (long /*int*/ atkObject) {
+ 		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_EDITABLE_TEXT())) {
+ 			AtkEditableTextIface iface = new AtkEditableTextIface ();
+ 			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_EDITABLE_TEXT_GET_IFACE (atkObject)));
+@@ -411,7 +411,7 @@
+ 	}
+ 	
+ //	gboolean atk_editable_text_set_run_attributes(AtkEditableText *text, AtkAttributeSet *attrib_set, gint start_offset, gint end_offset);
+-	static int /*long*/ atkEditableText_set_run_attributes (int /*long*/ atkObject, int /*long*/ attrib_set, int /*long*/ start_offset, int /*long*/ end_offset) {
++	static long /*int*/ atkEditableText_set_run_attributes (long /*int*/ atkObject, long /*int*/ attrib_set, long /*int*/ start_offset, long /*int*/ end_offset) {
+ 		if (DEBUG) print ("-->atkEditableText_set_run_attributes");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -420,14 +420,14 @@
+ 			int length = listeners.size();
+ 			if (length > 0) {
+ 				Display display = accessible.control.getDisplay();
+-				int /*long*/ fontDesc = OS.pango_font_description_new ();
++				long /*int*/ fontDesc = OS.pango_font_description_new ();
+ 				boolean createFont = false;
+ 				TextStyle style = new TextStyle();
+ 				String [] attributes = new String [0];
+-				int /*long*/ current = attrib_set;
++				long /*int*/ current = attrib_set;
+ 				int listLength = OS.g_slist_length (attrib_set);
+ 				for (int i = 0; i < listLength; i++) {
+-					int /*long*/ attrPtr = OS.g_slist_data (current);
++					long /*int*/ attrPtr = OS.g_slist_data (current);
+ 					if (attrPtr != 0) {
+ 						AtkAttribute attr = new AtkAttribute();
+ 						ATK.memmove(attr, attrPtr, AtkAttribute.sizeof);
+@@ -550,7 +550,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.set_run_attributes != 0) {
+ 			parentResult = ATK.call (iface.set_run_attributes, atkObject, attrib_set, start_offset, end_offset);
+@@ -576,7 +576,7 @@
+ 	}
+ 
+ //	void atk_editable_text_set_text_contents (AtkEditableText *text, const gchar *string);
+-	static int /*long*/ atkEditableText_set_text_contents (int /*long*/ atkObject, int /*long*/ string) {
++	static long /*int*/ atkEditableText_set_text_contents (long /*int*/ atkObject, long /*int*/ string) {
+ 		if (DEBUG) print ("-->atkEditableText_set_text_contents");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -596,7 +596,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.set_text_contents != 0) {
+ 			parentResult = ATK.call (iface.set_text_contents, atkObject, string);
+@@ -605,7 +605,7 @@
+ 	}
+ 
+ //	void atk_editable_text_insert_text (AtkEditableText *text, const gchar *string, gint length, gint *position);
+-	static int /*long*/ atkEditableText_insert_text (int /*long*/ atkObject, int /*long*/ string, int /*long*/ string_length, int /*long*/ position) {
++	static long /*int*/ atkEditableText_insert_text (long /*int*/ atkObject, long /*int*/ string, long /*int*/ string_length, long /*int*/ position) {
+ 		if (DEBUG) print ("-->atkEditableText_insert_text");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -625,7 +625,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.insert_text != 0) {
+ 			parentResult = ATK.call (iface.insert_text, atkObject, string, string_length, position);
+@@ -634,7 +634,7 @@
+ 	}
+ 
+ //	void atk_editable_text_copy_text (AtkEditableText *text, gint start_pos, gint end_pos);
+-	static int /*long*/ atkEditableText_copy_text(int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
++	static long /*int*/ atkEditableText_copy_text(long /*int*/ atkObject, long /*int*/ start_pos, long /*int*/ end_pos) {
+ 		if (DEBUG) print ("-->atkEditableText_copy_text");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -652,7 +652,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.copy_text != 0) {
+ 			parentResult = ATK.call (iface.copy_text, atkObject, start_pos, end_pos);
+@@ -661,7 +661,7 @@
+ 	}
+ 
+ //	void atk_editable_text_cut_text (AtkEditableText *text, gint start_pos, gint end_pos);
+-	static int /*long*/ atkEditableText_cut_text (int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
++	static long /*int*/ atkEditableText_cut_text (long /*int*/ atkObject, long /*int*/ start_pos, long /*int*/ end_pos) {
+ 		if (DEBUG) print ("-->atkEditableText_cut_text");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -679,7 +679,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.cut_text != 0) {
+ 			parentResult = ATK.call (iface.cut_text, atkObject, start_pos, end_pos);
+@@ -688,7 +688,7 @@
+ 	}
+ 	
+ //	void atk_editable_text_delete_text (AtkEditableText *text, gint start_pos, gint end_pos);
+-	static int /*long*/ atkEditableText_delete_text (int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
++	static long /*int*/ atkEditableText_delete_text (long /*int*/ atkObject, long /*int*/ start_pos, long /*int*/ end_pos) {
+ 		if (DEBUG) print ("-->atkEditableText_delete_text");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -707,7 +707,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.delete_text != 0) {
+ 			parentResult = ATK.call (iface.delete_text, atkObject, start_pos, end_pos);
+@@ -716,7 +716,7 @@
+ 	}
+ 
+ //	void atk_editable_text_paste_text (AtkEditableText *text, gint position);
+-	static int /*long*/ atkEditableText_paste_text (int /*long*/ atkObject, int /*long*/ position) {
++	static long /*int*/ atkEditableText_paste_text (long /*int*/ atkObject, long /*int*/ position) {
+ 		if (DEBUG) print ("-->atkEditableText_paste_text");
+ 		AccessibleObject object = getAccessibleObject (atkObject);
+ 		if (object != null) {
+@@ -733,7 +733,7 @@
+ 				return ACC.OK.equals(event.result) ? 1 : 0;
+ 			}
+ 		}
+-		int /*long*/ parentResult = 0;
++		long /*int*/ parentResult = 0;
+ 		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+ 		if (iface != null && iface.paste_text != 0) {
+ 			parentResult = ATK.call (iface.paste_text, atkObject, position);
+@@ -741,7 +741,7 @@
+ 		return parentResult;
+ 	}
+ 	
 -	static AtkHypertextIface getHypertextIface (int /*long*/ atkObject) {
 +	static AtkHypertextIface getHypertextIface (long /*int*/ atkObject) {
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_HYPERTEXT())) {
  			AtkHypertextIface iface = new AtkHypertextIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_HYPERTEXT_GET_IFACE (atkObject)));
-@@ -409,7 +409,7 @@ class AccessibleObject {
+@@ -750,7 +750,7 @@
  		return null;
  	}
  	
@@ -463,7 +627,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkHypertext_get_link");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -427,7 +427,7 @@ class AccessibleObject {
+@@ -768,7 +768,7 @@
  				return result != null ? result.getAccessibleObject().handle : 0;
  			}
  		}
@@ -472,7 +636,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkHypertextIface iface = getHypertextIface (atkObject);
  		if (iface != null && iface.get_link != 0) {
  			parentResult = ATK.call (iface.get_link, atkObject, link_index);
-@@ -435,7 +435,7 @@ class AccessibleObject {
+@@ -776,7 +776,7 @@
  		return parentResult;
  	}
  
@@ -481,7 +645,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkHypertext_get_n_links");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -451,7 +451,7 @@ class AccessibleObject {
+@@ -792,7 +792,7 @@
  				return event.count;
  			}
  		}
@@ -490,7 +654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkHypertextIface iface = getHypertextIface (atkObject);
  		if (iface != null && iface.get_n_links != 0) {
  			parentResult = ATK.call (iface.get_n_links, atkObject);
-@@ -459,7 +459,7 @@ class AccessibleObject {
+@@ -800,7 +800,7 @@
  		return parentResult;
  	}
  
@@ -499,7 +663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkHypertext_get_link_index");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -477,7 +477,7 @@ class AccessibleObject {
+@@ -818,7 +818,7 @@
  				return event.index;
  			}
  		}
@@ -508,7 +672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkHypertextIface iface = getHypertextIface (atkObject);
  		if (iface != null && iface.get_link_index != 0) {
  			parentResult = ATK.call (iface.get_link_index, atkObject, char_index);
-@@ -485,16 +485,16 @@ class AccessibleObject {
+@@ -826,16 +826,16 @@
  		return parentResult;
  	}
  	
@@ -528,7 +692,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_description != 0) {
  			parentResult = ATK.call (objectClass.get_description, atkObject);
-@@ -520,10 +520,10 @@ class AccessibleObject {
+@@ -861,10 +861,10 @@
  		return parentResult;
  	}
  
@@ -541,7 +705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_attributes != 0) {
  			parentResult = ATK.call (objectClass.get_attributes, atkObject);
-@@ -541,48 +541,48 @@ class AccessibleObject {
+@@ -882,48 +882,48 @@
  				}
  				AtkAttribute attr = new AtkAttribute();
  				if (event.leftMargin != -1) {
@@ -597,7 +761,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  					attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_JUSTIFICATION));
  					String str = "left"; //$NON-NLS-1$
  					switch (event.alignment) {
-@@ -598,7 +598,7 @@ class AccessibleObject {
+@@ -939,7 +939,7 @@
  				if (event.attributes != null) {
  					int end = event.attributes.length / 2 * 2;
  					for (int i = 0; i < end; i+= 2) {
@@ -606,7 +770,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = getStringPtr (event.attributes[i]);
  						attr.value = getStringPtr (event.attributes[i + 1]);
  						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-@@ -610,10 +610,10 @@ class AccessibleObject {
+@@ -951,10 +951,10 @@
  		return parentResult;
  	}
  
@@ -619,7 +783,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_name != 0) {
  			parentResult = ATK.call (objectClass.get_name, atkObject);
-@@ -639,10 +639,10 @@ class AccessibleObject {
+@@ -980,10 +980,10 @@
  		return parentResult;
  	}	
  
@@ -632,7 +796,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_n_children != 0) { 
  			parentResult = ATK.call (objectClass.get_n_children, atkObject);
-@@ -666,7 +666,7 @@ class AccessibleObject {
+@@ -1007,7 +1007,7 @@
  		return parentResult;
  	}
  
@@ -641,7 +805,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkObject_get_index_in_parent: " + atkObject);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -690,12 +690,12 @@ class AccessibleObject {
+@@ -1031,12 +1031,12 @@
  		}
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_index_in_parent == 0) return 0;
@@ -656,7 +820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkObject_get_parent: " + atkObject);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -706,12 +706,12 @@ class AccessibleObject {
+@@ -1047,12 +1047,12 @@
  		}
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.get_parent == 0) return 0;
@@ -671,7 +835,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkObject_get_role: " + atkObject);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -791,7 +791,7 @@ class AccessibleObject {
+@@ -1132,7 +1132,7 @@
  		return ATK.call (objectClass.get_role, atkObject);
  	}
  
@@ -680,7 +844,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkObject_ref_child: " + index + " of: " + atkObject);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null && object.id == ACC.CHILDID_SELF) {
-@@ -824,10 +824,10 @@ class AccessibleObject {
+@@ -1165,10 +1165,10 @@
  		return ATK.call (objectClass.ref_child, atkObject, index);
  	}
  
@@ -693,7 +857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkObjectClass objectClass = getObjectClass (atkObject);
  		if (objectClass.ref_state_set != 0) { 
  			parentResult = ATK.call (objectClass.ref_state_set, atkObject);
-@@ -837,7 +837,7 @@ class AccessibleObject {
+@@ -1178,7 +1178,7 @@
  			Vector listeners = accessible.accessibleControlListeners;
  			int length = listeners.size();
  			if (length > 0) {
@@ -702,7 +866,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  				AccessibleControlEvent event = new AccessibleControlEvent (accessible);
  				event.childID = object.id;
  				event.detail = -1;
-@@ -877,7 +877,7 @@ class AccessibleObject {
+@@ -1218,7 +1218,7 @@
  		return parentResult;
  	}
  	
@@ -711,7 +875,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_SELECTION())) {
  			AtkSelectionIface iface = new AtkSelectionIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_SELECTION_GET_IFACE (atkObject)));
-@@ -886,10 +886,10 @@ class AccessibleObject {
+@@ -1227,10 +1227,10 @@
  		return null;
  	}
  	
@@ -724,7 +888,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkSelectionIface iface = getSelectionIface (atkObject);
  		if (iface != null && iface.is_child_selected != 0) {
  			parentResult = ATK.call (iface.is_child_selected, atkObject, index);
-@@ -915,10 +915,10 @@ class AccessibleObject {
+@@ -1256,10 +1256,10 @@
  		return parentResult;
  	}
  
@@ -737,7 +901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkSelectionIface iface = getSelectionIface (atkObject);
  		if (iface != null && iface.ref_selection != 0) {
  			parentResult = ATK.call (iface.ref_selection, atkObject, index);
-@@ -945,7 +945,7 @@ class AccessibleObject {
+@@ -1286,7 +1286,7 @@
  		return parentResult;
  	}
  
@@ -746,7 +910,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_TABLE())) {
  			AtkTableIface iface = new AtkTableIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_TABLE_GET_IFACE (atkObject)));
-@@ -954,7 +954,7 @@ class AccessibleObject {
+@@ -1295,7 +1295,7 @@
  		return null;
  	}
  	
@@ -755,7 +919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_ref_at");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -977,7 +977,7 @@ class AccessibleObject {
+@@ -1318,7 +1318,7 @@
  				}
  			}
  		}
@@ -764,7 +928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.ref_at != 0) {
  			parentResult = ATK.call (iface.ref_at, atkObject, row, column);
-@@ -985,7 +985,7 @@ class AccessibleObject {
+@@ -1326,7 +1326,7 @@
  		return parentResult;
  	}
  
@@ -773,7 +937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_index_at");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1010,7 +1010,7 @@ class AccessibleObject {
+@@ -1351,7 +1351,7 @@
  				return row * event.count + column;
  			}
  		}
@@ -782,7 +946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_index_at != 0) {
  			parentResult = ATK.call (iface.get_index_at, atkObject, row, column);
-@@ -1018,7 +1018,7 @@ class AccessibleObject {
+@@ -1359,7 +1359,7 @@
  		return parentResult;
  	}
  
@@ -791,7 +955,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_column_at_index: " + atkObject + " " + index);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1031,12 +1031,12 @@ class AccessibleObject {
+@@ -1372,12 +1372,12 @@
  					AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
  					listener.getColumnCount(event);
  				}
@@ -806,7 +970,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_column_at_index != 0) {
  			parentResult = ATK.call (iface.get_column_at_index, atkObject, index);
-@@ -1044,7 +1044,7 @@ class AccessibleObject {
+@@ -1385,7 +1385,7 @@
  		return parentResult;
  	}
  
@@ -815,7 +979,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_row_at_index: " + atkObject + " " + index);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1057,12 +1057,12 @@ class AccessibleObject {
+@@ -1398,12 +1398,12 @@
  					AccessibleTableListener listener = (AccessibleTableListener) listeners.elementAt(i);
  					listener.getColumnCount(event);
  				}
@@ -830,7 +994,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_row_at_index != 0) {
  			parentResult = ATK.call (iface.get_row_at_index, atkObject, index);
-@@ -1070,10 +1070,10 @@ class AccessibleObject {
+@@ -1411,10 +1411,10 @@
  		return parentResult;
  	}
  
@@ -843,7 +1007,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_n_columns != 0) {
  			parentResult = ATK.call (iface.get_n_columns, atkObject);
-@@ -1095,10 +1095,10 @@ class AccessibleObject {
+@@ -1436,10 +1436,10 @@
  		return parentResult;
  	}
  
@@ -856,7 +1020,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_n_rows != 0) {
  			parentResult = ATK.call (iface.get_n_rows, atkObject);
-@@ -1120,10 +1120,10 @@ class AccessibleObject {
+@@ -1461,10 +1461,10 @@
  		return parentResult;
  	}
  
@@ -869,7 +1033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_column_extent_at != 0) {
  			parentResult = ATK.call (iface.get_column_extent_at, atkObject, row, column);
-@@ -1159,10 +1159,10 @@ class AccessibleObject {
+@@ -1500,10 +1500,10 @@
  		return parentResult;
  	}
  
@@ -882,7 +1046,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_row_extent_at != 0) {
  			parentResult = ATK.call (iface.get_row_extent_at, atkObject, row, column);
-@@ -1198,7 +1198,7 @@ class AccessibleObject {
+@@ -1539,7 +1539,7 @@
  		return parentResult;
  	}
  
@@ -891,7 +1055,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_caption");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1215,7 +1215,7 @@ class AccessibleObject {
+@@ -1556,7 +1556,7 @@
  				if (result != null) return result.getAccessibleObject().handle;
  			}
  		}
@@ -900,7 +1064,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_caption != 0) {
  			parentResult = ATK.call (iface.get_caption, atkObject);
-@@ -1223,7 +1223,7 @@ class AccessibleObject {
+@@ -1564,7 +1564,7 @@
  		return parentResult;
  	}
  
@@ -909,7 +1073,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_summary");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1240,7 +1240,7 @@ class AccessibleObject {
+@@ -1581,7 +1581,7 @@
  				if (result != null) return result.getAccessibleObject().handle;
  			}
  		}
@@ -918,7 +1082,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_summary != 0) {
  			parentResult = ATK.call (iface.get_summary, atkObject);
-@@ -1248,10 +1248,10 @@ class AccessibleObject {
+@@ -1589,10 +1589,10 @@
  		return parentResult;
  	}
  	
@@ -931,7 +1095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_column_description != 0) {
  			parentResult = ATK.call (iface.get_column_description, atkObject, column);
-@@ -1276,7 +1276,7 @@ class AccessibleObject {
+@@ -1617,7 +1617,7 @@
  		return parentResult;
  	}
  	
@@ -940,7 +1104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_column_header");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1297,7 +1297,7 @@ class AccessibleObject {
+@@ -1638,7 +1638,7 @@
  				}
  			}
  		}
@@ -949,7 +1113,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_column_header != 0) {
  			parentResult = ATK.call (iface.get_column_header, atkObject, column);
-@@ -1305,10 +1305,10 @@ class AccessibleObject {
+@@ -1646,10 +1646,10 @@
  		return parentResult;
  	}
  	
@@ -962,7 +1126,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_row_description != 0) {
  			parentResult = ATK.call (iface.get_row_description, atkObject, row);
-@@ -1333,7 +1333,7 @@ class AccessibleObject {
+@@ -1674,7 +1674,7 @@
  		return parentResult;
  	}
  
@@ -971,7 +1135,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_row_header");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1354,7 +1354,7 @@ class AccessibleObject {
+@@ -1695,7 +1695,7 @@
  				}
  			}
  		}
@@ -980,7 +1144,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_row_header != 0) {
  			parentResult = ATK.call (iface.get_row_header, atkObject, row);
-@@ -1362,7 +1362,7 @@ class AccessibleObject {
+@@ -1703,7 +1703,7 @@
  		return parentResult;
  	}
  
@@ -989,7 +1153,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_selected_columns");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1376,13 +1376,13 @@ class AccessibleObject {
+@@ -1717,13 +1717,13 @@
  					listener.getSelectedColumns(event);
  				}
  				int count = event.selected != null ? event.selected.length : 0;
@@ -1006,7 +1170,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_selected_columns != 0) {
  			parentResult = ATK.call (iface.get_selected_columns, atkObject, selected);
-@@ -1390,7 +1390,7 @@ class AccessibleObject {
+@@ -1731,7 +1731,7 @@
  		return parentResult;
  	}
  
@@ -1015,7 +1179,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_get_selected_rows");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1404,13 +1404,13 @@ class AccessibleObject {
+@@ -1745,13 +1745,13 @@
  					listener.getSelectedRows(event);
  				}
  				int count = event.selected != null ? event.selected.length : 0;
@@ -1032,7 +1196,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.get_selected_rows != 0) {
  			parentResult = ATK.call (iface.get_selected_rows, atkObject, selected);
-@@ -1418,10 +1418,10 @@ class AccessibleObject {
+@@ -1759,10 +1759,10 @@
  		return parentResult;
  	}
  
@@ -1045,7 +1209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.is_column_selected != 0) {
  			parentResult = ATK.call (iface.is_column_selected, atkObject, column);
-@@ -1444,10 +1444,10 @@ class AccessibleObject {
+@@ -1785,10 +1785,10 @@
  		return parentResult;
  	}
  
@@ -1058,7 +1222,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.is_row_selected != 0) {
  			parentResult = ATK.call (iface.is_row_selected, atkObject, row);
-@@ -1470,10 +1470,10 @@ class AccessibleObject {
+@@ -1811,10 +1811,10 @@
  		return parentResult;
  	}
  
@@ -1071,7 +1235,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.is_selected != 0) {
  			parentResult = ATK.call (iface.is_selected, atkObject, row, column);
-@@ -1509,7 +1509,7 @@ class AccessibleObject {
+@@ -1850,7 +1850,7 @@
  		return parentResult;
  	}
  
@@ -1080,7 +1244,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_add_row_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1526,7 +1526,7 @@ class AccessibleObject {
+@@ -1867,7 +1867,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1089,7 +1253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.add_row_selection != 0) {
  			parentResult = ATK.call (iface.add_row_selection, atkObject, row);
-@@ -1534,7 +1534,7 @@ class AccessibleObject {
+@@ -1875,7 +1875,7 @@
  		return parentResult;
  	}
  
@@ -1098,7 +1262,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_remove_row_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1551,7 +1551,7 @@ class AccessibleObject {
+@@ -1892,7 +1892,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1107,7 +1271,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.remove_row_selection != 0) {
  			parentResult = ATK.call (iface.remove_row_selection, atkObject, row);
-@@ -1559,7 +1559,7 @@ class AccessibleObject {
+@@ -1900,7 +1900,7 @@
  		return parentResult;
  	}
  
@@ -1116,7 +1280,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_add_column_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1576,7 +1576,7 @@ class AccessibleObject {
+@@ -1917,7 +1917,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1125,7 +1289,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.add_column_selection != 0) {
  			parentResult = ATK.call (iface.add_column_selection, atkObject, column);
-@@ -1584,7 +1584,7 @@ class AccessibleObject {
+@@ -1925,7 +1925,7 @@
  		return parentResult;
  	}
  
@@ -1134,7 +1298,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkTable_remove_column_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1601,7 +1601,7 @@ class AccessibleObject {
+@@ -1942,7 +1942,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1143,7 +1307,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTableIface iface = getTableIface (atkObject);
  		if (iface != null && iface.remove_column_selection != 0) {
  			parentResult = ATK.call (iface.remove_column_selection, atkObject, column);
-@@ -1609,7 +1609,7 @@ class AccessibleObject {
+@@ -1950,7 +1950,7 @@
  		return parentResult;
  	}
  
@@ -1152,7 +1316,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_TEXT())) {
  			AtkTextIface iface = new AtkTextIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_TEXT_GET_IFACE (atkObject)));
-@@ -1618,7 +1618,7 @@ class AccessibleObject {
+@@ -1959,7 +1959,7 @@
  		return null;
  	}
  	
@@ -1161,7 +1325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_character_extents");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1653,21 +1653,21 @@ class AccessibleObject {
+@@ -1994,21 +1994,21 @@
  		return 0;
  	}
  	
@@ -1187,7 +1351,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_range_extents");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1704,7 +1704,7 @@ class AccessibleObject {
+@@ -2045,7 +2045,7 @@
  		return 0;
  	}
  	
@@ -1196,7 +1360,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_run_attributes");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1721,18 +1721,18 @@ class AccessibleObject {
+@@ -2062,18 +2062,18 @@
  				OS.memmove (start_offset, new int []{event.start}, 4);
  				OS.memmove (end_offset, new int []{event.end}, 4);
  				TextStyle style = event.textStyle;
@@ -1218,7 +1382,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_UNDERLINE));
  						String str = "none"; //$NON-NLS-1$
  						switch (style.underlineStyle) {
-@@ -1746,7 +1746,7 @@ class AccessibleObject {
+@@ -2087,7 +2087,7 @@
  						result = OS.g_slist_append(result, attrPtr);
  					}
  					if (style.strikeout) {
@@ -1227,7 +1391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRIKETHROUGH));
  						attr.value = getStringPtr ("1");
  						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-@@ -1755,7 +1755,7 @@ class AccessibleObject {
+@@ -2096,7 +2096,7 @@
  					Font font = style.font;
  					if (font != null && !font.isDisposed()) {
  						//TODO language and direction
@@ -1236,7 +1400,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attrPtr = OS.g_malloc(AtkAttribute.sizeof);
  						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FAMILY_NAME));
  						attr.value = ATK.g_strdup (OS.pango_font_description_get_family (font.handle));
-@@ -1794,7 +1794,7 @@ class AccessibleObject {
+@@ -2135,7 +2135,7 @@
  					}
  					Color color = style.foreground;
  					if (color != null && !color.isDisposed()) {
@@ -1245,7 +1409,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FG_COLOR));
  						attr.value = getStringPtr ((color.handle.red & 0xFFFF) + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$
  						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-@@ -1802,7 +1802,7 @@ class AccessibleObject {
+@@ -2143,7 +2143,7 @@
  					}
  					color = style.background;
  					if (color != null && !color.isDisposed()) {
@@ -1254,7 +1418,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = ATK.g_strdup (ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_BG_COLOR));
  						attr.value = getStringPtr ((color.handle.red & 0xFFFF) + "," + (color.handle.blue & 0xFFFF) + "," + (color.handle.blue & 0xFFFF)); //$NON-NLS-1$ //$NON-NLS-2$
  						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-@@ -1812,7 +1812,7 @@ class AccessibleObject {
+@@ -2153,7 +2153,7 @@
  				if (event.attributes != null) {
  					int end = event.attributes.length / 2 * 2;
  					for (int i = 0; i < end; i+= 2) {
@@ -1263,7 +1427,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  						attr.name = getStringPtr (event.attributes[i]);
  						attr.value = getStringPtr (event.attributes[i + 1]);
  						ATK.memmove(attrPtr, attr, AtkAttribute.sizeof);
-@@ -1822,7 +1822,7 @@ class AccessibleObject {
+@@ -2163,7 +2163,7 @@
  				return result;
  			}
  		}
@@ -1272,7 +1436,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.get_run_attributes != 0) {
  			parentResult = ATK.call (iface.get_run_attributes, atkObject, offset, start_offset, end_offset);
-@@ -1830,7 +1830,7 @@ class AccessibleObject {
+@@ -2171,7 +2171,7 @@
  		return parentResult;
  	}
  
@@ -1281,7 +1445,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_offset_at_point");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1854,7 +1854,7 @@ class AccessibleObject {
+@@ -2195,7 +2195,7 @@
  				return event.offset;
  			}
  		}
@@ -1290,7 +1454,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.get_offset_at_point != 0) {
  			parentResult = ATK.call (iface.get_offset_at_point, atkObject, x, y, coords);
-@@ -1862,7 +1862,7 @@ class AccessibleObject {
+@@ -2203,7 +2203,7 @@
  		return parentResult;
  	}
  
@@ -1299,7 +1463,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_add_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1880,7 +1880,7 @@ class AccessibleObject {
+@@ -2221,7 +2221,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1308,7 +1472,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.add_selection != 0) {
  			parentResult = ATK.call (iface.add_selection, atkObject, start_offset, end_offset);
-@@ -1888,7 +1888,7 @@ class AccessibleObject {
+@@ -2229,7 +2229,7 @@
  		return parentResult;
  	}
  
@@ -1317,7 +1481,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_remove_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1905,7 +1905,7 @@ class AccessibleObject {
+@@ -2246,7 +2246,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1326,7 +1490,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.remove_selection != 0) {
  			parentResult = ATK.call (iface.remove_selection, atkObject, selection_num);
-@@ -1913,7 +1913,7 @@ class AccessibleObject {
+@@ -2254,7 +2254,7 @@
  		return parentResult;
  	}
  	
@@ -1335,7 +1499,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_set_caret_offset");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1937,7 +1937,7 @@ class AccessibleObject {
+@@ -2278,7 +2278,7 @@
  		return 0;
  	}
  
@@ -1344,7 +1508,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_set_selection");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -1956,7 +1956,7 @@ class AccessibleObject {
+@@ -2297,7 +2297,7 @@
  				return ACC.OK.equals(event.result) ? 1 : 0;
  			}
  		}
@@ -1353,7 +1517,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.set_selection != 0) {
  			parentResult = ATK.call (iface.set_selection, atkObject, selection_num, start_offset, end_offset);
-@@ -1964,10 +1964,10 @@ class AccessibleObject {
+@@ -2305,10 +2305,10 @@
  		return parentResult;
  	}
  
@@ -1366,7 +1530,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.get_caret_offset != 0) {
  			parentResult = ATK.call (iface.get_caret_offset, atkObject);
-@@ -2000,7 +2000,7 @@ class AccessibleObject {
+@@ -2341,7 +2341,7 @@
  		return parentResult; 	
  	}
  	
@@ -1375,7 +1539,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_bounded_ranges");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2021,7 +2021,7 @@ class AccessibleObject {
+@@ -2362,7 +2362,7 @@
  				}
  				int [] ranges = event.ranges;
  				int size = ranges == null ? 1 : ranges.length / 2;
@@ -1384,7 +1548,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  				AtkTextRange range = new AtkTextRange();
  				for (int j = 0, end = (ranges != null ? ranges.length / 2 : 1); j < end; j++) {
  					if (ranges != null) {
-@@ -2053,7 +2053,7 @@ class AccessibleObject {
+@@ -2394,7 +2394,7 @@
  				return result;
  			}
  		}
@@ -1393,7 +1557,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.get_bounded_ranges != 0) {
  			parentResult = ATK.call (iface.get_bounded_ranges, atkObject);
-@@ -2061,7 +2061,7 @@ class AccessibleObject {
+@@ -2402,7 +2402,7 @@
  		return parentResult;
  	}
  	
@@ -1402,7 +1566,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_character_at_offset");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2090,7 +2090,7 @@ class AccessibleObject {
+@@ -2431,7 +2431,7 @@
  		return 0;
  	}
  
@@ -1411,7 +1575,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_character_count");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2115,7 +2115,7 @@ class AccessibleObject {
+@@ -2456,7 +2456,7 @@
  		return 0;
  	}
  
@@ -1420,7 +1584,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_n_selections");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2142,7 +2142,7 @@ class AccessibleObject {
+@@ -2483,7 +2483,7 @@
  				if (event.length > 0) return 1;
  			}
  		}
@@ -1429,7 +1593,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkTextIface iface = getTextIface (atkObject);
  		if (iface != null && iface.get_n_selections != 0) {
  			parentResult = ATK.call (iface.get_n_selections, atkObject);
-@@ -2150,10 +2150,10 @@ class AccessibleObject {
+@@ -2491,10 +2491,10 @@
  		return parentResult;
  	}
  
@@ -1442,7 +1606,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		OS.memmove (start_offset, new int[] {0}, 4);
  		OS.memmove (end_offset, new int[] {0}, 4);
  		AtkTextIface iface = getTextIface (atkObject);
-@@ -2219,7 +2219,7 @@ class AccessibleObject {
+@@ -2560,7 +2560,7 @@
  		return parentResult;
  	}
  
@@ -1451,7 +1615,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_text: " + atkObject + " " + start_offset + "," + end_offset);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2256,7 +2256,7 @@ class AccessibleObject {
+@@ -2597,7 +2597,7 @@
  		return 0;
  	}
  
@@ -1460,7 +1624,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_text_after_offset");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2264,7 +2264,7 @@ class AccessibleObject {
+@@ -2605,7 +2605,7 @@
  			Vector listeners = accessible.accessibleTextExtendedListeners;
  			int length = listeners.size();
  			if (length > 0) {
@@ -1469,7 +1633,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  				AccessibleTextEvent event = new AccessibleTextEvent(accessible);
  				event.start = event.end = (int)/*64*/offset_value;
  				event.count = 1;
-@@ -2504,7 +2504,7 @@ class AccessibleObject {
+@@ -2845,7 +2845,7 @@
  		return 0;
  	}
  
@@ -1478,7 +1642,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_text_at_offset: " + offset_value + " start: " + start_offset + " end: " + end_offset);
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2512,7 +2512,7 @@ class AccessibleObject {
+@@ -2853,7 +2853,7 @@
  			Vector listeners = accessible.accessibleTextExtendedListeners;
  			int length = listeners.size();
  			if (length > 0) {
@@ -1487,7 +1651,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  				AccessibleTextEvent event = new AccessibleTextEvent(accessible);
  				event.start = event.end = (int)/*64*/offset_value;
  				event.count = 0;
-@@ -2695,7 +2695,7 @@ class AccessibleObject {
+@@ -3036,7 +3036,7 @@
  		return 0;
  	}
  
@@ -1496,7 +1660,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkText_get_text_before_offset");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -2703,7 +2703,7 @@ class AccessibleObject {
+@@ -3044,7 +3044,7 @@
  			Vector listeners = accessible.accessibleTextExtendedListeners;
  			int length = listeners.size();
  			if (length > 0) {
@@ -1505,7 +1669,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  				AccessibleTextEvent event = new AccessibleTextEvent(accessible);
  				event.start = event.end = (int)/*64*/offset_value;
  				event.count = -1;
-@@ -2891,7 +2891,7 @@ class AccessibleObject {
+@@ -3232,7 +3232,7 @@
  		return 0;
  	}
  	
@@ -1514,7 +1678,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (number == null) return;
  		if (OS.G_VALUE_TYPE(value) != 0) OS.g_value_unset(value);
  		if (number instanceof Double) {
-@@ -2909,8 +2909,8 @@ class AccessibleObject {
+@@ -3250,8 +3250,8 @@
  		}
  	}
  
@@ -1525,7 +1689,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (type == 0) return null;
  		if (type == OS.G_TYPE_DOUBLE()) return new Double(OS.g_value_get_double(value));
  		if (type == OS.G_TYPE_FLOAT()) return new Float(OS.g_value_get_float(value));
-@@ -2918,7 +2918,7 @@ class AccessibleObject {
+@@ -3259,7 +3259,7 @@
  		return new Integer(OS.g_value_get_int(value));
  	}
  	
@@ -1534,7 +1698,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_VALUE())) {
  			AtkValueIface iface = new AtkValueIface ();
  			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_VALUE_GET_IFACE (atkObject)));
-@@ -2926,7 +2926,7 @@ class AccessibleObject {
+@@ -3267,7 +3267,7 @@
  		}
  		return null;
  	}
@@ -1543,7 +1707,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkValue_get_current_value");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		AtkValueIface iface = getValueIface (atkObject);
-@@ -2950,7 +2950,7 @@ class AccessibleObject {
+@@ -3291,7 +3291,7 @@
  		return 0;
  	}
  
@@ -1552,7 +1716,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkValue_get_maximum_value");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		AtkValueIface iface = getValueIface (atkObject);
-@@ -2974,7 +2974,7 @@ class AccessibleObject {
+@@ -3315,7 +3315,7 @@
  		return 0;
  	}
  
@@ -1561,7 +1725,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkValue_get_minimum_value");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		AtkValueIface iface = getValueIface (atkObject);
-@@ -2998,7 +2998,7 @@ class AccessibleObject {
+@@ -3339,7 +3339,7 @@
  		return 0;
  	}
  
@@ -1570,7 +1734,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		if (DEBUG) print ("-->atkValue_set_current_value");
  		AccessibleObject object = getAccessibleObject (atkObject);
  		if (object != null) {
-@@ -3015,7 +3015,7 @@ class AccessibleObject {
+@@ -3356,7 +3356,7 @@
  				return event.value != null ? 1 : 0;
  			}
  		}
@@ -1579,7 +1743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AtkValueIface iface = getValueIface (atkObject);
  		if (iface != null && iface.set_current_value != 0) {
  			parentResult = ATK.call (iface.set_current_value, atkObject, value);
-@@ -3023,7 +3023,7 @@ class AccessibleObject {
+@@ -3364,7 +3364,7 @@
  		return parentResult;
  	}
  
@@ -1588,7 +1752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		AccessibleObject object = (AccessibleObject)AccessibleObjects.get (new LONG (atkObject));
  		if (object == null) return null;
  		if (object.accessible == null) return null;
-@@ -3056,9 +3056,9 @@ class AccessibleObject {
+@@ -3397,9 +3397,9 @@
  			String parentText = "";	//$NON-NLS-1$
  			AtkTextIface iface = getTextIface (handle);
  			if (iface != null && iface.get_character_count != 0) {
@@ -1600,7 +1764,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  					if (parentResult != 0) {
  						parentText = getString (parentResult);
  						OS.g_free(parentResult);
-@@ -3077,10 +3077,10 @@ class AccessibleObject {
+@@ -3418,10 +3418,10 @@
  		return null;
  	}
  
@@ -1614,7 +1778,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		GObjectClass objectClassStruct = new GObjectClass ();
  		ATK.memmove (objectClassStruct, gObjectClass);
  		ATK.call (objectClassStruct.finalize, atkObject);
-@@ -3120,8 +3120,8 @@ class AccessibleObject {
+@@ -3461,8 +3461,8 @@
  			ATK.memmove (gtkAccessible, object.handle);
  		}
  		if (gtkAccessible.widget == 0) return;
@@ -1625,10 +1789,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/accessibility/AccessibleObject.ja
  		OS.gdk_window_get_origin (window, x, y);
  	}
  	
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.6.2/org/eclipse/swt/awt/SWT_AWT.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/awt/SWT_AWT.java	2011-03-21 11:34:23.295734363 +0000
-@@ -64,7 +64,7 @@ public class SWT_AWT {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.7//org/eclipse/swt/awt/SWT_AWT.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/awt/SWT_AWT.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/awt/SWT_AWT.java	2011-06-13 20:53:32.000000000 +0000
+@@ -64,7 +64,7 @@
  
  static boolean loaded, swingInitialized;
  
@@ -1637,7 +1801,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.6.2/or
  static native final void setDebug (Frame canvas, boolean debug);
  
  static synchronized void loadLibrary () {
-@@ -152,7 +152,7 @@ public static Frame new_Frame (final Com
+@@ -152,7 +152,7 @@
  	if ((parent.getStyle () & SWT.EMBEDDED) == 0) {
  		SWT.error (SWT.ERROR_INVALID_ARGUMENT);
  	}
@@ -1646,7 +1810,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.6.2/or
  	/*
  	 * Some JREs have implemented the embedded frame constructor to take an integer
  	 * and other JREs take a long.  To handle this binary incompatibility, use
-@@ -200,9 +200,9 @@ public static Frame new_Frame (final Com
+@@ -200,9 +200,9 @@
  							if (parent.isDisposed()) return;
  							Shell shell = parent.getShell();
  							loadLibrary();
@@ -1658,7 +1822,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.6.2/or
  							OS.XSetTransientForHint(OS.GDK_DISPLAY(), awtHandle, xWindow);
  						}
  					});
-@@ -300,7 +300,7 @@ public static Frame new_Frame (final Com
+@@ -300,7 +300,7 @@
  public static Shell new_Shell (final Display display, final Canvas parent) {
  	if (display == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
  	if (parent == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
@@ -1667,10 +1831,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/awt/SWT_AWT.java swt-gtk-3.6.2/or
  	try {
  		loadLibrary ();
  		handle = getAWTHandle (parent);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java swt-gtk-3.6.2/org/eclipse/swt/browser/AppFileLocProvider.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/AppFileLocProvider.java	2011-03-21 11:34:23.215735487 +0000
-@@ -46,7 +46,7 @@ AppFileLocProvider (String mozillaPath,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/AppFileLocProvider.java swt-gtk-3.7//org/eclipse/swt/browser/AppFileLocProvider.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/AppFileLocProvider.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/AppFileLocProvider.java	2011-06-13 20:53:32.000000000 +0000
+@@ -46,7 +46,7 @@
  	this.profilePath = profilePath + SEPARATOR_OS;
  	this.isXULRunner = isXULRunner;
  	if (!Compatibility.fileExists (profilePath, "")) { //$NON-NLS-1$
@@ -1679,7 +1843,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  		nsEmbedString pathString = new nsEmbedString (profilePath);
  		int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-@@ -69,24 +69,24 @@ int AddRef () {
+@@ -69,24 +69,24 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -1716,7 +1880,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  	};
  }
  
-@@ -105,32 +105,32 @@ void disposeCOMInterfaces () {
+@@ -105,32 +105,32 @@
  	}	
  }
  
@@ -1755,7 +1919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -142,7 +142,7 @@ int Release () {
+@@ -142,7 +142,7 @@
  
  /* nsIDirectoryServiceProvider2 */
  
@@ -1764,7 +1928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  	int size = XPCOM.strlen (prop);
  	byte[] bytes = new byte[size];
  	XPCOM.memmove (bytes, prop, size);
-@@ -153,7 +153,7 @@ int getFiles (int /*long*/ prop, int /*l
+@@ -153,7 +153,7 @@
  		if (pluginDirs == null) {
  			int index = 0;
  			/* set the first value(s) to the MOZ_PLUGIN_PATH environment variable value if it's defined */
@@ -1773,7 +1937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  			if (ptr != 0) {
  				int length = C.strlen (ptr);
  				byte[] buffer = new byte[length];
-@@ -204,9 +204,9 @@ int getFiles (int /*long*/ prop, int /*l
+@@ -204,9 +204,9 @@
  		propertyValues = pluginDirs;
  	}
  
@@ -1785,7 +1949,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  		nsISupports[] files = new nsISupports [propertyValues.length];
  		int index = 0;
  		for (int i = 0; i < propertyValues.length; i++) {
-@@ -240,7 +240,7 @@ int getFiles (int /*long*/ prop, int /*l
+@@ -240,7 +240,7 @@
  
  		SimpleEnumerator enumerator = new SimpleEnumerator (files);
  		enumerator.AddRef ();
@@ -1794,7 +1958,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  		return XPCOM.NS_OK;
  	}
  
-@@ -249,7 +249,7 @@ int getFiles (int /*long*/ prop, int /*l
+@@ -249,7 +249,7 @@
  	
  /* nsIDirectoryServiceProvider implementation */
  
@@ -1803,7 +1967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  	int size = XPCOM.strlen (prop);
  	byte[] bytes = new byte[size];
  	XPCOM.memmove (bytes, prop, size);
-@@ -303,9 +303,9 @@ int getFile(int /*long*/ prop, int /*lon
+@@ -303,9 +303,9 @@
  	}
  
  	XPCOM.memmove (persistent, new int[] {1}, 4); /* PRBool */
@@ -1815,7 +1979,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  		nsEmbedString pathString = new nsEmbedString (propertyValue);
  		int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-@@ -318,7 +318,7 @@ int getFile(int /*long*/ prop, int /*lon
+@@ -318,7 +318,7 @@
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
  
@@ -1824,10 +1988,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/AppFileLocProvider.java s
  		localFile.Release ();
  		return XPCOM.NS_OK;
  	}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk-3.6.2/org/eclipse/swt/browser/Download_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/Download_1_8.java	2011-03-21 11:34:23.215735487 +0000
-@@ -48,97 +48,97 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk-3.7//org/eclipse/swt/browser/Download_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/Download_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/Download_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -48,97 +48,97 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -1983,7 +2147,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	};
  }
  
-@@ -161,36 +161,36 @@ void disposeCOMInterfaces() {
+@@ -161,36 +161,36 @@
  	}
  }
  
@@ -2027,7 +2191,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -203,26 +203,26 @@ int Release () {
+@@ -203,26 +203,26 @@
  /* nsIDownload */
  
  /* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
@@ -2059,7 +2223,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	rc = target.GetPath (aPath);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	length = XPCOM.nsEmbedCString_Length (aPath);
-@@ -277,60 +277,60 @@ int Init (int /*long*/ aSource, int /*lo
+@@ -277,60 +277,60 @@
  	return XPCOM.NS_OK;
  }
  
@@ -2134,7 +2298,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
-@@ -338,26 +338,26 @@ int SetCancelDownloadOnClose (int aCance
+@@ -338,26 +338,26 @@
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
@@ -2166,7 +2330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	long aCurSelfProgress = (aCurSelfProgress2 << 32) + aCurSelfProgress1;
  	long aMaxSelfProgress = (aMaxSelfProgress2 << 32) + aMaxSelfProgress1;
  	long aCurTotalProgress = (aCurTotalProgress2 << 32) + aCurTotalProgress1;
-@@ -365,7 +365,7 @@ int OnProgressChange64_32 (int /*long*/
+@@ -365,7 +365,7 @@
  	return OnProgressChange64 (aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
  }
  
@@ -2175,7 +2339,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	long currentKBytes = aCurTotalProgress / 1024;
  	long totalKBytes = aMaxTotalProgress / 1024;
  	if (shell != null && !shell.isDisposed ()) {
-@@ -378,11 +378,11 @@ int OnProgressChange64 (int /*long*/ aWe
+@@ -378,11 +378,11 @@
  	return XPCOM.NS_OK;
  }
  
@@ -2189,7 +2353,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
  		cancelable = null;
  		if (shell != null && !shell.isDisposed ()) shell.dispose ();
-@@ -391,7 +391,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -391,7 +391,7 @@
  	return XPCOM.NS_OK;
  }	
  
@@ -2198,10 +2362,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download_1_8.java swt-gtk
  	return XPCOM.NS_OK;
  }		
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java swt-gtk-3.6.2/org/eclipse/swt/browser/DownloadFactory_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/DownloadFactory_1_8.java	2011-03-21 11:34:23.215735487 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java swt-gtk-3.7//org/eclipse/swt/browser/DownloadFactory_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/DownloadFactory_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -2227,7 +2391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -2260,7 +2424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -87,10 +87,10 @@ int Release () {
+@@ -87,10 +87,10 @@
  
  /* nsIFactory */
  
@@ -2273,10 +2437,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory_1_8.java
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory.java swt-gtk-3.6.2/org/eclipse/swt/browser/DownloadFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/DownloadFactory.java	2011-03-21 11:34:23.185735915 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/DownloadFactory.java swt-gtk-3.7//org/eclipse/swt/browser/DownloadFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/DownloadFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/DownloadFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -2302,7 +2466,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory.java swt-
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -2335,7 +2499,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory.java swt-
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -87,10 +87,10 @@ int Release () {
+@@ -87,10 +87,10 @@
  	
  /* nsIFactory */
  
@@ -2348,10 +2512,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/DownloadFactory.java swt-
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6.2/org/eclipse/swt/browser/Download.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/Download.java	2011-03-21 11:34:23.165736206 +0000
-@@ -46,63 +46,63 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.7//org/eclipse/swt/browser/Download.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/Download.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/Download.java	2011-06-13 20:53:32.000000000 +0000
+@@ -46,63 +46,63 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -2463,7 +2627,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	};
  }
  
-@@ -125,36 +125,36 @@ void disposeCOMInterfaces () {
+@@ -125,36 +125,36 @@
  	}
  }
  
@@ -2507,7 +2671,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -167,13 +167,13 @@ int Release () {
+@@ -167,13 +167,13 @@
  /* nsIDownload */
  
  /* Note. The argument startTime is defined as a PRInt64. This translates into two java ints. */
@@ -2524,7 +2688,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	byte[] dest = new byte[length];
  	XPCOM.memmove (dest, buffer, length);
  	XPCOM.nsEmbedCString_delete (aSpec);
-@@ -186,12 +186,12 @@ int Init (int /*long*/ aSource, int /*lo
+@@ -186,12 +186,12 @@
  	*/
  	String filename = null;
  	nsISupports supports = new nsISupports (aTarget);
@@ -2539,7 +2703,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  		rc = target.GetPath (aPath);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		length = XPCOM.nsEmbedCString_Length (aPath);
-@@ -205,7 +205,7 @@ int Init (int /*long*/ aSource, int /*lo
+@@ -205,7 +205,7 @@
  		target.Release ();
  	} else {	/* < 1.7 */
  		nsILocalFile target = new nsILocalFile (aTarget);
@@ -2548,7 +2712,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  		rc = target.GetNativeLeafName (aNativeTarget);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		length = XPCOM.nsEmbedCString_Length (aNativeTarget);
-@@ -259,54 +259,54 @@ int Init (int /*long*/ aSource, int /*lo
+@@ -259,54 +259,54 @@
  	return XPCOM.NS_OK;
  }
  
@@ -2616,7 +2780,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  		int rc = supports.QueryInterface (nsIHelperAppLauncher.NS_IHELPERAPPLAUNCHER_IID, result);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -316,11 +316,11 @@ int SetObserver (int /*long*/ aObserver)
+@@ -316,11 +316,11 @@
  }
  
  /* nsIProgressDialog */
@@ -2630,7 +2794,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
-@@ -328,17 +328,17 @@ int SetCancelDownloadOnClose (int aCance
+@@ -328,17 +328,17 @@
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
@@ -2651,7 +2815,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	if ((aStateFlags & nsIWebProgressListener.STATE_STOP) != 0) {
  		if (helperAppLauncher != null) helperAppLauncher.Release ();
  		helperAppLauncher = null;
-@@ -348,7 +348,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -348,7 +348,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -2660,7 +2824,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	int currentKBytes = aCurTotalProgress / 1024;
  	int totalKBytes = aMaxTotalProgress / 1024;
  	if (shell != null && !shell.isDisposed ()) {
-@@ -361,15 +361,15 @@ int OnProgressChange (int /*long*/ aWebP
+@@ -361,15 +361,15 @@
  	return XPCOM.NS_OK;
  }
  
@@ -2679,10 +2843,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Download.java swt-gtk-3.6
  	return XPCOM.NS_OK;
  }
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/ExternalFactory.java swt-gtk-3.6.2/org/eclipse/swt/browser/ExternalFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/ExternalFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/ExternalFactory.java	2011-03-21 11:34:23.165736206 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/ExternalFactory.java swt-gtk-3.7//org/eclipse/swt/browser/ExternalFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/ExternalFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/ExternalFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -2708,7 +2872,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/ExternalFactory.java swt-
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -2741,7 +2905,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/ExternalFactory.java swt-
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -87,10 +87,10 @@ int Release () {
+@@ -87,10 +87,10 @@
  
  /* nsIFactory */
  
@@ -2754,10 +2918,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/ExternalFactory.java swt-
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6.2/org/eclipse/swt/browser/External.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/External.java	2011-03-21 11:34:23.205735634 +0000
-@@ -39,40 +39,40 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/External.java swt-gtk-3.7//org/eclipse/swt/browser/External.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/External.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/External.java	2011-06-13 20:53:32.000000000 +0000
+@@ -39,40 +39,40 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -2811,19 +2975,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
 +		public long /*int*/ method6 (long /*int*/[] args) {return canSetProperty (args[0], args[1], args[2]);}
  	};
  
- 	external = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+ 	external = new XPCOMObject (new int[] {2, 0, 0, 4}) {
 -		public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
 -		public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
 -		public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
--		public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2]);}
+-		public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2], args[3]);}
 +		public long /*int*/ method0 (long /*int*/[] args) {return QueryInterface (args[0], args[1]);}
 +		public long /*int*/ method1 (long /*int*/[] args) {return AddRef ();}
 +		public long /*int*/ method2 (long /*int*/[] args) {return Release ();}
-+		public long /*int*/ method3 (long /*int*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2]);}
++		public long /*int*/ method3 (long /*int*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2], args[3]);}
  	};
  	
  }
-@@ -88,37 +88,37 @@ void disposeCOMInterfaces () {
+@@ -88,37 +88,37 @@
  	}
  }
  
@@ -2868,7 +3032,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -130,8 +130,8 @@ int Release () {
+@@ -130,8 +130,8 @@
  
  /* nsIClassInfo */
  
@@ -2879,7 +3043,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -147,44 +147,44 @@ int getClassDescription (int /*long*/ _r
+@@ -147,44 +147,44 @@
  	nsIMemory memory = new nsIMemory (result[0]);
  	result[0] = 0;
  	byte[] bytes = MozillaDelegate.wcsToMbcs (null, "external", true); //$NON-NLS-1$
@@ -2935,7 +3099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -199,14 +199,14 @@ int getInterfaces (int /*long*/ count, i
+@@ -199,14 +199,14 @@
  
  	nsIMemory memory = new nsIMemory (result[0]);
  	result[0] = 0;
@@ -2956,7 +3120,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	memory.Release ();
  
  	C.memmove (count, new int[] {2}, 4); /* PRUint */
-@@ -215,8 +215,8 @@ int getInterfaces (int /*long*/ count, i
+@@ -215,8 +215,8 @@
  
  /* nsISecurityCheckedComponent */
  
@@ -2967,7 +3131,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -232,16 +232,16 @@ int canCreateWrapper (int /*long*/ iid,
+@@ -232,16 +232,16 @@
  	nsIMemory memory = new nsIMemory (result[0]);
  	result[0] = 0;
  	byte[] bytes = MozillaDelegate.wcsToMbcs (null, "allAccess", true); //$NON-NLS-1$
@@ -2988,7 +3152,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -266,16 +266,16 @@ int canCallMethod (int /*long*/ iid, int
+@@ -266,16 +266,16 @@
  	} else {
  		bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
  	}
@@ -3009,7 +3173,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -291,16 +291,16 @@ int canGetProperty (int /*long*/ iid, in
+@@ -291,16 +291,16 @@
  	nsIMemory memory = new nsIMemory (result[0]);
  	result[0] = 0;
  	byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
@@ -3030,7 +3194,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -316,9 +316,9 @@ int canSetProperty (int /*long*/ iid, in
+@@ -316,9 +316,9 @@
  	nsIMemory memory = new nsIMemory (result[0]);
  	result[0] = 0;
  	byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$
@@ -3042,7 +3206,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	memory.Release ();
  
  	return XPCOM.NS_OK;
-@@ -344,7 +344,7 @@ Object convertToJava (nsIVariant variant
+@@ -344,7 +344,7 @@
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  			return new Double (intResult[0]);
  		case nsIDataType.VTYPE_DOUBLE:
@@ -3051,7 +3215,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  			rc = variant.GetAsDouble (doubleReturn);
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  			double[] doubleResult = new double[1];
-@@ -353,7 +353,7 @@ Object convertToJava (nsIVariant variant
+@@ -353,7 +353,7 @@
  			return new Double (doubleResult[0]);
  		case nsIDataType.VTYPE_WSTRING_SIZE_IS:
  			int[] size = new int[1]; /* PRInt32 */
@@ -3060,7 +3224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  			rc = variant.GetAsWStringWithSize (size, wString);
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  			char[] chars = new char[size[0]];
-@@ -361,11 +361,11 @@ Object convertToJava (nsIVariant variant
+@@ -361,11 +361,11 @@
  			return new String (chars);
  		case nsIDataType.VTYPE_ARRAY:
  			Object[] arrayReturn = new Object[0];
@@ -3074,7 +3238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  			rc = variant.GetAsArray (currentType, iid, count, ptr);
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  			if (ptr[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER);
-@@ -373,7 +373,7 @@ Object convertToJava (nsIVariant variant
+@@ -373,7 +373,7 @@
  			XPCOM.memmove (id, iid, nsID.sizeof);
  			C.free (iid);
  
@@ -3083,7 +3247,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  			rc = XPCOM.NS_GetServiceManager (result);
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  			if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -392,7 +392,7 @@ Object convertToJava (nsIVariant variant
+@@ -392,7 +392,7 @@
  			if (id.Equals (nsIVariant.NS_IVARIANT_IID)) {
  				arrayReturn = new Object[count[0]];
  				for (int i = 0; i < count[0]; i++) {
@@ -3092,7 +3256,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  					C.memmove (arrayPtr, ptr[0] + i * C.PTR_SIZEOF, C.PTR_SIZEOF);
  					nsISupports supports = new nsISupports (arrayPtr[0]);
  					rc = supports.QueryInterface (nsIVariant.NS_IVARIANT_IID, result);
-@@ -444,8 +444,8 @@ Object convertToJava (nsIVariant variant
+@@ -444,8 +444,8 @@
  					case nsIDataType.VTYPE_WCHAR_STR:
  						arrayReturn = new Object[count[0]];
  						for (int i = 0; i < count[0]; i++) {
@@ -3103,7 +3267,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  							C.memmove (stringPtr, currentPtr, C.PTR_SIZEOF);
  							int length = XPCOM.strlen_PRUnichar (stringPtr[0]);
  							char[] dest = new char[length];
-@@ -468,7 +468,7 @@ Object convertToJava (nsIVariant variant
+@@ -468,7 +468,7 @@
  }
  
  nsIVariant convertToJS (Object value, nsIComponentManager componentManager) {
@@ -3112,7 +3276,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_VARIANT_CONTRACTID, true);
  	int rc = componentManager.CreateInstanceByContractID (aContractID, 0, nsIWritableVariant.NS_IWRITABLEVARIANT_IID, result);
  	nsIWritableVariant variant = new nsIWritableVariant (result[0]);
-@@ -507,26 +507,26 @@ nsIVariant convertToJS (Object value, ns
+@@ -507,26 +507,26 @@
  			rc = variant.SetAsEmptyArray ();
  			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		} else {
@@ -3143,16 +3307,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  			XPCOM.memmove (idPtr, nsIVariant.NS_IVARIANT_IID, nsID.sizeof);
  			rc = variant.SetAsArray (nsIDataType.VTYPE_INTERFACE_IS, idPtr, length, arrayPtr);
  			C.free (idPtr);
-@@ -541,7 +541,7 @@ nsIVariant convertToJS (Object value, ns
+@@ -541,7 +541,7 @@
  	return null;
  }
  
--int callJava (int functionId, int /*long*/ args, int /*long*/ returnPtr) {
-+int callJava (int functionId, long /*int*/ args, long /*int*/ returnPtr) {
+-int callJava (int functionId, int /*long*/ tokenVariant, int /*long*/ args, int /*long*/ returnPtr) {
++int callJava (int functionId, long /*int*/ tokenVariant, long /*int*/ args, long /*int*/ returnPtr) {
  	Object key = new Integer (functionId);
  	BrowserFunction function = (BrowserFunction)Mozilla.AllFunctions.get (key);
  	Object returnValue = null;
-@@ -572,7 +572,7 @@ int callJava (int functionId, int /*long
+@@ -582,7 +582,7 @@
  		}
  	}
  
@@ -3161,7 +3325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  	int rc = XPCOM.NS_GetComponentManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -586,7 +586,7 @@ int callJava (int functionId, int /*long
+@@ -596,7 +596,7 @@
  		variant = convertToJS (WebBrowser.CreateErrorString (e.getLocalizedMessage ()), componentManager);
  	}
  	componentManager.Release ();
@@ -3170,10 +3334,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/External.java swt-gtk-3.6
  
  	return XPCOM.NS_OK;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker_1_8.java swt-gtk-3.6.2/org/eclipse/swt/browser/FilePicker_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/FilePicker_1_8.java	2011-03-21 11:34:23.215735487 +0000
-@@ -17,30 +17,30 @@ class FilePicker_1_8 extends FilePicker
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePicker_1_8.java swt-gtk-3.7//org/eclipse/swt/browser/FilePicker_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePicker_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/FilePicker_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,30 +17,30 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3225,7 +3389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker_1_8.java swt-g
  	};
  }
  
-@@ -49,10 +49,10 @@ void createCOMInterfaces () {
+@@ -49,10 +49,10 @@
   * answers a java string based on the type of string that is appropriate for the Mozilla
   * version being used.
   */
@@ -3238,10 +3402,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker_1_8.java swt-g
  	char[] chars = new char[length];
  	XPCOM.memmove (chars, buffer, length * 2);
  	return new String (chars);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory_1_8.java swt-gtk-3.6.2/org/eclipse/swt/browser/FilePickerFactory_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/FilePickerFactory_1_8.java	2011-03-21 11:34:23.165736206 +0000
-@@ -18,26 +18,26 @@ class FilePickerFactory_1_8 extends File
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePickerFactory_1_8.java swt-gtk-3.7//org/eclipse/swt/browser/FilePickerFactory_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePickerFactory_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/FilePickerFactory_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -18,26 +18,26 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3278,10 +3442,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory_1_8.jav
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory.java swt-gtk-3.6.2/org/eclipse/swt/browser/FilePickerFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/FilePickerFactory.java	2011-03-21 11:34:23.185735915 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePickerFactory.java swt-gtk-3.7//org/eclipse/swt/browser/FilePickerFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePickerFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/FilePickerFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3307,7 +3471,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory.java sw
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -3340,7 +3504,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory.java sw
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -87,10 +87,10 @@ int Release () {
+@@ -87,10 +87,10 @@
  	
  /* nsIFactory */
  
@@ -3353,10 +3517,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePickerFactory.java sw
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3.6.2/org/eclipse/swt/browser/FilePicker.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/FilePicker.java	2011-03-21 11:34:23.205735634 +0000
-@@ -21,7 +21,7 @@ class FilePicker {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3.7//org/eclipse/swt/browser/FilePicker.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/FilePicker.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/FilePicker.java	2011-06-13 20:53:32.000000000 +0000
+@@ -21,7 +21,7 @@
  
  	int refCount = 0;
  	short mode;
@@ -3365,7 +3529,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	String[] files, masks;
  	String defaultFilename, directory, title;
  
-@@ -39,30 +39,30 @@ int AddRef () {
+@@ -39,30 +39,30 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3417,7 +3581,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	};
  }
  
-@@ -77,32 +77,32 @@ void disposeCOMInterfaces () {
+@@ -77,32 +77,32 @@
  	}
  }
  
@@ -3456,7 +3620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -112,7 +112,7 @@ int Release () {
+@@ -112,7 +112,7 @@
  	return refCount;
  }
  
@@ -3465,7 +3629,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	if (aDOMWindow == 0) return null;
  	nsIDOMWindow window = new nsIDOMWindow (aDOMWindow);
  	return Mozilla.findBrowser (window);
-@@ -123,20 +123,20 @@ Browser getBrowser (int /*long*/ aDOMWin
+@@ -123,20 +123,20 @@
   * answers a java string based on the type of string that is appropriate for the Mozilla
   * version being used.
   */
@@ -3489,7 +3653,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	if (mode == nsIFilePicker.modeGetFolder) {
  		/* picking a directory */
  		int result = showDirectoryPicker ();
-@@ -186,20 +186,20 @@ int showDirectoryPicker () {
+@@ -186,20 +186,20 @@
  	return directory == null ? nsIFilePicker.returnCancel : nsIFilePicker.returnOK;
  }
  
@@ -3514,7 +3678,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, file);
  	path.dispose ();
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-@@ -208,13 +208,13 @@ int GetFile (int /*long*/ aFile) {
+@@ -208,13 +208,13 @@
  	return XPCOM.NS_OK;
  }
  
@@ -3531,7 +3695,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	byte[] bytes = new byte[length];
  	XPCOM.memmove (bytes, buffer, length);
  	XPCOM.nsEmbedCString_delete (pathname);
-@@ -223,10 +223,10 @@ int SetDisplayDirectory (int /*long*/ aD
+@@ -223,10 +223,10 @@
  	return XPCOM.NS_OK;
  }
  
@@ -3544,7 +3708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, file);
  	path.dispose ();
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-@@ -239,31 +239,31 @@ int SetFilterIndex (int aFilterIndex) {
+@@ -239,31 +239,31 @@
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
@@ -3582,10 +3746,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/FilePicker.java swt-gtk-3
  	/* note that the type of arguments 1 and 2 changed as of Mozilla 1.8 */
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java	2011-03-21 11:34:23.175736057 +0000
-@@ -38,17 +38,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialog_1_9.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,17 +38,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3611,7 +3775,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1
  	};		
  }
  
-@@ -63,27 +63,27 @@ void disposeCOMInterfaces () {
+@@ -63,27 +63,27 @@
  	}
  }
  
@@ -3644,7 +3808,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -102,12 +102,12 @@ int Release () {
+@@ -102,12 +102,12 @@
  
  /* nsIHelperAppLauncherDialog */
  
@@ -3659,7 +3823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1
  	int length = XPCOM.strlen_PRUnichar (aDefaultFileName);
  	char[] dest = new char[length];
  	XPCOM.memmove (dest, aDefaultFileName, length * 2);
-@@ -131,7 +131,7 @@ int PromptForSaveToFile (int /*long*/ aL
+@@ -131,7 +131,7 @@
  		return XPCOM.NS_ERROR_FAILURE;
  	}
  	nsEmbedString path = new nsEmbedString (name);
@@ -3668,10 +3832,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog_1
  	int rc = XPCOM.NS_NewLocalFile (path.getAddress (), 1, result);
  	path.dispose ();
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java	2011-03-21 11:34:23.175736057 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialogFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3697,7 +3861,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFa
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -3730,7 +3894,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFa
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -87,15 +87,15 @@ int Release () {
+@@ -87,15 +87,15 @@
  	
  /* nsIFactory */
  
@@ -3749,10 +3913,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialogFa
  	}
  	return XPCOM.NS_OK;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.java swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/HelperAppLauncherDialog.java	2011-03-21 11:34:23.215735487 +0000
-@@ -38,17 +38,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.java swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/HelperAppLauncherDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,17 +38,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -3778,7 +3942,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.j
  	};		
  }
  
-@@ -63,27 +63,27 @@ void disposeCOMInterfaces () {
+@@ -63,27 +63,27 @@
  	}
  }
  
@@ -3811,7 +3975,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.j
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -102,14 +102,14 @@ int Release () {
+@@ -102,14 +102,14 @@
  
  /* nsIHelperAppLauncherDialog */
  
@@ -3828,7 +3992,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.j
  	int rc = supports.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
  	if (rc == XPCOM.NS_OK) {	/* >= 1.8 */
  		nsIHelperAppLauncher_1_8 helperAppLauncher = new nsIHelperAppLauncher_1_8 (aLauncher);
-@@ -121,8 +121,8 @@ int Show (int /*long*/ aLauncher, int /*
+@@ -121,8 +121,8 @@
  	return helperAppLauncher.SaveToDisk (0, 0);
  }
  
@@ -3839,7 +4003,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.j
  	boolean hasLauncher = false;
  
  	/*
-@@ -140,7 +140,7 @@ int PromptForSaveToFile (int /*long*/ ar
+@@ -140,7 +140,7 @@
  	 */
   	boolean using_1_8 = false;
  	nsISupports support = new nsISupports (arg0);
@@ -3848,10 +4012,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/HelperAppLauncherDialog.j
  	int rc = support.QueryInterface (nsIHelperAppLauncher_1_8.NS_IHELPERAPPLAUNCHER_IID, result);
  	if (rc == XPCOM.NS_OK) {
  		using_1_8 = true;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-3.6.2/org/eclipse/swt/browser/InputStream.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/InputStream.java	2011-03-21 11:34:23.215735487 +0000
-@@ -34,14 +34,14 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-3.7//org/eclipse/swt/browser/InputStream.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/InputStream.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/InputStream.java	2011-06-13 20:53:32.000000000 +0000
+@@ -34,14 +34,14 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	inputStream = new XPCOMObject (new int[] {2, 0, 0, 0, 1, 3, 4, 1}) {
@@ -3874,7 +4038,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  	};
  }
  
-@@ -52,26 +52,26 @@ void disposeCOMInterfaces () {
+@@ -52,26 +52,26 @@
  	}
  }
  
@@ -3906,7 +4070,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -89,13 +89,13 @@ int Close () {
+@@ -89,13 +89,13 @@
  	return XPCOM.NS_OK;
  }
  
@@ -3922,7 +4086,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  	int max = Math.min (aCount, buffer == null ? 0 : buffer.length - index);
  	if (max > 0) {
  		byte[] src = new byte[max];
-@@ -107,7 +107,7 @@ int Read(int /*long*/ aBuf, int aCount,
+@@ -107,7 +107,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -3931,7 +4095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  	int max = buffer == null ? 0 : buffer.length - index;
  	if (aCount != -1) {
  		max = Math.min (max, aCount);
-@@ -115,7 +115,7 @@ int ReadSegments (int /*long*/ aWriter,
+@@ -115,7 +115,7 @@
  	int cnt = max;
  	while (cnt > 0) {
  		int[] aWriteCount = new int[1];
@@ -3940,7 +4104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  		if (rc != XPCOM.NS_OK) break;
  		index += aWriteCount[0];
  		cnt -= aWriteCount[0];
-@@ -124,7 +124,7 @@ int ReadSegments (int /*long*/ aWriter,
+@@ -124,7 +124,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -3949,10 +4113,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/InputStream.java swt-gtk-
  	/* blocking */
  	XPCOM.memmove (_retval, new int[] {0}, 4);
  	return XPCOM.NS_OK;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-gtk-3.6.2/org/eclipse/swt/browser/MozillaDelegate.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/MozillaDelegate.java	2011-03-21 11:34:23.165736206 +0000
-@@ -19,11 +19,11 @@ import org.eclipse.swt.widgets.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-gtk-3.7//org/eclipse/swt/browser/MozillaDelegate.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/MozillaDelegate.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/MozillaDelegate.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,11 +19,11 @@
  
  class MozillaDelegate {
  	Browser browser;
@@ -3966,7 +4130,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	static final int STOP_PROPOGATE = 1;
  
  	static boolean IsSparc;
-@@ -47,8 +47,8 @@ MozillaDelegate (Browser browser) {
+@@ -47,8 +47,8 @@
  	this.browser = browser;
  }
  
@@ -3977,7 +4141,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	parent = OS.gtk_widget_get_parent (parent);
  	if (parent == 0) return 0;
  	Widget widget = Display.getCurrent ().findWidget (parent);
-@@ -58,12 +58,12 @@ static int /*long*/ eventProc (int /*lon
+@@ -58,12 +58,12 @@
  	return 0;
  }
  
@@ -3992,7 +4156,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	Display display = Display.getCurrent ();
  	return (Browser)display.findWidget (parent); 
  }
-@@ -87,7 +87,7 @@ int createBaseWindow (nsIBaseWindow base
+@@ -87,7 +87,7 @@
  	return baseWindow.Create ();
  }
  
@@ -4001,7 +4165,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	/*
  	* Bug in Mozilla Linux GTK.  Embedding Mozilla into a GtkFixed
  	* handle causes problems with some Mozilla plug-ins.  For some
-@@ -117,7 +117,7 @@ String getSWTInitLibraryName () {
+@@ -117,7 +117,7 @@
  	return "swt-xpcominit"; //$NON-NLS-1$
  }
  
@@ -4010,7 +4174,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	if (event.type == OS.GDK_BUTTON_PRESS) {
-@@ -183,7 +183,7 @@ void init () {
+@@ -183,7 +183,7 @@
  	* forward the event to the parent embedder before Mozilla received and consumed
  	* them.
  	*/
@@ -4019,7 +4183,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	if (list != 0) {
  		mozillaHandle = OS.g_list_data (list);
  		OS.g_list_free (list);
-@@ -209,7 +209,7 @@ boolean needsSpinup () {
+@@ -209,7 +209,7 @@
  	return true;
  }
  
@@ -4028,7 +4192,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	if (listener != null) {
  		browser.getDisplay ().removeFilter (SWT.FocusIn, listener);
  		browser.getShell ().removeListener (SWT.Deactivate, listener);
-@@ -225,7 +225,7 @@ boolean sendTraverse () {
+@@ -225,7 +225,7 @@
  	return true;
  }
  
@@ -4037,10 +4201,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/MozillaDelegate.java swt-
  	OS.gtk_widget_set_size_request (embedHandle, width, height);
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.2/org/eclipse/swt/browser/Mozilla.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/Mozilla.java	2011-03-21 11:34:23.205735634 +0000
-@@ -23,7 +23,7 @@ import org.eclipse.swt.internal.mozilla.
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.7//org/eclipse/swt/browser/Mozilla.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/Mozilla.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/Mozilla.java	2011-06-13 20:53:32.000000000 +0000
+@@ -23,7 +23,7 @@
  import org.eclipse.swt.layout.*;
  
  class Mozilla extends WebBrowser {
@@ -4049,7 +4213,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	nsIWebBrowser webBrowser;
  	Object webBrowserObject;
  	MozillaDelegate delegate;
-@@ -46,7 +46,7 @@ class Mozilla extends WebBrowser {
+@@ -46,7 +46,7 @@
  	int chromeFlags = nsIWebBrowserChrome.CHROME_DEFAULT;
  	int registerFunctionsOnState = 0;
  	int refCount, lastKeyCode, lastCharCode, authCount;
@@ -4058,7 +4222,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	Point location, size;
  	boolean visible, isChild, ignoreDispose, isRetrievingBadCert, isViewingErrorPage, ignoreAllMessages, untrustedText;
  	boolean updateLastNavigateUrl;
-@@ -117,7 +117,7 @@ class Mozilla extends WebBrowser {
+@@ -122,7 +122,7 @@
  			public void handleEvent (Event event) {
  				if (BrowserCount > 0) return; /* another display is still active */
  
@@ -4067,7 +4231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -182,18 +182,18 @@ class Mozilla extends WebBrowser {
+@@ -187,18 +187,18 @@
  
  //					int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
  //					/* alloc memory for two structs, the second is empty to signify the end of the list */
@@ -4089,7 +4253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  //					result[0] = 0;
  //					C.free (functionLoad.function);
  //					C.free (functionLoad.functionName);
-@@ -215,7 +215,7 @@ class Mozilla extends WebBrowser {
+@@ -220,7 +220,7 @@
  				boolean hostSet = oldProxyHostFTP != null || oldProxyHostHTTP != null || oldProxyHostSSL != null;
  				if (!hostSet && oldProxyPortFTP == -1 && oldProxyPortHTTP == -1 && oldProxyPortSSL == -1 && oldProxyType == -1) return;
  
@@ -4098,7 +4262,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				byte[] buffer = new byte[1];
  				int rc = prefService.GetBranch (buffer, result);	/* empty buffer denotes root preference level */
  				if (rc != XPCOM.NS_OK) error (rc);
-@@ -320,7 +320,7 @@ class Mozilla extends WebBrowser {
+@@ -325,7 +325,7 @@
  		MozillaClearSessions = new Runnable () {
  			public void run () {
  				if (!Initialized) return;
@@ -4107,7 +4271,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -350,9 +350,9 @@ class Mozilla extends WebBrowser {
+@@ -355,9 +355,9 @@
  					rc = cookie.GetExpires (expires);
  					if (expires[0] == 0) {
  						/* indicates a session cookie */
@@ -4120,7 +4284,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  						cookie.GetHost (domain);
  						cookie.GetName (name);
  						cookie.GetPath (path);
-@@ -375,7 +375,7 @@ class Mozilla extends WebBrowser {
+@@ -380,7 +380,7 @@
  			public void run() {
  				if (!Initialized) return;
  
@@ -4129,7 +4293,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -389,7 +389,7 @@ class Mozilla extends WebBrowser {
+@@ -394,7 +394,7 @@
  				nsIIOService ioService = new nsIIOService (result[0]);
  				result[0] = 0;
  				byte[] bytes = MozillaDelegate.wcsToMbcs (null, CookieUrl, false);
@@ -4138,7 +4302,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				rc = ioService.NewURI (aSpec, null, 0, result);
  				XPCOM.nsEmbedCString_delete (aSpec);
  				ioService.Release ();
-@@ -403,7 +403,7 @@ class Mozilla extends WebBrowser {
+@@ -408,7 +408,7 @@
  				result[0] = 0;
  				byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_COOKIESERVICE_CONTRACTID, true);
  				rc = serviceManager.GetServiceByContractID (aContractID, nsICookieService.NS_ICOOKIESERVICE_IID, result);
@@ -4147,7 +4311,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				if (rc == XPCOM.NS_OK && result[0] != 0) {
  					nsICookieService cookieService = new nsICookieService (result[0]);
  					result[0] = 0;
-@@ -478,7 +478,7 @@ class Mozilla extends WebBrowser {
+@@ -483,7 +483,7 @@
  			public void run() {
  				if (!Initialized) return;
  
@@ -4156,7 +4320,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -492,7 +492,7 @@ class Mozilla extends WebBrowser {
+@@ -497,7 +497,7 @@
  				nsIIOService ioService = new nsIIOService (result[0]);
  				result[0] = 0;
  				byte[] bytes = MozillaDelegate.wcsToMbcs (null, CookieUrl, false);
@@ -4165,25 +4329,25 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				rc = ioService.NewURI (aSpec, null, 0, result);
  				XPCOM.nsEmbedCString_delete (aSpec);
  				ioService.Release ();
-@@ -532,7 +532,7 @@ public boolean create (Composite parent,
+@@ -619,7 +619,7 @@
+ 				if (Device.DEBUG) System.out.println ("cannot use detected XULRunner: " + MozillaPath); //$NON-NLS-1$
+ 
+ 				/* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
+-				int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
++				long /*int*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
+ 				if (ptr == 0) {
+ 					IsXULRunner = false;
+ 				} else {
+@@ -663,7 +663,7 @@
  	delegate = new MozillaDelegate (browser);
  	final Display display = parent.getDisplay ();
  
 -	int /*long*/[] result = new int /*long*/[1];
 +	long /*int*/[] result = new long /*int*/[1];
  	if (!Initialized) {
- 		boolean initLoaded = false;
- 		boolean isXULRunner = false;
-@@ -604,7 +604,7 @@ public boolean create (Composite parent,
- 					if (Device.DEBUG) System.out.println ("cannot use detected XULRunner: " + mozillaPath); //$NON-NLS-1$
- 
- 					/* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
--					int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
-+					long /*int*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
- 					if (ptr == 0) {
- 						isXULRunner = false;
- 					} else {
-@@ -937,7 +937,7 @@ public boolean create (Composite parent,
+ 		LoadLibraries ();
+ 
+@@ -996,7 +996,7 @@
  public boolean back () {
  	htmlBytes = null;
  
@@ -4192,7 +4356,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -967,122 +967,122 @@ public boolean close () {
+@@ -1026,122 +1026,122 @@
  void createCOMInterfaces () {
  	// Create each of the interfaces that this object implements
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -4395,7 +4559,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	};
  }
  
-@@ -1161,7 +1161,7 @@ public boolean execute (String script) {
+@@ -1220,7 +1220,7 @@
  	* workaround is to invoke the javascript handler directly via C++, which is
  	* exposed as of mozilla 1.9.
  	*/
@@ -4404,7 +4568,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (!IsPre_1_9) {
  		int rc = XPCOM.NS_GetServiceManager (result);
  		if (rc != XPCOM.NS_OK) error (rc);
-@@ -1212,12 +1212,12 @@ public boolean execute (String script) {
+@@ -1271,12 +1271,12 @@
  			interfaceRequestor.Release ();
  
  			if (rc == XPCOM.NS_OK && result[0] != 0) {
@@ -4420,7 +4584,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				new nsISupports (scriptGlobalObject).Release ();
  
  				if (scriptContext != 0 && globalJSObject != 0) {
-@@ -1234,7 +1234,7 @@ public boolean execute (String script) {
+@@ -1293,7 +1293,7 @@
  						new nsISupports (result[0]).Release ();
  						result[0] = 0;
  
@@ -4429,7 +4593,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  						if (nativeContext != 0) {
  							int length = script.length ();
  							char[] scriptChars = new char[length];
-@@ -1242,7 +1242,7 @@ public boolean execute (String script) {
+@@ -1301,7 +1301,7 @@
  							byte[] urlbytes = MozillaDelegate.wcsToMbcs (null, getUrl (), true);
  							rc = principal.GetJSPrincipals (nativeContext, result);
  							if (rc == XPCOM.NS_OK && result[0] != 0) {
@@ -4438,7 +4602,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  								result[0] = 0;
  								principal.Release ();
  								if (pathBytes_JSEvaluateUCScriptForPrincipals == null) {
-@@ -1297,12 +1297,12 @@ public boolean execute (String script) {
+@@ -1356,12 +1356,12 @@
  	return rc == XPCOM.NS_OK;
  }
  
@@ -4453,7 +4617,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-@@ -1321,7 +1321,7 @@ static Browser findBrowser (nsIDOMWindow
+@@ -1380,7 +1380,7 @@
  	rc = aDOMWindow.GetTop (result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  	if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
@@ -4462,7 +4626,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	result[0] = 0;
  	rc = windowWatcher.GetChromeForWindow (topDOMWindow, result);
  	if (rc != XPCOM.NS_OK) Mozilla.error (rc);
-@@ -1349,7 +1349,7 @@ static Browser findBrowser (nsIDOMWindow
+@@ -1408,7 +1408,7 @@
  public boolean forward () {
  	htmlBytes = null;
  
@@ -4471,7 +4635,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -1369,7 +1369,7 @@ static String getMozillaPath () {
+@@ -1428,7 +1428,7 @@
  	if (LocationProvider != null) return LocationProvider.mozillaPath;
  	if (!Initialized) return "";
  
@@ -4480,7 +4644,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -1399,11 +1399,11 @@ static String getMozillaPath () {
+@@ -1458,11 +1458,11 @@
  
  	nsIFile mozillaDir = new nsIFile (result[0]);
  	result[0] = 0;
@@ -4494,7 +4658,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	buffer = new byte[length];
  	XPCOM.memmove (buffer, ptr, length);
  	XPCOM.nsEmbedCString_delete (path);
-@@ -1417,7 +1417,7 @@ int getNextFunctionIndex () {
+@@ -1476,7 +1476,7 @@
  }
  
  public String getText () {
@@ -4503,7 +4667,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.GetContentDOMWindow (result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -1429,7 +1429,7 @@ public String getText () {
+@@ -1488,7 +1488,7 @@
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
  	window.Release ();
  
@@ -4512,7 +4676,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	result[0] = 0;
  	rc = XPCOM.NS_GetComponentManager (result);
  	if (rc != XPCOM.NS_OK) error (rc);
-@@ -1446,12 +1446,12 @@ public String getText () {
+@@ -1505,12 +1505,12 @@
  
  		nsIDOMSerializer_1_7 serializer = new nsIDOMSerializer_1_7 (result[0]);
  		result[0] = 0;
@@ -4527,7 +4691,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		chars = new char[length];
  		XPCOM.memmove (chars, buffer, length * 2);
  		XPCOM.nsEmbedString_delete (string);
-@@ -1476,13 +1476,13 @@ public String getText () {
+@@ -1535,13 +1535,13 @@
  }
  
  public String getUrl () {
@@ -4543,7 +4707,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	rc = webNavigation.GetCurrentURI (aCurrentURI);
  	if (rc != XPCOM.NS_OK) error (rc);
  	webNavigation.Release ();
-@@ -1490,11 +1490,11 @@ public String getUrl () {
+@@ -1549,11 +1549,11 @@
  	byte[] dest = null;
  	if (aCurrentURI[0] != 0) {
  		nsIURI uri = new nsIURI (aCurrentURI[0]);
@@ -4557,8 +4721,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		dest = new byte[length];
  		XPCOM.memmove (dest, buffer, length);
  		XPCOM.nsEmbedCString_delete (aSpec);
-@@ -1546,20 +1546,20 @@ public Object getWebBrowser () {
- String initDiscoverXULRunner () {
+@@ -1616,29 +1616,29 @@
+ 
  	GREVersionRange range = new GREVersionRange ();
  	byte[] bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER, true);
 -	int /*long*/ lower = C.malloc (bytes.length);
@@ -4574,24 +4738,34 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	range.upper = upper;
  	range.upperInclusive = UpperRangeInclusive;
  
+ 	GREProperty property = new GREProperty ();
+ 	bytes = MozillaDelegate.wcsToMbcs (null, PROPERTY_ABI, true);
+-	int /*long*/ name = C.malloc (bytes.length);
++	long /*int*/ name = C.malloc (bytes.length);
+ 	C.memmove (name, bytes, bytes.length);
+ 	property.property = name;
+ 	bytes = MozillaDelegate.wcsToMbcs (null, Arch () + GCC3, true);
+-	int /*long*/ value = C.malloc (bytes.length);
++	long /*int*/ value = C.malloc (bytes.length);
+ 	C.memmove (value, bytes, bytes.length);
+ 	property.value = value;
+ 
  	int length = XPCOMInit.PATH_MAX;
 -	int /*long*/ greBuffer = C.malloc (length);
--	int /*long*/ propertiesPtr = C.malloc (2 * C.PTR_SIZEOF);
 +	long /*int*/ greBuffer = C.malloc (length);
-+	long /*int*/ propertiesPtr = C.malloc (2 * C.PTR_SIZEOF);
- 	int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+ 	int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, property, 1, greBuffer, length);
  
- 	/*
-@@ -1616,7 +1616,7 @@ void initExternal (String profilePath) {
+ 	if (rc != XPCOM.NS_OK) {
+@@ -1697,7 +1697,7 @@
  }
  
  void initFactories (nsIServiceManager serviceManager, nsIComponentManager componentManager, boolean isXULRunner) {
 -	int /*long*/[] result = new int /*long*/[1];
 +	long /*int*/[] result = new long /*int*/[1];
  
- 	PromptService2Factory factory = new PromptService2Factory ();
- 	factory.AddRef ();
-@@ -1728,7 +1728,7 @@ void initJavaXPCOM (String mozillaPath)
+ 	int rc = componentManager.QueryInterface (nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
+ 	if (rc != XPCOM.NS_OK) {
+@@ -1808,7 +1808,7 @@
  
  String initMozilla (String mozillaPath) {
  	/* attempt to use the GRE pointed at by MOZILLA_FIVE_HOME */
@@ -4600,7 +4774,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (ptr != 0) {
  		int length = C.strlen (ptr);
  		byte[] buffer = new byte[length];
-@@ -1775,7 +1775,7 @@ String initMozilla (String mozillaPath)
+@@ -1862,7 +1862,7 @@
  }
  
  void initXPCOM (String mozillaPath, boolean isXULRunner) {
@@ -4609,7 +4783,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  	nsEmbedString pathString = new nsEmbedString (mozillaPath);
  	int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, result);
-@@ -1794,18 +1794,18 @@ void initXPCOM (String mozillaPath, bool
+@@ -1881,18 +1881,18 @@
  	if (isXULRunner) {
  		int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
  		/* alloc memory for two structs, the second is empty to signify the end of the list */
@@ -4631,7 +4805,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		result[0] = 0;
  		C.free (functionLoad.function);
  		C.free (functionLoad.functionName);
-@@ -1830,7 +1830,7 @@ void initXPCOM (String mozillaPath, bool
+@@ -1917,7 +1917,7 @@
  }
  
  void initPreferences (nsIServiceManager serviceManager, nsIComponentManager componentManager) {
@@ -4640,7 +4814,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  	/*
  	 * As a result of using a common profile the user cannot change their locale
-@@ -2197,7 +2197,7 @@ void initPreferences (nsIServiceManager
+@@ -2284,7 +2284,7 @@
  }
  
  void initProfile (nsIServiceManager serviceManager, boolean isXULRunner) {
@@ -4649,7 +4823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  	byte[] buffer = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_OBSERVER_CONTRACTID, true);
  	int rc = serviceManager.GetServiceByContractID (buffer, nsIObserverService.NS_IOBSERVERSERVICE_IID, result);
-@@ -2232,18 +2232,18 @@ void initProfile (nsIServiceManager serv
+@@ -2319,18 +2319,18 @@
  	if (isXULRunner) {
  		int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
  		/* alloc memory for two structs, the second is empty to signify the end of the list */
@@ -4671,7 +4845,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		result[0] = 0;
  		C.free (functionLoad.function);
  		C.free (functionLoad.functionName);
-@@ -2261,7 +2261,7 @@ void initProfile (nsIServiceManager serv
+@@ -2348,7 +2348,7 @@
  
  void initSpinup (nsIComponentManager componentManager) {
  	if (delegate.needsSpinup ()) {
@@ -4680,7 +4854,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  		/* nsIAppShell is discontinued as of xulrunner 1.9, so do not fail if it is not found */
  		int rc = componentManager.CreateInstance (XPCOM.NS_APPSHELL_CID, 0, nsIAppShell.NS_IAPPSHELL_IID, result);
-@@ -2298,7 +2298,7 @@ void initWebBrowserWindows () {
+@@ -2385,7 +2385,7 @@
  		error (rc);
  	}
  
@@ -4689,7 +4863,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
  	if (rc != XPCOM.NS_OK) {
  		browser.dispose ();
-@@ -2341,7 +2341,7 @@ void initWindowCreator (nsIServiceManage
+@@ -2428,7 +2428,7 @@
  	WindowCreator = new WindowCreator2 ();
  	WindowCreator.AddRef ();
  	
@@ -4698,16 +4872,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_WINDOWWATCHER_CONTRACTID, true);
  	int rc = serviceManager.GetServiceByContractID (aContractID, nsIWindowWatcher.NS_IWINDOWWATCHER_IID, result);
  	if (rc != XPCOM.NS_OK) {
-@@ -2385,7 +2385,7 @@ String initXULRunner (String mozillaPath
- 	return mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
+@@ -2473,7 +2473,7 @@
  }
+ 
  public boolean isBackEnabled () {
 -	int /*long*/[] result = new int /*long*/[1];
 +	long /*int*/[] result = new long /*int*/[1];
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2398,7 +2398,7 @@ public boolean isBackEnabled () {
+@@ -2486,7 +2486,7 @@
  }
  
  public boolean isForwardEnabled () {
@@ -4716,7 +4890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2436,7 +2436,7 @@ void onDispose (Display display) {
+@@ -2524,7 +2524,7 @@
  
  	unhookDOMListeners ();
  
@@ -4725,7 +4899,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2481,7 +2481,7 @@ void onDispose (Display display) {
+@@ -2569,7 +2569,7 @@
  }
  
  void Activate () {
@@ -4734,7 +4908,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2493,7 +2493,7 @@ void Activate () {
+@@ -2581,7 +2581,7 @@
  }
  
  void Deactivate () {
@@ -4743,7 +4917,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2509,7 +2509,7 @@ void onResize () {
+@@ -2597,7 +2597,7 @@
  	int width = Math.max (1, rect.width);
  	int height = Math.max (1, rect.height);
  
@@ -4752,7 +4926,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2524,7 +2524,7 @@ void onResize () {
+@@ -2612,7 +2612,7 @@
  public void refresh () {
  	htmlBytes = null;
  
@@ -4761,7 +4935,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error(rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2594,7 +2594,7 @@ public boolean setText (String html, boo
+@@ -2682,7 +2682,7 @@
  	 */
  	delegate.removeWindowSubclass ();
  
@@ -4770,7 +4944,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebBrowserStream.NS_IWEBBROWSERSTREAM_IID, result);
  	if (rc == XPCOM.NS_OK && result[0] != 0) {
  		/*
-@@ -2628,9 +2628,9 @@ public boolean setText (String html, boo
+@@ -2716,9 +2716,9 @@
  		webNavigation.Release ();
  	} else {
  		byte[] contentCharsetBuffer = MozillaDelegate.wcsToMbcs (null, "UTF-8", false);	//$NON-NLS-1$
@@ -4782,7 +4956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  		rc = XPCOM.NS_GetServiceManager (result);
  		if (rc != XPCOM.NS_OK) error (rc);
-@@ -2650,7 +2650,7 @@ public boolean setText (String html, boo
+@@ -2738,7 +2738,7 @@
  		} else {
  			aString = MozillaDelegate.wcsToMbcs (null, ABOUT_BLANK, false);
  		}
@@ -4791,7 +4965,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = ioService.NewURI (aSpec, null, 0, result);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -2695,7 +2695,7 @@ public boolean setText (String html, boo
+@@ -2783,7 +2783,7 @@
  public boolean setUrl (String url, String postData, String[] headers) {
  	htmlBytes = null;
  
@@ -4800,7 +4974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2780,7 +2780,7 @@ public boolean setUrl (String url, Strin
+@@ -2868,7 +2868,7 @@
  public void stop () {
  	htmlBytes = null;
  
@@ -4809,16 +4983,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2839,7 +2839,7 @@ void hookDOMListeners (nsIDOMEventTarget
+@@ -2927,7 +2927,7 @@
  }
  
  void unhookDOMListeners () {
 -	int /*long*/[] result = new int /*long*/[1];
 +	long /*int*/[] result = new long /*int*/[1];
  	int rc = webBrowser.GetContentDOMWindow (result);
- 	if (rc != XPCOM.NS_OK) error (rc);
- 	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -2930,73 +2930,73 @@ void unhookDOMListeners (nsIDOMEventTarg
+ 	if (rc != XPCOM.NS_OK || result[0] == 0) return;
+ 
+@@ -3017,73 +3017,73 @@
  
  /* nsISupports */
  
@@ -4906,7 +5080,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -3013,18 +3013,18 @@ int Release () {
+@@ -3100,18 +3100,18 @@
  
  /* nsIWeakReference */	
  	
@@ -4928,7 +5102,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		int rc = webBrowser.GetContentDOMWindow (aContentDOMWindow);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (aContentDOMWindow[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -3034,15 +3034,15 @@ int GetInterface (int /*long*/ riid, int
+@@ -3121,15 +3121,15 @@
  	return QueryInterface (riid, ppvObject);
  }
  
@@ -4947,7 +5121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (registerFunctionsOnState != 0 && ((aStateFlags & registerFunctionsOnState) == registerFunctionsOnState)) {
  		registerFunctionsOnState = 0;
  		Enumeration elements = functions.elements ();
-@@ -3071,11 +3071,11 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3160,11 +3160,11 @@
  	*/
  	if (updateLastNavigateUrl && aStateFlags == (nsIWebProgressListener.STATE_IS_REQUEST | nsIWebProgressListener.STATE_START)) {
  		nsIRequest request = new nsIRequest (aRequest);
@@ -4961,7 +5135,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  			byte[] bytes = new byte[length];
  			XPCOM.memmove (bytes, buffer, length);
  			String value = new String (bytes);
-@@ -3086,7 +3086,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3175,7 +3175,7 @@
  
  	if ((aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) == 0) return XPCOM.NS_OK;
  	if ((aStateFlags & nsIWebProgressListener.STATE_START) != 0) {
@@ -4970,7 +5144,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  		/*
  		* When navigating to a site that is known to have a bad certificate, request notification
-@@ -3132,7 +3132,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3221,7 +3221,7 @@
  		* received for every window in a page, which is when these listeners
  		* are typically added.
  		*/
@@ -4979,7 +5153,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		nsIWebProgress progress = new nsIWebProgress (aWebProgress);
  		int rc = progress.GetDOMWindow (result);
  		if (rc != XPCOM.NS_OK) error (rc);
-@@ -3174,11 +3174,11 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3263,11 +3263,11 @@
  		 */
  		if (htmlBytes != null) {
  			nsIRequest req = new nsIRequest (aRequest);
@@ -4993,7 +5167,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  			byte[] dest = new byte[length];
  			XPCOM.memmove (dest, buffer, length);
  			String url = new String (dest);
-@@ -3211,7 +3211,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3300,7 +3300,7 @@
  				} else {
  					aString = MozillaDelegate.wcsToMbcs (null, URI_FILEROOT, false);
  				}
@@ -5002,7 +5176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				rc = ioService.NewURI (aSpec, null, 0, result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -3229,7 +3229,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3318,7 +3318,7 @@
  				result[0] = 0;
  
  				byte[] contentTypeBuffer = MozillaDelegate.wcsToMbcs (null, "text/html", false); // $NON-NLS-1$
@@ -5011,7 +5185,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  
  				rc = stream.OpenStream (uri.getAddress (), aContentType);
  				if (rc != XPCOM.NS_OK) error (rc);
-@@ -3251,11 +3251,11 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3342,11 +3342,11 @@
  				*/
  				registerFunctionsOnState = nsIWebProgressListener.STATE_IS_REQUEST | nsIWebProgressListener.STATE_START;
  
@@ -5025,7 +5199,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				for (int i = 0; i < pageCount; i++) {
  					length = i == pageCount - 1 ? htmlBytes.length % pageSize : pageSize;
  					if (length > 0) {
-@@ -3339,7 +3339,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3430,7 +3430,7 @@
  	} else if ((aStateFlags & nsIWebProgressListener.STATE_TRANSFERRING) != 0) {
  		if (updateLastNavigateUrl) {
  			updateLastNavigateUrl = false;
@@ -5034,21 +5208,21 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  			nsIRequest request = new nsIRequest (aRequest);
  
  			int rc = request.QueryInterface (nsIChannel.NS_ICHANNEL_IID, result);
-@@ -3354,11 +3354,11 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3444,11 +3444,11 @@
  
- 			nsIURI uri = new nsIURI (result[0]);
- 			result[0] = 0;
--			int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
-+			long /*int*/ aSpec = XPCOM.nsEmbedCString_new ();
- 			rc = uri.GetSpec (aSpec);
- 			if (rc != XPCOM.NS_OK) error (rc);
- 			int length = XPCOM.nsEmbedCString_Length (aSpec);
--			int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
-+			long /*int*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
- 			byte[] bytes = new byte[length];
- 			XPCOM.memmove (bytes, buffer, length);
- 			lastNavigateURL = new String (bytes);
-@@ -3370,7 +3370,7 @@ int OnStateChange (int /*long*/ aWebProg
+ 				nsIURI uri = new nsIURI (result[0]);
+ 				result[0] = 0;
+-				int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
++				long /*int*/ aSpec = XPCOM.nsEmbedCString_new ();
+ 				rc = uri.GetSpec (aSpec);
+ 				if (rc != XPCOM.NS_OK) error (rc);
+ 				int length = XPCOM.nsEmbedCString_Length (aSpec);
+-				int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
++				long /*int*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+ 				byte[] bytes = new byte[length];
+ 				XPCOM.memmove (bytes, buffer, length);
+ 				lastNavigateURL = new String (bytes);
+@@ -3461,7 +3461,7 @@
  		* Hook DOM listeners to the page's nsIDOMWindow here because this is
  		* the earliest opportunity to do so.    
  		*/
@@ -5057,7 +5231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		nsIWebProgress progress = new nsIWebProgress (aWebProgress);
  		int rc = progress.GetDOMWindow (result);
  		if (rc != XPCOM.NS_OK) error (rc);
-@@ -3409,7 +3409,7 @@ int OnStateChange (int /*long*/ aWebProg
+@@ -3500,7 +3500,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5066,7 +5240,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (progressListeners.length == 0) return XPCOM.NS_OK;
  	ProgressEvent event = new ProgressEvent (browser);
  	event.display = browser.getDisplay ();
-@@ -3422,7 +3422,7 @@ int OnProgressChange (int /*long*/ aWebP
+@@ -3513,7 +3513,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5075,7 +5249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	/*
  	* Feature in Mozilla.  When a page is loaded via setText before a previous
  	* setText page load has completed, the expected OnStateChange STATE_STOP for the
-@@ -3437,13 +3437,13 @@ int OnLocationChange (int /*long*/ aWebP
+@@ -3528,13 +3528,13 @@
  	if (locationListeners.length == 0) return XPCOM.NS_OK;
  
  	nsIWebProgress webProgress = new nsIWebProgress (aWebProgress);
@@ -5091,7 +5265,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	rc = domWindow.GetTop (aTop);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (aTop[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -3453,10 +3453,10 @@ int OnLocationChange (int /*long*/ aWebP
+@@ -3544,10 +3544,10 @@
  	topWindow.Release ();
  	
  	nsIURI location = new nsIURI (aLocation);
@@ -5104,7 +5278,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	byte[] dest = new byte[length];
  	XPCOM.memmove (dest, buffer, length);
  	XPCOM.nsEmbedCString_delete (aSpec);
-@@ -3493,7 +3493,7 @@ int OnLocationChange (int /*long*/ aWebP
+@@ -3584,7 +3584,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5113,7 +5287,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (statusTextListeners.length == 0) return XPCOM.NS_OK;
  	StatusTextEvent event = new StatusTextEvent (browser);
  	event.display = browser.getDisplay ();
-@@ -3508,13 +3508,13 @@ int OnStatusChange (int /*long*/ aWebPro
+@@ -3599,13 +3599,13 @@
  	return XPCOM.NS_OK;
  }		
  
@@ -5129,7 +5303,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (statusTextListeners.length == 0) return XPCOM.NS_OK;
  	StatusTextEvent event = new StatusTextEvent (browser);
  	event.display = browser.getDisplay ();
-@@ -3530,8 +3530,8 @@ int SetStatus (int statusType, int /*lon
+@@ -3621,8 +3621,8 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5140,7 +5314,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (webBrowser != null) {
  		webBrowser.AddRef ();
  		ret[0] = webBrowser.getAddress ();	
-@@ -3540,13 +3540,13 @@ int GetWebBrowser (int /*long*/ aWebBrow
+@@ -3631,13 +3631,13 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5156,7 +5330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int[] ret = new int[1];
  	ret[0] = chromeFlags;
  	XPCOM.memmove (aChromeFlags, ret, 4); /* PRUint32 */
-@@ -3586,7 +3586,7 @@ int SizeBrowserTo (int aCX, int aCY) {
+@@ -3677,7 +3677,7 @@
  }
  
  int ShowAsModal () {
@@ -5165,7 +5339,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = XPCOM.NS_GetServiceManager (result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -3616,7 +3616,7 @@ int ShowAsModal () {
+@@ -3707,7 +3707,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5174,7 +5348,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int result = (chromeFlags & nsIWebBrowserChrome.CHROME_MODAL) != 0 ? 1 : 0;
  	XPCOM.memmove (retval, new int[] {result}, 4); /* PRBool */
  	return XPCOM.NS_OK;
-@@ -3642,7 +3642,7 @@ int SetDimensions (int flags, int x, int
+@@ -3741,7 +3741,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5183,7 +5357,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) {
  		Point location = browser.getShell ().getLocation ();
  		if (x != 0) C.memmove (x, new int[] {location.x}, 4); /* PRInt32 */
-@@ -3662,7 +3662,7 @@ int GetDimensions (int flags, int /*long
+@@ -3761,7 +3761,7 @@
  }
  
  int SetFocus () {
@@ -5192,7 +5366,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -3680,7 +3680,7 @@ int SetFocus () {
+@@ -3779,7 +3779,7 @@
  	return XPCOM.NS_OK;     	
  }	
  
@@ -5201,7 +5375,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	boolean visible = browser.isVisible () && !browser.getShell ().getMinimized ();
  	XPCOM.memmove (aVisibility, new int[] {visible ? 1 : 0}, 4); /* PRBool */
  	return XPCOM.NS_OK;
-@@ -3723,11 +3723,11 @@ int SetVisibility (int aVisibility) {
+@@ -3822,11 +3822,11 @@
  	return XPCOM.NS_OK;     	
  }
  
@@ -5215,7 +5389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	if (titleListeners.length == 0) return XPCOM.NS_OK;
  	TitleEvent event = new TitleEvent (browser);
  	event.display = browser.getDisplay ();
-@@ -3751,7 +3751,7 @@ int SetTitle (int /*long*/ aTitle) {
+@@ -3850,7 +3850,7 @@
  	return XPCOM.NS_OK;     	
  }
  
@@ -5224,7 +5398,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	/*
  	* Note.  The handle is expected to be an HWND on Windows and
  	* a GtkWidget* on GTK.  This callback is invoked on Windows
-@@ -3759,7 +3759,7 @@ int GetSiteWindow (int /*long*/ aSiteWin
+@@ -3858,7 +3858,7 @@
  	* dialog comes up. If no handle is returned, the print dialog
  	* does not come up on this platform.  
  	*/
@@ -5233,7 +5407,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	return XPCOM.NS_OK;     	
  }  
   
-@@ -3799,9 +3799,9 @@ int FocusPrevElement () {
+@@ -3898,9 +3898,9 @@
  
  /* nsIContextMenuListener */
  
@@ -5245,7 +5419,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int rc = domEvent.QueryInterface (nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -3831,15 +3831,15 @@ int OnShowContextMenu (int aContextFlags
+@@ -3930,15 +3930,15 @@
  
  /* nsIURIContentListener */
  
@@ -5264,7 +5438,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	buffer = XPCOM.nsEmbedCString_get (aSpec);
  	byte[] dest = new byte[length];
  	XPCOM.memmove (dest, buffer, length);
-@@ -3895,7 +3895,7 @@ int OnStartURIOpen (int /*long*/ aURI, i
+@@ -3994,7 +3994,7 @@
  				if (jsEnabledChanged) {
  					jsEnabledChanged = false;
  	
@@ -5273,7 +5447,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  					int rc = webBrowser.QueryInterface (nsIWebBrowserSetup.NS_IWEBBROWSERSETUP_IID, result);
  					if (rc != XPCOM.NS_OK) error (rc);
  					if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -3914,11 +3914,11 @@ int OnStartURIOpen (int /*long*/ aURI, i
+@@ -4013,11 +4013,11 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5287,7 +5461,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	boolean preferred = false;
  	int size = XPCOM.strlen (aContentType);
  	if (size > 0) {
-@@ -3929,7 +3929,7 @@ int IsPreferred (int /*long*/ aContentTy
+@@ -4028,7 +4028,7 @@
  		/* do not attempt to handle known problematic content types */
  		if (!contentType.equals (XPCOM.CONTENT_MAYBETEXT) && !contentType.equals (XPCOM.CONTENT_MULTIPART)) {
  			/* determine whether browser can handle the content type */
@@ -5296,7 +5470,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  			int rc = XPCOM.NS_GetServiceManager (result);
  			if (rc != XPCOM.NS_OK) error (rc);
  			if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -3941,7 +3941,7 @@ int IsPreferred (int /*long*/ aContentTy
+@@ -4040,7 +4040,7 @@
  			rc = serviceManager.GetServiceByContractID (aContractID, nsIWebNavigationInfo.NS_IWEBNAVIGATIONINFO_IID, result);
  			if (rc == XPCOM.NS_OK) {
  				byte[] bytes = MozillaDelegate.wcsToMbcs (null, contentType, false);
@@ -5305,7 +5479,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				nsIWebNavigationInfo info = new nsIWebNavigationInfo (result[0]);
  				result[0] = 0;
  				int[] isSupportedResult = new int[1]; /* PRUint32 */
-@@ -3971,34 +3971,34 @@ int IsPreferred (int /*long*/ aContentTy
+@@ -4070,34 +4070,34 @@
  
  	XPCOM.memmove(retval, new int[] {preferred ? 1 : 0}, 4); /* PRBool */
  	if (preferred) {
@@ -5347,7 +5521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	int length = XPCOM.strlen_PRUnichar (aTipText);
  	char[] dest = new char[length];
  	XPCOM.memmove (dest, aTipText, length * 2);
-@@ -4036,21 +4036,21 @@ int OnHideTooltip () {
+@@ -4135,21 +4135,21 @@
  
  /* nsIDOMEventListener */
  
@@ -5373,7 +5547,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = domEvent.GetCurrentTarget (result);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4067,7 +4067,7 @@ int HandleEvent (int /*long*/ event) {
+@@ -4166,7 +4166,7 @@
  	}
  
  	if (XPCOM.DOMEVENT_KEYDOWN.equals (typeString)) {
@@ -5382,7 +5556,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4175,7 +4175,7 @@ int HandleEvent (int /*long*/ event) {
+@@ -4274,7 +4274,7 @@
  			case SWT.SCROLL_LOCK: return XPCOM.NS_OK;
  		}
  
@@ -5391,7 +5565,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4231,7 +4231,7 @@ int HandleEvent (int /*long*/ event) {
+@@ -4330,7 +4330,7 @@
  	}
  
  	if (XPCOM.DOMEVENT_KEYUP.equals (typeString)) {
@@ -5400,7 +5574,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = domEvent.QueryInterface (nsIDOMKeyEvent.NS_IDOMKEYEVENT_IID, result);
  		if (rc != XPCOM.NS_OK) error (rc);
  		if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4288,7 +4288,7 @@ int HandleEvent (int /*long*/ event) {
+@@ -4387,7 +4387,7 @@
  
  	/* mouse event */
  
@@ -5409,7 +5583,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	rc = domEvent.QueryInterface (nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
  	if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4405,10 +4405,10 @@ int HandleEvent (int /*long*/ event) {
+@@ -4505,10 +4505,10 @@
  
  /* nsIBadCertListener2 */
  
@@ -5422,7 +5596,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	byte[] dest = new byte[length];
  	XPCOM.memmove (dest, buffer, length);
  	final String urlPort = new String (dest);
-@@ -4418,7 +4418,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4518,7 +4518,7 @@
  
  	/* create text descriptions of the certificate problem(s) */
  
@@ -5431,7 +5605,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  	nsISupports supports = new nsISupports (status);
  	int rc = supports.QueryInterface (nsISSLStatus.NS_ISSLSTATUS_IID, result);
  	if (rc != XPCOM.NS_OK) error (rc);
-@@ -4438,7 +4438,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4538,7 +4538,7 @@
  
  	rc = sslStatus.GetIsDomainMismatch (intResult);
  	if (intResult[0] != 0) {
@@ -5440,7 +5614,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = cert.GetCommonName (ptr);
  		if (rc != XPCOM.NS_OK) SWT.error (rc);
  		length = XPCOM.nsEmbedString_Length (ptr);
-@@ -4461,7 +4461,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4561,7 +4561,7 @@
  		nsIX509CertValidity validity = new nsIX509CertValidity(result[0]);
  		result[0] = 0;
  
@@ -5449,7 +5623,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = validity.GetNotBeforeGMT (ptr);
  		if (rc != XPCOM.NS_OK) SWT.error (rc);
  		length = XPCOM.nsEmbedString_Length (ptr);
-@@ -4490,7 +4490,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4590,7 +4590,7 @@
  
  	rc = sslStatus.GetIsUntrusted (intResult);
  	if (intResult[0] != 0) {
@@ -5458,7 +5632,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  		rc = cert.GetIssuerCommonName (ptr);
  		if (rc != XPCOM.NS_OK) SWT.error (rc);
  		length = XPCOM.nsEmbedString_Length (ptr);
-@@ -4520,7 +4520,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4620,7 +4620,7 @@
  
  			String message = Compatibility.getMessage ("SWT_InvalidCert_Message", new String[] {urlPort}); //$NON-NLS-1$
  			if (new PromptDialog (browser.getShell ()).invalidCert (browser, message, finalProblems, cert)) {
@@ -5467,7 +5641,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) error (rc);
  				if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-@@ -4536,7 +4536,7 @@ int NotifyCertProblem (int /*long*/ sock
+@@ -4636,7 +4636,7 @@
  				nsICertOverrideService overrideService = new nsICertOverrideService (result[0]);
  				result[0] = 0;
  				byte[] hostBytes = MozillaDelegate.wcsToMbcs (null, host, false);
@@ -5476,10 +5650,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/Mozilla.java swt-gtk-3.6.
  				rc = overrideService.RememberValidityOverride (hostString, port, cert.getAddress (), finalFlags, 1);
  				browser.setUrl (url);
  				XPCOM.nsEmbedCString_delete (hostString);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptDialog.java swt-gtk-3.6.2/org/eclipse/swt/browser/PromptDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/PromptDialog.java	2011-03-21 11:34:23.175736057 +0000
-@@ -141,7 +141,7 @@ class PromptDialog extends Dialog {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptDialog.java swt-gtk-3.7//org/eclipse/swt/browser/PromptDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/PromptDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -141,7 +141,7 @@
  		viewCertButton.setText(Compatibility.getMessage("SWT_ViewCertificate")); //$NON-NLS-1$
  		viewCertButton.addListener(SWT.Selection, new Listener() {
  			public void handleEvent(Event event) {
@@ -5488,10 +5662,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptDialog.java swt-gtk
  				int rc = XPCOM.NS_GetServiceManager (result);
  				if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  				if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2Factory.java swt-gtk-3.6.2/org/eclipse/swt/browser/PromptService2Factory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2Factory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/PromptService2Factory.java	2011-03-21 11:34:23.205735634 +0000
-@@ -30,17 +30,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptService2Factory.java swt-gtk-3.7//org/eclipse/swt/browser/PromptService2Factory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptService2Factory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/PromptService2Factory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,17 +30,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -5517,7 +5691,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2Factory.jav
  	};
  }
  
-@@ -55,27 +55,27 @@ void disposeCOMInterfaces () {
+@@ -55,27 +55,27 @@
  	}
  }
  
@@ -5550,7 +5724,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2Factory.jav
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -87,10 +87,10 @@ int Release () {
+@@ -87,10 +87,10 @@
  	
  /* nsIFactory */
  
@@ -5563,10 +5737,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2Factory.jav
  	return XPCOM.NS_OK;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-gtk-3.6.2/org/eclipse/swt/browser/PromptService2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/PromptService2.java	2011-03-21 11:34:23.215735487 +0000
-@@ -44,41 +44,41 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptService2.java swt-gtk-3.7//org/eclipse/swt/browser/PromptService2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/PromptService2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/PromptService2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,41 +44,41 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -5637,7 +5811,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	};
  }
  
-@@ -97,32 +97,32 @@ void disposeCOMInterfaces () {
+@@ -97,32 +97,32 @@
  	}
  }
  
@@ -5676,7 +5850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -132,13 +132,13 @@ int Release () {
+@@ -132,13 +132,13 @@
  	return refCount;
  }
  
@@ -5692,7 +5866,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	String label = null;
  	int flag = (buttonFlag & (0xff * index)) / index;
  	switch (flag) {
-@@ -159,7 +159,7 @@ String getLabel (int buttonFlag, int ind
+@@ -159,7 +159,7 @@
  
  /* nsIPromptService */
  
@@ -5701,7 +5875,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	final Browser browser = getBrowser (aParent);
  	
  	int length = XPCOM.strlen_PRUnichar (aDialogTitle);
-@@ -199,7 +199,7 @@ int Alert (int /*long*/ aParent, int /*l
+@@ -199,7 +199,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5710,7 +5884,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	Browser browser = getBrowser (aParent);
  	
  	int length = XPCOM.strlen_PRUnichar (aDialogTitle);
-@@ -226,11 +226,11 @@ int AlertCheck (int /*long*/ aParent, in
+@@ -226,11 +226,11 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5724,7 +5898,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	Browser browser = getBrowser (aParent);
  
  	if (browser != null && ((Mozilla)browser.webBrowser).ignoreAllMessages) {
-@@ -258,11 +258,11 @@ int Confirm (int /*long*/ aParent, int /
+@@ -258,11 +258,11 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5738,7 +5912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	Browser browser = getBrowser (aParent);
  	
  	int length = XPCOM.strlen_PRUnichar (aDialogTitle);
-@@ -304,7 +304,7 @@ int ConfirmEx (int /*long*/ aParent, int
+@@ -304,7 +304,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5747,7 +5921,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	Browser browser = getBrowser (aParent);
  	String titleLabel = null, textLabel, checkLabel = null;
  	String[] valueLabel = new String[1];
-@@ -322,7 +322,7 @@ int Prompt (int /*long*/ aParent, int /*
+@@ -322,7 +322,7 @@
  	XPCOM.memmove (dest, aText, length * 2);
  	textLabel = new String (dest);
  	
@@ -5756,7 +5930,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	XPCOM.memmove (valueAddr, aValue, C.PTR_SIZEOF);
  	if (valueAddr[0] != 0) {
  		length = XPCOM.strlen_PRUnichar (valueAddr[0]);
-@@ -353,7 +353,7 @@ int Prompt (int /*long*/ aParent, int /*
+@@ -353,7 +353,7 @@
  		* value that we override must be freed using the nsIMemory service.
  		*/
  		if (valueLabel[0] != null) {
@@ -5765,7 +5939,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  			int rc = XPCOM.NS_GetServiceManager (result2);
  			if (rc != XPCOM.NS_OK) SWT.error (rc);
  			if (result2[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
-@@ -373,9 +373,9 @@ int Prompt (int /*long*/ aParent, int /*
+@@ -373,9 +373,9 @@
  			char[] buffer = new char[cnt + 1];
  			valueLabel[0].getChars (0, cnt, buffer, 0);
  			int size = buffer.length * 2;
@@ -5777,7 +5951,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  
  			if (valueAddr[0] != 0) {
  				memory.Free (valueAddr[0]);
-@@ -387,7 +387,7 @@ int Prompt (int /*long*/ aParent, int /*
+@@ -387,7 +387,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5786,7 +5960,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	nsIAuthInformation auth = new nsIAuthInformation (authInfo);
  
  	Browser browser = getBrowser (aParent);
-@@ -441,11 +441,11 @@ int PromptAuth(int /*long*/ aParent, int
+@@ -441,11 +441,11 @@
  
  	/* get initial username and password values */
  
@@ -5800,7 +5974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	char[] chars = new char[length];
  	XPCOM.memmove (chars, buffer, length * 2);
  	userLabel[0] = new String (chars);
-@@ -474,13 +474,13 @@ int PromptAuth(int /*long*/ aParent, int
+@@ -474,13 +474,13 @@
  	XPCOM.nsEmbedString_delete (ptr);
  
  	nsIChannel channel = new nsIChannel (aChannel);
@@ -5816,7 +5990,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	rc = nsURI.GetHost (host);
  	if (rc != XPCOM.NS_OK) SWT.error (rc);
  	length = XPCOM.nsEmbedCString_Length (host);
-@@ -521,7 +521,7 @@ int PromptAuth(int /*long*/ aParent, int
+@@ -521,7 +521,7 @@
  	return XPCOM.NS_OK;
  }
  
@@ -5825,7 +5999,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	Browser browser = getBrowser (aParent);
  	String user = null, password = null;
  
-@@ -572,7 +572,7 @@ int PromptUsernameAndPassword (int /*lon
+@@ -572,7 +572,7 @@
  		XPCOM.memmove (dest, aText, length * 2);
  		textLabel = new String (dest);
  
@@ -5834,7 +6008,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  		XPCOM.memmove (userAddr, aUsername, C.PTR_SIZEOF);
  		if (userAddr[0] != 0) {
  			length = XPCOM.strlen_PRUnichar (userAddr[0]);
-@@ -581,7 +581,7 @@ int PromptUsernameAndPassword (int /*lon
+@@ -581,7 +581,7 @@
  			userLabel[0] = new String (dest);		
  		}
  
@@ -5843,7 +6017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  		XPCOM.memmove (passAddr, aPassword, C.PTR_SIZEOF);
  		if (passAddr[0] != 0) {
  			length = XPCOM.strlen_PRUnichar (passAddr[0]);
-@@ -619,12 +619,12 @@ int PromptUsernameAndPassword (int /*lon
+@@ -619,12 +619,12 @@
  		* User name and password are returned as PRUnichar values. Any default
  		* value that we override must be freed using the nsIMemory service.
  		*/
@@ -5859,7 +6033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  		int rc = XPCOM.NS_GetServiceManager (result);
  		if (rc != XPCOM.NS_OK) SWT.error (rc);
  		if (result[0] == 0) SWT.error (XPCOM.NS_NOINTERFACE);
-@@ -649,9 +649,9 @@ int PromptUsernameAndPassword (int /*lon
+@@ -649,9 +649,9 @@
  		char[] buffer = new char[cnt + 1];
  		user.getChars (0, cnt, buffer, 0);
  		int size = buffer.length * 2;
@@ -5871,7 +6045,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  
  		cnt = password.length ();
  		buffer = new char[cnt + 1];
-@@ -659,17 +659,17 @@ int PromptUsernameAndPassword (int /*lon
+@@ -659,17 +659,17 @@
  		size = buffer.length * 2;
  		ptr = C.malloc (size);
  		XPCOM.memmove (ptr, buffer, size);
@@ -5892,10 +6066,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/PromptService2.java swt-g
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/SimpleEnumerator.java swt-gtk-3.6.2/org/eclipse/swt/browser/SimpleEnumerator.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/SimpleEnumerator.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/SimpleEnumerator.java	2011-03-21 11:34:23.175736057 +0000
-@@ -36,17 +36,17 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/SimpleEnumerator.java swt-gtk-3.7//org/eclipse/swt/browser/SimpleEnumerator.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/SimpleEnumerator.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/SimpleEnumerator.java	2011-06-13 20:53:32.000000000 +0000
+@@ -36,17 +36,17 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -5921,7 +6095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/SimpleEnumerator.java swt
  	};
  }
  
-@@ -67,27 +67,27 @@ void disposeCOMInterfaces () {
+@@ -67,27 +67,27 @@
  	}
  }
  
@@ -5954,7 +6128,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/SimpleEnumerator.java swt
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
  
-@@ -97,17 +97,17 @@ int Release () {
+@@ -97,17 +97,17 @@
  	return refCount;
  }
  
@@ -5975,19 +6149,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/SimpleEnumerator.java swt
      return XPCOM.NS_OK;
  }		
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2/org/eclipse/swt/browser/WebKit.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/WebKit.java	2011-03-21 11:34:23.185735915 +0000
-@@ -24,7 +24,7 @@ import org.eclipse.swt.layout.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.7//org/eclipse/swt/browser/WebKit.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/WebKit.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/WebKit.java	2011-06-13 20:53:32.000000000 +0000
+@@ -24,7 +24,7 @@
  import org.eclipse.swt.widgets.*;
  
- public class WebKit extends WebBrowser {
+ class WebKit extends WebBrowser {
 -	int /*long*/ webView, webViewData, scrolledWindow;
 +	long /*int*/ webView, webViewData, scrolledWindow;
  	int failureCount, lastKeyCode, lastCharCode;
  	String postData;
  	String[] headers;
-@@ -32,7 +32,7 @@ public class WebKit extends WebBrowser {
+@@ -32,7 +32,7 @@
  	byte[] htmlBytes;
  	BrowserFunction eventFunction;
  
@@ -5996,77 +6170,77 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	static boolean LibraryLoaded;
  
  	static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
-@@ -115,16 +115,16 @@ public class WebKit extends WebBrowser {
- 		NativeClearSessions = new Runnable () {
- 			public void run () {
- 				if (!LibraryLoaded) return;
--				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
--				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
--				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-+				long /*int*/ session = WebKitGTK.webkit_get_default_session ();
-+				long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-+				long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
- 				if (jar == 0) return;
--				int /*long*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
-+				long /*int*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
- 				int length = OS.g_slist_length (cookies);
--				int /*long*/ current = cookies;
-+				long /*int*/ current = cookies;
- 				for (int i = 0; i < length; i++) {
--					int /*long*/ cookie = OS.g_slist_data (current);
--					int /*long*/ expires = WebKitGTK.SoupCookie_expires (cookie);
-+					long /*int*/ cookie = OS.g_slist_data (current);
-+					long /*int*/ expires = WebKitGTK.SoupCookie_expires (cookie);
- 					if (expires == 0) {
- 						/* indicates a session cookie */
- 						WebKitGTK.soup_cookie_jar_delete_cookie (jar, cookie);
-@@ -138,14 +138,14 @@ public class WebKit extends WebBrowser {
- 		NativeGetCookie = new Runnable () {
- 			public void run () {
- 				if (!LibraryLoaded) return;
--				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
--				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
--				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-+				long /*int*/ session = WebKitGTK.webkit_get_default_session ();
-+				long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-+				long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
- 				if (jar == 0) return;
- 				byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
--				int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
-+				long /*int*/ uri = WebKitGTK.soup_uri_new (bytes);
- 				if (uri == 0) return;
--				int /*long*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
-+				long /*int*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
- 				WebKitGTK.soup_uri_free (uri);
- 				if (cookies == 0) return;
- 				int length = OS.strlen (cookies);
-@@ -172,9 +172,9 @@ public class WebKit extends WebBrowser {
- 		NativeSetCookie = new Runnable () {
- 			public void run () {
- 				if (!LibraryLoaded) return;
--				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
--				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
--				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-+				long /*int*/ session = WebKitGTK.webkit_get_default_session ();
-+				long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-+				long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
- 				if (jar == 0) {
- 					/* this happens if a navigation has not occurred yet */
- 					WebKitGTK.soup_session_add_feature_by_type (session, type);
-@@ -182,10 +182,10 @@ public class WebKit extends WebBrowser {
- 				}
- 				if (jar == 0) return;
- 				byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
--				int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
-+				long /*int*/ uri = WebKitGTK.soup_uri_new (bytes);
- 				if (uri == 0) return;
- 				bytes = Converter.wcsToMbcs (null, CookieValue, true);
--				int /*long*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
-+				long /*int*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
- 				if (cookie != 0) {
- 					WebKitGTK.soup_cookie_jar_add_cookie (jar, cookie);
- 					// the following line is intentionally commented
-@@ -202,19 +202,19 @@ public class WebKit extends WebBrowser {
+@@ -126,16 +126,16 @@
+ 			NativeClearSessions = new Runnable () {
+ 				public void run () {
+ 					if (!LibraryLoaded) return;
+-					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+-					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+-					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
++					long /*int*/ session = WebKitGTK.webkit_get_default_session ();
++					long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
++					long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+ 					if (jar == 0) return;
+-					int /*long*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
++					long /*int*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
+ 					int length = OS.g_slist_length (cookies);
+-					int /*long*/ current = cookies;
++					long /*int*/ current = cookies;
+ 					for (int i = 0; i < length; i++) {
+-						int /*long*/ cookie = OS.g_slist_data (current);
+-						int /*long*/ expires = WebKitGTK.SoupCookie_expires (cookie);
++						long /*int*/ cookie = OS.g_slist_data (current);
++						long /*int*/ expires = WebKitGTK.SoupCookie_expires (cookie);
+ 						if (expires == 0) {
+ 							/* indicates a session cookie */
+ 							WebKitGTK.soup_cookie_jar_delete_cookie (jar, cookie);
+@@ -149,14 +149,14 @@
+ 			NativeGetCookie = new Runnable () {
+ 				public void run () {
+ 					if (!LibraryLoaded) return;
+-					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+-					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+-					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
++					long /*int*/ session = WebKitGTK.webkit_get_default_session ();
++					long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
++					long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+ 					if (jar == 0) return;
+ 					byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
+-					int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
++					long /*int*/ uri = WebKitGTK.soup_uri_new (bytes);
+ 					if (uri == 0) return;
+-					int /*long*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
++					long /*int*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
+ 					WebKitGTK.soup_uri_free (uri);
+ 					if (cookies == 0) return;
+ 					int length = OS.strlen (cookies);
+@@ -182,9 +182,9 @@
+ 			NativeSetCookie = new Runnable () {
+ 				public void run () {
+ 					if (!LibraryLoaded) return;
+-					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+-					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+-					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
++					long /*int*/ session = WebKitGTK.webkit_get_default_session ();
++					long /*int*/ type = WebKitGTK.soup_cookie_jar_get_type ();
++					long /*int*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+ 					if (jar == 0) {
+ 						/* this happens if a navigation has not occurred yet */
+ 						WebKitGTK.soup_session_add_feature_by_type (session, type);
+@@ -192,10 +192,10 @@
+ 					}
+ 					if (jar == 0) return;
+ 					byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
+-					int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
++					long /*int*/ uri = WebKitGTK.soup_uri_new (bytes);
+ 					if (uri == 0) return;
+ 					bytes = Converter.wcsToMbcs (null, CookieValue, true);
+-					int /*long*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
++					long /*int*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
+ 					if (cookie != 0) {
+ 						WebKitGTK.soup_cookie_jar_add_cookie (jar, cookie);
+ 						// the following line is intentionally commented
+@@ -213,9 +213,9 @@
  		}
  	}
  
@@ -6078,6 +6252,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	parent = OS.gtk_widget_get_parent (parent);
  	return (Browser)Display.getCurrent ().findWidget (parent);
  }
+@@ -233,12 +233,12 @@
+ 		(major == MIN_VERSION[0] && minor == MIN_VERSION[1] && micro >= MIN_VERSION[2]);
+ }
  
 -static int /*long*/ JSObjectCallAsFunctionProc (int /*long*/ ctx, int /*long*/ function, int /*long*/ thisObject, int /*long*/ argumentCount, int /*long*/ arguments, int /*long*/ exception) {
 +static long /*int*/ JSObjectCallAsFunctionProc (long /*int*/ ctx, long /*int*/ function, long /*int*/ thisObject, long /*int*/ argumentCount, long /*int*/ arguments, long /*int*/ exception) {
@@ -6091,7 +6268,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	C.memmove (handle, ptr, C.PTR_SIZEOF);
  	Browser browser = findBrowser (handle[0]);
  	if (browser == null) return 0;
-@@ -222,20 +222,20 @@ static int /*long*/ JSObjectCallAsFuncti
+@@ -246,20 +246,20 @@
  	return webkit.callJava (ctx, function, thisObject, argumentCount, arguments, exception);
  }
  
@@ -6116,7 +6293,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	byte[] bytes = null;
  	try {
  		bytes = (FUNCTIONNAME_CALLJAVA + '\0').getBytes (CHARSET_UTF8); //$NON-NLS-1$
-@@ -245,14 +245,14 @@ static int /*long*/ JSObjectHasPropertyP
+@@ -269,14 +269,14 @@
  	return WebKitGTK.JSStringIsEqualToUTF8CString (propertyName, bytes);
  }
  
@@ -6133,7 +6310,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (OS.GTK_IS_SCROLLED_WINDOW (handle)) {
  		/*
  		 * Stop the propagation of events that are not consumed by WebKit, before
-@@ -261,7 +261,7 @@ static int /*long*/ Proc (int /*long*/ h
+@@ -285,7 +285,7 @@
  		return user_data;
  	}
  
@@ -6142,7 +6319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (WebKitGTK.WEBKIT_IS_WEB_FRAME (handle)) {
  		webView = WebKitGTK.webkit_web_frame_get_web_view (handle);
  	} else {
-@@ -277,15 +277,15 @@ static int /*long*/ Proc (int /*long*/ h
+@@ -301,15 +301,15 @@
  	}
  }
  
@@ -6161,7 +6338,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (WebKitGTK.SOUP_IS_SESSION (handle)) {
  		webView = user_data;
  	} else {
-@@ -301,14 +301,14 @@ static int /*long*/ Proc (int /*long*/ h
+@@ -325,14 +325,14 @@
  	}
  }
  
@@ -6178,7 +6355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	/* authentication challenges are currently the only notification received from the session */
  	if (retrying == 0) {
  		failureCount = 0;
-@@ -316,8 +316,8 @@ int /*long*/ sessionProc (int /*long*/ s
+@@ -340,8 +340,8 @@
  		if (++failureCount >= 3) return 0;
  	}
  
@@ -6189,7 +6366,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = C.strlen (uriString);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, uriString, length);
-@@ -343,14 +343,14 @@ int /*long*/ sessionProc (int /*long*/ s
+@@ -367,14 +367,14 @@
  	return 0;
  }
  
@@ -6206,7 +6383,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case CLOSE_WEB_VIEW: return webkit_close_web_view (handle);
  		case WEB_VIEW_READY: return webkit_web_view_ready (handle);
-@@ -358,7 +358,7 @@ int /*long*/ webViewProc (int /*long*/ h
+@@ -382,7 +382,7 @@
  	}
  }
  
@@ -6215,7 +6392,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case CREATE_WEB_VIEW: return webkit_create_web_view (handle, arg0);
  		case DOWNLOAD_REQUESTED: return webkit_download_requested (handle, arg0);
-@@ -371,14 +371,14 @@ int /*long*/ webViewProc (int /*long*/ h
+@@ -395,14 +395,14 @@
  	}
  }
  
@@ -6232,7 +6409,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case CONSOLE_MESSAGE: return webkit_console_message (handle, arg0, arg1, arg2);
  		case WINDOW_OBJECT_CLEARED: return webkit_window_object_cleared (handle, arg0, arg1, arg2);
-@@ -386,7 +386,7 @@ int /*long*/ webViewProc (int /*long*/ h
+@@ -410,7 +410,7 @@
  	}
  }
  
@@ -6241,7 +6418,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case MIME_TYPE_POLICY_DECISION_REQUESTED: return webkit_mime_type_policy_decision_requested (handle, arg0, arg1, arg2, arg3);
  		case NAVIGATION_POLICY_DECISION_REQUESTED: return webkit_navigation_policy_decision_requested (handle, arg0, arg1, arg2, arg3);
-@@ -419,7 +419,7 @@ public boolean create (Composite parent,
+@@ -433,7 +433,7 @@
  		OS.memmove (jsClassDefinition.className, bytes, bytes.length);
  		jsClassDefinition.hasProperty = JSObjectHasPropertyProc.getAddress ();
  		jsClassDefinition.getProperty = JSObjectGetPropertyProc.getAddress ();
@@ -6250,7 +6427,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  		WebKitGTK.memmove (classDefinitionPtr, jsClassDefinition, JSClassDefinition.sizeof);
  		ExternalClass = WebKitGTK.JSClassCreate (classDefinitionPtr);
  
-@@ -432,7 +432,7 @@ public boolean create (Composite parent,
+@@ -446,7 +446,7 @@
      OS.gtk_scrolled_window_set_policy (scrolledWindow, OS.GTK_POLICY_AUTOMATIC, OS.GTK_POLICY_AUTOMATIC);
      webView = WebKitGTK.webkit_web_view_new ();
      webViewData = C.malloc (C.PTR_SIZEOF);
@@ -6259,7 +6436,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
      OS.gtk_container_add (scrolledWindow, webView);
      OS.gtk_container_add (browser.handle, scrolledWindow);
      OS.gtk_widget_show (scrolledWindow);
-@@ -468,7 +468,7 @@ public boolean create (Composite parent,
+@@ -482,7 +482,7 @@
  	OS.g_signal_connect (scrolledWindow, OS.scroll_event, Proc3.getAddress (), STOP_PROPOGATE);
  	OS.g_signal_connect (scrolledWindow, OS.motion_notify_event, Proc3.getAddress (), STOP_PROPOGATE);
  
@@ -6267,8 +6444,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
 +    long /*int*/ settings = WebKitGTK.webkit_web_view_get_settings (webView);
      OS.g_object_set (settings, WebKitGTK.javascript_can_open_windows_automatically, 1, 0);
      OS.g_object_set (settings, WebKitGTK.enable_universal_access_from_file_uris, 1, 0);
- 
-@@ -508,8 +508,8 @@ public boolean create (Composite parent,
+     byte[] bytes = Converter.wcsToMbcs (null, "UTF-8", true); // $NON-NLS-1$
+@@ -524,8 +524,8 @@
  	* queue by removing the default Authenticate listener, adding ours,
  	* and then re-adding the default listener.
  	*/
@@ -6279,16 +6456,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	WebKitGTK.soup_session_feature_detach (originalAuth, session);
  	OS.g_signal_connect (session, WebKitGTK.authenticate, Proc5.getAddress (), webView);
  	WebKitGTK.soup_session_feature_attach (originalAuth, session);
-@@ -535,7 +535,7 @@ public boolean create (Composite parent,
+@@ -551,7 +551,7 @@
  		}
  		proxyHost += ":" + port; //$NON-NLS-1$
- 		byte[] bytes = Converter.wcsToMbcs (null, proxyHost, true);
+ 		bytes = Converter.wcsToMbcs (null, proxyHost, true);
 -		int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
 +		long /*int*/ uri = WebKitGTK.soup_uri_new (bytes);
  		if (uri != 0) {
  			OS.g_object_set (session, WebKitGTK.SOUP_SESSION_PROXY_URI, uri, 0);
  			WebKitGTK.soup_uri_free (uri);
-@@ -646,8 +646,8 @@ boolean close (boolean showPrompters) {
+@@ -660,8 +660,8 @@
  }
  
  public boolean execute (String script) {
@@ -6299,7 +6476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  
  	byte[] bytes = null;
  	try {
-@@ -655,16 +655,16 @@ public boolean execute (String script) {
+@@ -669,16 +669,16 @@
  	} catch (UnsupportedEncodingException e) {
  		bytes = Converter.wcsToMbcs (null, script, true);
  	}
@@ -6319,7 +6496,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	WebKitGTK.JSStringRelease (urlString);
  	WebKitGTK.JSStringRelease (scriptString);
  	return result != 0;
-@@ -681,19 +681,19 @@ public String getBrowserType () {
+@@ -695,13 +695,13 @@
  }
  
  public String getText () {
@@ -6337,14 +6514,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (encoding);
  	byte[] bytes = new byte [length];
  	OS.memmove (bytes, encoding, length);
- 	String encodingString = new String (Converter.mbcsToWcs (null, bytes));
+@@ -709,7 +709,7 @@
  
+ 	length = OS.GString_len (data);
+ 	bytes = new byte[length];
 -	int /*long*/ string = OS.GString_str (data);
 +	long /*int*/ string = OS.GString_str (data);
- 	length = OS.GString_len (string);
- 	bytes = new byte[length];
  	C.memmove (bytes, string, length);
-@@ -706,7 +706,7 @@ public String getText () {
+ 
+ 	try {
+@@ -720,7 +720,7 @@
  }
  
  public String getUrl () {
@@ -6353,7 +6532,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  
  	/* WebKit auto-navigates to about:blank at startup */
  	if (uri == 0) return ABOUT_BLANK;
-@@ -1005,7 +1005,7 @@ boolean handleEvent (Object[] arguments)
+@@ -1019,7 +1019,7 @@
  	return true;
  }
  
@@ -6362,7 +6541,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (uri);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, uri, length);
-@@ -1043,7 +1043,7 @@ int /*long*/ handleLoadCommitted (int /*
+@@ -1057,7 +1057,7 @@
  	return 0;
  }
  
@@ -6371,7 +6550,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (uri);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, uri, length);
-@@ -1095,8 +1095,8 @@ int /*long*/ handleLoadFinished (int /*l
+@@ -1109,8 +1109,8 @@
  		* the event here with the page's url as the title.
  		*/
  		if (top) {
@@ -6382,7 +6561,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			if (title == 0) {
  				TitleEvent newEvent = new TitleEvent (browser);
  				newEvent.display = browser.getDisplay ();
-@@ -1157,7 +1157,7 @@ void onResize (Event e) {
+@@ -1171,7 +1171,7 @@
  	OS.gtk_widget_set_size_request (scrolledWindow, rect.width, rect.height);
  }
  
@@ -6391,7 +6570,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	final Shell shell = new Shell ();
  	String msg = Compatibility.getMessage ("SWT_FileDownload"); //$NON-NLS-1$
  	shell.setText (msg);
-@@ -1167,12 +1167,12 @@ void openDownloadWindow (final int /*lon
+@@ -1181,12 +1181,12 @@
  	gridLayout.verticalSpacing = 20;
  	shell.setLayout (gridLayout);
  
@@ -6406,7 +6585,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	length = OS.strlen (url);
  	bytes = new byte[length];
  	OS.memmove (bytes, url, length);
-@@ -1304,7 +1304,7 @@ public boolean setUrl (String url, Strin
+@@ -1318,7 +1318,7 @@
  	* set the value on the WebView when initiating the load request and then
  	* remove it afterwards.
  	*/
@@ -6415,7 +6594,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (headers != null) {
  		for (int i = 0; i < headers.length; i++) {
  			String current = headers[i];
-@@ -1333,11 +1333,11 @@ public void stop () {
+@@ -1347,11 +1347,11 @@
  	WebKitGTK.webkit_web_view_stop_loading (webView);
  }
  
@@ -6429,7 +6608,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			return handleLoadCommitted (uri, false);
  		}
  		case WebKitGTK.WEBKIT_LOAD_FINISHED: {
-@@ -1347,9 +1347,9 @@ int /*long*/ webframe_notify_load_status
+@@ -1361,9 +1361,9 @@
  			* response to navigating to a main document containing frames) then
  			* treat this as a completed load.
  			*/
@@ -6441,7 +6620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  				return handleLoadFinished (uri, false);
  			}
  		}
-@@ -1357,7 +1357,7 @@ int /*long*/ webframe_notify_load_status
+@@ -1371,7 +1371,7 @@
  	return 0;
  }
  
@@ -6450,7 +6629,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	WindowEvent newEvent = new WindowEvent (browser);
  	newEvent.display = browser.getDisplay ();
  	newEvent.widget = browser;
-@@ -1368,11 +1368,11 @@ int /*long*/ webkit_close_web_view (int
+@@ -1382,11 +1382,11 @@
  	return 0;
  }
  
@@ -6464,7 +6643,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	WindowEvent newEvent = new WindowEvent (browser);
  	newEvent.display = browser.getDisplay ();
  	newEvent.widget = browser;
-@@ -1392,8 +1392,8 @@ int /*long*/ webkit_create_web_view (int
+@@ -1406,8 +1406,8 @@
  	return 0;
  }
  
@@ -6475,7 +6654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (name);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, name, length);
-@@ -1415,7 +1415,7 @@ int /*long*/ webkit_download_requested (
+@@ -1429,7 +1429,7 @@
  	return 1;
  }
  
@@ -6484,7 +6663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (uri != 0) {
  		int length = OS.strlen (uri);
  		byte[] bytes = new byte[length];
-@@ -1432,7 +1432,7 @@ int /*long*/ webkit_hovering_over_link (
+@@ -1446,7 +1446,7 @@
  	return 0;
  }
  
@@ -6493,7 +6672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	boolean canShow = WebKitGTK.webkit_web_view_can_show_mime_type (webView, mimetype) != 0;
  	if (!canShow) {
  		WebKitGTK.webkit_web_policy_decision_download (policy_decision);
-@@ -1441,7 +1441,7 @@ int /*long*/ webkit_mime_type_policy_dec
+@@ -1455,7 +1455,7 @@
  	return 0;
  }
  
@@ -6502,7 +6681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (loadingText) {
  		/* 
  		 * WebKit is auto-navigating to about:blank in response to a
-@@ -1452,7 +1452,7 @@ int /*long*/ webkit_navigation_policy_de
+@@ -1466,7 +1466,7 @@
  		return 0;
  	}
  
@@ -6511,7 +6690,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (uri);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, uri, length);
-@@ -1484,12 +1484,12 @@ int /*long*/ webkit_navigation_policy_de
+@@ -1498,12 +1498,12 @@
  	if (newEvent.doit && !browser.isDisposed ()) {
  		if (jsEnabledChanged) {
  			jsEnabledChanged = false;
@@ -6526,7 +6705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  		if (frame != mainFrame) {
  			int id = OS.g_signal_handler_find (frame, OS.G_SIGNAL_MATCH_FUNC | OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, Proc3.getAddress (), NOTIFY_LOAD_STATUS);
  			if (id == 0) {
-@@ -1512,22 +1512,22 @@ int /*long*/ webkit_navigation_policy_de
+@@ -1526,22 +1526,22 @@
  	return 0;
  }
  
@@ -6553,7 +6732,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	ProgressEvent event = new ProgressEvent (browser);
  	event.display = browser.getDisplay ();
  	event.widget = browser;
-@@ -1539,8 +1539,8 @@ int /*long*/ webkit_notify_progress (int
+@@ -1553,8 +1553,8 @@
  	return 0;
  }
  
@@ -6564,7 +6743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	String titleString;
  	if (title == 0) {
  		titleString = ""; //$NON-NLS-1$
-@@ -1560,7 +1560,7 @@ int /*long*/ webkit_notify_title (int /*
+@@ -1574,7 +1574,7 @@
  	return 0;
  }
  
@@ -6573,7 +6752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	Point pt = browser.getDisplay ().getCursorLocation ();
  	Event event = new Event ();
  	event.x = pt.x;
-@@ -1568,10 +1568,10 @@ int /*long*/ webkit_populate_popup (int
+@@ -1582,10 +1582,10 @@
  	browser.notifyListeners (SWT.MenuDetect, event);
  	if (!event.doit) {
  		/* clear the menu */
@@ -6587,7 +6766,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			OS.gtk_container_remove (webkit_menu, item);
  			current = OS.g_list_next (current);
  		}
-@@ -1585,10 +1585,10 @@ int /*long*/ webkit_populate_popup (int
+@@ -1599,10 +1599,10 @@
  		}
  		menu.setVisible (true);
  		/* clear the menu */
@@ -6601,7 +6780,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			OS.gtk_container_remove (webkit_menu, item);
  			current = OS.g_list_next (current);
  		}
-@@ -1597,18 +1597,18 @@ int /*long*/ webkit_populate_popup (int
+@@ -1611,18 +1611,18 @@
  	return 0;
  }
  
@@ -6624,7 +6803,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  				C.memmove (data, bytes, bytes.length);
  				WebKitGTK.soup_message_body_append (body, WebKitGTK.SOUP_MEMORY_TAKE, data, bytes.length);
  				WebKitGTK.soup_message_body_flatten (body);
-@@ -1622,7 +1622,7 @@ int /*long*/ webkit_resource_request_sta
+@@ -1636,7 +1636,7 @@
  			}
  
  			/* headers */
@@ -6633,7 +6812,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			for (int i = 0; i < headers.length; i++) {
  				String current = headers[i];
  				if (current != null) {
-@@ -1645,7 +1645,7 @@ int /*long*/ webkit_resource_request_sta
+@@ -1659,7 +1659,7 @@
  	return 0;
  }
  
@@ -6642,7 +6821,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int length = OS.strlen (text);
  	byte[] bytes = new byte[length];
  	OS.memmove (bytes, text, length);
-@@ -1659,12 +1659,12 @@ int /*long*/ webkit_status_bar_text_chan
+@@ -1673,12 +1673,12 @@
  	return 0;
  }
  
@@ -6657,7 +6836,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int[] result = new int[1];
  	OS.g_object_get (settings, WebKitGTK.locationbar_visible, result, 0);
  	newEvent.addressBar = result[0] != 0;
-@@ -1702,16 +1702,16 @@ int /*long*/ webkit_web_view_ready (int
+@@ -1716,16 +1716,16 @@
  	return 0;
  }
  
@@ -6678,7 +6857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	WebKitGTK.JSObjectSetProperty (context, globalObject, name, externalObject, 0, null);
  	WebKitGTK.JSStringRelease (name);
  	Enumeration elements = functions.elements ();
-@@ -1719,16 +1719,16 @@ int /*long*/ webkit_window_object_cleare
+@@ -1733,16 +1733,16 @@
  		BrowserFunction current = (BrowserFunction)elements.nextElement ();
  		execute (current.functionString);
  	}
@@ -6692,13 +6871,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
 -int /*long*/ callJava (int /*long*/ ctx, int /*long*/ func, int /*long*/ thisObject, int /*long*/ argumentCount, int /*long*/ arguments, int /*long*/ exception) {
 +long /*int*/ callJava (long /*int*/ ctx, long /*int*/ func, long /*int*/ thisObject, long /*int*/ argumentCount, long /*int*/ arguments, long /*int*/ exception) {
  	Object returnValue = null;
- 	if (argumentCount == 2) {
+ 	if (argumentCount == 3) {
 -		int /*long*/[] result = new int /*long*/[1];
 +		long /*int*/[] result = new long /*int*/[1];
  		C.memmove (result, arguments, C.PTR_SIZEOF);
  		int type = WebKitGTK.JSValueGetType (ctx, result[0]);
  		if (type == WebKitGTK.kJSTypeNumber) {
-@@ -1765,7 +1765,7 @@ int /*long*/ callJava (int /*long*/ ctx,
+@@ -1782,7 +1782,7 @@
  	return convertToJS (ctx, returnValue);
  }
  
@@ -6707,7 +6886,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	if (value == null) {
  		return WebKitGTK.JSValueMakeUndefined (ctx);
  	}
-@@ -1776,8 +1776,8 @@ int /*long*/ convertToJS (int /*long*/ c
+@@ -1793,8 +1793,8 @@
  		} catch (UnsupportedEncodingException e) {
  			bytes = Converter.wcsToMbcs (null, (String)value, true);
  		}
@@ -6718,7 +6897,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  		WebKitGTK.JSStringRelease (stringRef);
  		return result;
  	}
-@@ -1790,10 +1790,10 @@ int /*long*/ convertToJS (int /*long*/ c
+@@ -1807,10 +1807,10 @@
  	if (value instanceof Object[]) {
  		Object[] arrayValue = (Object[]) value;
  		int length = arrayValue.length;
@@ -6731,7 +6910,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			arguments[i] = jsObject;
  		}
  		return WebKitGTK.JSObjectMakeArray (ctx, length, arguments, null);
-@@ -1802,7 +1802,7 @@ int /*long*/ convertToJS (int /*long*/ c
+@@ -1819,7 +1819,7 @@
  	return 0;
  }
  
@@ -6740,7 +6919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  	int type = WebKitGTK.JSValueGetType (ctx, value);
  	switch (type) {
  		case WebKitGTK.kJSTypeBoolean: {
-@@ -1814,9 +1814,9 @@ Object convertToJava (int /*long*/ ctx,
+@@ -1831,9 +1831,9 @@
  			return new Double(result);
  		}
  		case WebKitGTK.kJSTypeString: {
@@ -6752,7 +6931,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  			byte[] bytes = new byte[(int)/*64*/length];
  			length = WebKitGTK.JSStringGetUTF8CString (string, bytes, length);
  			WebKitGTK.JSStringRelease (string);
-@@ -1837,15 +1837,15 @@ Object convertToJava (int /*long*/ ctx,
+@@ -1854,15 +1854,15 @@
  			} catch (UnsupportedEncodingException e) {
  				bytes = Converter.wcsToMbcs (null, PROPERTY_LENGTH, true);
  			}
@@ -6771,10 +6950,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WebKit.java swt-gtk-3.6.2
  					if (current != 0) {
  						result[i] = convertToJava (ctx, current);
  					}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-gtk-3.6.2/org/eclipse/swt/browser/WindowCreator2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/browser/WindowCreator2.java	2011-03-21 11:34:23.215735487 +0000
-@@ -35,24 +35,24 @@ int AddRef () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/browser/WindowCreator2.java swt-gtk-3.7//org/eclipse/swt/browser/WindowCreator2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/browser/WindowCreator2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/browser/WindowCreator2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -35,24 +35,24 @@
  void createCOMInterfaces () {
  	/* Create each of the interfaces that this object implements */
  	supports = new XPCOMObject (new int[] {2, 0, 0}) {
@@ -6811,7 +6990,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  	};
  }
  
-@@ -72,32 +72,32 @@ void disposeCOMInterfaces () {
+@@ -72,32 +72,32 @@
  	}
  }
  
@@ -6850,7 +7029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  	return XPCOM.NS_ERROR_NO_INTERFACE;
  }
          	
-@@ -109,26 +109,26 @@ int Release () {
+@@ -109,26 +109,26 @@
  	
  /* nsIWindowCreator */
  
@@ -6881,7 +7060,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  		rc = webBrowser.QueryInterface (nsIBaseWindow.NS_IBASEWINDOW_IID, result);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		if (result[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -136,7 +136,7 @@ int CreateChromeWindow2 (int /*long*/ pa
+@@ -136,7 +136,7 @@
  
  		nsIBaseWindow baseWindow = new nsIBaseWindow (result[0]);
  		result[0] = 0;
@@ -6890,7 +7069,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  		rc = baseWindow.GetParentNativeWindow (aParentNativeWindow);
  		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
  		if (aParentNativeWindow[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NO_INTERFACE);
-@@ -182,11 +182,11 @@ int CreateChromeWindow2 (int /*long*/ pa
+@@ -182,11 +182,11 @@
  		});
  		if (uri != 0) {
  			nsIURI location = new nsIURI (uri);
@@ -6904,7 +7083,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  					byte[] dest = new byte[length];
  					XPCOM.memmove (dest, buffer, length);
  					browser.setUrl (new String (dest));
-@@ -215,11 +215,11 @@ int CreateChromeWindow2 (int /*long*/ pa
+@@ -215,11 +215,11 @@
  	if (doit) {
  		Mozilla mozilla = (Mozilla)browser.webBrowser;
  		mozilla.isChild = true;
@@ -6918,10 +7097,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/browser/WindowCreator2.java swt-g
  	} else {
  		if (cancel != 0) {
  			C.memmove (cancel, new int[] {1}, 4);	/* PRBool */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ByteArrayTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/ByteArrayTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ByteArrayTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/ByteArrayTransfer.java	2011-03-21 11:34:23.545730830 +0000
-@@ -155,7 +155,7 @@ protected void javaToNative (Object obje
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/ByteArrayTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/ByteArrayTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/ByteArrayTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/ByteArrayTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -155,7 +155,7 @@
  	}
  	byte[] buffer = (byte[])object;
  	if (buffer.length == 0) return;
@@ -6930,10 +7109,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ByteArrayTransfer.java swt-gt
  	if (pValue == 0) return;
  	OS.memmove(pValue, buffer, buffer.length);
  	transferData.length = buffer.length;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/org/eclipse/swt/dnd/Clipboard.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/Clipboard.java	2011-03-21 11:34:23.555730678 +0000
-@@ -32,14 +32,14 @@ public class Clipboard {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.7//org/eclipse/swt/dnd/Clipboard.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/Clipboard.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/Clipboard.java	2011-06-13 20:53:32.000000000 +0000
+@@ -32,14 +32,14 @@
  
  	private Display display;
  	
@@ -6952,7 +7131,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/
  		GTKPRIMARYCLIPBOARD = OS.gtk_clipboard_get(primary);
  		buffer = Converter.wcsToMbcs(null, "TARGETS", true);
  		TARGET = OS.gdk_atom_intern(buffer, false);
-@@ -287,7 +287,7 @@ public Object getContents(Transfer trans
+@@ -287,7 +287,7 @@
  public Object getContents(Transfer transfer, int clipboards) {
  	checkWidget();
  	if (transfer == null) DND.error(SWT.ERROR_NULL_ARGUMENT);
@@ -6961,7 +7140,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/
  	int[] typeIds = transfer.getTypeIds();
  	for (int i = 0; i < typeIds.length; i++) {
  		if ((clipboards & DND.CLIPBOARD) != 0) {
-@@ -549,7 +549,7 @@ public String[] getAvailableTypeNames()
+@@ -563,7 +563,7 @@
  	String[] result = new String[types1.length + types2.length];
  	int count = 0;
  	for (int i = 0; i < types1.length; i++) {
@@ -6970,7 +7149,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/
  		if (pName == 0) {
  			continue;
  		}
-@@ -559,7 +559,7 @@ public String[] getAvailableTypeNames()
+@@ -573,7 +573,7 @@
  		result[count++] = "GTKCLIPBOARD "+new String (Converter.mbcsToWcs (null, buffer));
  	}
  	for (int i = 0; i < types2.length; i++) {
@@ -6979,25 +7158,25 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/
  		if (pName == 0) {
  			continue;
  		}
-@@ -578,7 +578,7 @@ public String[] getAvailableTypeNames()
+@@ -592,7 +592,7 @@
  
  private  int[] getAvailablePrimaryTypes() {
  	int[] types = new int[0];
 -	int /*long*/ selection_data = gtk_clipboard_wait_for_contents(GTKPRIMARYCLIPBOARD, TARGET);
 +	long /*int*/ selection_data = gtk_clipboard_wait_for_contents(GTKPRIMARYCLIPBOARD, TARGET);
- 	if (selection_data != 0) {
- 		try {
- 			GtkSelectionData gtkSelectionData = new GtkSelectionData();
-@@ -595,7 +595,7 @@ private  int[] getAvailablePrimaryTypes(
+ 	/*
+ 	* This call to gdk_threads_leave() is a temporary work around
+ 	* to avoid deadlocks when gdk_threads_init() is called by native
+@@ -616,7 +616,7 @@
  }
  private int[] getAvailableClipboardTypes () {
  	int[] types = new int[0];
 -	int /*long*/ selection_data  = gtk_clipboard_wait_for_contents(GTKCLIPBOARD, TARGET);
 +	long /*int*/ selection_data  = gtk_clipboard_wait_for_contents(GTKCLIPBOARD, TARGET);
- 	if (selection_data != 0) {
- 		try {
- 			GtkSelectionData gtkSelectionData = new GtkSelectionData();
-@@ -611,11 +611,11 @@ private int[] getAvailableClipboardTypes
+ 	/*
+ 	* This call to gdk_threads_leave() is a temporary work around
+ 	* to avoid deadlocks when gdk_threads_init() is called by native
+@@ -639,11 +639,11 @@
  	return types;
  }
  
@@ -7011,10 +7190,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/Clipboard.java swt-gtk-3.6.2/
  	display.setData(key, null);
  	return selection_data;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3.6.2/org/eclipse/swt/dnd/ClipboardProxy.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/ClipboardProxy.java	2011-03-21 11:34:23.565730531 +0000
-@@ -30,7 +30,7 @@ class ClipboardProxy {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3.7//org/eclipse/swt/dnd/ClipboardProxy.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/ClipboardProxy.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/ClipboardProxy.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,7 +30,7 @@
  	Object[] primaryClipboardData;
  	Transfer[] primaryClipboardDataTypes;
  
@@ -7023,7 +7202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  	Display display;
  	Clipboard activeClipboard = null;
  	Clipboard activePrimaryClipboard = null;
-@@ -72,7 +72,7 @@ void clear (Clipboard owner, int clipboa
+@@ -72,7 +72,7 @@
  	}
  }
  
@@ -7032,7 +7211,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  	if (clipboard == Clipboard.GTKCLIPBOARD) {
  		activeClipboard = null;
  		clipboardData = null;
-@@ -107,7 +107,7 @@ void dispose () {
+@@ -119,7 +119,7 @@
   * This function provides the data to the clipboard on request.
   * When this clipboard is disposed, the data will no longer be available.
   */
@@ -7041,7 +7220,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  	if (selection_data == 0) return 0;
  	GtkSelectionData selectionData = new GtkSelectionData();
  	OS.memmove(selectionData, selection_data, GtkSelectionData.sizeof);
-@@ -134,7 +134,7 @@ int /*long*/ getFunc(int /*long*/ clipbo
+@@ -146,7 +146,7 @@
  
  boolean setData(Clipboard owner, Object[] data, Transfer[] dataTypes, int clipboards) {	
  	GtkTargetEntry[] entries = new  GtkTargetEntry [0];
@@ -7050,7 +7229,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  	try {
  		for (int i = 0; i < dataTypes.length; i++) {
  			Transfer transfer = dataTypes[i];
-@@ -144,7 +144,7 @@ boolean setData(Clipboard owner, Object[
+@@ -156,7 +156,7 @@
  				GtkTargetEntry	entry = new GtkTargetEntry();						
  				entry.info = typeIds[j];
  				byte[] buffer = Converter.wcsToMbcs(null, typeNames[j], true);
@@ -7059,7 +7238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  				OS.memmove(pName, buffer, buffer.length);
  				entry.target = pName;
  				GtkTargetEntry[] tmp = new GtkTargetEntry [entries.length + 1];
-@@ -163,8 +163,8 @@ boolean setData(Clipboard owner, Object[
+@@ -175,8 +175,8 @@
  		if ((clipboards & DND.CLIPBOARD) != 0) {
  			clipboardData = data;
  			clipboardDataTypes = dataTypes;
@@ -7070,7 +7249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  			/*
  			* Feature in GTK. When the contents are set again, clipboard_set_with_data() 
  			* invokes clearFunc and then, getFunc is not sequentially called. 
-@@ -183,8 +183,8 @@ boolean setData(Clipboard owner, Object[
+@@ -198,8 +198,8 @@
  		if ((clipboards & DND.SELECTION_CLIPBOARD) != 0) {
  			primaryClipboardData = data;
  			primaryClipboardDataTypes = dataTypes;
@@ -7081,10 +7260,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ClipboardProxy.java swt-gtk-3
  			if (!OS.gtk_clipboard_set_with_owner (Clipboard.GTKPRIMARYCLIPBOARD, pTargetsList, entries.length, getFuncProc, clearFuncProc, clipboardOwner)) {
  				return false;
  			}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2/org/eclipse/swt/dnd/DragSource.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/DragSource.java	2011-03-21 11:34:23.555730678 +0000
-@@ -106,7 +106,7 @@ public class DragSource extends Widget {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.7//org/eclipse/swt/dnd/DragSource.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/DragSource.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/DragSource.java	2011-06-13 20:53:32.000000000 +0000
+@@ -106,7 +106,7 @@
  	Transfer[] transferAgents = new Transfer[0];
  	DragSourceEffect dragEffect;
  
@@ -7093,7 +7272,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	
  	//workaround - remember action performed for DragEnd
  	boolean moveData = false;
-@@ -207,28 +207,28 @@ static int checkStyle (int style) {
+@@ -207,28 +207,28 @@
  	return style;
  }
  
@@ -7126,7 +7305,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	Display display = Display.findDisplay(Thread.currentThread());
  	if (display == null || display.isDisposed()) return null;
  	Widget widget = display.findWidget(handle);
-@@ -297,15 +297,15 @@ void drag(Event dragEvent) {
+@@ -297,15 +297,15 @@
  	
  	int actions = opToOsOp(getStyle());
  	Image image = event.image; 
@@ -7145,7 +7324,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	/*
  	 * Bug in GTK.  If a drag is initiated using gtk_drag_begin and the 
  	 * mouse is released immediately, the mouse and keyboard remain
-@@ -341,7 +341,7 @@ void dragEnd(int /*long*/ widget, int /*
+@@ -341,7 +341,7 @@
  	moveData = false;	
  }	
  
@@ -7154,7 +7333,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	if (selection_data == 0) return;	
  	GtkSelectionData gtkSelectionData = new GtkSelectionData();
  	OS.memmove(gtkSelectionData, selection_data, GtkSelectionData.sizeof);
-@@ -376,7 +376,7 @@ void dragGetData(int /*long*/ widget, in
+@@ -376,7 +376,7 @@
  	return;	
  }
  
@@ -7163,7 +7342,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	moveData = true;
  }
  
-@@ -564,7 +564,7 @@ public void setTransfer(Transfer[] trans
+@@ -564,7 +564,7 @@
  		}
  	}
  	
@@ -7172,7 +7351,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  	for (int i = 0; i < targets.length; i++) {
  		OS.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);		
  	}			
-@@ -575,29 +575,29 @@ public void setTransfer(Transfer[] trans
+@@ -575,29 +575,29 @@
  	}
  }
  
@@ -7210,7 +7389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  			OS.memmove(maskLine, maskOffset, maskStride);
  			for (int x=0; x<w[0]; x++) {
  				if (maskLine[x * 3] == 0) {
-@@ -616,10 +616,10 @@ static int /*long*/ createPixbuf(Image i
+@@ -616,10 +616,10 @@
  		if (hasAlpha) {
  			byte [] alpha = data.alphaData;
  			int stride = OS.gdk_pixbuf_get_rowstride (pixbuf);
@@ -7223,10 +7402,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DragSource.java swt-gtk-3.6.2
  				OS.memmove (line, offset, stride);
  				for (int x = 0; x < w [0]; x++) {
  					line [x*4+3] = alpha [y*w [0]+x];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2/org/eclipse/swt/dnd/DropTarget.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/DropTarget.java	2011-03-21 11:34:23.555730678 +0000
-@@ -245,33 +245,33 @@ static int checkStyle (int style) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.7//org/eclipse/swt/dnd/DropTarget.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/DropTarget.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/DropTarget.java	2011-06-13 20:53:32.000000000 +0000
+@@ -245,33 +245,33 @@
  	return style;
  }
  
@@ -7265,7 +7444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	Display display = Display.findDisplay(Thread.currentThread());
  	if (display == null || display.isDisposed()) return null;
  	Widget widget = display.findWidget(handle);
-@@ -332,7 +332,7 @@ protected void checkSubclass () {
+@@ -332,7 +332,7 @@
  	}
  }
  
@@ -7274,7 +7453,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	DNDEvent event = new DNDEvent();
  	if (data == 0 || !setEventData(context, x, y, time, event)) {
  		keyOperation = -1;
-@@ -380,7 +380,7 @@ void drag_data_received ( int /*long*/ w
+@@ -380,7 +380,7 @@
  	return;	
  }
  
@@ -7283,7 +7462,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	DNDEvent event = new DNDEvent();
  	if (!setEventData(context, x, y, time, event)) {
  		keyOperation = -1;
-@@ -417,7 +417,7 @@ boolean drag_drop(int /*long*/ widget, i
+@@ -417,7 +417,7 @@
  	return true;
  }
  
@@ -7292,7 +7471,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	updateDragOverHover(0, null);
  	
  	if (keyOperation == -1) return;
-@@ -430,7 +430,7 @@ void drag_leave ( int /*long*/ widget, i
+@@ -430,7 +430,7 @@
  	notifyListeners(DND.DragLeave, event);
  }
  
@@ -7301,7 +7480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	int oldKeyOperation = keyOperation;
  	
  	/*
-@@ -694,7 +694,7 @@ public void setTransfer(Transfer[] trans
+@@ -694,7 +694,7 @@
  		}
  	}
  	
@@ -7310,7 +7489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	for (int i = 0; i < targets.length; i++) {
  		OS.memmove(pTargets + i*GtkTargetEntry.sizeof, targets[i], GtkTargetEntry.sizeof);		
  	}			
-@@ -702,7 +702,7 @@ public void setTransfer(Transfer[] trans
+@@ -702,7 +702,7 @@
  	int actions = opToOsOp(getStyle());
  	if (control instanceof Combo) {
  		if ((control.getStyle() & SWT.READ_ONLY) == 0) {
@@ -7319,7 +7498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  			if (entryHandle != 0) {
  				OS.gtk_drag_dest_unset(entryHandle);
  			}
-@@ -728,7 +728,7 @@ public void setDropTargetEffect(DropTarg
+@@ -728,7 +728,7 @@
  	dropEffect = effect;
  }
  
@@ -7328,7 +7507,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	if (context == 0) return false;
  	GdkDragContext dragContext = new GdkDragContext();
  	OS.memmove(dragContext, context, GdkDragContext.sizeof);
-@@ -754,7 +754,7 @@ boolean setEventData(int /*long*/ contex
+@@ -754,7 +754,7 @@
  	int length = OS.g_list_length(dragContext.targets);
  	TransferData[] dataTypes = new TransferData[0];
  	for (int i = 0; i < length; i++) {
@@ -7337,7 +7516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  		GtkTargetPair gtkTargetPair = new GtkTargetPair();
  		OS.memmove(gtkTargetPair, pData, GtkTargetPair.sizeof);
  		TransferData data = new TransferData();
-@@ -772,7 +772,7 @@ boolean setEventData(int /*long*/ contex
+@@ -772,7 +772,7 @@
  	}
  	if (dataTypes.length == 0) return false;
  
@@ -7346,10 +7525,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/DropTarget.java swt-gtk-3.6.2
  	int [] origin_x = new int[1], origin_y = new int[1];
  	OS.gdk_window_get_origin(window, origin_x, origin_y);
  	Point coordinates = new Point(origin_x[0] + x, origin_y[0] + y);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/FileTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/FileTransfer.java	2011-03-21 11:34:23.575730390 +0000
-@@ -85,13 +85,13 @@ public void javaToNative(Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/FileTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/FileTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/FileTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -85,13 +85,13 @@
  		if (length == 0) continue;
  		char[] chars = new char[length];
  		string.getChars(0, length, chars, 0);		
@@ -7367,7 +7546,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6
  		OS.g_free(localePtr);
  		if (error[0] != 0 || uriPtr == 0) continue;
  		length = OS.strlen(uriPtr);
-@@ -111,7 +111,7 @@ public void javaToNative(Object object,
+@@ -111,7 +111,7 @@
  		buffer = newBuffer;
  	}
  	if (buffer.length == 0) return;
@@ -7376,7 +7555,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6
  	OS.memset(ptr, '\0', buffer.length+1);
  	OS.memmove(ptr, buffer, buffer.length);
  	transferData.pValue = ptr;
-@@ -137,7 +137,7 @@ public Object nativeToJava(TransferData
+@@ -137,7 +137,7 @@
  	OS.memmove(temp, transferData.pValue, length);
  	boolean gnomeList = transferData.type == GNOME_LIST_ID;
  	int sepLength = gnomeList ? 1 : 2;
@@ -7385,7 +7564,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6
  	int offset = 0;
  	for (int i = 0; i < temp.length - 1; i++) {
  		boolean terminator = gnomeList ? temp[i] == '\n' : temp[i] == '\r' && temp[i+1] == '\n';
-@@ -145,11 +145,11 @@ public Object nativeToJava(TransferData
+@@ -145,11 +145,11 @@
  			if (!(gnomeList && offset == 0)) {
  				/* The content of the first line in a gnome-list is always either 'copy' or 'cut' */
  				int size =  i - offset;
@@ -7399,7 +7578,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6
  				System.arraycopy(files, 0, newFiles, 0, files.length);
  				newFiles[files.length] = file;
  				files = newFiles;
-@@ -159,26 +159,26 @@ public Object nativeToJava(TransferData
+@@ -159,26 +159,26 @@
  	}
  	if (offset < temp.length - sepLength) {
  		int size =  temp.length - offset;
@@ -7433,10 +7612,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/FileTransfer.java swt-gtk-3.6
  		OS.g_free(utf8Ptr);
  		length = (int)/*64*/items_written[0];
  		char[] buffer = new char[length];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/HTMLTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/HTMLTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/HTMLTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/HTMLTransfer.java	2011-03-21 11:34:23.555730678 +0000
-@@ -65,7 +65,7 @@ public void javaToNative (Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/HTMLTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/HTMLTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/HTMLTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/HTMLTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -65,7 +65,7 @@
  	char [] chars = new char[charCount +1];
  	string.getChars(0, charCount , chars, 0);
  	int byteCount = chars.length*2;
@@ -7445,10 +7624,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/HTMLTransfer.java swt-gtk-3.6
  	if (pValue == 0) return;
  	OS.memmove(pValue, chars, byteCount);
  	transferData.length = byteCount;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ImageTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/ImageTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ImageTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/ImageTransfer.java	2011-03-21 11:34:23.565730531 +0000
-@@ -89,12 +89,12 @@ public void javaToNative(Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/ImageTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/ImageTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/ImageTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/ImageTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -89,12 +89,12 @@
  	ImageData imgData = (ImageData)object;
  	if (imgData == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	Image image = new Image(Display.getCurrent(), imgData);	
@@ -7464,7 +7643,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ImageTransfer.java swt-gtk-3.
  	OS.gdk_pixbuf_get_from_drawable(pixbuf, pixmap, colormap, 0, 0, 0, 0, width, height);	
  	
  	String typeStr = "";
-@@ -110,8 +110,8 @@ public void javaToNative(Object object,
+@@ -110,8 +110,8 @@
  	if (transferData.type ==  XPM_ID) typeStr = "xpm";
  	if (transferData.type ==  XV_ID) typeStr = "xv";
  	byte[] type = Converter.wcsToMbcs(null, typeStr , true);
@@ -7475,7 +7654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ImageTransfer.java swt-gtk-3.
  	if (type == null) return;
  	OS.gdk_pixbuf_save_to_bufferv(pixbuf, buffer, len, type, null, null, null);
  	OS.g_object_unref(pixbuf);
-@@ -136,14 +136,14 @@ public Object nativeToJava(TransferData
+@@ -136,14 +136,14 @@
  	ImageData imgData = null;
  	if (transferData.length > 0)
  	{
@@ -7494,10 +7673,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/ImageTransfer.java swt-gtk-3.
  			if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  			OS.g_object_unref(loader);
  			Image img = Image.gtk_new(Display.getCurrent(), SWT.BITMAP, handle, 0);		
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/RTFTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/RTFTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/RTFTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/RTFTransfer.java	2011-03-21 11:34:23.565730531 +0000
-@@ -65,7 +65,7 @@ public void javaToNative (Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/RTFTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/RTFTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/RTFTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/RTFTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -65,7 +65,7 @@
  	}
  	String string = (String)object;
  	byte [] buffer = Converter.wcsToMbcs (null, string, true);
@@ -7506,10 +7685,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/RTFTransfer.java swt-gtk-3.6.
  	if (pValue == 0) return;
  	OS.memmove(pValue, buffer, buffer.length);
  	transferData.length = buffer.length - 1;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TableDragSourceEffect.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TableDragSourceEffect.java	2011-03-21 11:34:23.565730531 +0000
-@@ -88,26 +88,26 @@ public class TableDragSourceEffect exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java swt-gtk-3.7//org/eclipse/swt/dnd/TableDragSourceEffect.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TableDragSourceEffect.java	2011-06-13 20:53:32.000000000 +0000
+@@ -88,26 +88,26 @@
  		* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  		* to give a valid pointer instead.
  		*/
@@ -7544,7 +7723,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java sw
  				OS.gtk_tree_view_get_cell_area (handle, path, 0, rect);
  				pixmaps[i] = OS.gtk_tree_view_create_row_drag_icon(handle, path);
  				OS.gdk_drawable_get_size(pixmaps[i], w, h);
-@@ -116,10 +116,10 @@ public class TableDragSourceEffect exten
+@@ -116,10 +116,10 @@
  				yy[i] = rect.y;
  				hh[i] = h[0];
  			}
@@ -7559,10 +7738,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDragSourceEffect.java sw
  			GdkColor color = new GdkColor();
  			color.pixel = 0;
  			OS.gdk_gc_set_foreground(gcMask, color);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TableDropTargetEffect.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TableDropTargetEffect.java	2011-03-21 11:34:23.565730531 +0000
-@@ -102,7 +102,7 @@ public class TableDropTargetEffect exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java swt-gtk-3.7//org/eclipse/swt/dnd/TableDropTargetEffect.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TableDropTargetEffect.java	2011-06-13 20:53:32.000000000 +0000
+@@ -102,7 +102,7 @@
  	 */
  	public void dragLeave(DropTargetEvent event) {
  		Table table = (Table) control;
@@ -7571,7 +7750,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java sw
  		OS.gtk_tree_view_set_drag_dest_row(handle, 0, OS.GTK_TREE_VIEW_DROP_BEFORE);
  
  		scrollBeginTime = 0;
-@@ -128,15 +128,15 @@ public class TableDropTargetEffect exten
+@@ -128,15 +128,15 @@
  	 */
  	public void dragOver(DropTargetEvent event) {
  		Table table = (Table) control;
@@ -7590,10 +7769,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TableDropTargetEffect.java sw
  			if (indices != 0) {
  				int[] temp = new int[1];
  				OS.memmove (temp, indices, 4);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TextTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TextTransfer.java	2011-03-21 11:34:23.565730531 +0000
-@@ -72,9 +72,9 @@ public void javaToNative (Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/TextTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TextTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TextTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -72,9 +72,9 @@
  	String string = (String)object;
  	byte[] utf8 = Converter.wcsToMbcs (null, string, true);
  	if  (transferData.type ==  COMPOUND_TEXT_ID) {
@@ -7605,7 +7784,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.6
  		int[] length = new int[1];
  		boolean result = OS.gdk_utf8_to_compound_text(utf8, encoding, format, ctext, length);
  		if (!result) return;
-@@ -85,7 +85,7 @@ public void javaToNative (Object object,
+@@ -85,7 +85,7 @@
  		transferData.result = 1;
  	} 
  	if (transferData.type == UTF8_STRING_ID) {
@@ -7614,7 +7793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.6
  		if (pValue ==  0) return;
  		OS.memmove(pValue, utf8, utf8.length);
  		transferData.type = UTF8_STRING_ID;
-@@ -95,7 +95,7 @@ public void javaToNative (Object object,
+@@ -95,7 +95,7 @@
  		transferData.result = 1;
  	}
  	if (transferData.type == STRING_ID) {
@@ -7623,7 +7802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.6
  		if (string_target ==  0) return;
  		transferData.type = STRING_ID;
  		transferData.format = 8;
-@@ -116,10 +116,10 @@ public void javaToNative (Object object,
+@@ -116,10 +116,10 @@
   */
  public Object nativeToJava(TransferData transferData){
  	if (!isSupportedType(transferData) ||  transferData.pValue == 0) return null;
@@ -7636,10 +7815,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TextTransfer.java swt-gtk-3.6
  	OS.memmove(ptr, list[0], OS.PTR_SIZEOF);
  	int length = OS.strlen(ptr[0]);
  	byte[] utf8 = new byte[length];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TransferData.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TransferData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TransferData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TransferData.java	2011-03-21 11:34:23.555730678 +0000
-@@ -40,7 +40,7 @@ public class TransferData {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TransferData.java swt-gtk-3.7//org/eclipse/swt/dnd/TransferData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TransferData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TransferData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,7 +40,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -7648,7 +7827,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TransferData.java swt-gtk-3.6
  	
  	/**
  	 * Specifies the number of units in pValue.
-@@ -86,7 +86,7 @@ public class TransferData {
+@@ -86,7 +86,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -7657,10 +7836,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TransferData.java swt-gtk-3.6
  
  	/**
  	 * The result field contains the result of converting a
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TreeDragSourceEffect.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TreeDragSourceEffect.java	2011-03-21 11:34:23.555730678 +0000
-@@ -87,26 +87,26 @@ public class TreeDragSourceEffect extend
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java swt-gtk-3.7//org/eclipse/swt/dnd/TreeDragSourceEffect.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TreeDragSourceEffect.java	2011-06-13 20:53:32.000000000 +0000
+@@ -87,26 +87,26 @@
  		* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  		* to give a valid pointer instead.
  		*/
@@ -7695,7 +7874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java swt
  				OS.gtk_tree_view_get_cell_area (handle, path, 0, rect);
  				pixmaps[i] = OS.gtk_tree_view_create_row_drag_icon(handle, path);
  				OS.gdk_drawable_get_size(pixmaps[i], w, h);
-@@ -115,10 +115,10 @@ public class TreeDragSourceEffect extend
+@@ -115,10 +115,10 @@
  				yy[i] = rect.y;
  				hh[i] = h[0];
  			}
@@ -7710,10 +7889,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDragSourceEffect.java swt
  			GdkColor color = new GdkColor();
  			color.pixel = 0;
  			OS.gdk_gc_set_foreground(gcMask, color);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java swt-gtk-3.6.2/org/eclipse/swt/dnd/TreeDropTargetEffect.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/TreeDropTargetEffect.java	2011-03-21 11:34:23.565730531 +0000
-@@ -111,7 +111,7 @@ public class TreeDropTargetEffect extend
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java swt-gtk-3.7//org/eclipse/swt/dnd/TreeDropTargetEffect.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/TreeDropTargetEffect.java	2011-06-13 20:53:32.000000000 +0000
+@@ -111,7 +111,7 @@
  	 */
  	public void dragLeave(DropTargetEvent event) {
  		Tree tree = (Tree) control;
@@ -7722,7 +7901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java swt
  		OS.gtk_tree_view_set_drag_dest_row(handle, 0, OS.GTK_TREE_VIEW_DROP_BEFORE);
  
  		scrollBeginTime = 0;
-@@ -142,14 +142,14 @@ public class TreeDropTargetEffect extend
+@@ -142,14 +142,14 @@
  		Tree tree = (Tree) control;
  		int effect = checkEffect(event.feedback);
  
@@ -7740,10 +7919,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/TreeDropTargetEffect.java swt
  			if (indices != 0) {	
  				int depth = OS.gtk_tree_path_get_depth(path[0]);
  				int[] temp = new int[depth];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/URLTransfer.java swt-gtk-3.6.2/org/eclipse/swt/dnd/URLTransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/URLTransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/dnd/URLTransfer.java	2011-03-21 11:34:23.565730531 +0000
-@@ -66,7 +66,7 @@ public void javaToNative (Object object,
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/dnd/URLTransfer.java swt-gtk-3.7//org/eclipse/swt/dnd/URLTransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/dnd/URLTransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/dnd/URLTransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -66,7 +66,7 @@
  	char [] chars = new char[charCount +1];
  	string.getChars(0, charCount , chars, 0);
  	int byteCount = chars.length*2;
@@ -7752,10 +7931,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/dnd/URLTransfer.java swt-gtk-3.6.
  	if (pValue == 0) return;
  	OS.memmove(pValue, chars, byteCount);
  	transferData.length = byteCount;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Color.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Color.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Color.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Color.java	2011-03-21 11:34:23.245735074 +0000
-@@ -117,7 +117,7 @@ void destroy() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Color.java swt-gtk-3.7//org/eclipse/swt/graphics/Color.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Color.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Color.java	2011-06-13 20:53:32.000000000 +0000
+@@ -117,7 +117,7 @@
  			device.gdkColors[pixel] = null;
  		}
  	}
@@ -7764,7 +7943,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Color.java swt-gtk-3.6.2
  	OS.gdk_colormap_free_colors(colormap, handle, 1);
  	handle = null;
  }
-@@ -244,7 +244,7 @@ void init(int red, int green, int blue)
+@@ -244,7 +244,7 @@
  	gdkColor.red = (short)((red & 0xFF) | ((red & 0xFF) << 8));
  	gdkColor.green = (short)((green & 0xFF) | ((green & 0xFF) << 8));
  	gdkColor.blue = (short)((blue & 0xFF) | ((blue & 0xFF) << 8));
@@ -7773,10 +7952,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Color.java swt-gtk-3.6.2
  	if (!OS.gdk_colormap_alloc_color(colormap, gdkColor, true, true)) {
  		/* Allocate black. */
  		gdkColor = new GdkColor();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Cursor.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Cursor.java	2011-03-21 11:34:23.235735219 +0000
-@@ -54,7 +54,7 @@ public final class Cursor extends Resour
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.7//org/eclipse/swt/graphics/Cursor.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Cursor.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Cursor.java	2011-06-13 20:53:32.000000000 +0000
+@@ -54,7 +54,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -7785,7 +7964,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.6.
  
  	static final byte[] APPSTARTING_SRC = {
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
-@@ -290,15 +290,15 @@ public Cursor(Device device, ImageData s
+@@ -290,15 +290,15 @@
  		hotspotY >= source.height || hotspotY < 0) {
  		SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	}
@@ -7804,7 +7983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.6.
  		byte[] buffer = source.data;
  		if (!palette.isDirect || source.depth != 24 || stride != source.bytesPerLine || palette.redMask != 0xFF000000 || palette.greenMask != 0xFF0000 || palette.blueMask != 0xFF00) {
  			buffer = new byte[source.width * source.height * 4];
-@@ -432,10 +432,10 @@ public Cursor(Device device, ImageData s
+@@ -432,10 +432,10 @@
  	init();
  }
  
@@ -7819,7 +7998,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.6.
  	if (sourcePixmap != 0 && maskPixmap != 0) {
  		GdkColor foreground = new GdkColor();
  		if (!reverse) foreground.red = foreground.green = foreground.blue = (short)0xFFFF;
-@@ -485,7 +485,7 @@ public boolean equals(Object object) {
+@@ -485,7 +485,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -7828,10 +8007,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Cursor.java swt-gtk-3.6.
  	Cursor cursor = new Cursor(device);
  	cursor.handle = handle;
  	return cursor;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Device.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Device.java	2011-03-21 11:34:23.265734784 +0000
-@@ -36,8 +36,8 @@ public abstract class Device implements
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.7//org/eclipse/swt/graphics/Device.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Device.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Device.java	2011-06-13 20:53:32.000000000 +0000
+@@ -36,8 +36,8 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -7842,7 +8021,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  
  	/* Debugging */
  	public static boolean DEBUG;
-@@ -55,7 +55,7 @@ public abstract class Device implements
+@@ -55,7 +55,7 @@
  	boolean disposed;
  	
  	/* Warning and Error Handlers */
@@ -7851,7 +8030,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	Callback logCallback;
  	//NOT DONE - get list of valid names
  	String [] log_domains = {"GLib-GObject", "GLib", "GObject", "Pango", "ATK", "GdkPixbuf", "Gdk", "Gtk", "GnomeVFS", "GIO"};
-@@ -64,7 +64,7 @@ public abstract class Device implements
+@@ -64,7 +64,7 @@
  	
  	/* X Warning and Error Handlers */
  	static Callback XErrorCallback, XIOErrorCallback;
@@ -7860,16 +8039,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	static Device[] Devices = new Device[4];
  
  	/*
-@@ -79,7 +79,7 @@ public abstract class Device implements
- 	/* System Font */
- 	Font systemFont;
+@@ -82,7 +82,7 @@
+ 	/* Device dpi */
+ 	Point dpi;
  	
 -	int /*long*/ emptyTab;
 +	long /*int*/ emptyTab;
  
  	boolean useXRender;
- 
-@@ -171,7 +171,7 @@ void checkCairo() {
+ 	boolean useCairo;
+@@ -174,7 +174,7 @@
  		} else {
  			buffer =  Converter.wcsToMbcs(null, "libcairo.so.2", true);
  		}
@@ -7878,7 +8057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  		if (libcairo != 0) {
  			OS.dlclose(libcairo);
  		} else {
-@@ -270,7 +270,7 @@ void dispose_Object (Object object) {
+@@ -273,7 +273,7 @@
  	}
  }
  
@@ -7887,7 +8066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	for (int i=0; i<Devices.length; i++) {
  		Device device = Devices [i];
  		if (device != null && device.xDisplay == xDisplay) {
-@@ -425,13 +425,13 @@ public Point getDPI () {
+@@ -428,13 +428,13 @@
  public FontData[] getFontList (String faceName, boolean scalable) {
  	checkDevice ();
  	if (!scalable) return new FontData[0];
@@ -7906,7 +8085,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	OS.pango_context_list_families(context, families, n_families);
  	int nFds = 0;
  	FontData[] fds = new FontData[faceName != null ? 4 : n_families[0]];
-@@ -439,7 +439,7 @@ public FontData[] getFontList (String fa
+@@ -442,7 +442,7 @@
  		OS.memmove(family, families[0] + i * OS.PTR_SIZEOF, OS.PTR_SIZEOF);
  		boolean match = true;
  		if (faceName != null) {
@@ -7915,7 +8094,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  			int length = OS.strlen(familyName);
  			byte[] buffer = new byte[length];
  			OS.memmove(buffer, familyName, length);
-@@ -450,7 +450,7 @@ public FontData[] getFontList (String fa
+@@ -453,7 +453,7 @@
  		    OS.pango_font_family_list_faces(family[0], faces, n_faces);
  		    for (int j=0; j<n_faces[0]; j++) {
  		        OS.memmove(face, faces[0] + j * OS.PTR_SIZEOF, OS.PTR_SIZEOF);
@@ -7924,7 +8103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  		        Font font = Font.gtk_new(this, fontDesc);
  		        FontData data = font.getFontData()[0];
  				if (nFds == fds.length) {
-@@ -665,7 +665,7 @@ protected void init () {
+@@ -682,7 +682,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -7933,7 +8112,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  
  /**	 
   * Invokes platform specific functionality to dispose a GC handle.
-@@ -682,7 +682,7 @@ public abstract int /*long*/ internal_ne
+@@ -699,7 +699,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -7942,7 +8121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  
  /**
   * Returns <code>true</code> if the device has been disposed,
-@@ -723,7 +723,7 @@ public boolean loadFont (String path) {
+@@ -740,7 +740,7 @@
  	return OS.FcConfigAppFontAddFile (0, buffer);
  }
  
@@ -7951,7 +8130,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	if (warningLevel == 0) {
  		if (DEBUG || debug) {
  			new Error ().printStackTrace ();
-@@ -794,7 +794,7 @@ protected void release () {
+@@ -811,7 +811,7 @@
  	shellHandle = 0;
  
  	if (gdkColors != null) {
@@ -7960,7 +8139,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  		for (int i = 0; i < gdkColors.length; i++) {
  			GdkColor color = gdkColors [i];
  			if (color != null) {
-@@ -887,7 +887,7 @@ public void setWarnings (boolean warning
+@@ -904,7 +904,7 @@
  	}
  }
  
@@ -7969,7 +8148,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	Device device = findDevice (xDisplay);
  	if (device != null) {
  		if (device.warningLevel == 0) {
-@@ -905,7 +905,7 @@ static int /*long*/ XErrorProc (int /*lo
+@@ -922,7 +922,7 @@
  	return 0;
  }
  
@@ -7978,10 +8157,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Device.java swt-gtk-3.6.
  	Device device = findDevice (xDisplay);
  	if (device != null) {
  		if (DEBUG || device.debug) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Drawable.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Drawable.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Drawable.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Drawable.java	2011-03-21 11:34:23.235735219 +0000
-@@ -45,7 +45,7 @@ public interface Drawable {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Drawable.java swt-gtk-3.7//org/eclipse/swt/graphics/Drawable.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Drawable.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Drawable.java	2011-06-13 20:53:32.000000000 +0000
+@@ -45,7 +45,7 @@
   * @noreference This method is not intended to be referenced by clients.
   */
   
@@ -7990,7 +8169,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Drawable.java swt-gtk-3.
  
  /**	 
   * Invokes platform specific functionality to dispose a GC handle.
-@@ -62,6 +62,6 @@ public int /*long*/ internal_new_GC (GCD
+@@ -62,6 +62,6 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -7998,10 +8177,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Drawable.java swt-gtk-3.
 +public void internal_dispose_GC (long /*int*/ handle, GCData data);
  
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Font.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Font.java	2011-03-21 11:34:23.285734513 +0000
-@@ -44,7 +44,7 @@ public final class Font extends Resource
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.7//org/eclipse/swt/graphics/Font.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Font.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Font.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,7 +44,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -8010,7 +8189,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.6.2/
  	
  Font(Device device) {
  	super(device);
-@@ -180,7 +180,7 @@ public boolean equals(Object object) {
+@@ -180,7 +180,7 @@
  public FontData[] getFontData() {
  	if (isDisposed()) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  
@@ -8019,7 +8198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.6.2/
  	int length = OS.strlen(family);
  	byte[] buffer = new byte[length];
  	OS.memmove(buffer, family, length);
-@@ -192,7 +192,7 @@ public FontData[] getFontData() {
+@@ -194,7 +194,7 @@
  	if (pangoStyle == OS.PANGO_STYLE_ITALIC) style |= SWT.ITALIC;
  	if (pangoStyle == OS.PANGO_STYLE_OBLIQUE) style |= SWT.ROMAN;
  	if (pangoWeight >= OS.PANGO_WEIGHT_BOLD) style |= SWT.BOLD;
@@ -8028,7 +8207,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.6.2/
  	length = OS.strlen (fontString);
  	buffer = new byte [length + 1];
  	OS.memmove (buffer, fontString, length);	
-@@ -217,7 +217,7 @@ public FontData[] getFontData() {
+@@ -219,7 +219,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -8037,10 +8216,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Font.java swt-gtk-3.6.2/
  	Font font = new Font(device);
  	font.handle = handle;
  	return font;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GCData.java swt-gtk-3.6.2/org/eclipse/swt/graphics/GCData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GCData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/GCData.java	2011-03-21 11:34:23.255734928 +0000
-@@ -34,7 +34,7 @@ public final class GCData {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/GCData.java swt-gtk-3.7//org/eclipse/swt/graphics/GCData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/GCData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/GCData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -34,7 +34,7 @@
  	public Font font;
  	public Pattern foregroundPattern;
  	public Pattern backgroundPattern;
@@ -8049,7 +8228,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GCData.java swt-gtk-3.6.
  	public float lineWidth;
  	public int lineStyle = SWT.LINE_SOLID;
  	public float[] lineDashes;
-@@ -46,12 +46,12 @@ public final class GCData {
+@@ -46,12 +46,12 @@
  	public int alpha = 0xFF;
  	public int interpolation = SWT.DEFAULT;
  
@@ -8067,10 +8246,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GCData.java swt-gtk-3.6.
  	public double cairoXoffset, cairoYoffset;
  	public boolean disposeCairo;
  	public double[] clippingTransform;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/org/eclipse/swt/graphics/GC.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/GC.java	2011-03-21 11:34:23.285734513 +0000
-@@ -69,7 +69,7 @@ public final class GC extends Resource {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.7//org/eclipse/swt/graphics/GC.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/GC.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/GC.java	2011-06-13 20:53:32.000000000 +0000
+@@ -69,7 +69,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -8079,7 +8258,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	
  	Drawable drawable;
  	GCData data;
-@@ -156,7 +156,7 @@ public GC(Drawable drawable, int style)
+@@ -156,7 +156,7 @@
  	if (drawable == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	GCData data = new GCData();
  	data.style = checkStyle(style);
@@ -8088,7 +8267,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	Device device = data.device;
  	if (device == null) device = Device.getDevice();
  	if (device == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-@@ -165,10 +165,10 @@ public GC(Drawable drawable, int style)
+@@ -165,10 +165,10 @@
  	init();
  }
  
@@ -8101,7 +8280,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (layout == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		OS.pango_layout_set_text(layout, buffer, -1);
  		OS.pango_layout_set_font_description(layout, font.handle);
-@@ -194,7 +194,7 @@ static int checkStyle (int style) {
+@@ -194,7 +194,7 @@
  	return style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
  }
  
@@ -8110,7 +8289,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	GC gc = new GC();
  	gc.device = data.device;
  	gc.init(null, data, handle);
-@@ -203,7 +203,7 @@ public static GC gtk_new(int /*long*/ ha
+@@ -203,7 +203,7 @@
  
  public static GC gtk_new(Drawable drawable, GCData data) {
  	GC gc = new GC();
@@ -8119,7 +8298,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	gc.device = data.device;
  	gc.init(drawable, data, gdkGC);
  	return gc;
-@@ -214,7 +214,7 @@ void checkGC (int mask) {
+@@ -214,7 +214,7 @@
  	if ((state & mask) == mask) return;
  	state = (state ^ mask) & mask;	
  	data.state |= mask;
@@ -8128,7 +8307,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if ((state & (BACKGROUND | FOREGROUND)) != 0) {
  			GdkColor color;
-@@ -230,7 +230,7 @@ void checkGC (int mask) {
+@@ -230,7 +230,7 @@
  			}
  			if  (pattern != null) {
  				if ((data.style & SWT.MIRRORED) != 0 && pattern.surface != 0) {
@@ -8137,7 +8316,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  					if (newPattern == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  					Cairo.cairo_pattern_set_extend(newPattern, Cairo.CAIRO_EXTEND_REPEAT);
  					double[] matrix = {-1, 0, 0, 1, 0, 0};
-@@ -390,10 +390,10 @@ void checkGC (int mask) {
+@@ -390,10 +390,10 @@
  	}
  }
  
@@ -8151,7 +8330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	OS.gdk_region_get_rectangles(rgn, rects, nRects);
  	GdkRectangle rect = new GdkRectangle();
  	int[] pointArray = new int[8];
-@@ -420,7 +420,7 @@ int /*long*/ convertRgn(int /*long*/ rgn
+@@ -420,7 +420,7 @@
  		Cairo.cairo_matrix_transform_point(matrix, x, y);
  		pointArray[6] = (int)x[0];
  		pointArray[7] = (int)Math.round(y[0]);
@@ -8160,7 +8339,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		OS.gdk_region_union(newRgn, polyRgn);
  		OS.gdk_region_destroy(polyRgn);
  	}
-@@ -449,7 +449,7 @@ public void copyArea(Image image, int x,
+@@ -449,7 +449,7 @@
  	if (image == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (image.type != SWT.BITMAP || image.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	Rectangle rect = image.getBounds();
@@ -8169,7 +8348,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (gdkGC == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	OS.gdk_gc_set_subwindow(gdkGC, OS.GDK_INCLUDE_INFERIORS);
  	OS.gdk_draw_drawable(image.pixmap, gdkGC, data.drawable, x, y, 0, 0, rect.width, rect.height);
-@@ -497,7 +497,7 @@ public void copyArea(int srcX, int srcY,
+@@ -497,7 +497,7 @@
  	if (width <= 0 || height <= 0) return;
  	int deltaX = destX - srcX, deltaY = destY - srcY;
  	if (deltaX == 0 && deltaY == 0) return;
@@ -8178,7 +8357,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (data.image == null && paint) OS.gdk_gc_set_exposures(handle, true);
  	OS.gdk_draw_drawable(drawable, handle, drawable, srcX, srcY, destX, destY, width, height);
  	if (data.image == null & paint) {
-@@ -537,10 +537,10 @@ public void copyArea(int srcX, int srcY,
+@@ -537,10 +537,10 @@
  }
  
  void createLayout() {
@@ -8191,7 +8370,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (layout == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	data.layout = layout;
  	OS.pango_context_set_language(context, OS.gtk_get_default_language());
-@@ -560,13 +560,13 @@ void disposeLayout() {
+@@ -560,13 +560,13 @@
  
  void destroy() {
  	if (data.disposeCairo) {
@@ -8207,7 +8386,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (clipRgn != 0) OS.gdk_region_destroy(clipRgn);
  	Image image = data.image;
  	if (image != null) {
-@@ -629,7 +629,7 @@ public void drawArc(int x, int y, int wi
+@@ -629,7 +629,7 @@
  		height = -height;
  	}
  	if (width == 0 || height == 0 || arcAngle == 0) return;
@@ -8216,7 +8395,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
  		if (width == height) {
-@@ -680,8 +680,8 @@ public void drawFocus(int x, int y, int
+@@ -680,8 +680,8 @@
  	* are not valid in the default style. The fix is to use a style
  	* from a widget.
  	*/
@@ -8227,7 +8406,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		checkGC(FOREGROUND);
  		int[] lineWidth = new int[1];
-@@ -786,7 +786,7 @@ void drawImage(Image srcImage, int srcX,
+@@ -786,7 +786,7 @@
  			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  		}
   	}
@@ -8236,7 +8415,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (data.alpha != 0) {
  			srcImage.createSurface();
-@@ -808,7 +808,7 @@ void drawImage(Image srcImage, int srcX,
+@@ -808,7 +808,7 @@
  				case SWT.LOW: filter = Cairo.CAIRO_FILTER_FAST; break;
  				case SWT.HIGH: filter = Cairo.CAIRO_FILTER_BEST; break;
  			}
@@ -8245,7 +8424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  			if (pattern == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  			if (srcWidth != destWidth || srcHeight != destHeight) {
  				/*
-@@ -827,8 +827,8 @@ void drawImage(Image srcImage, int srcX,
+@@ -827,8 +827,8 @@
  				* the image that was created or the edges are still faded.
  				*/
  				if (Cairo.cairo_version () >= Cairo.CAIRO_VERSION_ENCODE(1, 4, 0)) {
@@ -8256,7 +8435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  					Cairo.cairo_set_source_surface(cr, srcImage.surface, imgWidth, imgHeight);
  					Cairo.cairo_paint(cr);
  					Cairo.cairo_scale(cr, -1, -1);
-@@ -851,7 +851,7 @@ void drawImage(Image srcImage, int srcX,
+@@ -851,7 +851,7 @@
  					Cairo.cairo_set_source_surface(cr, srcImage.surface, imgWidth, -imgHeight * 3);
  					Cairo.cairo_paint(cr);
  					Cairo.cairo_destroy(cr);
@@ -8265,7 +8444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  					Cairo.cairo_surface_destroy(surface);
  					if (newPattern == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  					Cairo.cairo_pattern_destroy(pattern);
-@@ -891,7 +891,7 @@ void drawImage(Image srcImage, int srcX,
+@@ -891,7 +891,7 @@
  			drawImageXRender(srcImage, srcX, srcY, srcWidth, srcHeight, destX, destY, destWidth, destHeight, simple, imgWidth, imgHeight, 0, -1);
  			return;
  		}
@@ -8274,7 +8453,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (pixbuf != 0) {
  			OS.gdk_pixbuf_render_to_drawable(pixbuf, data.drawable, handle, 0, 0, destX, destY, destWidth, destHeight, OS.GDK_RGB_DITHER_NORMAL, 0, 0);
  			OS.g_object_unref(pixbuf);
-@@ -908,12 +908,12 @@ void drawImageAlpha(Image srcImage, int
+@@ -908,12 +908,12 @@
  		drawImageXRender(srcImage, srcX, srcY, srcWidth, srcHeight, destX, destY, destWidth, destHeight, simple, imgWidth, imgHeight, srcImage.mask, OS.PictStandardA8);
  		return;
  	}
@@ -8290,7 +8469,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	byte[] line = new byte[stride];
  	byte alpha = (byte)srcImage.alpha;
  	byte[] alphaData = srcImage.alphaData;
-@@ -926,7 +926,7 @@ void drawImageAlpha(Image srcImage, int
+@@ -926,7 +926,7 @@
  		OS.memmove(pixels + (y * stride), line, stride);
  	}
  	if (srcWidth != destWidth || srcHeight != destHeight) {
@@ -8299,7 +8478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		OS.g_object_unref(pixbuf);
  		if (scaledPixbuf == 0) return;
  		pixbuf = scaledPixbuf;
-@@ -943,33 +943,33 @@ void drawImageAlpha(Image srcImage, int
+@@ -943,33 +943,33 @@
  	OS.g_object_unref(pixbuf);
  }
  void drawImageMask(Image srcImage, int srcX, int srcY, int srcWidth, int srcHeight, int destX, int destY, int destWidth, int destHeight, boolean simple, int imgWidth, int imgHeight) {
@@ -8343,7 +8522,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  						OS.memmove(maskLine, maskOffset, maskStride);
  						for (int x=0; x<srcWidth; x++) {
  							if (maskLine[x * 3] == 0) {
-@@ -979,10 +979,10 @@ void drawImageMask(Image srcImage, int s
+@@ -979,10 +979,10 @@
  						OS.memmove(offset, line, stride);
  					}
  					OS.g_object_unref(maskPixbuf);
@@ -8357,7 +8536,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  						OS.gdk_pixbuf_render_pixmap_and_mask(scaledPixbuf, colorBuffer, maskBuffer, 128);
  						colorPixmap = colorBuffer[0];
  						maskPixmap = maskBuffer[0];
-@@ -1003,9 +1003,9 @@ void drawImageMask(Image srcImage, int s
+@@ -1003,9 +1003,9 @@
  			int newHeight = srcY + srcHeight;
  			int bytesPerLine = (newWidth + 7) / 8;
  			byte[] maskData = new byte[bytesPerLine * newHeight];
@@ -8369,7 +8548,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  				OS.gdk_region_offset(data.clipRgn, -destX + srcX, -destY + srcY);
  				OS.gdk_gc_set_clip_region(gc, data.clipRgn);
  				OS.gdk_region_offset(data.clipRgn, destX - srcX, destY - srcY);
-@@ -1037,19 +1037,19 @@ void drawImageMask(Image srcImage, int s
+@@ -1037,19 +1037,19 @@
  	/* Destroy the image mask if the there is a GC created on the image */
  	if (srcImage.transparentPixel != -1 && srcImage.memGC != null) srcImage.destroyMask();
  }
@@ -8394,7 +8573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (maskPixmap != 0) {
  		int attribCount = 0;
  		XRenderPictureAttributes attrib = null;
-@@ -1061,10 +1061,10 @@ void drawImageXRender(Image srcImage, in
+@@ -1061,10 +1061,10 @@
  		maskPict = OS.XRenderCreatePicture(xDisplay, OS.gdk_x11_drawable_get_xid(maskPixmap), OS.XRenderFindStandardFormat(xDisplay, maskType), attribCount, attrib);
  		if (maskPict == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	}
@@ -8408,7 +8587,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (srcPict == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	if (srcWidth != destWidth || srcHeight != destHeight) {
  		int[] transform = new int[]{(int)(((float)srcWidth / destWidth) * 65536), 0, 0, 0, (int)(((float)srcHeight / destHeight) * 65536), 0, 0, 0, 65536};
-@@ -1073,7 +1073,7 @@ void drawImageXRender(Image srcImage, in
+@@ -1073,7 +1073,7 @@
  		srcX *= destWidth / (float)srcWidth;
  		srcY *= destHeight / (float)srcHeight;
  	}
@@ -8417,7 +8596,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (data.damageRgn != 0) {
  		if (clipping == 0) {
  			clipping = data.damageRgn;
-@@ -1085,7 +1085,7 @@ void drawImageXRender(Image srcImage, in
+@@ -1085,7 +1085,7 @@
  	}
  	if (clipping != 0) {
  		int[] nRects = new int[1];
@@ -8426,7 +8605,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		OS.gdk_region_get_rectangles(clipping, rects, nRects);
  		GdkRectangle rect = new GdkRectangle();
  		short[] xRects = new short[nRects[0] * 4];
-@@ -1107,12 +1107,12 @@ void drawImageXRender(Image srcImage, in
+@@ -1107,12 +1107,12 @@
  	OS.XRenderFreePicture(xDisplay, srcPict);
  	if (maskPict != 0) OS.XRenderFreePicture(xDisplay, maskPict);
  }
@@ -8443,7 +8622,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	OS.g_object_unref(pixbuf);
  	return scaledPixbuf;
  }
-@@ -1133,7 +1133,7 @@ int /*long*/ scale(int /*long*/ src, int
+@@ -1133,7 +1133,7 @@
  public void drawLine(int x1, int y1, int x2, int y2) {
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	checkGC(DRAW);
@@ -8452,7 +8631,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
  		Cairo.cairo_move_to(cairo, x1 + xOffset, y1 + yOffset);
-@@ -1176,7 +1176,7 @@ public void drawOval(int x, int y, int w
+@@ -1176,7 +1176,7 @@
  		y = y + height;
  		height = -height;
  	}
@@ -8461,7 +8640,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
  		if (width == height) {
-@@ -1223,11 +1223,11 @@ public void drawPath(Path path) {
+@@ -1223,11 +1223,11 @@
  	if (path.handle == 0) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	initCairo();
  	checkGC(DRAW);
@@ -8475,7 +8654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	Cairo.cairo_append_path(cairo, copy);
  	Cairo.cairo_path_destroy(copy);
-@@ -1255,7 +1255,7 @@ public void drawPath(Path path) {
+@@ -1255,7 +1255,7 @@
  public void drawPoint (int x, int y) {
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	checkGC(DRAW);
@@ -8484,7 +8663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		Cairo.cairo_rectangle(cairo, x, y, 1, 1);
  		Cairo.cairo_fill(cairo);
-@@ -1285,7 +1285,7 @@ public void drawPolygon(int[] pointArray
+@@ -1285,7 +1285,7 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (pointArray == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	checkGC(DRAW);
@@ -8493,7 +8672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		drawPolyline(cairo, pointArray, true);
  		Cairo.cairo_stroke(cairo);
-@@ -1315,7 +1315,7 @@ public void drawPolyline(int[] pointArra
+@@ -1315,7 +1315,7 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (pointArray == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	checkGC(DRAW);
@@ -8502,7 +8681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		drawPolyline(cairo, pointArray, false);
  		Cairo.cairo_stroke(cairo);
-@@ -1324,7 +1324,7 @@ public void drawPolyline(int[] pointArra
+@@ -1324,7 +1324,7 @@
  	OS.gdk_draw_lines(data.drawable, handle, pointArray, pointArray.length / 2);
  }
  
@@ -8511,7 +8690,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	int count = pointArray.length / 2;
  	if (count == 0) return;
  	double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
-@@ -1361,7 +1361,7 @@ public void drawRectangle(int x, int y,
+@@ -1361,7 +1361,7 @@
  		y = y + height;
  		height = -height;
  	}
@@ -8520,7 +8699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
  		Cairo.cairo_rectangle(cairo, x + xOffset, y + yOffset, width, height);
-@@ -1431,7 +1431,7 @@ public void drawRoundRectangle(int x, in
+@@ -1431,7 +1431,7 @@
  	}
  	if (naw < 0) naw = 0 - naw;
  	if (nah < 0) nah = 0 - nah;
@@ -8529,7 +8708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		double xOffset = data.cairoXoffset, yOffset = data.cairoYoffset;
  		if (naw == 0 || nah == 0) {
-@@ -1457,7 +1457,7 @@ public void drawRoundRectangle(int x, in
+@@ -1457,7 +1457,7 @@
  	}
  	int naw2 = naw / 2;
  	int nah2 = nah / 2;
@@ -8538,7 +8717,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (nw > naw) {
  		if (nh > nah) {
  			OS.gdk_draw_arc(drawable, handle, 0, nx, ny, naw, nah, 5760, 5760);
-@@ -1617,7 +1617,7 @@ public void drawText (String string, int
+@@ -1617,7 +1617,7 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (string == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (string.length() == 0) return;
@@ -8547,7 +8726,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) {
  			//TODO - honor flags
-@@ -1666,13 +1666,13 @@ public void drawText (String string, int
+@@ -1666,13 +1666,13 @@
  	if (!data.xorMode) {
  		OS.gdk_draw_layout_with_colors(data.drawable, handle, x, y, data.layout, null, background);
  	} else {
@@ -8564,7 +8743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (gdkGC == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		GdkColor black = new GdkColor();
  		OS.gdk_gc_set_foreground(gdkGC, black);
-@@ -1745,7 +1745,7 @@ public void fillArc(int x, int y, int wi
+@@ -1745,7 +1745,7 @@
  		height = -height;
  	}
  	if (width == 0 || height == 0 || arcAngle == 0) return;
@@ -8573,7 +8752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (width == height) {
              if (arcAngle >= 0) {
-@@ -1822,9 +1822,9 @@ public void fillGradientRectangle(int x,
+@@ -1822,9 +1822,9 @@
  		fillRectangle(x, y, width, height);
  		return;
  	}
@@ -8585,7 +8764,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (vertical) {
  			pattern = Cairo.cairo_pattern_create_linear (0.0, 0.0, 0.0, 1.0);
  		} else {
-@@ -1874,7 +1874,7 @@ public void fillOval(int x, int y, int w
+@@ -1874,7 +1874,7 @@
  		y = y + height;
  		height = -height;
  	}
@@ -8594,7 +8773,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (width == height) {
  			Cairo.cairo_arc_negative(cairo, x + width / 2f, y + height / 2f, width / 2f, 0, 2 * (float)Compatibility.PI);
-@@ -1920,8 +1920,8 @@ public void fillPath (Path path) {
+@@ -1920,8 +1920,8 @@
  	if (path.handle == 0) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	initCairo();
  	checkGC(FILL);
@@ -8605,7 +8784,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	Cairo.cairo_append_path(cairo, copy);
  	Cairo.cairo_path_destroy(copy);
-@@ -1951,7 +1951,7 @@ public void fillPolygon(int[] pointArray
+@@ -1951,7 +1951,7 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (pointArray == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	checkGC(FILL);
@@ -8614,7 +8793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		drawPolyline(cairo, pointArray, true);
  		Cairo.cairo_fill(cairo);
-@@ -1986,7 +1986,7 @@ public void fillRectangle(int x, int y,
+@@ -1986,7 +1986,7 @@
  		y = y + height;
  		height = -height;
  	}
@@ -8623,7 +8802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		Cairo.cairo_rectangle(cairo, x, y, width, height);
  		Cairo.cairo_fill(cairo);
-@@ -2052,7 +2052,7 @@ public void fillRoundRectangle(int x, in
+@@ -2052,7 +2052,7 @@
  	}
  	if (naw < 0) naw = 0 - naw;
  	if (nah < 0) nah = 0 - nah;
@@ -8632,7 +8811,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (naw == 0 || nah == 0) {
  			Cairo.cairo_rectangle(cairo, x, y, width, height);
-@@ -2077,7 +2077,7 @@ public void fillRoundRectangle(int x, in
+@@ -2077,7 +2077,7 @@
  	}
  	int naw2 = naw / 2;
  	int nah2 = nah / 2;
@@ -8641,7 +8820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (nw > naw) {
  		if (nh > nah) {
  			OS.gdk_draw_arc(drawable, handle, 1, nx, ny, naw, nah, 5760, 5760);
-@@ -2296,11 +2296,11 @@ public Rectangle getClipping() {
+@@ -2296,11 +2296,11 @@
  		height = h[0];
  	}
  	/* Intersect visible bounds with clipping in device space and then convert then to user space */
@@ -8657,7 +8836,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		GdkRectangle rect = new GdkRectangle();
  		rect.width = width;
  		rect.height = height;
-@@ -2356,10 +2356,10 @@ public void getClipping(Region region) {
+@@ -2356,10 +2356,10 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (region == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (region.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
@@ -8671,7 +8850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (clipRgn == 0) {
  		GdkRectangle rect = new GdkRectangle();
  		if (data.width != -1 && data.height != -1) {
-@@ -2375,7 +2375,7 @@ public void getClipping(Region region) {
+@@ -2375,7 +2375,7 @@
  	} else {
  		/* Convert clipping to device space if needed */
  		if (data.clippingTransform != null) {
@@ -8680,7 +8859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  			OS.gdk_region_union(clipping, rgn);
  			OS.gdk_region_destroy(rgn);
  		} else {
-@@ -2390,7 +2390,7 @@ public void getClipping(Region region) {
+@@ -2390,7 +2390,7 @@
  		double[] matrix = new double[6];
  		Cairo.cairo_get_matrix(cairo, matrix);
  		Cairo.cairo_matrix_invert(matrix);
@@ -8689,7 +8868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		OS.gdk_region_subtract(clipping, clipping);
  		OS.gdk_region_union(clipping, rgn);
  		OS.gdk_region_destroy(rgn);
-@@ -2411,7 +2411,7 @@ public void getClipping(Region region) {
+@@ -2411,7 +2411,7 @@
   */
  public int getFillRule() {
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
@@ -8698,7 +8877,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo == 0) return SWT.FILL_EVEN_ODD;
  	return Cairo.cairo_get_fill_rule(cairo) == Cairo.CAIRO_FILL_RULE_WINDING ? SWT.FILL_WINDING : SWT.FILL_EVEN_ODD;
  }
-@@ -2447,9 +2447,9 @@ public FontMetrics getFontMetrics() {
+@@ -2447,9 +2447,9 @@
  	if (data.context == 0) createLayout();
  	checkGC(FONT);
  	Font font = data.font;
@@ -8711,7 +8890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	FontMetrics fm = new FontMetrics();
  	fm.ascent = OS.PANGO_PIXELS(OS.pango_font_metrics_get_ascent(metrics));
  	fm.descent = OS.PANGO_PIXELS(OS.pango_font_metrics_get_descent(metrics));
-@@ -2694,13 +2694,13 @@ public int getTextAntialias() {
+@@ -2694,13 +2694,13 @@
      if (data.cairo == 0) return SWT.DEFAULT;
      int antialias = Cairo.CAIRO_ANTIALIAS_DEFAULT;
      if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) {
@@ -8727,7 +8906,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
      		if (options != 0) antialias = Cairo.cairo_font_options_get_antialias(options);
      	}
      }
-@@ -2735,7 +2735,7 @@ public void getTransform(Transform trans
+@@ -2735,7 +2735,7 @@
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (transform == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (transform.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
@@ -8736,7 +8915,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		Cairo.cairo_get_matrix(cairo, transform.handle);
  		double[] identity = identity();
-@@ -2795,7 +2795,7 @@ double[] identity() {
+@@ -2795,7 +2795,7 @@
  	return identity;
  }
  
@@ -8745,8 +8924,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (data.foreground != null) data.state &= ~FOREGROUND;
  	if (data.background != null) data.state &= ~(BACKGROUND | BACKGROUND_BG);
  	if (data.font != null) data.state &= ~FONT;
-@@ -2815,27 +2815,27 @@ void init(Drawable drawable, GCData data
- 	handle = gdkGC;
+@@ -2818,27 +2818,27 @@
+ 	}
  	if ((data.style & SWT.MIRRORED) != 0) {
  	  initCairo();
 -	  int /*long*/ cairo = data.cairo;
@@ -8780,7 +8959,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  				OS.gdk_window_get_internal_paint_info(drawable, real_drawable, x, y);
  				xDrawable = OS.gdk_x11_drawable_get_xid(real_drawable[0]);
  				translateX = -x[0];
-@@ -2845,7 +2845,7 @@ void initCairo() {
+@@ -2848,7 +2848,7 @@
  		int[] w = new int[1], h = new int[1];
  		OS.gdk_drawable_get_size(drawable, w, h);
  		int width = w[0], height = h[0];
@@ -8789,7 +8968,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (surface == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		Cairo.cairo_surface_set_device_offset(surface, translateX, translateY);
  		data.cairo = cairo = Cairo.cairo_create(surface);
-@@ -2969,7 +2969,7 @@ public void setAdvanced(boolean advanced
+@@ -2972,7 +2972,7 @@
  		} catch (SWTException e) {}
  	} else {
  		if (!data.disposeCairo) return;
@@ -8798,7 +8977,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (cairo != 0) Cairo.cairo_destroy(cairo);
  		data.cairo = 0;
  		data.interpolation = SWT.DEFAULT;
-@@ -3049,7 +3049,7 @@ public void setAntialias(int antialias)
+@@ -3052,7 +3052,7 @@
  			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	}
      initCairo();
@@ -8807,7 +8986,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
      Cairo.cairo_set_antialias(cairo, mode);
  }
  
-@@ -3111,12 +3111,12 @@ public void setBackgroundPattern(Pattern
+@@ -3114,12 +3114,12 @@
  	data.state &= ~BACKGROUND;
  }
  
@@ -8823,7 +9002,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	int length = OS.strlen(family);
  	byte[] buffer = new byte[length + 1];
  	OS.memmove(buffer, family, length);
-@@ -3133,12 +3133,12 @@ static void setCairoFont(int /*long*/ ca
+@@ -3136,12 +3136,12 @@
  	Cairo.cairo_set_font_size(cairo, height);
  }
  
@@ -8838,7 +9017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		OS.gdk_region_get_rectangles(rgn, rects, nRects);
  		GdkRectangle rect = new GdkRectangle();
  		for (int i=0; i<nRects[0]; i++) {
-@@ -3149,7 +3149,7 @@ static void setCairoRegion(int /*long*/
+@@ -3152,7 +3152,7 @@
  	}
  }
  
@@ -8847,7 +9026,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	GdkColor color = c.handle;
  	double aa = (alpha & 0xFF) / (double)0xFF;
  	double red = ((color.red & 0xFFFF) / (double)0xFFFF);
-@@ -3158,8 +3158,8 @@ static void setCairoPatternColor(int /*l
+@@ -3161,8 +3161,8 @@
  	Cairo.cairo_pattern_add_color_stop_rgba(pattern, offset, red, green, blue, aa);
  }
  
@@ -8858,7 +9037,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	Cairo.cairo_reset_clip(cairo);
  	if (damageRgn != 0) {
  		double[] matrix = new double[6];
-@@ -3177,8 +3177,8 @@ void setCairoClip(int /*long*/ damageRgn
+@@ -3180,8 +3180,8 @@
  	}
  }
  
@@ -8869,7 +9048,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (clipRgn == 0) {
  		if (data.clipRgn != 0) {
  			OS.gdk_region_destroy(data.clipRgn);
-@@ -3188,7 +3188,7 @@ void setClipping(int /*long*/ clipRgn) {
+@@ -3191,7 +3191,7 @@
  			data.clippingTransform = null;
  			setCairoClip(data.damageRgn, 0);
  		} else {
@@ -8878,7 +9057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  			OS.gdk_gc_set_clip_region(handle, clipping);
  		}
  	} else {
-@@ -3200,7 +3200,7 @@ void setClipping(int /*long*/ clipRgn) {
+@@ -3203,7 +3203,7 @@
  			Cairo.cairo_get_matrix(cairo, data.clippingTransform);
  			setCairoClip(data.damageRgn, clipRgn);
  		} else {
@@ -8887,7 +9066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  			if (data.damageRgn != 0) {
  				clipping = OS.gdk_region_new();
  				OS.gdk_region_union(clipping, clipRgn);
-@@ -3241,7 +3241,7 @@ public void setClipping(int x, int y, in
+@@ -3244,7 +3244,7 @@
  	rect.y = y;
  	rect.width = width;
  	rect.height = height;
@@ -8896,7 +9075,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	OS.gdk_region_union_with_rect(clipRgn, rect);
  	setClipping(clipRgn);
  	OS.gdk_region_destroy(clipRgn);
-@@ -3279,8 +3279,8 @@ public void setClipping(Path path) {
+@@ -3282,8 +3282,8 @@
  	setClipping(0);
  	if (path != null) {
  		initCairo();
@@ -8907,7 +9086,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		Cairo.cairo_append_path(cairo, copy);
  		Cairo.cairo_path_destroy(copy);
-@@ -3383,7 +3383,7 @@ public void setFillRule(int rule) {
+@@ -3386,7 +3386,7 @@
  	}
  	//TODO - need fill rule in X, GDK has no API
  	initCairo();
@@ -8916,7 +9095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		Cairo.cairo_set_fill_rule(cairo, cairo_mode);
  	}
-@@ -3774,7 +3774,7 @@ void setString(String string, int flags)
+@@ -3777,7 +3777,7 @@
  	}
  	byte[] buffer;
  	int mnemonic, length = string.length ();
@@ -8925,7 +9104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	char[] text = new char[length];
  	string.getChars(0, length, text, 0);	
  	if ((flags & SWT.DRAW_MNEMONIC) != 0 && (mnemonic = fixMnemonic(text)) != -1) {
-@@ -3787,8 +3787,8 @@ void setString(String string, int flags)
+@@ -3790,8 +3790,8 @@
  		buffer = new byte[buffer1.length + buffer2.length];
  		System.arraycopy(buffer1, 0, buffer, 0, buffer1.length);
  		System.arraycopy(buffer2, 0, buffer, buffer1.length, buffer2.length);
@@ -8936,7 +9115,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  		PangoAttribute attribute = new PangoAttribute();
  		OS.memmove(attribute, attr, PangoAttribute.sizeof);
  		attribute.start_index = buffer1.length;
-@@ -3850,7 +3850,7 @@ public void setTextAntialias(int antiali
+@@ -3853,7 +3853,7 @@
  			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	}
      initCairo();
@@ -8945,7 +9124,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
      Cairo.cairo_font_options_set_antialias(options, mode);
      if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) {
      	Cairo.cairo_set_font_options(data.cairo, options);
-@@ -3892,7 +3892,7 @@ public void setTransform(Transform trans
+@@ -3895,7 +3895,7 @@
  	if (transform != null && transform.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	if (data.cairo == 0 && transform == null) return;
  	initCairo();
@@ -8954,7 +9133,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	double[] identity = identity();
  	if (transform != null) {
  		Cairo.cairo_matrix_multiply(identity, transform.handle, identity);
-@@ -4008,7 +4008,7 @@ public Point textExtent(String string) {
+@@ -4011,7 +4011,7 @@
  public Point textExtent(String string, int flags) {
  	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (string == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
@@ -8963,10 +9142,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/GC.java swt-gtk-3.6.2/or
  	if (cairo != 0) {
  		if (OS.GTK_VERSION < OS.VERSION(2, 8, 0)) {
  			//TODO - honor flags
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Image.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Image.java	2011-03-21 11:34:23.235735219 +0000
-@@ -96,7 +96,7 @@ public final class Image extends Resourc
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.7//org/eclipse/swt/graphics/Image.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Image.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Image.java	2011-06-13 20:53:32.000000000 +0000
+@@ -96,7 +96,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -8975,7 +9154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	
  	/**
  	 * The handle to the OS mask resource.
-@@ -110,9 +110,9 @@ public final class Image extends Resourc
+@@ -110,9 +110,9 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -8987,7 +9166,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	
  	/**
  	 * specifies the transparent pixel
-@@ -245,9 +245,9 @@ public Image(Device device, Image srcIma
+@@ -245,9 +245,9 @@
  	if ((srcImage.type == SWT.ICON && srcImage.mask != 0) || srcImage.transparentPixel != -1) {
  		/* Generate the mask if necessary. */
  		if (srcImage.transparentPixel != -1) srcImage.createMask();
@@ -8999,7 +9178,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		if (gdkGC == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		OS.gdk_draw_drawable(mask, gdkGC, srcImage.mask, 0, 0, 0, 0, width, height);
  		OS.g_object_unref(gdkGC);
-@@ -266,9 +266,9 @@ public Image(Device device, Image srcIma
+@@ -266,9 +266,9 @@
  	createAlphaMask(width, height);
  
  	/* Create the new pixmap */
@@ -9011,7 +9190,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	if (gdkGC == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	this.pixmap = pixmap;
  	
-@@ -278,12 +278,12 @@ public Image(Device device, Image srcIma
+@@ -278,12 +278,12 @@
  	} else {
  		
  		/* Retrieve the source pixmap data */
@@ -9027,7 +9206,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	
  		/* Apply transformation */
  		switch (flag) {
-@@ -545,7 +545,7 @@ void initNative(String filename) {
+@@ -545,7 +545,7 @@
  		char [] chars = new char [length];
  		filename.getChars (0, length, chars, 0);
  		byte [] buffer = Converter.wcsToMbcs(null, chars, true);
@@ -9036,7 +9215,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		if (pixbuf != 0) {
  			boolean hasAlpha = OS.gdk_pixbuf_get_has_alpha(pixbuf);
  			if (hasAlpha) {
-@@ -559,7 +559,7 @@ void initNative(String filename) {
+@@ -559,7 +559,7 @@
  				int width = OS.gdk_pixbuf_get_width(pixbuf);
  				int height = OS.gdk_pixbuf_get_height(pixbuf);
  				int stride = OS.gdk_pixbuf_get_rowstride(pixbuf);
@@ -9045,7 +9224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  				byte[] line = new byte[stride];
  				alphaData = new byte[width * height];
  				for (int y = 0; y < height; y++) {
-@@ -572,7 +572,7 @@ void initNative(String filename) {
+@@ -572,7 +572,7 @@
  				}
  				createAlphaMask(width, height);
  			}
@@ -9054,7 +9233,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			OS.gdk_pixbuf_render_pixmap_and_mask(pixbuf, pixmap_return, null, 0);
  			this.type = SWT.BITMAP;
  			this.pixmap = pixmap_return[0];
-@@ -586,14 +586,14 @@ void createAlphaMask (int width, int hei
+@@ -586,14 +586,14 @@
  	if (device.useXRender && (alpha != -1 || alphaData != null)) {
  		mask = OS.gdk_pixmap_new(0, alpha != -1 ? 1 : width, alpha != -1 ? 1 : height, 8);
  		if (mask == 0) SWT.error(SWT.ERROR_NO_HANDLES);
@@ -9071,7 +9250,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			if (imagePtr == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  			GdkImage gdkImage = new GdkImage();
  			OS.memmove(gdkImage, imagePtr);
-@@ -622,7 +622,7 @@ void createMask() {
+@@ -622,7 +622,7 @@
  	if (mask == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  }
  
@@ -9080,7 +9259,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	ImageData mask = image.getTransparencyMask();
  	byte[] data = mask.data;
  	byte[] maskData = copy ? new byte[data.length] : data;
-@@ -644,14 +644,14 @@ void createSurface() {
+@@ -644,14 +644,14 @@
  	OS.gdk_drawable_get_size(pixmap, w, h);
  	int width = w[0], height = h[0];
  	if (mask != 0 || alpha != -1 || alphaData != null) {
@@ -9099,7 +9278,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		OS.memmove(ptr, new int[]{1}, 4);
  		OS.memmove(line, ptr, 1);
  		OS.free(ptr);
-@@ -663,13 +663,13 @@ void createSurface() {
+@@ -663,13 +663,13 @@
  			oa = 3; or = 2; og = 1; ob = 0;
  		}
  		if (mask != 0 && OS.gdk_drawable_get_depth(mask) == 1) {
@@ -9116,7 +9295,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			for (int y=0; y<height; y++) {
  				OS.memmove(line, offset, stride);
  				OS.memmove(maskLine, maskOffset, maskStride);
-@@ -692,7 +692,7 @@ void createSurface() {
+@@ -692,7 +692,7 @@
  			}
  			OS.g_object_unref(maskPixbuf);
  		} else if (alpha != -1) {
@@ -9125,7 +9304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			for (int y=0; y<height; y++) {
  				OS.memmove(line, offset, stride);
  				for (int x=0, offset1=0; x<width; x++, offset1 += 4) {
-@@ -712,7 +712,7 @@ void createSurface() {
+@@ -712,7 +712,7 @@
  				offset += stride;
  			}
  		} else if (alphaData != null) {
@@ -9134,7 +9313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			for (int y = 0; y < h [0]; y++) {
  				OS.memmove (line, offset, stride);
  				for (int x=0, offset1=0; x<width; x++, offset1 += 4) {
-@@ -733,7 +733,7 @@ void createSurface() {
+@@ -733,7 +733,7 @@
  				offset += stride;
  			}
  		} else {
@@ -9143,7 +9322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  			for (int y = 0; y < h [0]; y++) {
  				OS.memmove (line, offset, stride);
  				for (int x=0, offset1=0; x<width; x++, offset1 += 4) {
-@@ -754,9 +754,9 @@ void createSurface() {
+@@ -754,9 +754,9 @@
  		surface = Cairo.cairo_image_surface_create_for_data(surfaceData, Cairo.CAIRO_FORMAT_ARGB32, width, height, stride);
  		OS.g_object_unref(pixbuf);
  	} else {
@@ -9156,7 +9335,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		surface = Cairo.cairo_xlib_surface_create(xDisplay, xDrawable, xVisual, width, height);
  	}
  	/* Destroy the image mask if the there is a GC created on the image */
-@@ -866,12 +866,12 @@ public ImageData getImageData() {
+@@ -866,12 +866,12 @@
  	int[] w = new int[1], h = new int[1];
   	OS.gdk_drawable_get_size(pixmap, w, h);
   	int width = w[0], height = h[0]; 	
@@ -9172,7 +9351,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	byte[] srcData = new byte[stride * height];
  	OS.memmove(srcData, pixels, srcData.length);
  	OS.g_object_unref(pixbuf);
-@@ -882,7 +882,7 @@ public ImageData getImageData() {
+@@ -882,7 +882,7 @@
  
  	if (transparentPixel == -1 && type == SWT.ICON && mask != 0) {
  		/* Get the icon mask data */
@@ -9181,7 +9360,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		if (gdkImagePtr == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		GdkImage gdkImage = new GdkImage();
  		OS.memmove(gdkImage, gdkImagePtr);
-@@ -934,7 +934,7 @@ public ImageData getImageData() {
+@@ -934,7 +934,7 @@
   *
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -9190,7 +9369,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	Image image = new Image(device);
  	image.type = type;
  	image.pixmap = pixmap;
-@@ -970,9 +970,9 @@ void init(int width, int height) {
+@@ -970,9 +970,9 @@
  	white.red = (short)0xFFFF;
  	white.green = (short)0xFFFF;
  	white.blue = (short)0xFFFF;
@@ -9202,7 +9381,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	OS.gdk_gc_set_foreground(gdkGC, white);
  	OS.gdk_draw_rectangle(pixmap, gdkGC, 1, 0, 0, width, height);
  	OS.g_object_unref(gdkGC);
-@@ -987,10 +987,10 @@ void init(ImageData image) {
+@@ -987,10 +987,10 @@
  	if (!(((image.depth == 1 || image.depth == 2 || image.depth == 4 || image.depth == 8) && !palette.isDirect) ||
  		((image.depth == 8) || (image.depth == 16 || image.depth == 24 || image.depth == 32) && palette.isDirect)))
  			SWT.error (SWT.ERROR_UNSUPPORTED_DEPTH);
@@ -9215,7 +9394,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	byte[] buffer = image.data;
  	if (!palette.isDirect || image.depth != 24 || stride != image.bytesPerLine || palette.redMask != 0xFF0000 || palette.greenMask != 0xFF00 || palette.blueMask != 0xFF) {
  		buffer = new byte[stride * height];
-@@ -1021,9 +1021,9 @@ void init(ImageData image) {
+@@ -1021,9 +1021,9 @@
  		}
  	}
  	OS.memmove(data, buffer, stride * height);
@@ -9227,7 +9406,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	if (gdkGC == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	OS.gdk_pixbuf_render_to_drawable(pixbuf, pixmap, gdkGC, 0, 0, 0, 0, width, height, OS.GDK_RGB_DITHER_NORMAL, 0, 0);
  	OS.g_object_unref(gdkGC);
-@@ -1044,7 +1044,7 @@ void init(ImageData image) {
+@@ -1044,7 +1044,7 @@
  				transparentPixel = rgb.red << 16 | rgb.green << 8 | rgb.blue;
  			}
  		}
@@ -9236,7 +9415,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  		if (mask == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		this.mask = mask;
  		if (isIcon) {
-@@ -1080,12 +1080,12 @@ void init(ImageData image) {
+@@ -1080,12 +1080,12 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -9251,7 +9430,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	if (data != null) {
  		int mask = SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
  		if ((data.style & mask) == 0) {
-@@ -1120,7 +1120,7 @@ public int /*long*/ internal_new_GC (GCD
+@@ -1120,7 +1120,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -9260,10 +9439,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Image.java swt-gtk-3.6.2
  	OS.g_object_unref(gdkGC);
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Path.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Path.java	2011-03-21 11:34:23.285734513 +0000
-@@ -49,7 +49,7 @@ public class Path extends Resource {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.7//org/eclipse/swt/graphics/Path.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Path.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Path.java	2011-06-13 20:53:32.000000000 +0000
+@@ -49,7 +49,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -9272,7 +9451,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	
  	boolean moved, closed = true;
  
-@@ -78,7 +78,7 @@ public class Path extends Resource {
+@@ -78,7 +78,7 @@
  public Path (Device device) {
  	super(device);
  	this.device.checkCairo();
@@ -9281,7 +9460,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	if (surface == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	handle = Cairo.cairo_create(surface);
  	Cairo.cairo_surface_destroy(surface);
-@@ -121,12 +121,12 @@ public Path (Device device, Path path, f
+@@ -121,12 +121,12 @@
  	super(device);
  	if (path == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (path.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
@@ -9296,7 +9475,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	flatness = Math.max(0, flatness);
  	if (flatness == 0) {
  		copy = Cairo.cairo_copy_path(path.handle);		
-@@ -251,7 +251,7 @@ public void addPath(Path path) {
+@@ -251,7 +251,7 @@
  	if (path == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (path.isDisposed()) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	moved = false;
@@ -9305,7 +9484,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	Cairo.cairo_append_path(handle, copy);
  	Cairo.cairo_path_destroy(copy);
-@@ -350,8 +350,8 @@ public boolean contains(float x, float y
+@@ -350,8 +350,8 @@
  	gc.initCairo();
  	gc.checkGC(GC.LINE_CAP | GC.LINE_JOIN | GC.LINE_STYLE | GC.LINE_WIDTH);
  	boolean result = false;
@@ -9316,7 +9495,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	Cairo.cairo_append_path(cairo, copy);
  	Cairo.cairo_path_destroy(copy);
-@@ -409,7 +409,7 @@ public void getBounds(float[] bounds) {
+@@ -409,7 +409,7 @@
  	if (isDisposed()) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
  	if (bounds == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
  	if (bounds.length < 4) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
@@ -9325,7 +9504,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	cairo_path_t path = new cairo_path_t();
  	Cairo.memmove(path, copy, cairo_path_t.sizeof);
-@@ -421,7 +421,7 @@ public void getBounds(float[] bounds) {
+@@ -421,7 +421,7 @@
  		double[] points = new double[6]; 
  		cairo_path_data_t data = new cairo_path_data_t();
  		while (i < path.num_data) {
@@ -9334,7 +9513,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  			Cairo.memmove(data, offset, cairo_path_data_t.sizeof);
  			switch (data.type) {
  				case Cairo.CAIRO_PATH_MOVE_TO:
-@@ -502,7 +502,7 @@ public void getCurrentPoint(float[] poin
+@@ -502,7 +502,7 @@
   */
  public PathData getPathData() {
  	if (isDisposed()) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
@@ -9343,7 +9522,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  	if (copy == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	cairo_path_t path = new cairo_path_t();
  	Cairo.memmove(path, copy, cairo_path_t.sizeof);
-@@ -514,7 +514,7 @@ public PathData getPathData() {
+@@ -514,7 +514,7 @@
  		double[] points = new double[6]; 
  		cairo_path_data_t data = new cairo_path_data_t();
  		while (i < path.num_data) {
@@ -9352,10 +9531,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Path.java swt-gtk-3.6.2/
  			Cairo.memmove(data, offset, cairo_path_data_t.sizeof);
  			switch (data.type) {
  				case Cairo.CAIRO_PATH_MOVE_TO:
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Pattern.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Pattern.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Pattern.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Pattern.java	2011-03-21 11:34:23.285734513 +0000
-@@ -46,9 +46,9 @@ public class Pattern extends Resource {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Pattern.java swt-gtk-3.7//org/eclipse/swt/graphics/Pattern.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Pattern.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Pattern.java	2011-06-13 20:53:32.000000000 +0000
+@@ -46,9 +46,9 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -9367,10 +9546,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Pattern.java swt-gtk-3.6
  
  /**
   * Constructs a new Pattern given an image. Drawing with the resulting
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.2/org/eclipse/swt/graphics/Region.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/Region.java	2011-03-21 11:34:23.265734784 +0000
-@@ -40,7 +40,7 @@ public final class Region extends Resour
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.7//org/eclipse/swt/graphics/Region.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/Region.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/Region.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,7 +40,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -9379,7 +9558,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  
  /**
   * Constructs a new empty region.
-@@ -79,7 +79,7 @@ public Region(Device device) {
+@@ -79,7 +79,7 @@
  	init();
  }
  
@@ -9388,7 +9567,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	super(device);
  	this.handle = handle;
  }
-@@ -109,7 +109,7 @@ public void add (int[] pointArray) {
+@@ -109,7 +109,7 @@
  	* with enough points for a polygon.
  	*/
  	if (pointArray.length < 6) return;
@@ -9397,7 +9576,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	OS.gdk_region_union(handle, polyRgn);
  	OS.gdk_region_destroy(polyRgn);
  }
-@@ -265,7 +265,7 @@ public Rectangle getBounds() {
+@@ -265,7 +265,7 @@
  	return new Rectangle(gdkRect.x, gdkRect.y, gdkRect.width, gdkRect.height);
  }
  
@@ -9406,7 +9585,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	return new Region(device, handle);
  }
  
-@@ -331,7 +331,7 @@ public void intersect(int x, int y, int
+@@ -331,7 +331,7 @@
  	gdkRect.y = y;
  	gdkRect.width = width;
  	gdkRect.height = height;
@@ -9415,7 +9594,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	OS.gdk_region_intersect(handle, rectRgn);
  	OS.gdk_region_destroy(rectRgn);
  }
-@@ -462,7 +462,7 @@ public void subtract (int[] pointArray)
+@@ -462,7 +462,7 @@
  	* with enough points for a polygon.
  	*/
  	if (pointArray.length < 6) return;
@@ -9424,7 +9603,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	OS.gdk_region_subtract(handle, polyRgn);
  	OS.gdk_region_destroy(polyRgn);
  }
-@@ -515,7 +515,7 @@ public void subtract(int x, int y, int w
+@@ -515,7 +515,7 @@
  	gdkRect.y = y;
  	gdkRect.width = width;
  	gdkRect.height = height;
@@ -9433,10 +9612,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/Region.java swt-gtk-3.6.
  	OS.gdk_region_subtract(handle, rectRgn);
  	OS.gdk_region_destroy(rectRgn);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-3.6.2/org/eclipse/swt/graphics/TextLayout.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/graphics/TextLayout.java	2011-03-21 11:34:23.235735219 +0000
-@@ -54,7 +54,7 @@ public final class TextLayout extends Re
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-3.7//org/eclipse/swt/graphics/TextLayout.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/graphics/TextLayout.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/graphics/TextLayout.java	2011-06-13 20:53:32.000000000 +0000
+@@ -54,7 +54,7 @@
  	int[] tabs;
  	StyleItem[] styles;
  	int stylesCount;
@@ -9445,7 +9624,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	int[] invalidOffsets;
  	static final char LTR_MARK = '\u200E', RTL_MARK = '\u200F', ZWS = '\u200B', ZWNBS = '\uFEFF';
  
-@@ -107,7 +107,7 @@ void computeRuns () {
+@@ -107,7 +107,7 @@
  	byte[] buffer = Converter.wcsToMbcs(null, segmentsText, false);
  	OS.pango_layout_set_text (layout, buffer, buffer.length);
  	if (stylesCount == 2 && styles[0].style == null && ascent == -1 && descent == -1 && segments == null) return;
@@ -9454,7 +9633,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	attrList = OS.pango_attr_list_new();	
  	PangoAttribute attribute = new PangoAttribute();
  	char[] chars = null;
-@@ -125,12 +125,12 @@ void computeRuns () {
+@@ -125,12 +125,12 @@
  		int oldPos = 0, lineIndex = 0;
  		PangoLayoutLine line = new PangoLayoutLine();
  		while (lineIndex < lineCount) {
@@ -9469,7 +9648,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = bytePos + offset;
  			attribute.end_index = bytePos + offset + 3;
-@@ -190,7 +190,7 @@ void computeRuns () {
+@@ -190,7 +190,7 @@
  		byteEnd = Math.min(byteEnd, strlen);
  		Font font = style.font;
  		if (font != null && !font.isDisposed() && !defaultFont.equals(font)) {
@@ -9478,7 +9657,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -214,7 +214,7 @@ void computeRuns () {
+@@ -214,7 +214,7 @@
  					break;
  				case SWT.UNDERLINE_LINK: {
  					if (style.foreground == null) {
@@ -9487,7 +9666,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  						OS.memmove (attribute, attr, PangoAttribute.sizeof);
  						attribute.start_index = byteStart;
  						attribute.end_index = byteEnd;
-@@ -228,7 +228,7 @@ void computeRuns () {
+@@ -228,7 +228,7 @@
  				}
  			}
  			if (underlineStyle != OS.PANGO_UNDERLINE_NONE && style.underlineColor == null) {
@@ -9496,7 +9675,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				OS.memmove(attribute, attr, PangoAttribute.sizeof);
  				attribute.start_index = byteStart;
  				attribute.end_index = byteEnd;
-@@ -237,7 +237,7 @@ void computeRuns () {
+@@ -237,7 +237,7 @@
  			}
  		}
  		if (style.strikeout && style.strikeoutColor == null) {
@@ -9505,7 +9684,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove(attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -247,7 +247,7 @@ void computeRuns () {
+@@ -247,7 +247,7 @@
  		Color foreground = style.foreground;
  		if (foreground != null && !foreground.isDisposed()) {
  			GdkColor fg = foreground.handle;
@@ -9514,7 +9693,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -257,7 +257,7 @@ void computeRuns () {
+@@ -257,7 +257,7 @@
  		Color background = style.background;
  		if (background != null && !background.isDisposed()) {
  			GdkColor bg = background.handle;
@@ -9523,7 +9702,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -270,7 +270,7 @@ void computeRuns () {
+@@ -270,7 +270,7 @@
  			rect.y =  -(metrics.ascent * OS.PANGO_SCALE);
  			rect.height = (metrics.ascent + metrics.descent) * OS.PANGO_SCALE;
  			rect.width = metrics.width * OS.PANGO_SCALE;
@@ -9532,7 +9711,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -279,7 +279,7 @@ void computeRuns () {
+@@ -279,7 +279,7 @@
  		}
  		int rise = style.rise;
  		if (rise != 0) {
@@ -9541,13 +9720,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  			OS.memmove (attribute, attr, PangoAttribute.sizeof);
  			attribute.start_index = byteStart;
  			attribute.end_index = byteEnd;
-@@ -407,15 +407,15 @@ public void draw(GC gc, int x, int y, in
+@@ -407,15 +407,15 @@
  	x += Math.min (indent, wrapIndent);
  	boolean hasSelection = selectionStart <= selectionEnd && selectionStart != -1 && selectionEnd != -1;
  	GCData data = gc.data;
 -	int /*long*/ cairo = data.cairo;
 +	long /*int*/ cairo = data.cairo;
- 	if (flags != 0 && (hasSelection || (flags & SWT.LAST_LINE_SELECTION) != 0)) {
+ 	if ((flags & (SWT.FULL_SELECTION | SWT.DELIMITER_SELECTION)) != 0 && (hasSelection || (flags & SWT.LAST_LINE_SELECTION) != 0)) {
 -		int /*long*/[] attrs = new int /*long*/[1];
 +		long /*int*/[] attrs = new long /*int*/[1];
  		int[] nAttrs = new int[1];
@@ -9561,7 +9740,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  		if (selectionBackground == null) selectionBackground = device.getSystemColor(SWT.COLOR_LIST_SELECTION);
  		if (cairo != 0 && OS.GTK_VERSION >= OS.VERSION(2, 8, 0)) {
  			Cairo.cairo_save(cairo);
-@@ -502,7 +502,7 @@ public void draw(GC gc, int x, int y, in
+@@ -502,7 +502,7 @@
  		boolean fullSelection = selectionStart == 0 && selectionEnd == length - 1;
  		if (fullSelection) {
  			if (cairo != 0 && OS.GTK_VERSION >= OS.VERSION(2, 8, 0)) {
@@ -9570,16 +9749,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				if ((data.style & SWT.MIRRORED) != 0) {
  					Cairo.cairo_save(cairo);
  					Cairo.cairo_scale(cairo, -1,  1);
-@@ -517,7 +517,7 @@ public void draw(GC gc, int x, int y, in
+@@ -517,7 +517,7 @@
  				drawBorder(gc, x, y, selectionForeground.handle);
  			}
  		} else {
 -			int /*long*/ ptr = OS.pango_layout_get_text(layout);
 +			long /*int*/ ptr = OS.pango_layout_get_text(layout);
- 			int byteSelStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, selectionStart) - ptr);
- 			int byteSelEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, selectionEnd + 1) - ptr);
+ 			int byteSelStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, selectionStart) - ptr);
+ 			int byteSelEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, selectionEnd + 1) - ptr);
  			int strlen = OS.strlen(ptr);
-@@ -539,7 +539,7 @@ public void draw(GC gc, int x, int y, in
+@@ -539,7 +539,7 @@
  				OS.gdk_draw_layout(data.drawable, gc.handle, x, y, layout);
  				drawBorder(gc, x, y, null);
  				int[] ranges = new int[]{byteSelStart, byteSelEnd};
@@ -9588,7 +9767,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				if (rgn != 0) {
  					OS.gdk_gc_set_clip_region(gc.handle, rgn);
  					OS.gdk_region_destroy(rgn);
-@@ -555,7 +555,7 @@ public void draw(GC gc, int x, int y, in
+@@ -555,7 +555,7 @@
  
  void drawWithCairo(GC gc, int x, int y, int start, int end, boolean fullSelection, GdkColor fg, GdkColor bg) {
  	GCData data = gc.data;
@@ -9597,7 +9776,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	Cairo.cairo_save(cairo);
  	if (!fullSelection) {
  		Cairo.cairo_move_to(cairo, x, y);
-@@ -563,7 +563,7 @@ void drawWithCairo(GC gc, int x, int y,
+@@ -563,7 +563,7 @@
  		drawBorder(gc, x, y, null);
  	}
  	int[] ranges = new int[]{start, end};
@@ -9606,7 +9785,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (rgn != 0) {
  		OS.gdk_cairo_region(cairo, rgn);
  		Cairo.cairo_clip(cairo);
-@@ -580,9 +580,9 @@ void drawWithCairo(GC gc, int x, int y,
+@@ -580,9 +580,9 @@
  
  void drawBorder(GC gc, int x, int y, GdkColor selectionColor) {
  	GCData data = gc.data;
@@ -9619,9 +9798,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	GdkGCValues gcValues = null;
  	if (cairo != 0 && OS.GTK_VERSION >= OS.VERSION(2, 8, 0)) {
  		Cairo.cairo_save(cairo);
-@@ -602,10 +602,10 @@ void drawBorder(GC gc, int x, int y, Gdk
- 			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
- 			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+@@ -602,10 +602,10 @@
+ 			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+ 			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
  			int[] ranges = new int[]{byteStart, byteEnd};
 -			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 +			long /*int*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
@@ -9632,9 +9811,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				OS.gdk_region_get_rectangles(rgn, rects, nRects);
  				GdkRectangle rect = new GdkRectangle();
  				GdkColor color = null;
-@@ -680,10 +680,10 @@ void drawBorder(GC gc, int x, int y, Gdk
- 			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
- 			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+@@ -680,10 +680,10 @@
+ 			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+ 			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
  			int[] ranges = new int[]{byteStart, byteEnd};
 -			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 +			long /*int*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
@@ -9645,7 +9824,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				OS.gdk_region_get_rectangles(rgn, rects, nRects);
  				GdkRectangle rect = new GdkRectangle();
  				GdkColor color = null;
-@@ -706,8 +706,8 @@ void drawBorder(GC gc, int x, int y, Gdk
+@@ -706,8 +706,8 @@
  					Font font = style.font;
  					if (font == null) font = this.font;
  					if (font == null) font = device.systemFont;
@@ -9656,9 +9835,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  					underlinePosition = OS.PANGO_PIXELS(OS.pango_font_metrics_get_underline_position(metrics));
  					underlineThickness = OS.PANGO_PIXELS(OS.pango_font_metrics_get_underline_thickness(metrics));
  					OS.pango_font_metrics_unref(metrics);
-@@ -779,10 +779,10 @@ void drawBorder(GC gc, int x, int y, Gdk
- 			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
- 			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+@@ -779,10 +779,10 @@
+ 			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+ 			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
  			int[] ranges = new int[]{byteStart, byteEnd};
 -			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 +			long /*int*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
@@ -9669,7 +9848,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  				OS.gdk_region_get_rectangles(rgn, rects, nRects);
  				GdkRectangle rect = new GdkRectangle();
  				GdkColor color = null;
-@@ -805,8 +805,8 @@ void drawBorder(GC gc, int x, int y, Gdk
+@@ -805,8 +805,8 @@
  					Font font = style.font;
  					if (font == null) font = this.font;
  					if (font == null) font = device.systemFont;
@@ -9680,14 +9859,14 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  					strikeoutPosition = OS.PANGO_PIXELS(OS.pango_font_metrics_get_strikethrough_position(metrics));
  					strikeoutThickness = OS.PANGO_PIXELS(OS.pango_font_metrics_get_strikethrough_thickness(metrics));
  					OS.pango_font_metrics_unref(metrics);
-@@ -945,14 +945,14 @@ public Rectangle getBounds(int start, in
+@@ -945,14 +945,14 @@
  	end = Math.min(Math.max(0, end), length - 1);
  	start = translateOffset(start);
  	end = translateOffset(end);
 -	int /*long*/ ptr = OS.pango_layout_get_text(layout);
 +	long /*int*/ ptr = OS.pango_layout_get_text(layout);
- 	int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer (ptr, start) - ptr);
- 	int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer (ptr, end + 1) - ptr);
+ 	int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer (ptr, start) - ptr);
+ 	int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer (ptr, end + 1) - ptr);
  	int strlen = OS.strlen(ptr);
  	byteStart = Math.min(byteStart, strlen);
  	byteEnd = Math.min(byteEnd, strlen);
@@ -9697,7 +9876,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (clipRegion == 0) return new Rectangle(0, 0, 0, 0);
  	GdkRectangle rect = new GdkRectangle();
  	
-@@ -962,9 +962,9 @@ public Rectangle getBounds(int start, in
+@@ -962,9 +962,9 @@
  	* is to subtract these areas from the clip region.
  	*/
  	PangoRectangle pangoRect = new PangoRectangle();
@@ -9709,7 +9888,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (linesRegion == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	int lineEnd = 0;
  	do {
-@@ -1080,17 +1080,17 @@ public int getLevel(int offset) {
+@@ -1080,17 +1080,17 @@
  	int length = text.length();
  	if (!(0 <= offset && offset <= length)) SWT.error(SWT.ERROR_INVALID_RANGE);
  	offset = translateOffset(offset);
@@ -9720,9 +9899,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	PangoItem item = new PangoItem();
  	PangoLayoutRun run = new PangoLayoutRun();
 -	int /*long*/ ptr = OS.pango_layout_get_text(layout);
--	int /*long*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr, offset) - ptr;
+-	int /*long*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr, offset) - ptr;
 +	long /*int*/ ptr = OS.pango_layout_get_text(layout);
-+	long /*int*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr, offset) - ptr;
++	long /*int*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr, offset) - ptr;
  	int strlen = OS.strlen(ptr);
  	byteOffset = Math.min(byteOffset, strlen);
  	do {
@@ -9731,7 +9910,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  		if (runPtr != 0) {
  			OS.memmove(run, runPtr, PangoLayoutRun.sizeof);
  			OS.memmove(item, run.item, PangoItem.sizeof);
-@@ -1122,7 +1122,7 @@ public Rectangle getLineBounds(int lineI
+@@ -1122,7 +1122,7 @@
  	computeRuns();
  	int lineCount = OS.pango_layout_get_line_count(layout);
  	if (!(0 <= lineIndex && lineIndex < lineCount)) SWT.error(SWT.ERROR_INVALID_RANGE);
@@ -9740,14 +9919,14 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (iter == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	for (int i = 0; i < lineIndex; i++) OS.pango_layout_iter_next_line(iter);
  	PangoRectangle rect = new PangoRectangle();
-@@ -1179,11 +1179,11 @@ public int getLineIndex(int offset) {
+@@ -1179,11 +1179,11 @@
  	if (!(0 <= offset && offset <= length)) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
  	offset = translateOffset(offset);
  	int line = 0;
 -	int /*long*/ ptr = OS.pango_layout_get_text(layout);
--	int /*long*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr,offset) - ptr;
+-	int /*long*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr,offset) - ptr;
 +	long /*int*/ ptr = OS.pango_layout_get_text(layout);
-+	long /*int*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr,offset) - ptr;
++	long /*int*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr,offset) - ptr;
  	int strlen = OS.strlen(ptr);
  	byteOffset = Math.min(byteOffset, strlen);
 -	int /*long*/ iter = OS.pango_layout_get_iter(layout);
@@ -9755,7 +9934,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (iter == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	while (OS.pango_layout_iter_next_line(iter)) {
  		if (OS.pango_layout_iter_get_index(iter) > byteOffset) break;
-@@ -1215,9 +1215,9 @@ public FontMetrics getLineMetrics (int l
+@@ -1215,9 +1215,9 @@
  	PangoLayoutLine line = new PangoLayoutLine();
  	OS.memmove(line, OS.pango_layout_get_line(layout, lineIndex), PangoLayoutLine.sizeof);
  	if (line.runs == 0) {
@@ -9768,7 +9947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  		ascent = OS.pango_font_metrics_get_ascent(metrics);
  		descent = OS.pango_font_metrics_get_descent(metrics);
  		OS.pango_font_metrics_unref(metrics);
-@@ -1248,10 +1248,10 @@ public int[] getLineOffsets() {
+@@ -1248,10 +1248,10 @@
  	computeRuns();
  	int lineCount = OS.pango_layout_get_line_count(layout);
  	int[] offsets = new int [lineCount + 1];
@@ -9779,18 +9958,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
 -		int /*long*/ linePtr = OS.pango_layout_get_line(layout, i);
 +		long /*int*/ linePtr = OS.pango_layout_get_line(layout, i);
  		OS.memmove(line, linePtr, PangoLayoutLine.sizeof);
- 		int pos = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + line.start_index);
+ 		int pos = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + line.start_index);
  		offsets[i] = untranslateOffset(pos);
-@@ -1282,7 +1282,7 @@ public Point getLocation(int offset, boo
+@@ -1282,7 +1282,7 @@
  	int length = text.length();
  	if (!(0 <= offset && offset <= length)) SWT.error(SWT.ERROR_INVALID_RANGE);
  	offset = translateOffset(offset);
 -	int /*long*/ ptr = OS.pango_layout_get_text(layout);
 +	long /*int*/ ptr = OS.pango_layout_get_text(layout);
- 	int byteOffset = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, offset) - ptr);
+ 	int byteOffset = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, offset) - ptr);
  	int strlen = OS.strlen(ptr);
  	byteOffset = Math.min(byteOffset, strlen);
-@@ -1333,7 +1333,7 @@ int _getOffset (int offset, int movement
+@@ -1333,12 +1333,12 @@
  	}
  	int step = forward ? 1 : -1;
  	if ((movement & SWT.MOVEMENT_CHAR) != 0) return offset + step;
@@ -9799,7 +9978,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	int[] nAttrs = new int[1];
  	OS.pango_layout_get_log_attrs(layout, attrs, nAttrs);
  	if (attrs[0] == 0) return offset + step;
-@@ -1433,7 +1433,7 @@ public int getOffset(int x, int y, int[]
+ 	
+-	int /*long*/ ptr = OS.pango_layout_get_text(layout);
++	long /*int*/ ptr = OS.pango_layout_get_text(layout);
+ 	int utf8Offset = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, translateOffset(offset));
+ 	int utf8Length = (int)/*64*/OS.g_utf8_strlen(ptr, -1);
+ 	utf8Offset += step;
+@@ -1451,7 +1451,7 @@
  	* visual offset. The fix is to clamp the coordinates inside the  
  	* line bounds.
  	*/
@@ -9808,16 +9993,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  	if (iter == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	PangoRectangle rect = new PangoRectangle();
  	do {
-@@ -1453,7 +1453,7 @@ public int getOffset(int x, int y, int[]
+@@ -1471,7 +1471,7 @@
  	int[] index = new int[1];
  	int[] piTrailing = new int[1];
  	OS.pango_layout_xy_to_index(layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, piTrailing);
 -	int /*long*/ ptr = OS.pango_layout_get_text(layout);
 +	long /*int*/ ptr = OS.pango_layout_get_text(layout);
- 	int offset = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + index[0]);
- 	if (trailing != null) trailing[0] = piTrailing[0];
- 	return untranslateOffset(offset);
-@@ -2147,7 +2147,7 @@ public void setTabs(int[] tabs) {
+ 	int offset = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + index[0]);
+ 	if (trailing != null) {
+ 		trailing[0] = piTrailing[0];
+@@ -2171,7 +2171,7 @@
  	if (tabs == null) {
  		OS.pango_layout_set_tabs(layout, device.emptyTab);
  	} else {
@@ -9826,10 +10011,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/graphics/TextLayout.java swt-gtk-
  		if (tabArray != 0) {
  			for (int i = 0; i < tabs.length; i++) {
  				OS.pango_tab_array_set_tab(tabArray, i, OS.PANGO_TAB_LEFT, tabs[i]);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -18,17 +18,17 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkActionIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -18,17 +18,17 @@
  public class AtkActionIface {
  //	GTypeInterface parent;
  	/** @field cast=(gboolean (*)()) */
@@ -9853,10 +10038,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAct
  //   AtkFunction             pad1;
  //   AtkFunction             pad2;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java	2011-03-21 11:34:23.305734214 +0000
-@@ -17,9 +17,9 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkAttribute.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,9 +17,9 @@
  
  public class AtkAttribute {
  	/** @field cast=(char *) */
@@ -9868,10 +10053,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkAtt
  	public static final int sizeof = ATK.AtkAttribute_sizeof ();
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,29 +17,29 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkComponentIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,29 +17,29 @@
  
  public class AtkComponentIface {
  	/** @field cast=(guint (*)()) */
@@ -9914,10 +10099,38 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkCom
 -	public int /*long*/ get_mdi_zorder;
 +	public long /*int*/ get_mdi_zorder;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java	2011-03-21 11:34:23.305734214 +0000
-@@ -17,9 +17,9 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -16,17 +16,17 @@
+ 
+ public class AtkEditableTextIface {
+ 	/** @field cast=(gboolean (*)()) */
+-	public int /*long*/ set_run_attributes;
++	public long /*int*/ set_run_attributes;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ set_text_contents;
++	public long /*int*/ set_text_contents;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ insert_text;
++	public long /*int*/ insert_text;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ copy_text;
++	public long /*int*/ copy_text;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ cut_text;
++	public long /*int*/ cut_text;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ delete_text;
++	public long /*int*/ delete_text;
+ 	/** @field cast=(void (*)()) */
+-	public int /*long*/ paste_text;
++	public long /*int*/ paste_text;
+ }
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkHypertextIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,9 +17,9 @@
  
  public class AtkHypertextIface {
  	/** @field cast=(AtkHyperlink *(*)()) */
@@ -9930,10 +10143,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkHyp
 -	public int /*long*/ get_link_index;
 +	public long /*int*/ get_link_index;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/ATK.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/ATK.java	2011-03-21 11:34:23.305734214 +0000
-@@ -198,26 +198,26 @@ public static final native int AtkTextRe
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/ATK.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/ATK.java	2011-06-13 20:53:32.000000000 +0000
+@@ -198,28 +198,28 @@
  /** Natives */
  
  /** @method flags=const */
@@ -9946,6 +10159,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
 -public static final native int /*long*/ ATK_TYPE_COMPONENT ();
 +public static final native long /*int*/ ATK_TYPE_COMPONENT ();
  /** @method flags=const */
+-public static final native int /*long*/ ATK_TYPE_EDITABLE_TEXT ();
++public static final native long /*int*/ ATK_TYPE_EDITABLE_TEXT ();
+ /** @method flags=const */
 -public static final native int /*long*/ ATK_TYPE_HYPERTEXT ();
 +public static final native long /*int*/ ATK_TYPE_HYPERTEXT ();
  /** @method flags=const */
@@ -9972,7 +10188,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_ACTION_GET_IFACE(obj);
-@@ -225,8 +225,8 @@ public static final int /*long*/ ATK_ACT
+@@ -227,8 +227,8 @@
  		lock.unlock();
  	}
  }
@@ -9983,7 +10199,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_COMPONENT_GET_IFACE(atkHandle);
-@@ -234,9 +234,9 @@ public static final int /*long*/ ATK_COM
+@@ -236,9 +236,9 @@
  		lock.unlock();
  	}
  }
@@ -9996,7 +10212,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_SELECTION_GET_IFACE(obj);
-@@ -244,8 +244,8 @@ public static final int /*long*/ ATK_SEL
+@@ -246,8 +246,8 @@
+ 		lock.unlock();
+ 	}
+ }
+-public static final native int /*long*/ _ATK_EDITABLE_TEXT_GET_IFACE (int /*long*/ handle);
+-public static final int /*long*/ ATK_EDITABLE_TEXT_GET_IFACE (int /*long*/ handle) {
++public static final native long /*int*/ _ATK_EDITABLE_TEXT_GET_IFACE (long /*int*/ handle);
++public static final long /*int*/ ATK_EDITABLE_TEXT_GET_IFACE (long /*int*/ handle) {
+ 	lock.lock();
+ 	try {
+ 		return _ATK_EDITABLE_TEXT_GET_IFACE(handle);
+@@ -255,8 +255,8 @@
  		lock.unlock();
  	}
  }
@@ -10007,7 +10234,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_HYPERTEXT_GET_IFACE(handle);
-@@ -253,8 +253,8 @@ public static final int /*long*/ ATK_HYP
+@@ -264,8 +264,8 @@
  		lock.unlock();
  	}
  }
@@ -10018,7 +10245,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_TABLE_GET_IFACE(handle);
-@@ -262,8 +262,8 @@ public static final int /*long*/ ATK_TAB
+@@ -273,8 +273,8 @@
  		lock.unlock();
  	}
  }
@@ -10029,7 +10256,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_TEXT_GET_IFACE(handle);
-@@ -271,8 +271,8 @@ public static final int /*long*/ ATK_TEX
+@@ -282,8 +282,8 @@
  		lock.unlock();
  	}
  }
@@ -10040,7 +10267,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _ATK_VALUE_GET_IFACE(handle);
-@@ -280,8 +280,8 @@ public static final int /*long*/ ATK_VAL
+@@ -291,8 +291,8 @@
  		lock.unlock();
  	}
  }
@@ -10051,7 +10278,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _GTK_ACCESSIBLE(handle);
-@@ -290,8 +290,8 @@ public static final int /*long*/ GTK_ACC
+@@ -301,8 +301,8 @@
  	}
  }
  /** @param object cast=(AtkObject *) */
@@ -10062,7 +10289,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		_atk_focus_tracker_notify(object);
-@@ -299,8 +299,8 @@ public static final void atk_focus_track
+@@ -310,8 +310,8 @@
  		lock.unlock();
  	}
  }
@@ -10073,7 +10300,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_get_default_registry();
-@@ -312,8 +312,8 @@ public static final int /*long*/ atk_get
+@@ -323,8 +323,8 @@
   * @param factory cast=(AtkObjectFactory *)
   * @param obj cast=(GObject *)
   */
@@ -10084,7 +10311,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_object_factory_create_accessible(factory, obj);
-@@ -322,8 +322,8 @@ public static final int /*long*/ atk_obj
+@@ -333,8 +333,8 @@
  	}
  }
  /** @param factory cast=(AtkObjectFactory *) */
@@ -10095,7 +10322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_object_factory_get_accessible_type(factory);
-@@ -335,8 +335,8 @@ public static final int /*long*/ atk_obj
+@@ -346,8 +346,8 @@
   * @param accessible cast=(AtkObject *)
   * @param data cast=(gpointer)
   */
@@ -10106,7 +10333,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		_atk_object_initialize(accessible, data);
-@@ -345,8 +345,8 @@ public static final void atk_object_init
+@@ -356,8 +356,8 @@
  	}
  }
  /** @param accessible cast=(AtkObject *) */
@@ -10117,7 +10344,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		_atk_object_notify_state_change(accessible, state, value);
-@@ -355,8 +355,8 @@ public static final void atk_object_noti
+@@ -366,8 +366,8 @@
  	}
  }
  /** @param accessible cast=(AtkObject *) */
@@ -10128,7 +10355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_object_ref_relation_set(accessible);
-@@ -392,8 +392,8 @@ public static final int atk_text_attribu
+@@ -403,8 +403,8 @@
   * @param registry cast=(AtkRegistry *)
   * @param type cast=(GType)
   */
@@ -10139,7 +10366,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_registry_get_factory(registry, type);
-@@ -406,8 +406,8 @@ public static final int /*long*/ atk_reg
+@@ -417,8 +417,8 @@
   * @param type cast=(GType)
   * @param factory_type cast=(GType)
   */
@@ -10150,7 +10377,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		_atk_registry_set_factory_type(registry, type, factory_type);
-@@ -416,8 +416,8 @@ public static final void atk_registry_se
+@@ -427,8 +427,8 @@
  	}
  }
  /** @param set cast=(AtkRelationSet *) */
@@ -10161,7 +10388,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_relation_set_get_n_relations(set);
-@@ -426,8 +426,8 @@ public static final int atk_relation_set
+@@ -437,8 +437,8 @@
  	}
  }
  /** @param set cast=(AtkRelationSet *) */
@@ -10172,7 +10399,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_relation_set_get_relation (set, i);
-@@ -439,8 +439,8 @@ public static final int /*long*/ atk_rel
+@@ -450,8 +450,8 @@
   * @param set cast=(AtkRelationSet *)
   * @param relation cast=(AtkRelation *)
   */
@@ -10183,7 +10410,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		_atk_relation_set_remove (set, relation);
-@@ -452,8 +452,8 @@ public static final void atk_relation_se
+@@ -463,8 +463,8 @@
   * @param set cast=(AtkStateSet *)
   * @param type cast=(AtkStateType)
   */
@@ -10194,7 +10421,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_state_set_add_state(set, type);
-@@ -461,8 +461,8 @@ public static final boolean atk_state_se
+@@ -472,8 +472,8 @@
  		lock.unlock();
  	}
  }
@@ -10205,7 +10432,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_state_set_new();
-@@ -470,8 +470,8 @@ public static final int /*long*/ atk_sta
+@@ -481,8 +481,8 @@
  		lock.unlock();
  	}
  }
@@ -10216,7 +10443,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_text_attribute_get_name(attr);
-@@ -479,8 +479,8 @@ public static final int /*long*/ atk_tex
+@@ -490,8 +490,8 @@
  		lock.unlock();
  	}
  }
@@ -10227,7 +10454,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _atk_text_attribute_get_value(attr, index);
-@@ -488,8 +488,8 @@ public static final int /*long*/ atk_tex
+@@ -499,8 +499,8 @@
  		lock.unlock();
  	}
  }
@@ -10238,7 +10465,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0);
-@@ -497,8 +497,8 @@ public static final int /*long*/ call (i
+@@ -508,8 +508,8 @@
  		lock.unlock();
  	}
  }
@@ -10249,7 +10476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1);
-@@ -506,8 +506,8 @@ public static final int /*long*/ call (i
+@@ -517,8 +517,8 @@
  		lock.unlock();
  	}
  }
@@ -10260,7 +10487,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1, arg2);
-@@ -515,8 +515,8 @@ public static final int /*long*/ call (i
+@@ -526,8 +526,8 @@
  		lock.unlock();
  	}
  }
@@ -10271,7 +10498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1, arg2, arg3);
-@@ -524,8 +524,8 @@ public static final int /*long*/ call (i
+@@ -535,8 +535,8 @@
  		lock.unlock();
  	}
  }
@@ -10282,7 +10509,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1, arg2, arg3, arg4);
-@@ -533,8 +533,8 @@ public static final int /*long*/ call (i
+@@ -544,8 +544,8 @@
  		lock.unlock();
  	}
  }
@@ -10293,13 +10520,14 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -543,60 +543,60 @@ public static final int /*long*/ call (i
+@@ -554,62 +554,62 @@
  	}
  }
  /** @param str cast=(char *) */
 -public static final native int /*long*/ g_strdup (int /*long*/ str);
 -public static final native void memmove (AtkActionIface dest, int /*long*/ src);
 -public static final native void memmove (AtkComponentIface dest, int /*long*/ src);
+-public static final native void memmove (AtkEditableTextIface dest, int /*long*/ src);
 -public static final native void memmove (AtkHypertextIface dest, int /*long*/ src);
 -public static final native void memmove (AtkObjectClass dest, int /*long*/ src);
 -public static final native void memmove (AtkObjectFactoryClass  dest, int /*long*/ src);
@@ -10310,6 +10538,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
 -public static final native void memmove (GtkAccessible  dest, int /*long*/ src);
 -public static final native void memmove (int /*long*/ dest, AtkActionIface src);
 -public static final native void memmove (int /*long*/ dest, AtkComponentIface src);
+-public static final native void memmove (int /*long*/ dest, AtkEditableTextIface src);
 -public static final native void memmove (int /*long*/ dest, AtkHypertextIface src);
 -public static final native void memmove (int /*long*/ dest, AtkObjectClass src);
 -public static final native void memmove (int /*long*/ dest, AtkObjectFactoryClass src);
@@ -10320,6 +10549,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
 +public static final native long /*int*/ g_strdup (long /*int*/ str);
 +public static final native void memmove (AtkActionIface dest, long /*int*/ src);
 +public static final native void memmove (AtkComponentIface dest, long /*int*/ src);
++public static final native void memmove (AtkEditableTextIface dest, long /*int*/ src);
 +public static final native void memmove (AtkHypertextIface dest, long /*int*/ src);
 +public static final native void memmove (AtkObjectClass dest, long /*int*/ src);
 +public static final native void memmove (AtkObjectFactoryClass  dest, long /*int*/ src);
@@ -10330,6 +10560,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
 +public static final native void memmove (GtkAccessible  dest, long /*int*/ src);
 +public static final native void memmove (long /*int*/ dest, AtkActionIface src);
 +public static final native void memmove (long /*int*/ dest, AtkComponentIface src);
++public static final native void memmove (long /*int*/ dest, AtkEditableTextIface src);
 +public static final native void memmove (long /*int*/ dest, AtkHypertextIface src);
 +public static final native void memmove (long /*int*/ dest, AtkObjectClass src);
 +public static final native void memmove (long /*int*/ dest, AtkObjectFactoryClass src);
@@ -10380,10 +10611,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/ATK.ja
 -public static final native void memmove (AtkAttribute dest, int /*long*/ src, int size);
 +public static final native void memmove (AtkAttribute dest, long /*int*/ src, int size);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java	2011-03-21 11:34:23.305734214 +0000
-@@ -17,51 +17,51 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkObjectClass.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,51 +17,51 @@
  
  public class AtkObjectClass {
  	/** @field cast=(G_CONST_RETURN gchar *(*)()) */
@@ -10459,10 +10690,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObj
 -	public int /*long*/ get_attributes;
 +	public long /*int*/ get_attributes;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,9 +17,9 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkObjectFactoryClass.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,9 +17,9 @@
  
  public class AtkObjectFactoryClass {
  	/** @field cast=(AtkObject *(*)()) */
@@ -10475,10 +10706,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkObj
 -	public int /*long*/ get_accessible_type;
 +	public long /*int*/ get_accessible_type;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,19 +17,19 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkSelectionIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,19 +17,19 @@
  
  public class AtkSelectionIface {
  	/** @field cast=(gboolean (*)()) */
@@ -10506,10 +10737,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkSel
 -	public int /*long*/ selection_changed;
 +	public long /*int*/ selection_changed;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,75 +17,75 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTableIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,75 +17,75 @@
  
  public class AtkTableIface {
  	/** @field cast=(AtkObject* (*)()) */
@@ -10621,10 +10852,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTab
 -	public int /*long*/ model_changed;
 +	public long /*int*/ model_changed;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,47 +17,47 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTextIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,47 +17,47 @@
  
  public class AtkTextIface {
  	/** @field cast=(gchar *(*)()) */
@@ -10694,10 +10925,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTex
 -	public int /*long*/ get_bounded_ranges;
 +	public long /*int*/ get_bounded_ranges;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java	2011-03-21 11:34:23.295734363 +0000
-@@ -20,7 +20,7 @@ public class AtkTextRange {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkTextRange.java	2011-06-13 20:53:32.000000000 +0000
+@@ -20,7 +20,7 @@
  	public int start_offset;
  	public int end_offset;
  	/** @field cast=(gchar *) */
@@ -10706,10 +10937,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkTex
  	public static final int sizeof = ATK.AtkTextRange_sizeof ();
  
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java	2011-03-21 11:34:23.295734363 +0000
-@@ -17,11 +17,11 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/AtkValueIface.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,11 +17,11 @@
  
  public class AtkValueIface {
  	/** @field cast=(void (*)()) */
@@ -10725,20 +10956,20 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/AtkVal
 -	public int /*long*/ set_current_value;
 +	public long /*int*/ set_current_value;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java	2011-03-21 11:34:23.305734214 +0000
-@@ -17,5 +17,5 @@ package org.eclipse.swt.internal.accessi
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/accessibility/gtk/GtkAccessible.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,5 +17,5 @@
  
  public class GtkAccessible {
  	/** @field cast=(GtkWidget *) */
 -	public int /*long*/ widget;
 +	public long /*int*/ widget;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/BidiUtil.java swt-gtk-3.6.2/org/eclipse/swt/internal/BidiUtil.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/BidiUtil.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/BidiUtil.java	2011-03-21 11:34:23.325733931 +0000
-@@ -42,7 +42,7 @@ public class BidiUtil {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/BidiUtil.java swt-gtk-3.7//org/eclipse/swt/internal/BidiUtil.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/BidiUtil.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/BidiUtil.java	2011-06-13 20:53:32.000000000 +0000
+@@ -42,7 +42,7 @@
  /*
   * Not implemented.
   */
@@ -10747,7 +10978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/BidiUtil.java swt-gtk-3.
  }
  public static void addLanguageListener (Control control, Runnable runnable) {
  }
-@@ -93,7 +93,7 @@ public static int getKeyboardLanguage()
+@@ -93,7 +93,7 @@
  /*
   * Not implemented.
   */
@@ -10756,7 +10987,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/BidiUtil.java swt-gtk-3.
  }	
  public static void removeLanguageListener (Control control) {
  }
-@@ -105,7 +105,7 @@ public static void setKeyboardLanguage(i
+@@ -105,7 +105,7 @@
  /*
   * Not implemented.
   */
@@ -10765,10 +10996,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/BidiUtil.java swt-gtk-3.
  	return false;
  }
  public static boolean setOrientation (Control control, int orientation) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk-3.6.2/org/eclipse/swt/internal/cairo/Cairo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/cairo/Cairo.java	2011-03-21 11:34:23.315734069 +0000
-@@ -109,8 +109,8 @@ public static final native int CAIRO_VER
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk-3.7//org/eclipse/swt/internal/cairo/Cairo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/cairo/Cairo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/cairo/Cairo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -109,8 +109,8 @@
   * @param cr cast=(cairo_t *)
   * @param path cast=(cairo_path_t *)
   */
@@ -10779,7 +11010,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_append_path(cr, path);
-@@ -119,8 +119,8 @@ public static final void cairo_append_pa
+@@ -119,8 +119,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10790,7 +11021,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_arc(cr, xc, yc, radius, angle1, angle2);
-@@ -129,8 +129,8 @@ public static final void cairo_arc(int /
+@@ -129,8 +129,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10801,7 +11032,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_arc_negative(cr, xc, yc, radius, angle1, angle2);
-@@ -139,8 +139,8 @@ public static final void cairo_arc_negat
+@@ -139,8 +139,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10812,7 +11043,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_clip(cr);
-@@ -149,8 +149,8 @@ public static final void cairo_clip(int
+@@ -149,8 +149,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10823,7 +11054,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_clip_preserve(cr);
-@@ -159,8 +159,8 @@ public static final void cairo_clip_pres
+@@ -159,8 +159,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10834,7 +11065,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_close_path(cr);
-@@ -169,8 +169,8 @@ public static final void cairo_close_pat
+@@ -169,8 +169,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10845,7 +11076,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_copy_page(cr);
-@@ -179,8 +179,8 @@ public static final void cairo_copy_page
+@@ -179,8 +179,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10856,7 +11087,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_copy_path(cr);
-@@ -189,8 +189,8 @@ public static final int /*long*/ cairo_c
+@@ -189,8 +189,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10867,7 +11098,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_copy_path_flat(cr);
-@@ -199,8 +199,8 @@ public static final int /*long*/ cairo_c
+@@ -199,8 +199,8 @@
  	}
  }
  /** @param target cast=(cairo_surface_t *) */
@@ -10878,7 +11109,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_create(target);
-@@ -209,8 +209,8 @@ public static final int /*long*/ cairo_c
+@@ -209,8 +209,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10889,7 +11120,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_curve_to(cr, x1, y1, x2, y2, x3, y3);
-@@ -219,8 +219,8 @@ public static final void cairo_curve_to(
+@@ -219,8 +219,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10900,7 +11131,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_destroy(cr);
-@@ -229,8 +229,8 @@ public static final void cairo_destroy(i
+@@ -229,8 +229,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10911,7 +11142,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_device_to_user(cr, x, y);
-@@ -239,8 +239,8 @@ public static final void cairo_device_to
+@@ -239,8 +239,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10922,7 +11153,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_device_to_user_distance(cr, dx, dy);
-@@ -249,8 +249,8 @@ public static final void cairo_device_to
+@@ -249,8 +249,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10933,7 +11164,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_fill(cr);
-@@ -259,8 +259,8 @@ public static final void cairo_fill(int
+@@ -259,8 +259,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10944,7 +11175,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_fill_extents(cr, x1, y1, x2, y2);
-@@ -269,8 +269,8 @@ public static final void cairo_fill_exte
+@@ -269,8 +269,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10955,7 +11186,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_fill_preserve(cr);
-@@ -279,8 +279,8 @@ public static final void cairo_fill_pres
+@@ -279,8 +279,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -10966,7 +11197,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_font_extents(cr, extents);
-@@ -288,8 +288,8 @@ public static final void cairo_font_exte
+@@ -288,8 +288,8 @@
  		lock.unlock();
  	}
  }
@@ -10977,7 +11208,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_font_options_create();
-@@ -298,8 +298,8 @@ public static final int /*long*/ cairo_f
+@@ -298,8 +298,8 @@
  	}
  }
  /** @param options cast=(cairo_font_options_t *) */
@@ -10988,7 +11219,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_font_options_destroy(options);
-@@ -308,8 +308,8 @@ public static final void cairo_font_opti
+@@ -308,8 +308,8 @@
  	}
  }
  /** @param options cast=(cairo_font_options_t *) */
@@ -10999,7 +11230,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_font_options_get_antialias(options);
-@@ -318,8 +318,8 @@ public static final int cairo_font_optio
+@@ -318,8 +318,8 @@
  	}
  }
  /** @param options cast=(cairo_font_options_t *) */
@@ -11010,7 +11241,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_font_options_set_antialias(options, antialias);
-@@ -328,8 +328,8 @@ public static final void cairo_font_opti
+@@ -328,8 +328,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11021,7 +11252,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_antialias(cr);
-@@ -338,8 +338,8 @@ public static final int cairo_get_antial
+@@ -338,8 +338,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11032,7 +11263,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_get_current_point(cr, x, y);
-@@ -348,8 +348,8 @@ public static final void cairo_get_curre
+@@ -348,8 +348,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11043,7 +11274,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_fill_rule(cr);
-@@ -358,8 +358,8 @@ public static final int cairo_get_fill_r
+@@ -358,8 +358,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11054,7 +11285,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_font_face(cr);
-@@ -371,8 +371,8 @@ public static final int /*long*/ cairo_g
+@@ -371,8 +371,8 @@
   * @param cr cast=(cairo_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11065,7 +11296,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_get_font_matrix(cr, matrix);
-@@ -384,8 +384,8 @@ public static final void cairo_get_font_
+@@ -384,8 +384,8 @@
   * @param cr cast=(cairo_t *)
   * @param options cast=(cairo_font_options_t *)
   */
@@ -11076,7 +11307,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_get_font_options(cr, options);
-@@ -394,8 +394,8 @@ public static final void cairo_get_font_
+@@ -394,8 +394,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11087,7 +11318,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_line_cap(cr);
-@@ -404,8 +404,8 @@ public static final int cairo_get_line_c
+@@ -404,8 +404,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11098,7 +11329,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_line_join(cr);
-@@ -414,8 +414,8 @@ public static final int cairo_get_line_j
+@@ -414,8 +414,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11109,7 +11340,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_line_width(cr);
-@@ -427,8 +427,8 @@ public static final double cairo_get_lin
+@@ -427,8 +427,8 @@
   * @param cr cast=(cairo_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11120,7 +11351,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_get_matrix(cr, matrix);
-@@ -437,8 +437,8 @@ public static final void cairo_get_matri
+@@ -437,8 +437,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11131,7 +11362,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_miter_limit(cr);
-@@ -447,8 +447,8 @@ public static final double cairo_get_mit
+@@ -447,8 +447,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11142,7 +11373,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_operator(cr);
-@@ -457,8 +457,8 @@ public static final int cairo_get_operat
+@@ -457,8 +457,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11153,7 +11384,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_source(cr);
-@@ -467,8 +467,8 @@ public static final int /*long*/ cairo_g
+@@ -467,8 +467,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11164,7 +11395,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_target(cr);
-@@ -477,8 +477,8 @@ public static final int /*long*/ cairo_g
+@@ -477,8 +477,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11175,7 +11406,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_get_tolerance(cr);
-@@ -491,8 +491,8 @@ public static final double cairo_get_tol
+@@ -491,8 +491,8 @@
   * @param glyphs cast=(cairo_glyph_t *)
   * @param extents cast=(cairo_text_extents_t *)
   */
@@ -11186,7 +11417,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_glyph_extents(cr, glyphs, num_glyphs, extents);
-@@ -504,8 +504,8 @@ public static final void cairo_glyph_ext
+@@ -504,8 +504,8 @@
   * @param cr cast=(cairo_t *)
   * @param glyphs cast=(cairo_glyph_t *)
   */
@@ -11197,7 +11428,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_glyph_path(cr, glyphs, num_glyphs);
-@@ -514,8 +514,8 @@ public static final void cairo_glyph_pat
+@@ -514,8 +514,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11208,7 +11439,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_identity_matrix(cr);
-@@ -523,8 +523,8 @@ public static final void cairo_identity_
+@@ -523,8 +523,8 @@
  		lock.unlock();
  	}
  }
@@ -11219,7 +11450,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_image_surface_create(format, width, height);
-@@ -533,8 +533,8 @@ public static final int /*long*/ cairo_i
+@@ -533,8 +533,8 @@
  	}
  }
  /** @param data cast=(unsigned char *) */
@@ -11230,7 +11461,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_image_surface_create_for_data(data, format, width, height, stride);
-@@ -543,8 +543,8 @@ public static final int /*long*/ cairo_i
+@@ -543,8 +543,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -11241,7 +11472,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_image_surface_get_height(surface);
-@@ -553,8 +553,8 @@ public static final int cairo_image_surf
+@@ -553,8 +553,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -11252,7 +11483,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_image_surface_get_width(surface);
-@@ -563,8 +563,8 @@ public static final int cairo_image_surf
+@@ -563,8 +563,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11263,7 +11494,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_in_fill(cr, x, y);
-@@ -573,8 +573,8 @@ public static final int cairo_in_fill(in
+@@ -573,8 +573,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11274,7 +11505,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_in_stroke(cr, x, y);
-@@ -583,8 +583,8 @@ public static final int cairo_in_stroke(
+@@ -583,8 +583,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11285,7 +11516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_line_to(cr, x, y);
-@@ -596,8 +596,8 @@ public static final void cairo_line_to(i
+@@ -596,8 +596,8 @@
   * @param cr cast=(cairo_t *)
   * @param pattern cast=(cairo_pattern_t *)
   */
@@ -11296,7 +11527,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_mask(cr, pattern);
-@@ -609,8 +609,8 @@ public static final void cairo_mask(int
+@@ -609,8 +609,8 @@
   * @param cr cast=(cairo_t *)
   * @param surface cast=(cairo_surface_t *)
   */
@@ -11307,7 +11538,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_mask_surface(cr, surface, surface_x, surface_y);
-@@ -743,8 +743,8 @@ public static final void cairo_matrix_tr
+@@ -743,8 +743,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11318,7 +11549,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_move_to(cr, x, y);
-@@ -753,8 +753,8 @@ public static final void cairo_move_to(i
+@@ -753,8 +753,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11329,7 +11560,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_new_path(cr);
-@@ -763,8 +763,8 @@ public static final void cairo_new_path(
+@@ -763,8 +763,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11340,7 +11571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_paint(cr);
-@@ -773,8 +773,8 @@ public static final void cairo_paint(int
+@@ -773,8 +773,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11351,7 +11582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_paint_with_alpha(cr, alpha);
-@@ -783,8 +783,8 @@ public static final void cairo_paint_wit
+@@ -783,8 +783,8 @@
  	}
  }
  /** @param path cast=(cairo_path_t *) */
@@ -11362,7 +11593,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_path_destroy(path);
-@@ -793,8 +793,8 @@ public static final void cairo_path_dest
+@@ -793,8 +793,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11373,7 +11604,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_add_color_stop_rgb(pattern, offset, red, green, blue);
-@@ -803,8 +803,8 @@ public static final void cairo_pattern_a
+@@ -803,8 +803,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11384,7 +11615,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_add_color_stop_rgba(pattern, offset, red, green, blue, alpha);
-@@ -813,8 +813,8 @@ public static final void cairo_pattern_a
+@@ -813,8 +813,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -11395,7 +11626,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_pattern_create_for_surface(surface);
-@@ -822,8 +822,8 @@ public static final int /*long*/ cairo_p
+@@ -822,8 +822,8 @@
  		lock.unlock();
  	}
  }
@@ -11406,7 +11637,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_pattern_create_linear(x0, y0, x1, y1);
-@@ -831,8 +831,8 @@ public static final int /*long*/ cairo_p
+@@ -831,8 +831,8 @@
  		lock.unlock();
  	}
  }
@@ -11417,7 +11648,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_pattern_create_radial(cx0, cy0, radius0, cx1, cy1, radius1);
-@@ -841,8 +841,8 @@ public static final int /*long*/ cairo_p
+@@ -841,8 +841,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11428,7 +11659,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_destroy(pattern);
-@@ -851,8 +851,8 @@ public static final void cairo_pattern_d
+@@ -851,8 +851,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11439,7 +11670,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_pattern_get_extend(pattern);
-@@ -861,8 +861,8 @@ public static final int cairo_pattern_ge
+@@ -861,8 +861,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11450,7 +11681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_pattern_get_filter(pattern);
-@@ -874,8 +874,8 @@ public static final int cairo_pattern_ge
+@@ -874,8 +874,8 @@
   * @param pattern cast=(cairo_pattern_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11461,7 +11692,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_get_matrix(pattern, matrix);
-@@ -884,8 +884,8 @@ public static final void cairo_pattern_g
+@@ -884,8 +884,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11472,7 +11703,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_reference(pattern);
-@@ -894,8 +894,8 @@ public static final void cairo_pattern_r
+@@ -894,8 +894,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11483,7 +11714,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_set_extend(pattern, extend);
-@@ -904,8 +904,8 @@ public static final void cairo_pattern_s
+@@ -904,8 +904,8 @@
  	}
  }
  /** @param pattern cast=(cairo_pattern_t *) */
@@ -11494,7 +11725,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_set_filter(pattern, filter);
-@@ -917,8 +917,8 @@ public static final void cairo_pattern_s
+@@ -917,8 +917,8 @@
   * @param pattern cast=(cairo_pattern_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11505,7 +11736,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pattern_set_matrix(pattern, matrix);
-@@ -930,8 +930,8 @@ public static final void cairo_pattern_s
+@@ -930,8 +930,8 @@
   * @method flags=dynamic
   * @param surface cast=(cairo_surface_t *)
   */
@@ -11516,7 +11747,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_pdf_surface_set_size(surface, width_in_points, height_in_points);
-@@ -943,8 +943,8 @@ public static final void cairo_pdf_surfa
+@@ -943,8 +943,8 @@
   * @method flags=dynamic
   * @param surface cast=(cairo_surface_t *)
   */
@@ -11527,7 +11758,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_ps_surface_set_size(surface, width_in_points, height_in_points);
-@@ -953,8 +953,8 @@ public static final void cairo_ps_surfac
+@@ -953,8 +953,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11538,7 +11769,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_rectangle(cr, x, y, width, height);
-@@ -963,8 +963,8 @@ public static final void cairo_rectangle
+@@ -963,8 +963,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11549,7 +11780,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_reference(cr);
-@@ -973,8 +973,8 @@ public static final int /*long*/ cairo_r
+@@ -973,8 +973,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11560,7 +11791,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_rel_curve_to(cr, dx1, dy1, dx2, dy2, dx3, dy3);
-@@ -983,8 +983,8 @@ public static final void cairo_rel_curve
+@@ -983,8 +983,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11571,7 +11802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_rel_line_to(cr, dx, dy);
-@@ -993,8 +993,8 @@ public static final void cairo_rel_line_
+@@ -993,8 +993,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11582,7 +11813,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_rel_move_to(cr, dx, dy);
-@@ -1003,8 +1003,8 @@ public static final void cairo_rel_move_
+@@ -1003,8 +1003,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11593,7 +11824,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_reset_clip(cr);
-@@ -1013,8 +1013,8 @@ public static final void cairo_reset_cli
+@@ -1013,8 +1013,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11604,7 +11835,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_restore(cr);
-@@ -1023,8 +1023,8 @@ public static final void cairo_restore(i
+@@ -1023,8 +1023,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11615,7 +11846,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_rotate(cr, angle);
-@@ -1033,8 +1033,8 @@ public static final void cairo_rotate(in
+@@ -1033,8 +1033,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11626,7 +11857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_save(cr);
-@@ -1043,8 +1043,8 @@ public static final void cairo_save(int
+@@ -1043,8 +1043,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11637,7 +11868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_scale(cr, sx, sy);
-@@ -1056,8 +1056,8 @@ public static final void cairo_scale(int
+@@ -1056,8 +1056,8 @@
   * @param cr cast=(cairo_t *)
   * @param family cast=(const char *)
   */
@@ -11648,7 +11879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_select_font_face(cr, family, slant, weight);
-@@ -1066,8 +1066,8 @@ public static final void cairo_select_fo
+@@ -1066,8 +1066,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11659,7 +11890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_antialias(cr, antialias);
-@@ -1076,8 +1076,8 @@ public static final void cairo_set_antia
+@@ -1076,8 +1076,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11670,7 +11901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_dash(cr, dashes, ndash, offset);
-@@ -1086,8 +1086,8 @@ public static final void cairo_set_dash(
+@@ -1086,8 +1086,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11681,7 +11912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_fill_rule(cr, fill_rule);
-@@ -1099,8 +1099,8 @@ public static final void cairo_set_fill_
+@@ -1099,8 +1099,8 @@
   * @param cr cast=(cairo_t *)
   * @param font_face cast=(cairo_font_face_t *)
   */
@@ -11692,7 +11923,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_font_face(cr, font_face);
-@@ -1112,8 +1112,8 @@ public static final void cairo_set_font_
+@@ -1112,8 +1112,8 @@
   * @param cr cast=(cairo_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11703,7 +11934,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_font_matrix(cr, matrix);
-@@ -1125,8 +1125,8 @@ public static final void cairo_set_font_
+@@ -1125,8 +1125,8 @@
   * @param cr cast=(cairo_t *)
   * @param options cast=(cairo_font_options_t *)
   */
@@ -11714,7 +11945,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_font_options(cr, options);
-@@ -1135,8 +1135,8 @@ public static final void cairo_set_font_
+@@ -1135,8 +1135,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11725,7 +11956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_font_size(cr, size);
-@@ -1145,8 +1145,8 @@ public static final void cairo_set_font_
+@@ -1145,8 +1145,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11736,7 +11967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_line_cap(cr, line_cap);
-@@ -1155,8 +1155,8 @@ public static final void cairo_set_line_
+@@ -1155,8 +1155,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11747,7 +11978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_line_join(cr, line_join);
-@@ -1165,8 +1165,8 @@ public static final void cairo_set_line_
+@@ -1165,8 +1165,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11758,7 +11989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_line_width(cr, width);
-@@ -1178,8 +1178,8 @@ public static final void cairo_set_line_
+@@ -1178,8 +1178,8 @@
   * @param cr cast=(cairo_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -11769,7 +12000,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_matrix(cr, matrix);
-@@ -1188,8 +1188,8 @@ public static final void cairo_set_matri
+@@ -1188,8 +1188,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11780,7 +12011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_miter_limit(cr, limit);
-@@ -1198,8 +1198,8 @@ public static final void cairo_set_miter
+@@ -1198,8 +1198,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11791,7 +12022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_operator(cr, op);
-@@ -1211,8 +1211,8 @@ public static final void cairo_set_opera
+@@ -1211,8 +1211,8 @@
   * @param cr cast=(cairo_t *)
   * @param source cast=(cairo_pattern_t *)
   */
@@ -11802,7 +12033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_source(cr, source);
-@@ -1221,8 +1221,8 @@ public static final void cairo_set_sourc
+@@ -1221,8 +1221,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11813,7 +12044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_source_rgb(cr, red, green, blue);
-@@ -1231,8 +1231,8 @@ public static final void cairo_set_sourc
+@@ -1231,8 +1231,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11824,7 +12055,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_source_rgba(cr, red, green, blue, alpha);
-@@ -1244,8 +1244,8 @@ public static final void cairo_set_sourc
+@@ -1244,8 +1244,8 @@
   * @param cr cast=(cairo_t *)
   * @param surface cast=(cairo_surface_t *)
   */
@@ -11835,7 +12066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_source_surface(cr, surface, x, y);
-@@ -1254,8 +1254,8 @@ public static final void cairo_set_sourc
+@@ -1254,8 +1254,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11846,7 +12077,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_set_tolerance(cr, tolerance);
-@@ -1267,8 +1267,8 @@ public static final void cairo_set_toler
+@@ -1267,8 +1267,8 @@
   * @param cr cast=(cairo_t *)
   * @param glyphs cast=(cairo_glyph_t *)
   */
@@ -11857,7 +12088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_show_glyphs(cr, glyphs, num_glyphs);
-@@ -1277,8 +1277,8 @@ public static final void cairo_show_glyp
+@@ -1277,8 +1277,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11868,7 +12099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_show_page(cr);
-@@ -1290,8 +1290,8 @@ public static final void cairo_show_page
+@@ -1290,8 +1290,8 @@
   * @param cr cast=(cairo_t *)
   * @param utf8 cast=(const char *)
   */
@@ -11879,7 +12110,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_show_text(cr, utf8);
-@@ -1300,8 +1300,8 @@ public static final void cairo_show_text
+@@ -1300,8 +1300,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11890,7 +12121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_status(cr);
-@@ -1309,8 +1309,8 @@ public static final int cairo_status(int
+@@ -1309,8 +1309,8 @@
  		lock.unlock();
  	}
  }
@@ -11901,7 +12132,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_status_to_string(status);
-@@ -1319,8 +1319,8 @@ public static final int /*long*/ cairo_s
+@@ -1319,8 +1319,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11912,7 +12143,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_stroke(cr);
-@@ -1329,8 +1329,8 @@ public static final void cairo_stroke(in
+@@ -1329,8 +1329,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11923,7 +12154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_stroke_extents(cr, x1, y1, x2, y2);
-@@ -1339,8 +1339,8 @@ public static final void cairo_stroke_ex
+@@ -1339,8 +1339,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -11934,7 +12165,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_stroke_preserve(cr);
-@@ -1349,8 +1349,8 @@ public static final void cairo_stroke_pr
+@@ -1349,8 +1349,8 @@
  	}
  }
  /** @param other cast=(cairo_surface_t *) */
@@ -11945,7 +12176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_surface_create_similar(other, format, width, height);
-@@ -1359,8 +1359,8 @@ public static final int /*long*/ cairo_s
+@@ -1359,8 +1359,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -11956,7 +12187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_surface_destroy(surface);
-@@ -1369,8 +1369,8 @@ public static final void cairo_surface_d
+@@ -1369,8 +1369,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -11967,7 +12198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_surface_finish(surface);
-@@ -1382,8 +1382,8 @@ public static final void cairo_surface_f
+@@ -1382,8 +1382,8 @@
   * @method flags=dynamic
   * @param surface cast=(cairo_surface_t *)
   */
@@ -11978,7 +12209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_surface_get_type(surface);
-@@ -1395,8 +1395,8 @@ public static final int cairo_surface_ge
+@@ -1395,8 +1395,8 @@
   * @param surface cast=(cairo_surface_t *)
   * @param key cast=(cairo_user_data_key_t *)
   */
@@ -11989,7 +12220,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_surface_get_user_data(surface, key);
-@@ -1405,8 +1405,8 @@ public static final int /*long*/ cairo_s
+@@ -1405,8 +1405,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -12000,7 +12231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_surface_reference(surface);
-@@ -1415,8 +1415,8 @@ public static final void cairo_surface_r
+@@ -1415,8 +1415,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -12011,7 +12242,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_surface_set_device_offset(surface, x_offset, y_offset);
-@@ -1425,8 +1425,8 @@ public static final void cairo_surface_s
+@@ -1425,8 +1425,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -12022,7 +12253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_surface_set_fallback_resolution(surface, x_pixels_per_inch, y_pixels_per_inch);
-@@ -1440,8 +1440,8 @@ public static final void cairo_surface_s
+@@ -1440,8 +1440,8 @@
   * @param user_data cast=(void *)
   * @param destroy cast=(cairo_destroy_func_t)
   */
@@ -12033,7 +12264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_surface_set_user_data(surface, key, user_data, destroy);
-@@ -1454,8 +1454,8 @@ public static final int cairo_surface_se
+@@ -1454,8 +1454,8 @@
   * @param utf8 cast=(const char *)
   * @param extents cast=(cairo_text_extents_t *)
   */
@@ -12044,7 +12275,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_text_extents(cr, utf8, extents);
-@@ -1467,8 +1467,8 @@ public static final void cairo_text_exte
+@@ -1467,8 +1467,8 @@
   * @param cr cast=(cairo_t *)
   * @param utf8 cast=(const char *)
   */
@@ -12055,7 +12286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_text_path(cr, utf8);
-@@ -1480,8 +1480,8 @@ public static final void cairo_text_path
+@@ -1480,8 +1480,8 @@
   * @param cr cast=(cairo_t *)
   * @param matrix cast=(cairo_matrix_t *)
   */
@@ -12066,7 +12297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_transform(cr, matrix);
-@@ -1490,8 +1490,8 @@ public static final void cairo_transform
+@@ -1490,8 +1490,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -12077,7 +12308,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_translate(cr, tx, ty);
-@@ -1500,8 +1500,8 @@ public static final void cairo_translate
+@@ -1500,8 +1500,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -12088,7 +12319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_user_to_device(cr, x, y);
-@@ -1510,8 +1510,8 @@ public static final void cairo_user_to_d
+@@ -1510,8 +1510,8 @@
  	}
  }
  /** @param cr cast=(cairo_t *) */
@@ -12099,7 +12330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_user_to_device_distance(cr, dx, dy);
-@@ -1525,8 +1525,8 @@ public static final native int cairo_ver
+@@ -1525,8 +1525,8 @@
   * @param drawable cast=(Drawable)
   * @param visual cast=(Visual *)
   */
@@ -12110,7 +12341,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_xlib_surface_create(dpy, drawable, visual, width, height);
-@@ -1539,8 +1539,8 @@ public static final int /*long*/ cairo_x
+@@ -1539,8 +1539,8 @@
   * @param pixmap cast=(Pixmap)
   * @param screen cast=(Screen *)
   */
@@ -12121,7 +12352,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		return _cairo_xlib_surface_create_for_bitmap(dpy, pixmap, screen, width, height);
-@@ -1549,8 +1549,8 @@ public static final int /*long*/ cairo_x
+@@ -1549,8 +1549,8 @@
  	}
  }
  /** @param surface cast=(cairo_surface_t *) */
@@ -12132,7 +12363,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
  	lock.lock();
  	try {
  		_cairo_xlib_surface_set_size(surface, width, height);
-@@ -1563,18 +1563,18 @@ public static final void cairo_xlib_surf
+@@ -1563,18 +1563,18 @@
   * @param src cast=(const void *)
   * @param size cast=(size_t)
   */
@@ -12154,10 +12385,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/Cairo.java swt-gtk
 +public static final native void memmove(double[] dest, long /*int*/ src, long /*int*/ size);
  
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/cairo_path_t.java swt-gtk-3.6.2/org/eclipse/swt/internal/cairo/cairo_path_t.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/cairo_path_t.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/cairo/cairo_path_t.java	2011-03-21 11:34:23.315734069 +0000
-@@ -24,7 +24,7 @@ package org.eclipse.swt.internal.cairo;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/cairo/cairo_path_t.java swt-gtk-3.7//org/eclipse/swt/internal/cairo/cairo_path_t.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/cairo/cairo_path_t.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/cairo/cairo_path_t.java	2011-06-13 20:53:32.000000000 +0000
+@@ -24,7 +24,7 @@
  public class cairo_path_t {
  	public int status;
  	/** @field cast=(cairo_path_data_t *) */
@@ -12166,10 +12397,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cairo/cairo_path_t.java
  	public int num_data;
  	public static final int sizeof = Cairo.cairo_path_t_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.6.2/org/eclipse/swt/internal/Callback.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/Callback.java	2011-03-21 11:34:23.475731816 +0000
-@@ -28,7 +28,7 @@ public class Callback {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.7//org/eclipse/swt/internal/Callback.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/Callback.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/Callback.java	2011-06-13 20:53:32.000000000 +0000
+@@ -28,7 +28,7 @@
  	Object object;
  	String method, signature;
  	int argCount;
@@ -12178,7 +12409,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.
  	boolean isStatic, isArrayBased;
  
  	static final String PTR_SIGNATURE = C.PTR_SIZEOF == 4 ? "I" : "J"; //$NON-NLS-1$  //$NON-NLS-2$
-@@ -88,7 +88,7 @@ public Callback (Object object, String m
+@@ -88,7 +88,7 @@
   * @param isArrayBased <code>true</code> if the arguments should be passed in an array and false otherwise
   * @param errorResult the return value if the java code throws an exception
   */
@@ -12187,7 +12418,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.
  
  	/* Set the callback fields */
  	this.object = object;
-@@ -131,7 +131,7 @@ public Callback (Object object, String m
+@@ -131,7 +131,7 @@
   * @param isArrayBased whether the callback's method is array based
   * @param errorResult the callback's error result
   */
@@ -12196,7 +12427,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.
  
  /**
   * Releases the native level resources associated with the callback,
-@@ -152,7 +152,7 @@ public void dispose () {
+@@ -152,7 +152,7 @@
   *
   * @return the callback address
   */
@@ -12205,10 +12436,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Callback.java swt-gtk-3.
  	return address;
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6.2/org/eclipse/swt/internal/cde/CDE.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/cde/CDE.java	2011-03-21 11:34:23.325733931 +0000
-@@ -33,8 +33,8 @@ public class CDE extends Platform {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.7//org/eclipse/swt/internal/cde/CDE.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/cde/CDE.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/cde/CDE.java	2011-06-13 20:53:32.000000000 +0000
+@@ -33,8 +33,8 @@
   * @param appName cast=(char *)
   * @param appClass cast=(char *)
   */
@@ -12219,7 +12450,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _DtAppInitialize(appContext, display, topWiget, appName, appClass);
-@@ -51,8 +51,8 @@ public static final void DtDbLoad() {
+@@ -51,8 +51,8 @@
  		lock.unlock();
  	}
  }
@@ -12230,7 +12461,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _DtDtsDataTypeNames();
-@@ -61,8 +61,8 @@ public static final int /*long*/ DtDtsDa
+@@ -61,8 +61,8 @@
  	}
  }
  /** @param fileName cast=(char *) */
@@ -12241,7 +12472,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _DtDtsFileToDataType(fileName);
-@@ -85,8 +85,8 @@ public static final boolean DtDtsDataTyp
+@@ -85,8 +85,8 @@
   * @param attrName cast=(char *)
   * @param optName cast=(char *)
   */
@@ -12252,7 +12483,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _DtDtsDataTypeToAttributeValue(dataType, attrName, optName);
-@@ -95,8 +95,8 @@ public static final int /*long*/ DtDtsDa
+@@ -95,8 +95,8 @@
  	}
  }
  /** @param dataType cast=(char *) */
@@ -12263,7 +12494,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_DtDtsFreeDataType(dataType);
-@@ -105,8 +105,8 @@ public static final void DtDtsFreeDataTy
+@@ -105,8 +105,8 @@
  	}
  }
  /** @param dataTypeList cast=(char **) */
@@ -12274,7 +12505,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_DtDtsFreeDataTypeNames(dataTypeList);
-@@ -115,8 +115,8 @@ public static final void DtDtsFreeDataTy
+@@ -115,8 +115,8 @@
  	}
  }
  /** @param attrValue cast=(char *) */
@@ -12285,7 +12516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_DtDtsFreeAttributeValue(attrValue);
-@@ -133,8 +133,8 @@ public static final void DtDtsFreeAttrib
+@@ -133,8 +133,8 @@
   * @param callback cast=(DtActionCallbackProc)
   * @param clientData cast=(XtPointer)
   */
@@ -12296,7 +12527,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _DtActionInvoke(topWidget, action, args, argCount, termOpts, execHost, contextDir, useIndicator, callback, clientData);
-@@ -143,8 +143,8 @@ public static final long DtActionInvoke(
+@@ -143,8 +143,8 @@
  	}
  }
  /** @method flags=const */
@@ -12307,7 +12538,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _topLevelShellWidgetClass();
-@@ -159,8 +159,8 @@ public static final int /*long*/ topLeve
+@@ -159,8 +159,8 @@
   * @param display cast=(Display *)
   * @param argList cast=(ArgList)
   */
@@ -12318,7 +12549,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _XtAppCreateShell(appName, appClass, widgetClass, display, argList, argCount);
-@@ -168,8 +168,8 @@ public static final int /*long*/ XtAppCr
+@@ -168,8 +168,8 @@
  		lock.unlock();
  	}
  }
@@ -12329,7 +12560,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		return _XtCreateApplicationContext();
-@@ -187,8 +187,8 @@ public static final int /*long*/ XtCreat
+@@ -187,8 +187,8 @@
   * @param argc cast=(int *)
   * @param argv cast=(String *)
   */
@@ -12340,7 +12571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_XtDisplayInitialize(appContext, display, appName, appClass, options, num_options, argc, argv);
-@@ -197,8 +197,8 @@ public static final void XtDisplayInitia
+@@ -197,8 +197,8 @@
  	}
  }
  /** @param widget cast=(Widget) */
@@ -12351,7 +12582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_XtRealizeWidget(widget);
-@@ -207,8 +207,8 @@ public static final void XtRealizeWidget
+@@ -207,8 +207,8 @@
  	}
  }
  /** @param widget cast=(Widget) */
@@ -12362,7 +12593,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_XtResizeWidget(widget, width, height, borderWidth);
-@@ -217,8 +217,8 @@ public static final void XtResizeWidget(
+@@ -217,8 +217,8 @@
  	}
  }
  /** @param widget cast=(Widget) */
@@ -12373,10 +12604,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/CDE.java swt-gtk-3.6
  	lock.lock();
  	try {
  		_XtSetMappedWhenManaged(widget, flag);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/DtActionArg.java swt-gtk-3.6.2/org/eclipse/swt/internal/cde/DtActionArg.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/DtActionArg.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/cde/DtActionArg.java	2011-03-21 11:34:23.325733931 +0000
-@@ -14,6 +14,6 @@ package org.eclipse.swt.internal.cde;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/cde/DtActionArg.java swt-gtk-3.7//org/eclipse/swt/internal/cde/DtActionArg.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/cde/DtActionArg.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/cde/DtActionArg.java	2011-06-13 20:53:32.000000000 +0000
+@@ -14,6 +14,6 @@
  public class DtActionArg {
  	public int argClass;
  	/** @field accessor=u.file.name,cast=(char *) */
@@ -12384,10 +12615,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/cde/DtActionArg.java swt
 +	public long /*int*/ name;
  	public static final int sizeof = CDE.DtActionArg_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/C.java swt-gtk-3.6.2/org/eclipse/swt/internal/C.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/C.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/C.java	2011-03-21 11:34:23.295734363 +0000
-@@ -24,118 +24,118 @@ public class C extends Platform {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/C.java swt-gtk-3.7//org/eclipse/swt/internal/C.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/C.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/C.java	2011-06-13 20:53:32.000000000 +0000
+@@ -24,118 +24,118 @@
  	public static final int PTR_SIZEOF = PTR_sizeof ();
  
  /** @param ptr cast=(void *) */
@@ -12528,10 +12759,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/C.java swt-gtk-3.6.2/org
 -public static final native int strlen (int /*long*/ s);
 +public static final native int strlen (long /*int*/ s);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Converter.java swt-gtk-3.6.2/org/eclipse/swt/internal/Converter.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Converter.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/Converter.java	2011-03-21 11:34:23.335733804 +0000
-@@ -37,8 +37,8 @@ public static String defaultCodePage ()
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/Converter.java swt-gtk-3.7//org/eclipse/swt/internal/Converter.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/Converter.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/Converter.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,8 +37,8 @@
  }
  
  public static char [] mbcsToWcs (String codePage, byte [] buffer) {
@@ -12542,7 +12773,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Converter.java swt-gtk-3
  	if (ptr == 0) return EmptyCharArray;
  	int length = (int)/*64*/items_written [0];
  	char [] chars = new char [length];
-@@ -55,12 +55,12 @@ public static byte [] wcsToMbcs (String
+@@ -55,12 +55,12 @@
  }
  
  public static byte [] wcsToMbcs (String codePage, char [] buffer, boolean terminate) {
@@ -12557,10 +12788,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Converter.java swt-gtk-3
  	if (ptr == 0) return terminate ? NullByteArray : EmptyByteArray;
  	int written = (int)/*64*/items_written [0];
  	byte [] bytes = new byte [written + (terminate ? 1 : 0)];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk-3.6.2/org/eclipse/swt/internal/gnome/GNOME.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gnome/GNOME.java	2011-03-21 11:34:23.485731671 +0000
-@@ -39,8 +39,8 @@ public static final native int GnomeVFSM
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk-3.7//org/eclipse/swt/internal/gnome/GNOME.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gnome/GNOME.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gnome/GNOME.java	2011-06-13 20:53:32.000000000 +0000
+@@ -39,8 +39,8 @@
  /** Natives */
  
  /** @param mem cast=(gpointer) */
@@ -12571,7 +12802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_g_free(mem);
-@@ -52,8 +52,8 @@ public static final void g_free(int /*lo
+@@ -52,8 +52,8 @@
   * @param list cast=(GList *)
   * @param data cast=(gpointer)
   */
@@ -12582,7 +12813,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _g_list_append(list, data);
-@@ -62,8 +62,8 @@ public static final int /*long*/ g_list_
+@@ -62,8 +62,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -12593,7 +12824,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_g_list_free(list);
-@@ -71,8 +71,8 @@ public static final void g_list_free(int
+@@ -71,8 +71,8 @@
  		lock.unlock();
  	}
  }
@@ -12604,7 +12835,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _g_list_next(list);
-@@ -81,8 +81,8 @@ public static final int /*long*/ g_list_
+@@ -81,8 +81,8 @@
  	}
  }
  /** @param object cast=(gpointer) */
@@ -12615,7 +12846,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_g_object_unref(object);
-@@ -100,8 +100,8 @@ public static final void g_object_unref(
+@@ -100,8 +100,8 @@
   * @param flags cast=(GnomeIconLookupFlags)
   * @param result cast=(GnomeIconLookupResultFlags *)
   */
@@ -12626,7 +12857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_icon_lookup(icon_theme, thumbnail_factory, file_uri, custom_icon, file_info, mime_type, flags, result);
-@@ -114,8 +114,8 @@ public static final int /*long*/ gnome_i
+@@ -114,8 +114,8 @@
   * @param icon_name cast=(const char *)
   * @param icon_data cast=(const GnomeIconData **)
   */
@@ -12637,7 +12868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_icon_theme_lookup_icon(theme, icon_name, size, icon_data, base_size);
-@@ -123,8 +123,8 @@ public static final int /*long*/ gnome_i
+@@ -123,8 +123,8 @@
  		lock.unlock();
  	}
  }
@@ -12648,7 +12879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_icon_theme_new();
-@@ -132,8 +132,8 @@ public static final int /*long*/ gnome_i
+@@ -132,8 +132,8 @@
  		lock.unlock();
  	}
  }
@@ -12659,7 +12890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_get_registered_mime_types();
-@@ -142,8 +142,8 @@ public static final int /*long*/ gnome_v
+@@ -142,8 +142,8 @@
  	}
  }
  /** @param uri cast=(const char *) */
@@ -12670,7 +12901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_get_mime_type(uri);
-@@ -162,8 +162,8 @@ public static final boolean gnome_vfs_in
+@@ -162,8 +162,8 @@
  	}
  }
  /** @param uri cast=(const char *) */
@@ -12681,7 +12912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_make_uri_from_input(uri);
-@@ -175,8 +175,8 @@ public static final int /*long*/ gnome_v
+@@ -175,8 +175,8 @@
   * @method flags=dynamic
   * @param uri cast=(const char *)
   */
@@ -12692,7 +12923,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_make_uri_from_input_with_dirs(uri, dirs);
-@@ -185,8 +185,8 @@ public static final int /*long*/ gnome_v
+@@ -185,8 +185,8 @@
  	}
  }
  /** @param application cast=(GnomeVFSMimeApplication *) */
@@ -12703,7 +12934,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_gnome_vfs_mime_application_free(application);
-@@ -209,8 +209,8 @@ public static final boolean gnome_vfs_is
+@@ -209,8 +209,8 @@
   * @param application cast=(GnomeVFSMimeApplication *)
   * @param uris cast=(GList *)
   */
@@ -12714,7 +12945,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_mime_application_launch(application, uris);
-@@ -219,8 +219,8 @@ public static final int gnome_vfs_mime_a
+@@ -219,8 +219,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -12725,7 +12956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_gnome_vfs_mime_extensions_list_free(list);
-@@ -229,8 +229,8 @@ public static final void gnome_vfs_mime_
+@@ -229,8 +229,8 @@
  	}
  }
  /** @param mimeType cast=(const char *) */
@@ -12736,7 +12967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_mime_get_default_application(mimeType);
-@@ -239,8 +239,8 @@ public static final int /*long*/ gnome_v
+@@ -239,8 +239,8 @@
  	}
  }
  /** @param mime_type cast=(const char *) */
@@ -12747,7 +12978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_mime_get_extensions_list(mime_type);
-@@ -249,8 +249,8 @@ public static final int /*long*/ gnome_v
+@@ -249,8 +249,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -12758,7 +12989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		_gnome_vfs_mime_registered_mime_type_list_free(list);
-@@ -259,8 +259,8 @@ public static final void gnome_vfs_mime_
+@@ -259,8 +259,8 @@
  	}
  }
  /** @param file cast=(const char *) */
@@ -12769,7 +13000,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_mime_type_from_name(file);
-@@ -272,8 +272,8 @@ public static final int /*long*/ gnome_v
+@@ -272,8 +272,8 @@
   * @param mime_type cast=(const char *)
   * @param base_mime_type cast=(const char *) 
   */
@@ -12780,7 +13011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_mime_type_get_equivalence(mime_type, base_mime_type);
-@@ -285,8 +285,8 @@ public static final int /*long*/ gnome_v
+@@ -285,8 +285,8 @@
   * @method flags=dynamic
   * @param url cast=(const char *)
   */
@@ -12791,17 +13022,17 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GNOME.java swt-gtk
  	lock.lock();
  	try {
  		return _gnome_vfs_url_show(url);
-@@ -299,5 +299,5 @@ public static final int gnome_vfs_url_sh
+@@ -299,5 +299,5 @@
   * @param src cast=(const void *)
   * @param count cast=(size_t)
   */
 -public static final native void memmove (GnomeVFSMimeApplication dest, int /*long*/ src, int /*long*/ count);
 +public static final native void memmove (GnomeVFSMimeApplication dest, long /*int*/ src, long /*int*/ count);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java swt-gtk-3.6.2/org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java	2011-03-21 11:34:23.475731816 +0000
-@@ -17,17 +17,17 @@ package org.eclipse.swt.internal.gnome;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java swt-gtk-3.7//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplication.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,17 +17,17 @@
   
  public class GnomeVFSMimeApplication {
  	/** @field cast=(char *) */
@@ -12823,10 +13054,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gnome/GnomeVFSMimeApplic
  	/** @field cast=(gboolean) */
  	public boolean requires_terminal;
  	public static final int sizeof = GNOME.GnomeVFSMimeApplication_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkDragContext.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkDragContext.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkDragContext.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkDragContext.java	2011-03-21 11:34:23.345733664 +0000
-@@ -21,11 +21,11 @@ public class GdkDragContext {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkDragContext.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkDragContext.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkDragContext.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkDragContext.java	2011-06-13 20:53:32.000000000 +0000
+@@ -21,11 +21,11 @@
     /** @field cast=(gboolean) */
  	public boolean is_source;
     /** @field cast=(GdkWindow *) */
@@ -12841,10 +13072,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkDragContext.java
     /** @field cast=(GdkDragAction) */
  	public int actions;
     /** @field cast=(GdkDragAction) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventAny.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventAny.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventAny.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventAny.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventAny.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventAny.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventAny.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventAny.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventAny extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12853,10 +13084,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventAny.java swt
  	/** @field cast=(gint8) */
  	public byte send_event;
  	public static final int sizeof = OS.GdkEventAny_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventButton.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventButton.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventButton.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventButton.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventButton extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12865,7 +13096,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field cast=(guint32) */
-@@ -27,13 +27,13 @@ public class GdkEventButton extends GdkE
+@@ -27,13 +27,13 @@
  	/** @field cast=(gdouble) */
  	public double y;
  	/** @field cast=(gdouble *) */
@@ -12881,10 +13112,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventButton.java
  	/** @field cast=(gdouble) */
  	public double x_root;
  	/** @field cast=(gdouble) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventCrossing.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventCrossing.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventCrossing.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventCrossing.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,11 +17,11 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventCrossing.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventCrossing.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventCrossing.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventCrossing.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,11 +17,11 @@
  
  public class GdkEventCrossing extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12898,10 +13129,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventCrossing.jav
  	public int time;
  	public double x;
  	public double y;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventExpose.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventExpose.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventExpose.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventExpose.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventExpose extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12910,7 +13141,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field accessor=area.x */
-@@ -29,7 +29,7 @@ public class GdkEventExpose extends GdkE
+@@ -29,7 +29,7 @@
  	/** @field accessor=area.height */
  	public int area_height;
  	/** @field cast=(GdkRegion *) */
@@ -12919,10 +13150,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventExpose.java
  	/** @field cast=(gint) */
  	public int count;
  	public static final int sizeof = OS.GdkEventExpose_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventFocus.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventFocus.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventFocus.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventFocus.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventFocus.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventFocus.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventFocus.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventFocus.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventFocus extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12931,10 +13162,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventFocus.java s
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field cast=(gint16) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventKey.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventKey.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventKey.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventKey.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventKey extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12943,7 +13174,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java swt
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field cast=(guint32) */
-@@ -29,7 +29,7 @@ public class GdkEventKey extends GdkEven
+@@ -29,7 +29,7 @@
  	/** @field cast=(gint) */
  	public int length;
  	/** @field cast=(gchar *) */
@@ -12952,10 +13183,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventKey.java swt
  	/** @field cast=(guint16) */
  	public short hardware_keycode;
      /** @field cast=(guint8) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventMotion.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventMotion.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventMotion.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventMotion.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventMotion extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12964,7 +13195,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field cast=(guint32) */
-@@ -27,13 +27,13 @@ public class GdkEventMotion extends GdkE
+@@ -27,13 +27,13 @@
  	/** @field cast=(gdouble) */
  	public double y;
  	/** @field cast=(gdouble *) */
@@ -12980,10 +13211,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventMotion.java
  	/** @field cast=(gdouble) */
  	public double x_root;
  	/** @field cast=(gdouble) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventProperty.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventProperty.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventProperty.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventProperty.java	2011-03-21 11:34:23.335733804 +0000
-@@ -16,11 +16,11 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventProperty.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventProperty.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventProperty.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventProperty.java	2011-06-13 20:53:32.000000000 +0000
+@@ -16,11 +16,11 @@
  
  public class GdkEventProperty extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -12997,10 +13228,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventProperty.jav
  	/** @field cast=(guint32) */
  	public int time;
  	/** @field cast=(guint) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventScroll.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventScroll.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventScroll.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventScroll.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventScroll extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -13009,7 +13240,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java
  	/** @field cast=(gint8) */
  	public byte send_event;
  	/** @field cast=(guint32) */
-@@ -31,7 +31,7 @@ public class GdkEventScroll extends GdkE
+@@ -31,7 +31,7 @@
  	/** @field cast=(GdkScrollDirection) */
  	public int direction;
  	/** @field cast=(GdkDevice *) */
@@ -13018,10 +13249,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventScroll.java
  	/** @field cast=(gdouble) */
  	public double x_root;
  	/** @field cast=(gdouble) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventVisibility.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventVisibility.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventVisibility.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventVisibility.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventVisibility.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventVisibility.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventVisibility.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventVisibility.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventVisibility extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -13030,10 +13261,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventVisibility.j
  	/** @field cast=(gint8) */
  	public byte send_event; 
  	/** @field cast=(GdkVisibilityState) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventWindowState.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventWindowState.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventWindowState.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkEventWindowState.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventWindowState.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventWindowState.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkEventWindowState.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkEventWindowState.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GdkEventWindowState extends GdkEvent {
  	/** @field cast=(GdkWindow *) */
@@ -13042,10 +13273,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkEventWindowState.
  	public byte send_event; 
  	public int changed_mask;
  	public int new_window_state;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkGCValues.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkGCValues.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkGCValues.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkGCValues.java	2011-03-21 11:34:23.345733664 +0000
-@@ -33,17 +33,17 @@ public class GdkGCValues {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkGCValues.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkGCValues.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkGCValues.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkGCValues.java	2011-06-13 20:53:32.000000000 +0000
+@@ -33,17 +33,17 @@
  	/** @field accessor=background.blue,cast=(guint16) */
  	public short background_blue;
  	/** @field cast=(GdkFont *) */
@@ -13068,10 +13299,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkGCValues.java swt
  	/** @field cast=(GdkSubwindowMode) */
  	public int subwindow_mode;
  	/** @field cast=(gint) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkImage.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkImage.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkImage.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkImage.java	2011-03-21 11:34:23.345733664 +0000
-@@ -19,7 +19,7 @@ public class GdkImage {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkImage.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkImage.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkImage.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkImage.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,7 +19,7 @@
  	/** @field cast=(GdkImageType) */
  	public int type;
  	/** @field cast=(GdkVisual *) */
@@ -13080,7 +13311,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkImage.java swt-gt
  	/** @field cast=(GdkByteOrder) */
  	public int byte_order;
  	/** @field cast=(gint) */
-@@ -35,9 +35,9 @@ public class GdkImage {
+@@ -35,9 +35,9 @@
  	/** @field cast=(guint16) */
  	public short bits_per_pixel;
  	/** @field cast=(gpointer) */
@@ -13093,10 +13324,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkImage.java swt-gt
 -	public int /*long*/ windowing_data;
 +	public long /*int*/ windowing_data;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkWindowAttr.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkWindowAttr.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkWindowAttr.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GdkWindowAttr.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,23 +17,23 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkWindowAttr.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkWindowAttr.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GdkWindowAttr.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GdkWindowAttr.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,23 +17,23 @@
  
  public class GdkWindowAttr {
  	/** @field cast=(gchar *) */
@@ -13126,10 +13357,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GdkWindowAttr.java s
  	public boolean override_redirect;
  	public static final int sizeof = OS.GdkWindowAttr_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GInterfaceInfo.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GInterfaceInfo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GInterfaceInfo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GInterfaceInfo.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,10 +17,10 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GInterfaceInfo.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GInterfaceInfo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GInterfaceInfo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GInterfaceInfo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,10 +17,10 @@
  
  public class GInterfaceInfo {
  	/** @field cast=(GInterfaceInitFunc) */
@@ -13143,10 +13374,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GInterfaceInfo.java
 +	public long /*int*/ interface_data;
  	public static final int sizeof = OS.GInterfaceInfo_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GObjectClass.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GObjectClass.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GObjectClass.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GObjectClass.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,17 +17,17 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GObjectClass.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GObjectClass.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GObjectClass.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GObjectClass.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,17 +17,17 @@
  
  public class GObjectClass {
  	/** @field cast=(GObject *(*)()) */
@@ -13171,10 +13402,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GObjectClass.java sw
 -	public int /*long*/ notify;
 +	public long /*int*/ notify;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkCellRendererClass.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkCellRendererClass.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkCellRendererClass.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GtkCellRendererClass {
  	/** @field cast=(void(*)()) */
@@ -13184,10 +13415,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCellRendererClass
 -	public int /*long*/ get_size;
 +	public long /*int*/ get_size;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,11 +17,11 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkColorSelectionDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,11 +17,11 @@
  
  public class GtkColorSelectionDialog {
  	/** @field cast=(GtkWidget *) */
@@ -13203,10 +13434,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkColorSelectionDia
 -	public int /*long*/ help_button;
 +	public long /*int*/ help_button;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCombo.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkCombo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCombo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkCombo.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkCombo.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkCombo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkCombo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkCombo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GtkCombo {
  	/** @field cast=(GtkWidget *) */
@@ -13216,10 +13447,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkCombo.java swt-gt
 -	public int /*long*/ list;
 +	public long /*int*/ list;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkFileSelection.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkFileSelection.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkFileSelection.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkFileSelection.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,43 +17,43 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkFileSelection.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkFileSelection.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkFileSelection.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkFileSelection.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,43 +17,43 @@
  
  public class GtkFileSelection {
  	/** @field cast=(GtkWidget *) */
@@ -13283,20 +13514,20 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkFileSelection.jav
 -	public int /*long*/ action_area;
 +	public long /*int*/ action_area;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkFixed.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkFixed.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkFixed.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkFixed.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,5 +17,5 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkFixed.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkFixed.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkFixed.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkFixed.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,5 +17,5 @@
  
  public class GtkFixed {
  	/** @field cast=(GList *) */
 -	public int /*long*/ children;
 +	public long /*int*/ children;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkSelectionData.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkSelectionData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkSelectionData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkSelectionData.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,15 +17,15 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkSelectionData.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkSelectionData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkSelectionData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkSelectionData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,15 +17,15 @@
  
  public class GtkSelectionData {
  	/** @field cast=(GdkAtom) */
@@ -13316,10 +13547,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkSelectionData.jav
  	/** @field cast=(gint) */
  	public int  length;
  	public static final int sizeof = OS.GtkSelectionData_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetEntry.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkTargetEntry.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetEntry.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkTargetEntry.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkTargetEntry.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkTargetEntry.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkTargetEntry.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkTargetEntry.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GtkTargetEntry {
  	/** @field cast=(gchar *) */
@@ -13328,10 +13559,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetEntry.java
  	/** @field cast=(guint) */
  	public int flags;
  	/** @field cast=(guint) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetPair.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkTargetPair.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetPair.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkTargetPair.java	2011-03-21 11:34:23.345733664 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkTargetPair.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkTargetPair.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkTargetPair.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkTargetPair.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class GtkTargetPair {
  	/** @field cast=(GdkAtom) */
@@ -13340,10 +13571,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkTargetPair.java s
  	/** @field cast=(guint) */
  	public int flags;
  	/** @field cast=(guint) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkWidgetClass.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkWidgetClass.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkWidgetClass.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GtkWidgetClass.java	2011-03-21 11:34:23.335733804 +0000
-@@ -19,127 +19,127 @@ public class GtkWidgetClass extends GObj
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkWidgetClass.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkWidgetClass.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GtkWidgetClass.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GtkWidgetClass.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,127 +19,127 @@
  	public int activate_signal;
  	public int set_scroll_adjustments_signal;	
  	/** @field cast=(void(*)()) */
@@ -13533,10 +13764,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GtkWidgetClass.java
 -	public int /*long*/ screen_changed;
 +	public long /*int*/ screen_changed;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeInfo.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GTypeInfo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeInfo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GTypeInfo.java	2011-03-21 11:34:23.345733664 +0000
-@@ -19,22 +19,22 @@ public class GTypeInfo {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GTypeInfo.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GTypeInfo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GTypeInfo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GTypeInfo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,22 +19,22 @@
  	/** @field cast=(guint16) */
  	public short class_size;
  	/** @field cast=(GBaseInitFunc) */
@@ -13566,10 +13797,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeInfo.java swt-g
 +	public long /*int*/ value_table;
  	public static final int sizeof = OS.GTypeInfo_sizeof();	
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeQuery.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GTypeQuery.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeQuery.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/GTypeQuery.java	2011-03-21 11:34:23.335733804 +0000
-@@ -19,7 +19,7 @@ public class GTypeQuery {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GTypeQuery.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/GTypeQuery.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/GTypeQuery.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/GTypeQuery.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,7 +19,7 @@
  	/** @field cast=(GType) */
  	public int type;
  	/** @field cast=(const gchar *) */
@@ -13578,10 +13809,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/GTypeQuery.java swt-
  	/** @field cast=(guint) */
  	public int class_size;
  	/** @field cast=(guint) */
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/OS.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/OS.java	2011-03-21 11:34:23.425732531 +0000
-@@ -38,7 +38,7 @@ public class OS extends C {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/OS.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/OS.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/OS.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,7 +38,7 @@
  	}
  
  	/** Constants */
@@ -13590,7 +13821,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	public static final int ATK_RELATION_LABELLED_BY = 4;
  	public static final int G_FILE_TEST_IS_DIR = 1 << 2;
  	public static final int G_FILE_TEST_IS_EXECUTABLE = 1 << 3;
-@@ -615,89 +615,89 @@ public static final native int XExposeEv
+@@ -634,12 +634,12 @@
  public static final native int XFocusChangeEvent_sizeof();
  public static final native int XVisibilityEvent_sizeof();
  public static final native int XWindowChanges_sizeof();
@@ -13603,7 +13834,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
 -public static final native int /*long*/ realpath(byte[] path, byte[] realPath);
 +public static final native long /*int*/ realpath(byte[] path, byte[] realPath);
  
- /** Object private fields accessors */
+ 
+ 
+@@ -647,78 +647,78 @@
  
  
  /** @param object_class cast=(GObjectClass *) */
@@ -13714,7 +13947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  
  /** X11 Native methods and constants */
  public static final int Above = 0;
-@@ -715,7 +715,7 @@ public static final int FocusOut = 10;
+@@ -736,7 +736,7 @@
  public static final int GraphicsExpose = 13;
  public static final int NoExpose = 14;
  public static final int ExposureMask = 1 << 15;
@@ -13723,7 +13956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  public static final int NotifyNormal = 0;
  public static final int NotifyGrab = 1;
  public static final int NotifyHint = 1;
-@@ -731,8 +731,8 @@ public static final int VisibilityChange
+@@ -752,8 +752,8 @@
  public static final int VisibilityFullyObscured = 2;
  public static final int VisibilityNotify = 15;
  public static final int SYSTEM_TRAY_REQUEST_DOCK = 0;
@@ -13734,7 +13967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _Call(proc, arg1, arg2);
-@@ -740,8 +740,8 @@ public static final int Call(int /*long*
+@@ -761,8 +761,8 @@
  		lock.unlock();
  	}
  }
@@ -13745,7 +13978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _call(function, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -752,8 +752,8 @@ public static final int /*long*/ call (i
+@@ -773,8 +773,8 @@
  /** @method flags=no_gen */
  public static final native boolean GDK_WINDOWING_X11();
  /** @param pixmap cast=(GdkPixmap *) */
@@ -13756,7 +13989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GDK_PIXMAP_XID(pixmap);
-@@ -766,8 +766,8 @@ public static final int /*long*/ GDK_PIX
+@@ -787,8 +787,8 @@
   * @param event_mask cast=(long)
   * @param event_return cast=(XEvent *)
   */
@@ -13767,7 +14000,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XCheckMaskEvent(display, event_mask, event_return);
-@@ -781,8 +781,8 @@ public static final boolean XCheckMaskEv
+@@ -802,8 +802,8 @@
   * @param event_mask cast=(long)
   * @param event_return cast=(XEvent *)
   */
@@ -13778,7 +14011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XCheckWindowEvent(display, window, event_mask, event_return);
-@@ -796,8 +796,8 @@ public static final boolean XCheckWindow
+@@ -817,8 +817,8 @@
   * @param predicate cast=(Bool (*)())
   * @param arg cast=(XPointer)
   */
@@ -13789,7 +14022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XCheckIfEvent(display, event_return, predicate, arg);
-@@ -806,8 +806,8 @@ public static final boolean XCheckIfEven
+@@ -827,8 +827,8 @@
  	}
  }
  /** @param display cast=(Display *) */
@@ -13800,7 +14033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XDefaultScreen(display);
-@@ -816,8 +816,8 @@ public static final int XDefaultScreen(i
+@@ -837,8 +837,8 @@
  	}
  }
  /** @param display cast=(Display *) */
@@ -13811,7 +14044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XDefaultRootWindow(display);
-@@ -826,8 +826,8 @@ public static final int /*long*/ XDefaul
+@@ -847,8 +847,8 @@
  	}
  }
  /** @param display cast=(Display *) */
@@ -13822,7 +14055,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XFlush(display);
-@@ -836,8 +836,8 @@ public static final void XFlush(int /*lo
+@@ -857,8 +857,8 @@
  	}
  }
  /** @param address cast=(void *) */
@@ -13833,7 +14066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XFree(address);
-@@ -851,8 +851,8 @@ public static final void XFree(int /*lon
+@@ -872,8 +872,8 @@
   * @param owner cast=(Window)
   * @param time cast=(Time)
   */
@@ -13844,7 +14077,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSetSelectionOwner(display, selection, window, time);
-@@ -864,8 +864,8 @@ public static final int /*long*/ XSetSel
+@@ -885,8 +885,8 @@
   * @param display cast=(Display *)
   * @param selection cast=(Atom)
   */
@@ -13855,7 +14088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XGetSelectionOwner(display, selection);
-@@ -886,8 +886,8 @@ public static final int /*long*/ XGetSel
+@@ -907,8 +907,8 @@
   * @param bytes_after_return cast=(unsigned long *)
   * @param prop_return cast=(unsigned char **)
   */
@@ -13866,7 +14099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XGetWindowProperty(display, window, property, offset, length, delete, req_type, actual_type_return, actual_format_return , nitems_return, bytes_after_return, prop_return);
-@@ -902,8 +902,8 @@ public static final int /*long*/ XGetWin
+@@ -923,8 +923,8 @@
   * @param name cast=(char *)
   * @param ifExists cast=(Bool)
   */
@@ -13877,7 +14110,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XInternAtom(display, name, ifExists);
-@@ -922,8 +922,8 @@ public static final int /*long*/ XIntern
+@@ -943,8 +943,8 @@
   * @param win_y_return cast=(int *)
   * @param mask_return cast=(unsigned int *)
   */
@@ -13888,7 +14121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XQueryPointer(display, w, root_return, child_return, root_x_return, root_y_return, win_x_return, win_y_return, mask_return);
-@@ -939,8 +939,8 @@ public static final int XQueryPointer(in
+@@ -960,8 +960,8 @@
   * @param children_return cast=(Window **)
   * @param nchildren_return cast=(unsigned int *)
   */
@@ -13899,7 +14132,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XQueryTree(display, w, root_return, parent_return, children_return, nchildren_return);
-@@ -952,8 +952,8 @@ public static final int XQueryTree(int /
+@@ -973,8 +973,8 @@
   * @param display cast=(Display *)
   * @param keysym cast=(KeySym)
   */
@@ -13910,7 +14143,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XKeysymToKeycode(display, keysym);
-@@ -966,8 +966,8 @@ public static final int XKeysymToKeycode
+@@ -987,8 +987,8 @@
   * @param window cast=(Window)
   * @param num_prop_return cast=(int *)
   */
@@ -13921,7 +14154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XListProperties(display, window, num_prop_return);
-@@ -980,8 +980,8 @@ public static final int /*long*/ XListPr
+@@ -1001,8 +1001,8 @@
   * @param window cast=(Window)
   * @param values flags=no_out
   */
@@ -13932,7 +14165,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XReconfigureWMWindow(display, window, screen, valueMask, values);
-@@ -994,8 +994,8 @@ public static final int XReconfigureWMWi
+@@ -1015,8 +1015,8 @@
   * @param w cast=(Window)
   * @param event_send cast=(XEvent *)
   */
@@ -13943,7 +14176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSendEvent(display, w, propogate, event_mask, event_send);
-@@ -1004,8 +1004,8 @@ public static final int XSendEvent(int /
+@@ -1025,8 +1025,8 @@
  	}
  }
  /** @param handler cast=(XIOErrorHandler) */
@@ -13954,7 +14187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSetIOErrorHandler(handler);
-@@ -1014,8 +1014,8 @@ public static final int /*long*/ XSetIOE
+@@ -1035,8 +1035,8 @@
  	}
  }
  /** @param handler cast=(XErrorHandler) */
@@ -13965,7 +14198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSetErrorHandler(handler);
-@@ -1027,8 +1027,8 @@ public static final int /*long*/ XSetErr
+@@ -1048,8 +1048,8 @@
   * @param display cast=(Display *)
   * @param window cast=(Window)
   */
@@ -13976,7 +14209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSetInputFocus(display, window, revert, time);
-@@ -1041,8 +1041,8 @@ public static final int XSetInputFocus(i
+@@ -1062,8 +1062,8 @@
   * @param w cast=(Window)
   * @param prop_window cast=(Window)
   */
@@ -13987,7 +14220,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSetTransientForHint(display, w, prop_window);
-@@ -1051,8 +1051,8 @@ public static final int XSetTransientFor
+@@ -1072,8 +1072,8 @@
  	}
  }
  /** @param display cast=(Display *) */
@@ -13998,7 +14231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XSynchronize(display, onoff);
-@@ -1065,8 +1065,8 @@ public static final int /*long*/ XSynchr
+@@ -1086,8 +1086,8 @@
   * @param is_press cast=(Bool)
   * @param delay cast=(unsigned long)
   */
@@ -14009,7 +14242,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XTestFakeButtonEvent(display, button, is_press, delay);
-@@ -1079,8 +1079,8 @@ public static final void XTestFakeButton
+@@ -1100,8 +1100,8 @@
   * @param is_press cast=(Bool)
   * @param delay cast=(unsigned long)
   */
@@ -14020,7 +14253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XTestFakeKeyEvent(display, keycode, is_press, delay);
-@@ -1092,8 +1092,8 @@ public static final void XTestFakeKeyEve
+@@ -1113,8 +1113,8 @@
   * @param display cast=(Display *)
   * @param delay cast=(unsigned long)
   */
@@ -14031,7 +14264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XTestFakeMotionEvent(display, screen_number, x, y, delay);
-@@ -1106,8 +1106,8 @@ public static final void XTestFakeMotion
+@@ -1127,8 +1127,8 @@
   * @param sourceWindow cast=(Window)
   * @param destWindow cast=(Window)
   */
@@ -14042,7 +14275,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XWarpPointer(display, sourceWindow, destWindow, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY);
-@@ -1116,8 +1116,8 @@ public static final int XWarpPointer(int
+@@ -1137,8 +1137,8 @@
  	}
  }
  /** @param atom cast=(GdkAtom) */
@@ -14053,7 +14286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_atom_to_xatom(atom);
-@@ -1126,8 +1126,8 @@ public static final int /*long*/ gdk_x11
+@@ -1147,8 +1147,8 @@
  	}
  }
  /** @param colormap cast=(GdkColormap *) */
@@ -14064,7 +14297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_colormap_get_xcolormap(colormap);
-@@ -1136,8 +1136,8 @@ public static final int /*long*/ gdk_x11
+@@ -1157,8 +1157,8 @@
  	}
  }
  /** @param drawable cast=(GdkDrawable *) */
@@ -14075,7 +14308,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_drawable_get_xdisplay(drawable);
-@@ -1146,8 +1146,8 @@ public static final int /*long*/ gdk_x11
+@@ -1167,8 +1167,8 @@
  	}
  }
  /** @param drawable cast=(GdkDrawable *) */
@@ -14086,7 +14319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_drawable_get_xid(drawable);
-@@ -1160,8 +1160,8 @@ public static final int /*long*/ gdk_x11
+@@ -1181,8 +1181,8 @@
   * @param screen cast=(GdkScreen *)
   * @param xvisualid cast=(VisualID)
   */
@@ -14097,7 +14330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_screen_lookup_visual(screen, xvisualid);
-@@ -1173,8 +1173,8 @@ public static final int /*long*/ gdk_x11
+@@ -1194,8 +1194,8 @@
   * @method flags=dynamic
   * @param screen cast=(GdkScreen *)
   */
@@ -14108,7 +14341,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_screen_get_window_manager_name(screen);
-@@ -1183,8 +1183,8 @@ public static final int /*long*/ gdk_x11
+@@ -1204,8 +1204,8 @@
  	}
  }
  /** @param visual cast=(GdkVisual *) */
@@ -14119,7 +14352,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_x11_visual_get_xvisual(visual);
-@@ -1192,8 +1192,8 @@ public static final int /*long*/ gdk_x11
+@@ -1213,8 +1213,8 @@
  		lock.unlock();
  	}
  }
@@ -14130,7 +14363,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixmap_foreign_new(anid);
-@@ -1201,8 +1201,8 @@ public static final int /*long*/ gdk_pix
+@@ -1222,8 +1222,8 @@
  		lock.unlock();
  	}
  }
@@ -14141,7 +14374,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_lookup(xid);
-@@ -1215,8 +1215,8 @@ public static final int /*long*/ gdk_win
+@@ -1236,8 +1236,8 @@
   * @param function cast=(GdkFilterFunc)
   * @param data cast=(gpointer)
   */
@@ -14152,7 +14385,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_add_filter(window, function, data);
-@@ -1229,8 +1229,8 @@ public static final void gdk_window_add_
+@@ -1250,8 +1250,8 @@
   * @param function cast=(GdkFilterFunc)
   * @param data cast=(gpointer)
   */
@@ -14163,7 +14396,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_remove_filter(window, function, data);
-@@ -1243,49 +1243,49 @@ public static final void gdk_window_remo
+@@ -1264,49 +1264,49 @@
   * @param src cast=(const void *),flags=no_out
   * @param size cast=(size_t)
   */
@@ -14219,9 +14452,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
 -public static final native void memmove(XVisibilityEvent dest, int /*long*/ src, int /*long*/ size);
 +public static final native void memmove(XVisibilityEvent dest, long /*int*/ src, long /*int*/ size);
  
- /** @method flags=const*/
+ /** @method flags=const */
  public static final native int RTLD_GLOBAL();
-@@ -1305,8 +1305,8 @@ public static final int PictOpOver = 3;
+@@ -1326,8 +1326,8 @@
  
  public static final native int XRenderPictureAttributes_sizeof();
  /** @method flags=dynamic */
@@ -14232,7 +14465,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XRenderQueryExtension(display, event_basep, error_basep);
-@@ -1315,8 +1315,8 @@ public static final boolean XRenderQuery
+@@ -1336,8 +1336,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14243,7 +14476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XRenderQueryVersion(display, major_versionp, minor_versionp);
-@@ -1328,8 +1328,8 @@ public static final int XRenderQueryVers
+@@ -1349,8 +1349,8 @@
   * @method flags=dynamic
   * @param attributes flags=no_out
   */
@@ -14254,7 +14487,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XRenderCreatePicture(display, drawable, format, valuemask, attributes);
-@@ -1338,8 +1338,8 @@ public static final int /*long*/ XRender
+@@ -1359,8 +1359,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14265,7 +14498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XRenderSetPictureClipRectangles(display, picture, xOrigin, yOrigin, rects, count);
-@@ -1348,8 +1348,8 @@ public static final void XRenderSetPictu
+@@ -1369,8 +1369,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14276,7 +14509,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XRenderSetPictureTransform(display, picture, transform);
-@@ -1358,8 +1358,8 @@ public static final void XRenderSetPictu
+@@ -1379,8 +1379,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14287,7 +14520,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XRenderFreePicture(display, picture);
-@@ -1368,8 +1368,8 @@ public static final void XRenderFreePict
+@@ -1389,8 +1389,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14298,7 +14531,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_XRenderComposite(display, op, src, mask, dst, src_x, src_y, mask_x, mask_y, dst_x, dst_y, width, height);
-@@ -1378,8 +1378,8 @@ public static final void XRenderComposit
+@@ -1399,8 +1399,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14309,7 +14542,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XRenderFindStandardFormat(display, format);
-@@ -1388,8 +1388,8 @@ public static final int /*long*/ XRender
+@@ -1409,8 +1409,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14320,7 +14553,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _XRenderFindVisualFormat(display, visual);
-@@ -1401,14 +1401,14 @@ public static final int /*long*/ XRender
+@@ -1422,14 +1422,14 @@
  /** Custom callbacks */
  
  /** @method flags=no_gen */
@@ -14340,7 +14573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GDK_DISPLAY();
-@@ -1416,8 +1416,8 @@ public static final int /*long*/ GDK_DIS
+@@ -1437,8 +1437,8 @@
  		lock.unlock();
  	}
  }
@@ -14351,7 +14584,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GDK_ROOT_PARENT();
-@@ -1426,8 +1426,8 @@ public static final int /*long*/ GDK_ROO
+@@ -1447,8 +1447,8 @@
  	}
  }
  /** @method flags=const */
@@ -14362,7 +14595,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GDK_TYPE_COLOR();
-@@ -1436,8 +1436,8 @@ public static final int /*long*/ GDK_TYP
+@@ -1457,8 +1457,8 @@
  	}
  }
  /** @method flags=const */
@@ -14373,7 +14606,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GDK_TYPE_PIXBUF();
-@@ -1445,8 +1445,8 @@ public static final int /*long*/ GDK_TYP
+@@ -1466,8 +1466,8 @@
  		lock.unlock();
  	}
  }
@@ -14384,7 +14617,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_BUTTON(obj);
-@@ -1454,8 +1454,8 @@ public static final boolean GTK_IS_BUTTO
+@@ -1475,8 +1475,8 @@
  		lock.unlock();
  	}
  }
@@ -14395,7 +14628,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_SCROLLED_WINDOW(obj);
-@@ -1463,8 +1463,8 @@ public static final boolean GTK_IS_SCROL
+@@ -1484,8 +1484,8 @@
  		lock.unlock();
  	}
  }
@@ -14406,7 +14639,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_WINDOW(obj);
-@@ -1472,8 +1472,8 @@ public static final boolean GTK_IS_WINDO
+@@ -1493,8 +1493,8 @@
  		lock.unlock();
  	}
  }
@@ -14417,7 +14650,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_CELL_RENDERER_PIXBUF(obj);
-@@ -1481,8 +1481,8 @@ public static final boolean GTK_IS_CELL_
+@@ -1502,8 +1502,8 @@
  		lock.unlock();
  	}
  }
@@ -14428,7 +14661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_CELL_RENDERER_TEXT(obj);
-@@ -1490,8 +1490,8 @@ public static final boolean GTK_IS_CELL_
+@@ -1511,8 +1511,8 @@
  		lock.unlock();
  	}
  }
@@ -14439,7 +14672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_CELL_RENDERER_TOGGLE(obj);
-@@ -1499,8 +1499,8 @@ public static final boolean GTK_IS_CELL_
+@@ -1520,8 +1520,8 @@
  		lock.unlock();
  	}
  }
@@ -14450,7 +14683,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_CONTAINER(obj);
-@@ -1508,8 +1508,8 @@ public static final boolean GTK_IS_CONTA
+@@ -1529,8 +1529,8 @@
  		lock.unlock();
  	}
  }
@@ -14461,7 +14694,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_IMAGE_MENU_ITEM(obj);
-@@ -1517,8 +1517,8 @@ public static final boolean GTK_IS_IMAGE
+@@ -1538,8 +1538,8 @@
  		lock.unlock();
  	}
  }
@@ -14472,7 +14705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_MENU_ITEM(obj);
-@@ -1526,8 +1526,8 @@ public static final boolean GTK_IS_MENU_
+@@ -1547,8 +1547,8 @@
  		lock.unlock();
  	}
  }
@@ -14483,7 +14716,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_PLUG(obj);
-@@ -1535,8 +1535,8 @@ public static final boolean GTK_IS_PLUG(
+@@ -1556,8 +1556,8 @@
  		lock.unlock();
  	}
  }
@@ -14494,7 +14727,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_IS_SOCKET(obj);
-@@ -1545,8 +1545,8 @@ public static final boolean GTK_IS_SOCKE
+@@ -1566,8 +1566,8 @@
  	}
  }
  /** @method flags=const */
@@ -14505,7 +14738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_STOCK_CANCEL();
-@@ -1555,8 +1555,8 @@ public static final int /*long*/ GTK_STO
+@@ -1576,8 +1576,8 @@
  	}
  }
  /** @method flags=const */
@@ -14516,7 +14749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_STOCK_OK();
-@@ -1565,8 +1565,8 @@ public static final int /*long*/ GTK_STO
+@@ -1586,8 +1586,8 @@
  	}
  }
  /** @method flags=const */
@@ -14527,7 +14760,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_CELL_RENDERER_TEXT();
-@@ -1575,8 +1575,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1596,8 +1596,8 @@
  	}
  }
  /** @method flags=const */
@@ -14538,7 +14771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_CELL_RENDERER_PIXBUF();
-@@ -1585,8 +1585,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1606,8 +1606,8 @@
  	}
  }
  /** @method flags=const */
@@ -14549,7 +14782,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_CELL_RENDERER_TOGGLE();
-@@ -1595,8 +1595,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1616,8 +1616,8 @@
  	}
  }
  /** @method flags=const */
@@ -14560,7 +14793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_FIXED();
-@@ -1605,8 +1605,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1626,8 +1626,8 @@
  	}
  }
  /** @method flags=const */
@@ -14571,7 +14804,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_MENU();
-@@ -1615,8 +1615,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1636,8 +1636,8 @@
  	}
  }
  /** @method flags=const */
@@ -14582,7 +14815,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_TYPE_WIDGET();
-@@ -1624,8 +1624,8 @@ public static final int /*long*/ GTK_TYP
+@@ -1645,8 +1645,8 @@
  		lock.unlock();
  	}
  }
@@ -14593,7 +14826,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_FLAGS(wid);
-@@ -1633,8 +1633,8 @@ public static final int GTK_WIDGET_FLAGS
+@@ -1654,8 +1654,8 @@
  		lock.unlock();
  	}
  }
@@ -14604,7 +14837,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_STATE(wid);
-@@ -1642,8 +1642,8 @@ public static final int GTK_WIDGET_STATE
+@@ -1663,8 +1663,8 @@
  		lock.unlock();
  	}
  }
@@ -14615,7 +14848,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_HAS_DEFAULT(wid);
-@@ -1651,8 +1651,8 @@ public static final boolean GTK_WIDGET_H
+@@ -1672,8 +1672,8 @@
  		lock.unlock();
  	}
  }
@@ -14626,7 +14859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_HAS_FOCUS(wid);
-@@ -1660,8 +1660,8 @@ public static final boolean GTK_WIDGET_H
+@@ -1681,8 +1681,8 @@
  		lock.unlock();
  	}
  }
@@ -14637,7 +14870,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_IS_SENSITIVE(wid);
-@@ -1669,8 +1669,8 @@ public static final boolean GTK_WIDGET_I
+@@ -1690,8 +1690,8 @@
  		lock.unlock();
  	}
  }
@@ -14648,7 +14881,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_MAPPED(wid);
-@@ -1678,8 +1678,8 @@ public static final boolean GTK_WIDGET_M
+@@ -1699,8 +1699,8 @@
  		lock.unlock();
  	}
  }
@@ -14659,7 +14892,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_SENSITIVE(wid);
-@@ -1687,8 +1687,8 @@ public static final boolean GTK_WIDGET_S
+@@ -1708,8 +1708,8 @@
  		lock.unlock();
  	}
  }
@@ -14670,7 +14903,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_GTK_WIDGET_SET_FLAGS(wid, flag);
-@@ -1696,8 +1696,8 @@ public static final void GTK_WIDGET_SET_
+@@ -1717,8 +1717,8 @@
  		lock.unlock();
  	}
  }
@@ -14681,7 +14914,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_GTK_WIDGET_UNSET_FLAGS(wid, flag);
-@@ -1705,8 +1705,8 @@ public static final void GTK_WIDGET_UNSE
+@@ -1726,8 +1726,8 @@
  		lock.unlock();
  	}
  }
@@ -14692,7 +14925,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _GTK_WIDGET_VISIBLE(wid);
-@@ -1714,8 +1714,8 @@ public static final boolean GTK_WIDGET_V
+@@ -1735,8 +1735,8 @@
  		lock.unlock();
  	}
  }
@@ -14703,7 +14936,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _G_OBJECT_CLASS(klass);
-@@ -1723,8 +1723,8 @@ public static final int /*long*/ G_OBJEC
+@@ -1744,8 +1744,8 @@
  		lock.unlock();
  	}
  }
@@ -14714,7 +14947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _G_OBJECT_GET_CLASS(object);
-@@ -1732,8 +1732,8 @@ public static final int /*long*/ G_OBJEC
+@@ -1753,8 +1753,8 @@
  		lock.unlock();
  	}
  }
@@ -14725,7 +14958,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _G_OBJECT_TYPE_NAME(object);
-@@ -1742,18 +1742,18 @@ public static final int /*long*/ G_OBJEC
+@@ -1763,18 +1763,18 @@
  	}
  }
  /** @method flags=const */
@@ -14752,7 +14985,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _G_OBJECT_TYPE(instance);
-@@ -1762,8 +1762,8 @@ public static final int /*long*/ G_OBJEC
+@@ -1783,8 +1783,8 @@
  	}
  }
  /** @method flags=const */
@@ -14763,7 +14996,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _G_TYPE_STRING();
-@@ -1781,8 +1781,8 @@ public static final int PANGO_PIXELS(int
+@@ -1802,8 +1802,8 @@
  	}
  }
  /** @method flags=const */
@@ -14774,7 +15007,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _PANGO_TYPE_FONT_DESCRIPTION();
-@@ -1791,8 +1791,8 @@ public static final int /*long*/ PANGO_T
+@@ -1812,8 +1812,8 @@
  	}
  }
  /** @method flags=const */
@@ -14785,7 +15018,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _PANGO_TYPE_LAYOUT();
-@@ -1801,8 +1801,8 @@ public static final int /*long*/ PANGO_T
+@@ -1822,8 +1822,8 @@
  	}
  }
  /** @param handle cast=(void *) */
@@ -14796,7 +15029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _dlclose(handle);
-@@ -1811,8 +1811,8 @@ public static final int dlclose(int /*lo
+@@ -1832,8 +1832,8 @@
  	}
  }
  /** @param filename cast=(const char *) */
@@ -14807,7 +15040,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _dlopen(filename, flag);
-@@ -1824,8 +1824,8 @@ public static final int /*long*/ dlopen(
+@@ -1845,8 +1845,8 @@
   * @param handle cast=(void *)
   * @param symbol cast=(const char *)
   */
@@ -14818,7 +15051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _dlsym(handle, symbol);
-@@ -1834,8 +1834,8 @@ public static final int /*long*/ dlsym(i
+@@ -1855,8 +1855,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14829,7 +15062,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_create_from_commandline(commandline, applName, flags, error);
-@@ -1844,8 +1844,8 @@ public static final int /*long*/ g_app_i
+@@ -1865,8 +1865,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14840,7 +15073,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_all();
-@@ -1854,8 +1854,8 @@ public static final int /*long*/ g_app_i
+@@ -1875,8 +1875,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14851,7 +15084,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_executable(appInfo);
-@@ -1864,8 +1864,8 @@ public static final int /*long*/ g_app_i
+@@ -1885,8 +1885,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14862,7 +15095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_icon(appInfo);
-@@ -1874,8 +1874,8 @@ public static final int /*long*/ g_app_i
+@@ -1895,8 +1895,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14873,7 +15106,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_id(appInfo);
-@@ -1884,8 +1884,8 @@ public static final int /*long*/ g_app_i
+@@ -1905,8 +1905,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14884,7 +15117,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_name(appInfo);
-@@ -1894,8 +1894,8 @@ public static final int /*long*/ g_app_i
+@@ -1915,8 +1915,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14895,7 +15128,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_launch(appInfo, list, launchContext, error);
-@@ -1904,8 +1904,8 @@ public static final boolean g_app_info_l
+@@ -1925,8 +1925,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14906,7 +15139,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_get_default_for_type(mimeType, mustSupportURIs);
-@@ -1914,8 +1914,8 @@ public static final int /*long*/ g_app_i
+@@ -1935,8 +1935,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14917,7 +15150,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_launch_default_for_uri(appInfo, launchContext, error);
-@@ -1924,8 +1924,8 @@ public static final boolean g_app_info_l
+@@ -1945,8 +1945,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14928,7 +15161,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_should_show(appInfo);
-@@ -1934,8 +1934,8 @@ public static final boolean g_app_info_s
+@@ -1955,8 +1955,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14939,7 +15172,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_app_info_supports_uris(appInfo);
-@@ -1944,8 +1944,8 @@ public static final boolean g_app_info_s
+@@ -1965,8 +1965,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14950,7 +15183,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_data_input_stream_new(input_stream);
-@@ -1954,8 +1954,8 @@ public static final int /*long*/ g_data_
+@@ -1975,8 +1975,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14961,7 +15194,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_data_input_stream_read_line(stream, count, cancellable, error);
-@@ -1964,8 +1964,8 @@ public static final int /*long*/ g_data_
+@@ -1985,8 +1985,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14972,7 +15205,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_content_type_equals(type1, type2);
-@@ -1974,8 +1974,8 @@ public static final boolean g_content_ty
+@@ -1995,8 +1995,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14983,7 +15216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_content_type_is_a(type, supertype);
-@@ -1984,8 +1984,8 @@ public static final boolean g_content_ty
+@@ -2005,8 +2005,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -14994,7 +15227,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_content_type_get_mime_type(mime_type);
-@@ -1994,8 +1994,8 @@ public static final int /*long*/ g_conte
+@@ -2015,8 +2015,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15005,7 +15238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_content_types_get_registered();
-@@ -2004,8 +2004,8 @@ public static final int /*long*/ g_conte
+@@ -2025,8 +2025,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15016,7 +15249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_desktop_app_info_new_from_filename(fileName);
-@@ -2014,8 +2014,8 @@ public static final int /*long*/ g_deskt
+@@ -2035,8 +2035,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15027,7 +15260,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_info_get_content_type (info);
-@@ -2024,8 +2024,8 @@ public static final int /*long*/ g_file_
+@@ -2045,8 +2045,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15038,7 +15271,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_get_path(file);
-@@ -2034,8 +2034,8 @@ public static final int /*long*/ g_file_
+@@ -2055,8 +2055,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15049,7 +15282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_get_uri(file);
-@@ -2044,8 +2044,8 @@ public static final int /*long*/ g_file_
+@@ -2065,8 +2065,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15060,7 +15293,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_file_info_get_modification_time(info, result);
-@@ -2054,8 +2054,8 @@ public static final void g_file_info_get
+@@ -2075,8 +2075,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15071,7 +15304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_icon_get_file(icon);
-@@ -2064,8 +2064,8 @@ public static final int /*long*/ g_file_
+@@ -2085,8 +2085,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15082,7 +15315,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_new_for_path(fileName);
-@@ -2074,8 +2074,8 @@ public static final int /*long*/ g_file_
+@@ -2095,8 +2095,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15093,7 +15326,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_new_for_uri(fileName);
-@@ -2084,8 +2084,8 @@ public static final int /*long*/ g_file_
+@@ -2105,8 +2105,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15104,7 +15337,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_query_info (file, attributes, flags, cancellable, error);
-@@ -2095,8 +2095,8 @@ public static final int /*long*/ g_file_
+@@ -2116,8 +2116,8 @@
  }
  
  /** @method flags=dynamic */
@@ -15115,7 +15348,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_file_read(file, cancellable, error);
-@@ -2115,8 +2115,8 @@ public static final boolean /*long*/ g_f
+@@ -2136,8 +2136,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15126,7 +15359,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_icon_to_string(icon);
-@@ -2125,8 +2125,8 @@ public static final int /*long*/ g_icon_
+@@ -2146,8 +2146,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -15137,7 +15370,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_icon_new_for_string(str, error);
-@@ -2141,8 +2141,8 @@ public static final int /*long*/ g_icon_
+@@ -2162,8 +2162,8 @@
   * @param hook_data cast=(gpointer)
   * @param data_destroy cast=(GDestroyNotify)
   */
@@ -15148,7 +15381,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_add_emission_hook(signal_id, detail, hook_func, hook_data, data_destroy);
-@@ -2154,8 +2154,8 @@ public static final int /*long*/ g_signa
+@@ -2175,8 +2175,8 @@
   * @param signal_id cast=(guint)
   * @param hook_id cast=(gulong)
   */
@@ -15159,7 +15392,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		 _g_signal_remove_emission_hook (signal_id, hook_id);
-@@ -2168,8 +2168,8 @@ public static final void g_signal_remove
+@@ -2189,8 +2189,8 @@
   * @param user_data cast=(gpointer)
   * @param destroy_data cast=(GClosureNotify)
   */
@@ -15170,7 +15403,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_cclosure_new(callback_func, user_data, destroy_data);
-@@ -2178,8 +2178,8 @@ public static final int /*long*/ g_cclos
+@@ -2199,8 +2199,8 @@
  	}
  }
  /** @param closure cast=(GClosure *) */
@@ -15181,7 +15414,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_closure_ref(closure);
-@@ -2188,8 +2188,8 @@ public static final int /*long*/ g_closu
+@@ -2209,8 +2209,8 @@
  	}
  }
  /** @param closure cast=(GClosure *) */
@@ -15192,7 +15425,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_closure_unref(closure);
-@@ -2198,8 +2198,8 @@ public static final void g_closure_unref
+@@ -2219,8 +2219,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15203,7 +15436,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_acquire(context);
-@@ -2211,8 +2211,8 @@ public static final boolean g_main_conte
+@@ -2232,8 +2232,8 @@
   * @param context cast=(GMainContext *)
   * @param fds cast=(GPollFD *)
   */
@@ -15214,7 +15447,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_check(context, max_priority, fds, n_fds);
-@@ -2220,8 +2220,8 @@ public static final int g_main_context_c
+@@ -2241,8 +2241,8 @@
  		lock.unlock();
  	}
  }
@@ -15225,7 +15458,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_default();
-@@ -2230,8 +2230,8 @@ public static final int /*long*/ g_main_
+@@ -2251,8 +2251,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15236,7 +15469,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_iteration(context, may_block);
-@@ -2240,8 +2240,8 @@ public static final boolean g_main_conte
+@@ -2261,8 +2261,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15247,7 +15480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_pending(context);
-@@ -2250,8 +2250,8 @@ public static final boolean g_main_conte
+@@ -2271,8 +2271,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15258,7 +15491,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_get_poll_func(context);
-@@ -2260,8 +2260,8 @@ public static final int /*long*/ g_main_
+@@ -2281,8 +2281,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15269,7 +15502,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_prepare(context, priority);
-@@ -2273,8 +2273,8 @@ public static final boolean g_main_conte
+@@ -2294,8 +2294,8 @@
   * @param context cast=(GMainContext *)
   * @param fds cast=(GPollFD *)
   */
@@ -15280,7 +15513,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_main_context_query(context, max_priority, timeout_, fds, n_fds);
-@@ -2283,8 +2283,8 @@ public static final int g_main_context_q
+@@ -2304,8 +2304,8 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15291,7 +15524,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_main_context_release(context);
-@@ -2293,7 +2293,7 @@ public static final void g_main_context_
+@@ -2314,7 +2314,7 @@
  	}
  }
  /** @param context cast=(GMainContext *) */
@@ -15300,7 +15533,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  /**
   * @param opsysstring cast=(const gchar *)
   * @param len cast=(gssize)
-@@ -2301,8 +2301,8 @@ public static final native void g_main_c
+@@ -2322,8 +2322,8 @@
   * @param bytes_written cast=(gsize *)
   * @param error cast=(GError **)
   */
@@ -15311,7 +15544,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_filename_to_utf8(opsysstring, len, bytes_read, bytes_written, error);
-@@ -2315,8 +2315,8 @@ public static final int /*long*/ g_filen
+@@ -2336,8 +2336,8 @@
   * @param hostname cast=(const char *)
   * @param error cast=(GError **)
   */
@@ -15322,7 +15555,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_filename_to_uri(filename, hostname, error);
-@@ -2331,8 +2331,8 @@ public static final int /*long*/ g_filen
+@@ -2352,8 +2352,8 @@
   * @param bytes_written cast=(gsize *)
   * @param error cast=(GError **)
   */
@@ -15333,7 +15566,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_filename_from_utf8(opsysstring, len, bytes_read, bytes_written, error);
-@@ -2345,8 +2345,8 @@ public static final int /*long*/ g_filen
+@@ -2366,8 +2366,8 @@
   * @param hostname cast=(char **)
   * @param error cast=(GError **)
   */
@@ -15344,7 +15577,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_filename_from_uri(uri, hostname, error);
-@@ -2355,8 +2355,8 @@ public static final int /*long*/ g_filen
+@@ -2376,8 +2376,8 @@
  	}
  }
  /** @param mem cast=(gpointer) */
@@ -15355,7 +15588,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_free(mem);
-@@ -2368,8 +2368,8 @@ public static final void g_free(int /*lo
+@@ -2389,8 +2389,8 @@
   * @param function cast=(GSourceFunc)
   * @param data cast=(gpointer)
   */
@@ -15366,7 +15599,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_idle_add(function, data);
-@@ -2381,8 +2381,8 @@ public static final int g_idle_add(int /
+@@ -2402,8 +2402,8 @@
   * @param list cast=(GList *)
   * @param data cast=(gpointer)
   */
@@ -15377,7 +15610,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_append(list, data);
-@@ -2391,8 +2391,8 @@ public static final int /*long*/ g_list_
+@@ -2412,8 +2412,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -15388,7 +15621,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_data(list);
-@@ -2401,8 +2401,8 @@ public static final int /*long*/ g_list_
+@@ -2422,8 +2422,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -15399,7 +15632,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_list_free(list);
-@@ -2411,8 +2411,8 @@ public static final void g_list_free(int
+@@ -2432,8 +2432,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -15410,7 +15643,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_list_free_1(list);
-@@ -2421,8 +2421,8 @@ public static final void g_list_free_1(i
+@@ -2444,8 +2444,8 @@
+ /**
+  * @param list cast=(GList *)
+  */
+-public static final native int /*long*/ _g_list_last(int /*long*/ list);
+-public static final int /*long*/ g_list_last(int /*long*/ list) {
++public static final native long /*int*/ _g_list_last(long /*int*/ list);
++public static final long /*int*/ g_list_last(long /*int*/ list) {
+ 	lock.lock();
+ 	try {
+ 		return _g_list_last(list);
+@@ -2454,8 +2454,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -15421,7 +15665,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_length(list);
-@@ -2434,8 +2434,8 @@ public static final int g_list_length(in
+@@ -2467,8 +2467,8 @@
   * @param list cast=(GList *)
   * @param llist cast=(GList *)
   */
@@ -15432,7 +15676,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_list_set_next(list, llist);
-@@ -2443,8 +2443,8 @@ public static final void g_list_set_next
+@@ -2476,8 +2476,8 @@
  		lock.unlock();
  	}
  }
@@ -15443,7 +15687,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_next(list);
-@@ -2456,8 +2456,8 @@ public static final int /*long*/ g_list_
+@@ -2489,8 +2489,8 @@
   * @param list cast=(GList *)
   * @param n cast=(guint)
   */
@@ -15454,7 +15698,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_nth(list, n);
-@@ -2469,8 +2469,8 @@ public static final int /*long*/ g_list_
+@@ -2502,8 +2502,8 @@
   * @param list cast=(GList *)
   * @param n cast=(guint)
   */
@@ -15465,7 +15709,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_nth_data(list, n);
-@@ -2482,8 +2482,8 @@ public static final int /*long*/ g_list_
+@@ -2515,8 +2515,8 @@
   * @param list cast=(GList *)
   * @param data cast=(gpointer)
   */
@@ -15476,7 +15720,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_prepend(list, data);
-@@ -2495,8 +2495,8 @@ public static final int /*long*/ g_list_
+@@ -2528,8 +2528,8 @@
   * @param list cast=(GList *)
   * @param llist cast=(GList *)
   */
@@ -15487,7 +15731,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_list_set_previous(list, llist);
-@@ -2504,8 +2504,8 @@ public static final void g_list_set_prev
+@@ -2537,8 +2537,8 @@
  		lock.unlock();
  	}
  }
@@ -15498,7 +15742,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_previous(list);
-@@ -2517,8 +2517,8 @@ public static final int /*long*/ g_list_
+@@ -2550,8 +2550,8 @@
   * @param list cast=(GList *)
   * @param link cast=(GList *)
   */
@@ -15509,7 +15753,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_remove_link(list, link);
-@@ -2527,8 +2527,8 @@ public static final int /*long*/ g_list_
+@@ -2560,8 +2560,8 @@
  	}
  }
  /** @param list cast=(GList *) */
@@ -15520,7 +15764,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_list_reverse(list);
-@@ -2543,8 +2543,8 @@ public static final int /*long*/ g_list_
+@@ -2576,8 +2576,8 @@
   * @param bytes_written cast=(gsize *)
   * @param error cast=(GError **)
   */
@@ -15531,7 +15775,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_locale_from_utf8(utf8string, len, bytes_read, bytes_written, error);
-@@ -2559,8 +2559,8 @@ public static final int /*long*/ g_local
+@@ -2592,8 +2592,8 @@
   * @param bytes_written cast=(gsize *)
   * @param error cast=(GError **)
   */
@@ -15542,7 +15786,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_locale_to_utf8(opsysstring, len, bytes_read, bytes_written, error);
-@@ -2574,8 +2574,8 @@ public static final int /*long*/ g_local
+@@ -2607,8 +2607,8 @@
   * @param message cast=(gchar *)
   * @param unused_data cast=(gpointer)
   */
@@ -15553,7 +15797,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_log_default_handler(log_domain, log_levels, message, unused_data);
-@@ -2602,8 +2602,8 @@ public static final void g_log_remove_ha
+@@ -2635,8 +2635,8 @@
   * @param log_func cast=(GLogFunc)
   * @param user_data cast=(gpointer)
   */
@@ -15564,7 +15808,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_log_set_handler(log_domain, log_levels, log_func, user_data);
-@@ -2612,8 +2612,8 @@ public static final int g_log_set_handle
+@@ -2645,8 +2645,8 @@
  	}
  }
  /** @param size cast=(gulong) */
@@ -15575,7 +15819,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_malloc(size);
-@@ -2626,8 +2626,8 @@ public static final int /*long*/ g_mallo
+@@ -2659,8 +2659,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15586,7 +15830,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_get(object, first_property_name, value, terminator);
-@@ -2639,8 +2639,8 @@ public static final void g_object_get(in
+@@ -2673,8 +2673,8 @@
+  * @param first_property_name cast=(const gchar *),flags=no_out
+  * @param terminator cast=(const gchar *),flags=sentinel
+  */
+-public static final native void _g_object_get(int /*long*/ object, byte[] first_property_name, long[] value, int /*long*/ terminator);
+-public static final void g_object_get(int /*long*/ object, byte[] first_property_name, long[] value, int /*long*/ terminator) {
++public static final native void _g_object_get(long /*int*/ object, byte[] first_property_name, long[] value, long /*int*/ terminator);
++public static final void g_object_get(long /*int*/ object, byte[] first_property_name, long[] value, long /*int*/ terminator) {
+ 	lock.lock();
+ 	try {
+ 		_g_object_get(object, first_property_name, value, terminator);
+@@ -2686,8 +2686,8 @@
   * @param object cast=(GObject *)
   * @param quark cast=(GQuark)
   */
@@ -15597,7 +15852,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_object_get_qdata(object, quark);
-@@ -2652,8 +2652,8 @@ public static final int /*long*/ g_objec
+@@ -2699,8 +2699,8 @@
   * @param type cast=(GType)
   * @param first_property_name cast=(const gchar *)
   */
@@ -15608,7 +15863,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_object_new(type, first_property_name);
-@@ -2665,8 +2665,8 @@ public static final int /*long*/ g_objec
+@@ -2712,8 +2712,8 @@
   * @param object cast=(GObject *)
   * @param property_name cast=(const gchar *)
   */
@@ -15619,7 +15874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock(); 
  	try {
  		_g_object_notify(object, property_name);
-@@ -2675,8 +2675,8 @@ public static final void g_object_notify
+@@ -2722,8 +2722,8 @@
  	}
  }
  /** @param object cast=(gpointer) */
@@ -15630,7 +15885,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_object_ref(object);
-@@ -2689,8 +2689,8 @@ public static final int /*long*/ g_objec
+@@ -2736,8 +2736,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15641,7 +15896,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2703,8 +2703,8 @@ public static final void g_object_set(in
+@@ -2750,8 +2750,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15652,7 +15907,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2717,8 +2717,8 @@ public static final void g_object_set(in
+@@ -2764,8 +2764,8 @@
   * @param first_property_name cast=(const gchar *)
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15663,7 +15918,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2731,8 +2731,8 @@ public static final void g_object_set(in
+@@ -2778,8 +2778,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15674,7 +15929,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2745,8 +2745,8 @@ public static final void g_object_set(in
+@@ -2792,8 +2792,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15685,7 +15940,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2759,8 +2759,8 @@ public static final void g_object_set(in
+@@ -2806,8 +2806,8 @@
   * @param first_property_name cast=(const gchar *),flags=no_out
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -15696,7 +15951,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set(object, first_property_name, data, terminator);
-@@ -2773,8 +2773,8 @@ public static final void g_object_set(in
+@@ -2820,8 +2820,8 @@
   * @param quark cast=(GQuark)
   * @param data cast=(gpointer)
   */
@@ -15707,7 +15962,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_set_qdata(object, quark, data);
-@@ -2783,8 +2783,8 @@ public static final void g_object_set_qd
+@@ -2830,8 +2830,8 @@
  	}
  }
  /** @param object cast=(gpointer) */
@@ -15718,7 +15973,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_object_unref(object);
-@@ -2818,8 +2818,8 @@ public static final void g_set_prgname(b
+@@ -2865,8 +2865,8 @@
   * @param proc cast=(GCallback)
   * @param data cast=(gpointer)
   */
@@ -15729,7 +15984,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_connect(instance, detailed_signal, proc, data);
-@@ -2833,8 +2833,8 @@ public static final int g_signal_connect
+@@ -2880,8 +2880,8 @@
   * @param closure cast=(GClosure *)
   * @param after cast=(gboolean)
   */
@@ -15740,7 +15995,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_connect_closure(instance, detailed_signal, closure, after);
-@@ -2849,8 +2849,8 @@ public static final int g_signal_connect
+@@ -2896,8 +2896,8 @@
   * @param closure cast=(GClosure *)
   * @param after cast=(gboolean)
   */
@@ -15751,7 +16006,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_connect_closure_by_id(instance, signal_id, detail, closure, after);
-@@ -2864,8 +2864,8 @@ public static final int g_signal_connect
+@@ -2911,8 +2911,8 @@
   * @param proc cast=(GCallback)
   * @param data cast=(gpointer)
   */
@@ -15762,7 +16017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_connect_after(instance, detailed_signal, proc, data);
-@@ -2877,8 +2877,8 @@ public static final int g_signal_connect
+@@ -2924,8 +2924,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15773,7 +16028,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_emit_by_name(instance, detailed_signal);
-@@ -2890,8 +2890,8 @@ public static final void g_signal_emit_b
+@@ -2937,8 +2937,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15784,7 +16039,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_emit_by_name(instance, detailed_signal, data);
-@@ -2903,8 +2903,8 @@ public static final void g_signal_emit_b
+@@ -2950,8 +2950,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15795,7 +16050,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_emit_by_name(instance, detailed_signal, data);
-@@ -2916,8 +2916,8 @@ public static final void g_signal_emit_b
+@@ -2963,8 +2963,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15806,7 +16061,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_emit_by_name(instance, detailed_signal, data1, data2);
-@@ -2929,8 +2929,8 @@ public static final void g_signal_emit_b
+@@ -2976,8 +2976,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15817,7 +16072,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_emit_by_name(instance, detailed_signal, data);
-@@ -2942,8 +2942,8 @@ public static final void g_signal_emit_b
+@@ -2989,8 +2989,8 @@
   * @param instance cast=(gpointer)
   * @param handler_id cast=(gulong)
   */
@@ -15828,7 +16083,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_handler_disconnect(instance, handler_id);
-@@ -2958,8 +2958,8 @@ public static final void g_signal_handle
+@@ -3005,8 +3005,8 @@
   * @param func cast=(gpointer)
   * @param data cast=(gpointer)
   */
@@ -15839,7 +16094,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_handler_find(instance, mask, signal_id, detail, closure, func, data);
-@@ -2976,8 +2976,8 @@ public static final int g_signal_handler
+@@ -3023,8 +3023,8 @@
   * @param func cast=(gpointer)
   * @param data cast=(gpointer)
   */
@@ -15850,7 +16105,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_handlers_block_matched(instance, mask, signal_id, detail, closure, func, data);
-@@ -2994,8 +2994,8 @@ public static final int g_signal_handler
+@@ -3041,8 +3041,8 @@
   * @param func cast=(gpointer)
   * @param data cast=(gpointer)
   */
@@ -15861,7 +16116,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_handlers_disconnect_matched(instance, mask, signal_id, detail, closure, func, data);
-@@ -3012,8 +3012,8 @@ public static final int g_signal_handler
+@@ -3059,8 +3059,8 @@
   * @param func cast=(gpointer)
   * @param data cast=(gpointer)
   */
@@ -15872,7 +16127,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_handlers_unblock_matched(instance, mask, signal_id, detail, closure, func, data);
-@@ -3022,8 +3022,8 @@ public static final int g_signal_handler
+@@ -3069,8 +3069,8 @@
  	}
  }
  /** @param name cast=(const gchar *),flags=no_out */
@@ -15883,7 +16138,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_signal_lookup(name, itype);
-@@ -3035,8 +3035,8 @@ public static final int g_signal_lookup
+@@ -3082,8 +3082,8 @@
   * @param instance cast=(gpointer)
   * @param detailed_signal cast=(const gchar *),flags=no_out
   */
@@ -15894,7 +16149,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_signal_stop_emission_by_name(instance, detailed_signal);
-@@ -3045,8 +3045,8 @@ public static final void g_signal_stop_e
+@@ -3092,8 +3092,8 @@
  	}
  }
  /** @param tag cast=(guint) */
@@ -15905,7 +16160,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_source_remove(tag);
-@@ -3058,8 +3058,8 @@ public static final boolean /*long*/ g_s
+@@ -3105,8 +3105,8 @@
   * @param list cast=(GSList *)
   * @param data cast=(gpointer)
   */
@@ -15916,7 +16171,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_slist_append(list, data);
-@@ -3068,8 +3068,8 @@ public static final int /*long*/ g_slist
+@@ -3115,8 +3115,8 @@
  	}
  }
  /** @param list cast=(GSList *) */
@@ -15927,7 +16182,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_slist_data(list);
-@@ -3078,8 +3078,8 @@ public static final int /*long*/ g_slist
+@@ -3125,8 +3125,8 @@
  	}
  }
  /** @param list cast=(GSList *) */
@@ -15938,7 +16193,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_slist_free(list);
-@@ -3088,8 +3088,8 @@ public static final void g_slist_free (i
+@@ -3135,8 +3135,8 @@
  	}
  }
  /** @param list cast=(GSList *) */
@@ -15949,7 +16204,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_slist_next(list);
-@@ -3098,8 +3098,8 @@ public static final int /*long*/ g_slist
+@@ -3145,8 +3145,8 @@
  	}
  }
  /** @param list cast=(GSList *) */
@@ -15960,7 +16215,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_slist_length(list);
-@@ -3108,8 +3108,8 @@ public static final int g_slist_length (
+@@ -3155,8 +3155,8 @@
  	}
  }
  /** @param string_array cast=(gchar **) */
@@ -15971,7 +16226,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_strfreev(string_array);
-@@ -3121,8 +3121,8 @@ public static final void g_strfreev(int
+@@ -3168,8 +3168,8 @@
   * @method flags=getter
   * @param string cast=(GString *)
   */
@@ -15982,7 +16237,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try { 
  		return _GString_len(string);
-@@ -3134,8 +3134,8 @@ public static final int GString_len(int
+@@ -3181,8 +3181,8 @@
   * @method flags=getter
   * @param string cast=(GString *)
   */
@@ -15993,7 +16248,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try { 
  		return _GString_str(string);
-@@ -3147,8 +3147,8 @@ public static final int /*long*/ GString
+@@ -3194,8 +3194,8 @@
   * @param str cast=(const gchar *)
   * @param endptr cast=(gchar **)
   */
@@ -16004,7 +16259,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_strtod(str, endptr);
-@@ -3161,8 +3161,8 @@ public static final double g_strtod(int
+@@ -3208,8 +3208,8 @@
   * @param interface_type cast=(GType)
   * @param info cast=(const GInterfaceInfo *)
   */
@@ -16015,7 +16270,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_type_add_interface_static(instance_type, interface_type, info);
-@@ -3171,8 +3171,8 @@ public static final void g_type_add_inte
+@@ -3218,8 +3218,8 @@
  	}
  }
  /** @param g_class cast=(GType) */
@@ -16026,7 +16281,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_class_peek(g_class);
-@@ -3181,8 +3181,8 @@ public static final int /*long*/ g_type_
+@@ -3228,8 +3228,8 @@
  	}
  }
  /** @param g_class cast=(gpointer) */
@@ -16037,7 +16292,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_class_peek_parent(g_class);
-@@ -3191,8 +3191,8 @@ public static final int /*long*/ g_type_
+@@ -3238,8 +3238,8 @@
  	}
  }
  /** @param g_class cast=(GType) */
@@ -16048,7 +16303,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_class_ref(g_class);
-@@ -3201,8 +3201,8 @@ public static final int /*long*/ g_type_
+@@ -3248,8 +3248,8 @@
  	}
  }
  /** @param g_class cast=(gpointer) */
@@ -16059,7 +16314,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_type_class_unref(g_class);
-@@ -3211,8 +3211,8 @@ public static final void g_type_class_un
+@@ -3258,8 +3258,8 @@
  	}
  }
  /** @param name cast=(const gchar *) */
@@ -16070,7 +16325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_from_name(name);
-@@ -3221,8 +3221,8 @@ public static final int /*long*/ g_type_
+@@ -3268,8 +3268,8 @@
  	}
  }
  /** @param iface cast=(gpointer) */
@@ -16081,7 +16336,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_interface_peek_parent(iface);
-@@ -3234,8 +3234,8 @@ public static final int /*long*/ g_type_
+@@ -3281,8 +3281,8 @@
   * @param type cast=(GType)
   * @param is_a_type cast=(GType)
   */
@@ -16092,7 +16347,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_is_a(type, is_a_type);
-@@ -3244,8 +3244,8 @@ public static final boolean g_type_is_a
+@@ -3291,8 +3291,8 @@
  	}
  }
  /** @param handle cast=(GType) */
@@ -16103,7 +16358,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_name(handle);
-@@ -3254,8 +3254,8 @@ public static final int /*long*/ g_type_
+@@ -3301,8 +3301,8 @@
  	}
  }
  /** @param type cast=(GType) */
@@ -16114,7 +16369,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_parent(type);
-@@ -3267,8 +3267,8 @@ public static final int /*long*/ g_type_
+@@ -3314,8 +3314,8 @@
   * @param type cast=(GType)
   * @param query cast=(GTypeQuery *)
   */
@@ -16125,7 +16380,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_type_query(type, query);
-@@ -3282,8 +3282,8 @@ public static final void g_type_query (i
+@@ -3329,8 +3329,8 @@
   * @param info cast=(const GTypeInfo *)
   * @param flags cast=(GTypeFlags)
   */
@@ -16136,7 +16391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_type_register_static(parent_type, type_name, info, flags);
-@@ -3292,8 +3292,8 @@ public static final int /*long*/ g_type_
+@@ -3339,8 +3339,8 @@
  	}
  }
  /** @param vtable cast=(GThreadFunctions *) */
@@ -16147,7 +16402,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_g_thread_init(vtable);
-@@ -3317,8 +3317,8 @@ public static final boolean g_thread_sup
+@@ -3364,8 +3364,8 @@
   * @param items_written cast=(glong *),flags=critical
   * @param error cast=(GError **),flags=critical
   */
@@ -16158,7 +16413,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf16_to_utf8(str, len, items_read, items_written, error);
-@@ -3327,8 +3327,8 @@ public static final int /*long*/ g_utf16
+@@ -3374,8 +3374,8 @@
  	}
  }
  /** @param str cast=(const gchar *) */
@@ -16169,7 +16424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf8_offset_to_pointer(str, offset);
-@@ -3340,8 +3340,8 @@ public static final int /*long*/ g_utf8_
+@@ -3387,8 +3387,8 @@
   * @param str cast=(const gchar *)
   * @param pos cast=(const gchar *)
   */
@@ -16180,7 +16435,62 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf8_pointer_to_offset(str, pos);
-@@ -3350,8 +3350,8 @@ public static final int /*long*/ g_utf8_
+@@ -3397,8 +3397,8 @@
+ 	}
+ }
+ /** @param str cast=(const gchar *) */
+-public static final native int /*long*/ _g_utf16_offset_to_pointer(int /*long*/ str, int /*long*/ offset);
+-public static final int /*long*/ g_utf16_offset_to_pointer(int /*long*/ str, int /*long*/ offset) {
++public static final native long /*int*/ _g_utf16_offset_to_pointer(long /*int*/ str, long /*int*/ offset);
++public static final long /*int*/ g_utf16_offset_to_pointer(long /*int*/ str, long /*int*/ offset) {
+ 	lock.lock();
+ 	try {
+ 		return _g_utf16_offset_to_pointer(str, offset);
+@@ -3410,8 +3410,8 @@
+  * @param str cast=(const gchar *)
+  * @param pos cast=(const gchar *)
+  */
+-public static final native int /*long*/ _g_utf16_pointer_to_offset(int /*long*/ str, int /*long*/ pos);
+-public static final int /*long*/ g_utf16_pointer_to_offset(int /*long*/ str, int /*long*/ pos) {
++public static final native long /*int*/ _g_utf16_pointer_to_offset(long /*int*/ str, long /*int*/ pos);
++public static final long /*int*/ g_utf16_pointer_to_offset(long /*int*/ str, long /*int*/ pos) {
+ 	lock.lock();
+ 	try {
+ 		return _g_utf16_pointer_to_offset(str, pos);
+@@ -3420,8 +3420,8 @@
+ 	}
+ }
+ /** @param str cast=(const gchar *) */
+-public static final native int /*long*/ _g_utf16_strlen(int /*long*/ str, int /*long*/ max);
+-public static final int /*long*/ g_utf16_strlen(int /*long*/ str, int /*long*/ max) {
++public static final native long /*int*/ _g_utf16_strlen(long /*int*/ str, long /*int*/ max);
++public static final long /*int*/ g_utf16_strlen(long /*int*/ str, long /*int*/ max) {
+ 	lock.lock();
+ 	try {
+ 		return _g_utf16_strlen(str, max);
+@@ -3430,8 +3430,8 @@
+ 	}
+ }
+ /** @param str cast=(const gchar *) */
+-public static final native int /*long*/ _g_utf8_offset_to_utf16_offset(int /*long*/ str, int /*long*/ offset);
+-public static final int /*long*/ g_utf8_offset_to_utf16_offset(int /*long*/ str, int /*long*/ offset) {
++public static final native long /*int*/ _g_utf8_offset_to_utf16_offset(long /*int*/ str, long /*int*/ offset);
++public static final long /*int*/ g_utf8_offset_to_utf16_offset(long /*int*/ str, long /*int*/ offset) {
+ 	lock.lock();
+ 	try {
+ 		return _g_utf8_offset_to_utf16_offset(str, offset);
+@@ -3440,8 +3440,8 @@
+ 	}
+ }
+ /** @param str cast=(const gchar *) */
+-public static final native int /*long*/ _g_utf16_offset_to_utf8_offset(int /*long*/ str, int /*long*/ offset);
+-public static final int /*long*/ g_utf16_offset_to_utf8_offset(int /*long*/ str, int /*long*/ offset) {
++public static final native long /*int*/ _g_utf16_offset_to_utf8_offset(long /*int*/ str, long /*int*/ offset);
++public static final long /*int*/ g_utf16_offset_to_utf8_offset(long /*int*/ str, long /*int*/ offset) {
+ 	lock.lock();
+ 	try {
+ 		return _g_utf16_offset_to_utf8_offset(str, offset);
+@@ -3450,8 +3450,8 @@
  	}
  }
  /** @param str cast=(const gchar *) */
@@ -16191,7 +16501,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf8_strlen(str, max);
-@@ -3366,8 +3366,8 @@ public static final int /*long*/ g_utf8_
+@@ -3466,8 +3466,8 @@
   * @param items_written cast=(glong *),flags=critical
   * @param error cast=(GError **),flags=critical
   */
@@ -16202,7 +16512,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf8_to_utf16(str, len, items_read, items_written, error);
-@@ -3382,8 +3382,8 @@ public static final int /*long*/ g_utf8_
+@@ -3482,8 +3482,8 @@
   * @param items_written cast=(glong *),flags=critical
   * @param error cast=(GError **),flags=critical
   */
@@ -16213,7 +16523,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_utf8_to_utf16(str, len, items_read, items_written, error);
-@@ -3395,28 +3395,28 @@ public static final int /*long*/ g_utf8_
+@@ -3495,28 +3495,28 @@
   * @param value cast=(GValue *)
   * @param type cast=(GType)
   */
@@ -16254,7 +16564,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _g_value_peek_pointer(value);
-@@ -3425,8 +3425,8 @@ public static final  int /*long*/ g_valu
+@@ -3525,8 +3525,8 @@
  	}
  }
  /** @param atom_name cast=(const gchar *),flags=no_out critical */
@@ -16265,7 +16575,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_atom_intern(atom_name, only_if_exists);
-@@ -3435,8 +3435,8 @@ public static final int /*long*/ gdk_ato
+@@ -3535,8 +3535,8 @@
  	}
  }
  /** @param atom cast=(GdkAtom) */
@@ -16276,7 +16586,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_atom_name(atom);
-@@ -3459,8 +3459,8 @@ public static final void gdk_beep() {
+@@ -3559,8 +3559,8 @@
   * @param width cast=(gint)
   * @param height cast=(gint)
   */
@@ -16287,7 +16597,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_bitmap_create_from_data(window, data, width, height);
-@@ -3469,8 +3469,8 @@ public static final int /*long*/ gdk_bit
+@@ -3569,8 +3569,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16298,7 +16608,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_cairo_create(drawable);
-@@ -3479,8 +3479,8 @@ public static final int /*long*/ gdk_cai
+@@ -3579,8 +3579,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16309,7 +16619,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_cairo_region(cairo, region);
-@@ -3489,8 +3489,8 @@ public static final void gdk_cairo_regio
+@@ -3589,8 +3589,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16320,7 +16630,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_cairo_set_source_color(cairo, color);
-@@ -3502,8 +3502,8 @@ public static final void gdk_cairo_set_s
+@@ -3602,8 +3602,8 @@
   * @param colormap cast=(GdkColormap *)
   * @param color cast=(GdkColor *),flags=no_in
   */
@@ -16331,7 +16641,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_color_white(colormap, color);
-@@ -3517,8 +3517,8 @@ public static final boolean gdk_color_wh
+@@ -3617,8 +3617,8 @@
   * @param writeable cast=(gboolean)
   * @param best_match cast=(gboolean)
   */
@@ -16342,7 +16652,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_colormap_alloc_color(colormap, color, writeable, best_match);
-@@ -3531,8 +3531,8 @@ public static final boolean gdk_colormap
+@@ -3631,8 +3631,8 @@
   * @param colors cast=(GdkColor *),flags=no_out
   * @param ncolors cast=(gint)
   */
@@ -16353,7 +16663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_colormap_free_colors(colormap, colors, ncolors);
-@@ -3540,8 +3540,8 @@ public static final void gdk_colormap_fr
+@@ -3640,8 +3640,8 @@
  		lock.unlock();
  	}
  }
@@ -16364,7 +16674,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_colormap_get_system();
-@@ -3554,8 +3554,8 @@ public static final int /*long*/ gdk_col
+@@ -3654,8 +3654,8 @@
   * @param pixel cast=(gulong)
   * @param result cast=(GdkColor *)
   */
@@ -16375,7 +16685,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_colormap_query_color(colormap, pixel, result);
-@@ -3564,8 +3564,8 @@ public static final void gdk_colormap_qu
+@@ -3664,8 +3664,8 @@
  	}
  }
  /** @param cursor cast=(GdkCursor *) */
@@ -16386,7 +16696,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_cursor_destroy(cursor);
-@@ -3574,8 +3574,8 @@ public static final void gdk_cursor_dest
+@@ -3674,8 +3674,8 @@
  	}
  }
  /** @param cursor_type cast=(GdkCursorType) */
@@ -16397,7 +16707,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_cursor_new(cursor_type);
-@@ -3591,8 +3591,8 @@ public static final int /*long*/ gdk_cur
+@@ -3691,8 +3691,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -16408,7 +16718,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_cursor_new_from_pixmap(source, mask, fg, bg, x, y);
-@@ -3601,8 +3601,8 @@ public static final int /*long*/ gdk_cur
+@@ -3701,8 +3701,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16419,7 +16729,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_cursor_new_from_pixbuf(display, pixbuf, x, y);
-@@ -3611,8 +3611,8 @@ public static final int /*long*/ gdk_cur
+@@ -3711,8 +3711,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16430,7 +16740,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_display_get_default();
-@@ -3621,8 +3621,8 @@ public static final int /*long*/ gdk_dis
+@@ -3721,8 +3721,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -16441,7 +16751,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_display_supports_cursor_color(display);
-@@ -3635,8 +3635,8 @@ public static final boolean gdk_display_
+@@ -3735,8 +3735,8 @@
   * @param action cast=(GdkDragAction)
   * @param time cast=(guint32)
   */
@@ -16452,7 +16762,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_drag_status(context, action, time);
-@@ -3655,8 +3655,8 @@ public static final void gdk_drag_status
+@@ -3755,8 +3755,8 @@
   * @param angle1 cast=(gint)
   * @param angle2 cast=(gint)
   */
@@ -16463,7 +16773,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_arc(drawable, gc, filled, x, y, width, height, angle1, angle2);
-@@ -3675,8 +3675,8 @@ public static final void gdk_draw_arc(in
+@@ -3775,8 +3775,8 @@
   * @param width cast=(gint)
   * @param height cast=(gint)
   */
@@ -16474,7 +16784,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_drawable(drawable, gc, src, xsrc, ysrc, xdest, ydest, width, height);
-@@ -3689,8 +3689,8 @@ public static final void gdk_draw_drawab
+@@ -3789,8 +3789,8 @@
   * @param gc cast=(GdkGC *)
   * @param image cast=(GdkImage *)
   */
@@ -16485,7 +16795,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_image(drawable, gc, image, xsrc, ysrc, xdest, ydest, width, height);
-@@ -3705,8 +3705,8 @@ public static final void gdk_draw_image(
+@@ -3805,8 +3805,8 @@
   * @param y cast=(gint)
   * @param layout cast=(PangoLayout *)
   */
@@ -16496,7 +16806,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_layout(drawable, gc, x, y, layout);
-@@ -3723,8 +3723,8 @@ public static final void gdk_draw_layout
+@@ -3823,8 +3823,8 @@
   * @param foreground flags=no_out
   * @param background flags=no_out
   */
@@ -16507,7 +16817,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_layout_with_colors(drawable, gc, x, y, layout, foreground, background);
-@@ -3740,8 +3740,8 @@ public static final void gdk_draw_layout
+@@ -3840,8 +3840,8 @@
   * @param x2 cast=(gint)
   * @param y2 cast=(gint)
   */
@@ -16518,7 +16828,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_line(drawable, gc, x1, y1, x2, y2);
-@@ -3755,8 +3755,8 @@ public static final void gdk_draw_line(i
+@@ -3855,8 +3855,8 @@
   * @param points cast=(GdkPoint *),flags=no_out critical
   * @param npoints cast=(gint)
   */
@@ -16529,7 +16839,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_lines(drawable, gc, points, npoints);
-@@ -3779,8 +3779,8 @@ public static final void gdk_draw_lines(
+@@ -3879,8 +3879,8 @@
   * @param x_dither cast=(gint)
   * @param y_dither cast=(gint)
   */
@@ -16540,7 +16850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_pixbuf(drawable, gc, pixbuf, xsrc, ysrc, xdest, ydest, width, height, dither, x_dither, y_dither);
-@@ -3792,8 +3792,8 @@ public static final void gdk_draw_pixbuf
+@@ -3892,8 +3892,8 @@
   * @param drawable cast=(GdkDrawable *)
   * @param gc cast=(GdkGC *)
   */
@@ -16551,7 +16861,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_point(drawable, gc, x, y);
-@@ -3808,8 +3808,8 @@ public static final void gdk_draw_point(
+@@ -3908,8 +3908,8 @@
   * @param points cast=(GdkPoint *),flags=no_out critical
   * @param npoints cast=(gint)
   */
@@ -16562,7 +16872,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_polygon(drawable, gc, filled, points, npoints);
-@@ -3826,8 +3826,8 @@ public static final void gdk_draw_polygo
+@@ -3926,8 +3926,8 @@
   * @param width cast=(gint)
   * @param height cast=(gint)
   */
@@ -16573,7 +16883,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_draw_rectangle(drawable, gc, filled, x, y, width, height);
-@@ -3836,8 +3836,8 @@ public static final void gdk_draw_rectan
+@@ -3936,8 +3936,8 @@
  	}
  }
  /** @param drawable cast=(GdkDrawable *) */
@@ -16584,7 +16894,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_drawable_get_depth(drawable);
-@@ -3853,8 +3853,8 @@ public static final int gdk_drawable_get
+@@ -3953,8 +3953,8 @@
   * @param width cast=(gint)
   * @param height cast=(gint)
   */
@@ -16595,7 +16905,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_drawable_get_image(drawable, x, y, width, height);
-@@ -3867,8 +3867,8 @@ public static final int /*long*/ gdk_dra
+@@ -3967,8 +3967,8 @@
   * @param width cast=(gint *),flags=no_in critical
   * @param height cast=(gint *),flags=no_in critical
   */
@@ -16606,7 +16916,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_drawable_get_size(drawable, width, height);
-@@ -3877,8 +3877,8 @@ public static final void gdk_drawable_ge
+@@ -3977,8 +3977,8 @@
  	}
  }
  /** @param drawable cast=(GdkDrawable *) */
@@ -16617,7 +16927,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_drawable_get_visible_region(drawable);
-@@ -3887,8 +3887,8 @@ public static final int /*long*/ gdk_dra
+@@ -3987,8 +3987,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -16628,7 +16938,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_copy(event);
-@@ -3897,8 +3897,8 @@ public static final int /*long*/ gdk_eve
+@@ -3997,8 +3997,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -16639,7 +16949,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_event_free(event);
-@@ -3906,8 +3906,8 @@ public static final void gdk_event_free(
+@@ -4006,8 +4006,8 @@
  		lock.unlock();
  	}
  }
@@ -16650,7 +16960,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get();
-@@ -3920,8 +3920,8 @@ public static final int /*long*/ gdk_eve
+@@ -4020,8 +4020,8 @@
   * @param px cast=(gdouble *)
   * @param py cast=(gdouble *)
   */
@@ -16661,7 +16971,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get_root_coords(event, px, py);
-@@ -3934,8 +3934,8 @@ public static final boolean gdk_event_ge
+@@ -4034,8 +4034,8 @@
   * @param px cast=(gdouble *)
   * @param py cast=(gdouble *)
   */
@@ -16672,7 +16982,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get_coords(event, px, py);
-@@ -3944,8 +3944,8 @@ public static final boolean gdk_event_ge
+@@ -4044,8 +4044,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -16683,7 +16993,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get_graphics_expose(window);
-@@ -3957,8 +3957,8 @@ public static final int /*long*/ gdk_eve
+@@ -4057,8 +4057,8 @@
   * @param event cast=(GdkEvent *)
   * @param pmod cast=(GdkModifierType *)
   */
@@ -16694,7 +17004,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get_state(event, pmod);
-@@ -3967,8 +3967,8 @@ public static final boolean gdk_event_ge
+@@ -4067,8 +4067,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -16705,7 +17015,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_get_time(event);
-@@ -3981,8 +3981,8 @@ public static final int gdk_event_get_ti
+@@ -4081,8 +4081,8 @@
   * @param data cast=(gpointer)
   * @param notify cast=(GDestroyNotify)
   */
@@ -16716,7 +17026,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_event_handler_set(func, data, notify);
-@@ -3990,8 +3990,8 @@ public static final void gdk_event_handl
+@@ -4090,8 +4090,8 @@
  		lock.unlock();
  	}
  }
@@ -16727,7 +17037,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_new(type);
-@@ -3999,8 +3999,8 @@ public static final int /*long*/ gdk_eve
+@@ -4099,8 +4099,8 @@
  		lock.unlock();
  	}
  }
@@ -16738,7 +17048,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_event_peek();
-@@ -4009,8 +4009,8 @@ public static final int /*long*/ gdk_eve
+@@ -4109,8 +4109,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -16749,7 +17059,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_event_put(event);
-@@ -4046,8 +4046,8 @@ public static final void gdk_flush() {
+@@ -4146,8 +4146,8 @@
  	}
  }
  /** @param list cast=(gchar **) */
@@ -16760,7 +17070,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_free_text_list(list);
-@@ -4059,8 +4059,8 @@ public static final void gdk_free_text_l
+@@ -4159,8 +4159,8 @@
   * @param gc cast=(GdkGC *)
   * @param values cast=(GdkGCValues *),flags=no_in
   */
@@ -16771,7 +17081,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_get_values(gc, values);
-@@ -4069,8 +4069,8 @@ public static final void gdk_gc_get_valu
+@@ -4169,8 +4169,8 @@
  	}
  }
  /** @param window cast=(GdkDrawable *) */
@@ -16782,7 +17092,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_gc_new(window);
-@@ -4082,8 +4082,8 @@ public static final int /*long*/ gdk_gc_
+@@ -4182,8 +4182,8 @@
   * @param gc cast=(GdkGC *)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -16793,7 +17103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_background(gc, color);
-@@ -4095,8 +4095,8 @@ public static final void gdk_gc_set_back
+@@ -4195,8 +4195,8 @@
   * @param gc cast=(GdkGC *)
   * @param mask cast=(GdkBitmap *)
   */
@@ -16804,7 +17114,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_clip_mask(gc, mask);
-@@ -4109,8 +4109,8 @@ public static final void gdk_gc_set_clip
+@@ -4209,8 +4209,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -16815,7 +17125,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_clip_origin(gc, x, y);
-@@ -4122,8 +4122,8 @@ public static final void gdk_gc_set_clip
+@@ -4222,8 +4222,8 @@
   * @param gc cast=(GdkGC *)
   * @param rectangle cast=(GdkRectangle *),flags=no_out
   */
@@ -16826,7 +17136,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_clip_rectangle(gc, rectangle);
-@@ -4135,8 +4135,8 @@ public static final void gdk_gc_set_clip
+@@ -4235,8 +4235,8 @@
   * @param gc cast=(GdkGC *)
   * @param region cast=(GdkRegion *)
   */
@@ -16837,7 +17147,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_clip_region(gc, region);
-@@ -4150,8 +4150,8 @@ public static final void gdk_gc_set_clip
+@@ -4250,8 +4250,8 @@
   * @param dash_list cast=(gint8 *),flags=no_out critical
   * @param n cast=(gint)
   */
@@ -16848,7 +17158,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_dashes(gc, dash_offset, dash_list, n);
-@@ -4163,8 +4163,8 @@ public static final void gdk_gc_set_dash
+@@ -4263,8 +4263,8 @@
   * @param gc cast=(GdkGC *)
   * @param exposures cast=(gboolean)
   */
@@ -16859,7 +17169,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_exposures(gc, exposures);
-@@ -4176,8 +4176,8 @@ public static final void gdk_gc_set_expo
+@@ -4276,8 +4276,8 @@
   * @param gc cast=(GdkGC *)
   * @param fill cast=(GdkFill)
   */
@@ -16870,7 +17180,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_fill(gc, fill);
-@@ -4189,8 +4189,8 @@ public static final void gdk_gc_set_fill
+@@ -4289,8 +4289,8 @@
   * @param gc cast=(GdkGC *)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -16881,7 +17191,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_foreground(gc, color);
-@@ -4202,8 +4202,8 @@ public static final void gdk_gc_set_fore
+@@ -4302,8 +4302,8 @@
   * @param gc cast=(GdkGC *)
   * @param function cast=(GdkFunction)
   */
@@ -16892,7 +17202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_function(gc, function);
-@@ -4218,8 +4218,8 @@ public static final void gdk_gc_set_func
+@@ -4318,8 +4318,8 @@
   * @param cap_style cast=(GdkCapStyle)
   * @param join_style cast=(GdkJoinStyle)
   */
@@ -16903,7 +17213,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_line_attributes(gc, line_width, line_style, cap_style, join_style);
-@@ -4231,8 +4231,8 @@ public static final void gdk_gc_set_line
+@@ -4331,8 +4331,8 @@
   * @param gc cast=(GdkGC *)
   * @param stipple cast=(GdkPixmap *)
   */
@@ -16914,7 +17224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_stipple(gc, stipple);
-@@ -4244,8 +4244,8 @@ public static final void gdk_gc_set_stip
+@@ -4344,8 +4344,8 @@
   * @param gc cast=(GdkGC *)
   * @param mode cast=(GdkSubwindowMode)
   */
@@ -16925,7 +17235,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_subwindow(gc, mode);
-@@ -4257,8 +4257,8 @@ public static final void gdk_gc_set_subw
+@@ -4357,8 +4357,8 @@
   * @param gc cast=(GdkGC *)
   * @param tile cast=(GdkPixmap *)
   */
@@ -16936,7 +17246,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_tile(gc, tile);
-@@ -4267,8 +4267,8 @@ public static final void gdk_gc_set_tile
+@@ -4367,8 +4367,8 @@
  	}
  }
  /** @param gc cast=(GdkGC *) */
@@ -16947,7 +17257,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_ts_origin(gc, x, y);
-@@ -4281,8 +4281,8 @@ public static final void gdk_gc_set_ts_o
+@@ -4381,8 +4381,8 @@
   * @param values cast=(GdkGCValues *),flags=no_out
   * @param values_mask cast=(GdkGCValuesMask)
   */
@@ -16958,7 +17268,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_gc_set_values(gc, values, values_mask);
-@@ -4299,8 +4299,8 @@ public static final void gdk_keyboard_un
+@@ -4399,8 +4399,8 @@
  		lock.unlock();
  	}
  }
@@ -16969,7 +17279,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_keymap_get_default();
-@@ -4316,8 +4316,8 @@ public static final int /*long*/ gdk_key
+@@ -4416,8 +4416,8 @@
   * @param level cast=(gint*)
   * @param consumed_modifiers cast=(GdkModifierType *)
   */
@@ -16980,7 +17290,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_keymap_translate_keyboard_state(keymap, hardware_keycode, state, group, keyval, effective_group, level, consumed_modifiers);
-@@ -4343,8 +4343,8 @@ public static final int gdk_keyval_to_un
+@@ -4443,8 +4443,8 @@
  		lock.unlock();
  	}
  }
@@ -16991,7 +17301,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pango_attr_embossed_new(embossed);
-@@ -4352,8 +4352,8 @@ public static final int /*long*/ gdk_pan
+@@ -4452,8 +4452,8 @@
  		lock.unlock();
  	}
  }
@@ -17002,7 +17312,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pango_context_get();
-@@ -4365,8 +4365,8 @@ public static final int /*long*/ gdk_pan
+@@ -4465,8 +4465,8 @@
   * @param context cast=(PangoContext *)
   * @param colormap cast=(GdkColormap *)
   */
@@ -17013,7 +17323,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pango_context_set_colormap(context, colormap);
-@@ -4375,8 +4375,8 @@ public static final void gdk_pango_conte
+@@ -4475,8 +4475,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -17024,7 +17334,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pango_layout_get_clip_region(layout, x_origin, y_origin, index_ranges, n_ranges);
-@@ -4388,8 +4388,8 @@ public static final int /*long*/ gdk_pan
+@@ -4488,8 +4488,8 @@
   * @param src_pixbuf cast=(GdkPixbuf *)
   * @param dest_pixbuf cast=(GdkPixbuf *)
   */
@@ -17035,7 +17345,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pixbuf_copy_area(src_pixbuf, src_x, src_y, width, height, dest_pixbuf, dest_x, dest_y);
-@@ -4402,8 +4402,8 @@ public static final void gdk_pixbuf_copy
+@@ -4502,8 +4502,8 @@
   * @param src cast=(GdkDrawable *)
   * @param cmap cast=(GdkColormap *)
   */
@@ -17046,7 +17356,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_from_drawable(dest, src, cmap, src_x, src_y, dest_x, dest_y, width, height);
-@@ -4412,8 +4412,8 @@ public static final int /*long*/ gdk_pix
+@@ -4512,8 +4512,8 @@
  	}
  }
  /** @param pixbuf cast=(const GdkPixbuf *) */
@@ -17057,7 +17367,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_has_alpha(pixbuf);
-@@ -4422,8 +4422,8 @@ public static final boolean gdk_pixbuf_g
+@@ -4522,8 +4522,8 @@
  	}
  }
  /** @param pixbuf cast=(const GdkPixbuf *) */
@@ -17068,7 +17378,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_height(pixbuf);
-@@ -4432,8 +4432,8 @@ public static final int gdk_pixbuf_get_h
+@@ -4532,8 +4532,8 @@
  	}
  }
  /** @param pixbuf cast=(const GdkPixbuf *) */
@@ -17079,7 +17389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_pixels(pixbuf);
-@@ -4442,8 +4442,8 @@ public static final int /*long*/ gdk_pix
+@@ -4542,8 +4542,8 @@
  	}
  }
  /** @param pixbuf cast=(const GdkPixbuf *) */
@@ -17090,7 +17400,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_rowstride(pixbuf);
-@@ -4452,8 +4452,8 @@ public static final int gdk_pixbuf_get_r
+@@ -4552,8 +4552,8 @@
  	}
  }
  /** @param pixbuf cast=(const GdkPixbuf *) */
@@ -17101,7 +17411,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_get_width(pixbuf);
-@@ -4461,8 +4461,8 @@ public static final int gdk_pixbuf_get_w
+@@ -4561,8 +4561,8 @@
  		lock.unlock();
  	}
  }
@@ -17112,7 +17422,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_loader_new();
-@@ -4474,8 +4474,8 @@ public static final int /*long*/ gdk_pix
+@@ -4574,8 +4574,8 @@
   * @param loader cast=(GdkPixbufLoader *)
   * @param error cast=(GError **)
   */
@@ -17123,7 +17433,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_loader_close(loader, error);
-@@ -4484,8 +4484,8 @@ public static final boolean gdk_pixbuf_l
+@@ -4584,8 +4584,8 @@
  	}
  }
  /** @param loader cast=(GdkPixbufLoader *) */
@@ -17134,7 +17444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_loader_get_pixbuf(loader);
-@@ -4499,8 +4499,8 @@ public static final int /*long*/ gdk_pix
+@@ -4599,8 +4599,8 @@
   * @param count cast=(gsize)
   * @param error cast=(GError **)
   */
@@ -17145,7 +17455,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_loader_write(loader, buffer, count, error);
-@@ -4512,8 +4512,8 @@ public static final boolean gdk_pixbuf_l
+@@ -4612,8 +4612,8 @@
   * @param colorspace cast=(GdkColorspace)
   * @param has_alpha cast=(gboolean)
   */
@@ -17156,7 +17466,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_new(colorspace, has_alpha, bits_per_sample, width, height);
-@@ -4525,8 +4525,8 @@ public static final int /*long*/ gdk_pix
+@@ -4625,8 +4625,8 @@
   * @param filename cast=(const char *)
   * @param error cast=(GError**)
   */
@@ -17167,7 +17477,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_new_from_file(filename, error);
-@@ -4540,8 +4540,8 @@ public static final int /*long*/ gdk_pix
+@@ -4640,8 +4640,8 @@
   * @param gc cast=(GdkGC *)
   * @param dither cast=(GdkRgbDither)
   */
@@ -17178,7 +17488,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pixbuf_render_to_drawable(pixbuf, drawable, gc, src_x, src_y, dest_x, dest_y, width, height, dither, x_dither, y_dither);
-@@ -4555,8 +4555,8 @@ public static final void gdk_pixbuf_rend
+@@ -4655,8 +4655,8 @@
   * @param alpha_mode cast=(GdkPixbufAlphaMode)
   * @param dither cast=(GdkRgbDither)
   */
@@ -17189,7 +17499,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pixbuf_render_to_drawable_alpha(pixbuf, drawable, src_x, src_y, dest_x, dest_y, width, height, alpha_mode, alpha_threshold, dither, x_dither, y_dither);
-@@ -4569,8 +4569,8 @@ public static final void gdk_pixbuf_rend
+@@ -4669,8 +4669,8 @@
   * @param pixmap_return cast=(GdkDrawable **)
   * @param mask_return cast=(GdkBitmap **)
   */
@@ -17200,7 +17510,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pixbuf_render_pixmap_and_mask(pixbuf, pixmap_return, mask_return, alpha_threshold);
-@@ -4588,8 +4588,8 @@ public static final void gdk_pixbuf_rend
+@@ -4688,8 +4688,8 @@
   * @param option_values=(char **)
   * @param error cast=(GError **)
   */
@@ -17211,7 +17521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_save_to_bufferv(pixbuf, buffer, buffer_size, type, option_keys, option_values, error);
-@@ -4605,8 +4605,8 @@ public static final boolean gdk_pixbuf_s
+@@ -4705,8 +4705,8 @@
   * @param scale_x cast=(double)
   * @param scale_y cast=(double)
   */
@@ -17222,7 +17532,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_pixbuf_scale(src, dest, dest_x, dest_y, dest_width, dest_height, offset_x, offset_y, scale_x, scale_y, interp_type);
-@@ -4618,8 +4618,8 @@ public static final void gdk_pixbuf_scal
+@@ -4718,8 +4718,8 @@
   * @param src cast=(const GdkPixbuf *)
   * @param interp_type cast=(GdkInterpType)
   */
@@ -17233,7 +17543,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixbuf_scale_simple(src, dest_width, dest_height, interp_type);
-@@ -4633,8 +4633,8 @@ public static final int /*long*/ gdk_pix
+@@ -4733,8 +4733,8 @@
   * @param height cast=(gint)
   * @param depth cast=(gint)
   */
@@ -17244,7 +17554,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pixmap_new(window, width, height, depth);
-@@ -4650,8 +4650,8 @@ public static final int /*long*/ gdk_pix
+@@ -4750,8 +4750,8 @@
   * @param cursor cast=(GdkCursor *)
   * @param time cast=(guint32)
   */
@@ -17255,7 +17565,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_pointer_grab(window, owner_events, event_mask, confine_to, cursor, time);
-@@ -4687,8 +4687,8 @@ public static final void gdk_pointer_ung
+@@ -4787,8 +4787,8 @@
   * @param actual_length cast=(gint *)
   * @param data cast=(guchar **)
   */
@@ -17266,7 +17576,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_property_get(window, property, type, offset, length, pdelete, actual_property_type, actual_format, actual_length, data);
-@@ -4697,8 +4697,8 @@ public static final boolean gdk_property
+@@ -4797,8 +4797,8 @@
  	}
  }
  /** @param region cast=(GdkRegion *) */
@@ -17277,7 +17587,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_destroy(region);
-@@ -4707,8 +4707,8 @@ public static final void gdk_region_dest
+@@ -4807,8 +4807,8 @@
  	}
  }
  /** @param region cast=(GdkRegion *) */
@@ -17288,7 +17598,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_empty(region);
-@@ -4720,8 +4720,8 @@ public static final boolean gdk_region_e
+@@ -4820,8 +4820,8 @@
   * @param region cast=(GdkRegion *)
   * @param rectangle cast=(GdkRectangle *),flags=no_in
   */
@@ -17299,7 +17609,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_get_clipbox(region, rectangle);
-@@ -4734,8 +4734,8 @@ public static final void gdk_region_get_
+@@ -4834,8 +4834,8 @@
   * @param rectangles cast=(GdkRectangle **)
   * @param n_rectangles cast=(gint *)
   */
@@ -17310,7 +17620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_get_rectangles(region, rectangles, n_rectangles);
-@@ -4747,8 +4747,8 @@ public static final void gdk_region_get_
+@@ -4847,8 +4847,8 @@
   * @param source1 cast=(GdkRegion *)
   * @param source2 cast=(GdkRegion *)
   */
@@ -17321,7 +17631,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_intersect(source1, source2);
-@@ -4756,8 +4756,8 @@ public static final void gdk_region_inte
+@@ -4856,8 +4856,8 @@
  		lock.unlock();
  	}
  }
@@ -17332,7 +17642,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_new();
-@@ -4770,8 +4770,8 @@ public static final int /*long*/ gdk_reg
+@@ -4870,8 +4870,8 @@
   * @param dx cast=(gint)
   * @param dy cast=(gint)
   */
@@ -17343,7 +17653,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_offset(region, dx, dy);
-@@ -4784,8 +4784,8 @@ public static final void gdk_region_offs
+@@ -4884,8 +4884,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -17354,7 +17664,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_point_in(region, x, y);
-@@ -4797,8 +4797,8 @@ public static final boolean gdk_region_p
+@@ -4897,8 +4897,8 @@
   * @param points cast=(GdkPoint *)
   * @param fill_rule cast=(GdkFillRule)
   */
@@ -17365,7 +17675,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_polygon(points, npoints, fill_rule);
-@@ -4807,8 +4807,8 @@ public static final int /*long*/ gdk_reg
+@@ -4907,8 +4907,8 @@
  	}
  }
  /** @param rectangle flags=no_out */
@@ -17376,7 +17686,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_rectangle(rectangle);
-@@ -4820,8 +4820,8 @@ public static final int /*long*/ gdk_reg
+@@ -4920,8 +4920,8 @@
   * @param region cast=(GdkRegion *)
   * @param rect cast=(GdkRectangle *),flags=no_out
   */
@@ -17387,7 +17697,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_region_rect_in(region, rect);
-@@ -4833,8 +4833,8 @@ public static final int /*long*/ gdk_reg
+@@ -4933,8 +4933,8 @@
   * @param source1 cast=(GdkRegion *)
   * @param source2 cast=(GdkRegion *)
   */
@@ -17398,7 +17708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_subtract(source1, source2);
-@@ -4846,8 +4846,8 @@ public static final void gdk_region_subt
+@@ -4946,8 +4946,8 @@
   * @param source1 cast=(GdkRegion *)
   * @param source2 cast=(GdkRegion *)
   */
@@ -17409,7 +17719,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_union(source1, source2);
-@@ -4859,8 +4859,8 @@ public static final void gdk_region_unio
+@@ -4959,8 +4959,8 @@
   * @param region cast=(GdkRegion *)
   * @param rect cast=(GdkRectangle *),flags=no_out
   */
@@ -17420,7 +17730,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_region_union_with_rect(region, rect);
-@@ -4878,8 +4878,8 @@ public static final void gdk_rgb_init()
+@@ -4978,8 +4978,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -17431,7 +17741,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_screen_get_default();
-@@ -4893,8 +4893,8 @@ public static final int /*long*/ gdk_scr
+@@ -4993,8 +4993,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -17442,7 +17752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_screen_get_monitor_at_point (screen, x, y);
-@@ -4907,8 +4907,8 @@ public static final int gdk_screen_get_m
+@@ -5007,8 +5007,8 @@
   * @param screen cast=(GdkScreen *)
   * @param window cast=(GdkWindow *)
   */
@@ -17453,7 +17763,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_screen_get_monitor_at_window(screen, window);
-@@ -4921,8 +4921,8 @@ public static final int gdk_screen_get_m
+@@ -5021,8 +5021,8 @@
   * @param screen cast=(GdkScreen *)
   * @param dest flags=no_in
   */
@@ -17464,7 +17774,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_screen_get_monitor_geometry(screen, monitor_num, dest);
-@@ -4934,8 +4934,8 @@ public static final void gdk_screen_get_
+@@ -5034,8 +5034,8 @@
   * @method flags=dynamic
   * @param screen cast=(GdkScreen *)
   */
@@ -17475,7 +17785,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_screen_get_n_monitors(screen);
-@@ -4947,8 +4947,8 @@ public static final int gdk_screen_get_n
+@@ -5047,8 +5047,8 @@
   * @method flags=dynamic
   * @param screen cast=(GdkScreen *)
   */
@@ -17486,7 +17796,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_screen_get_number(screen);
-@@ -5000,8 +5000,8 @@ public static final void gdk_set_program
+@@ -5100,8 +5100,8 @@
   * @param ctext cast=(guchar **)
   * @param length cast=(gint *)
   */
@@ -17497,7 +17807,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_utf8_to_compound_text(str, encoding, format, ctext, length);
-@@ -5010,8 +5010,8 @@ public static final boolean gdk_utf8_to_
+@@ -5110,8 +5110,8 @@
  	}
  }
  /** @param str cast=(const gchar *) */
@@ -17508,7 +17818,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_utf8_to_string_target(str);
-@@ -5024,8 +5024,8 @@ public static final int /*long*/ gdk_utf
+@@ -5124,8 +5124,8 @@
   * @param text cast=(guchar *)
   * @param list cast=(gchar ***)
   */
@@ -17519,7 +17829,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_text_property_to_utf8_list(encoding, format, text, length, list);
-@@ -5037,8 +5037,8 @@ public static final int gdk_text_propert
+@@ -5139,13 +5139,13 @@
+ /**
+  * @method flags=dynamic
+  */
+-public static final native void gdk_threads_set_lock_functions(int /*long*/ enter_fn, int /*long*/ leave_fn);
++public static final native void gdk_threads_set_lock_functions(long /*int*/ enter_fn, long /*int*/ leave_fn);
+ /**
   * @method flags=dynamic
   * @param display cast=(GdkDisplay*)
   */
@@ -17530,7 +17846,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		 _gtk_tooltip_trigger_tooltip_query (display);
-@@ -5056,8 +5056,8 @@ public static final  int gdk_unicode_to_
+@@ -5163,8 +5163,8 @@
  		lock.unlock();
  	}
  }
@@ -17541,7 +17857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_visual_get_system();
-@@ -5069,8 +5069,8 @@ public static final int /*long*/ gdk_vis
+@@ -5176,8 +5176,8 @@
   * @param win_x cast=(gint *)
   * @param win_y cast=(gint *)
   */
@@ -17552,7 +17868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_at_pointer(win_x, win_y);
-@@ -5082,8 +5082,8 @@ public static final int /*long*/ gdk_win
+@@ -5189,8 +5189,8 @@
   * @param window cast=(GdkWindow *)
   * @param rectangle cast=(GdkRectangle *),flags=no_out
   */
@@ -17563,7 +17879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_begin_paint_rect(window, rectangle);
-@@ -5092,8 +5092,8 @@ public static final void gdk_window_begi
+@@ -5199,8 +5199,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17574,7 +17890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_clear_area(window, x, y, width, height);
-@@ -5102,8 +5102,8 @@ public static final void gdk_window_clea
+@@ -5209,8 +5209,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17585,7 +17901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_destroy(window);
-@@ -5112,8 +5112,8 @@ public static final void gdk_window_dest
+@@ -5219,8 +5219,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17596,7 +17912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_end_paint(window);
-@@ -5122,8 +5122,8 @@ public static final void gdk_window_end_
+@@ -5229,8 +5229,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17607,7 +17923,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_get_children(window);
-@@ -5132,8 +5132,8 @@ public static final int /*long*/ gdk_win
+@@ -5239,8 +5239,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17618,7 +17934,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_get_events(window);
-@@ -5142,8 +5142,8 @@ public static final int gdk_window_get_e
+@@ -5249,8 +5249,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17629,7 +17945,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_focus(window, timestamp);
-@@ -5152,8 +5152,8 @@ public static final void gdk_window_focu
+@@ -5259,8 +5259,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17640,7 +17956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_freeze_updates(window);
-@@ -5165,8 +5165,8 @@ public static final void gdk_window_free
+@@ -5272,8 +5272,8 @@
   * @param window cast=(GdkWindow *)
   * @param rect cast=(GdkRectangle *),flags=no_in
   */
@@ -17651,7 +17967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_get_frame_extents(window, rect);
-@@ -5180,8 +5180,8 @@ public static final void gdk_window_get_
+@@ -5287,8 +5287,8 @@
   * @param x_offset cast=(gint *)
   * @param y_offset cast=(gint *)
   */
@@ -17662,7 +17978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_get_internal_paint_info(window, real_drawable, x_offset, y_offset);
-@@ -5194,8 +5194,8 @@ public static final void gdk_window_get_
+@@ -5301,8 +5301,8 @@
   * @param x cast=(gint *)
   * @param y cast=(gint *)
   */
@@ -17673,7 +17989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_get_origin(window, x, y);
-@@ -5204,8 +5204,8 @@ public static final int gdk_window_get_o
+@@ -5311,8 +5311,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17684,7 +18000,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_get_parent(window);
-@@ -5219,8 +5219,8 @@ public static final int /*long*/ gdk_win
+@@ -5326,8 +5326,8 @@
   * @param y cast=(gint *)
   * @param mask cast=(GdkModifierType *)
   */
@@ -17695,7 +18011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_get_pointer(window, x, y, mask);
-@@ -5233,8 +5233,8 @@ public static final int /*long*/ gdk_win
+@@ -5340,8 +5340,8 @@
   * @param x cast=(gint *)
   * @param y cast=(gint *)
   */
@@ -17706,7 +18022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_get_position(window, x, y);
-@@ -5246,8 +5246,8 @@ public static final void gdk_window_get_
+@@ -5353,8 +5353,8 @@
   * @param window cast=(GdkWindow *)
   * @param data cast=(gpointer *)
   */
@@ -17717,7 +18033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_get_user_data(window, data);
-@@ -5256,8 +5256,8 @@ public static final void gdk_window_get_
+@@ -5363,8 +5363,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17728,7 +18044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_hide(window);
-@@ -5270,8 +5270,8 @@ public static final void gdk_window_hide
+@@ -5377,8 +5377,8 @@
   * @param rectangle cast=(GdkRectangle *),flags=no_out
   * @param invalidate_children cast=(gboolean)
   */
@@ -17739,7 +18055,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_invalidate_rect(window, rectangle, invalidate_children);
-@@ -5284,8 +5284,8 @@ public static final void gdk_window_inva
+@@ -5391,8 +5391,8 @@
   * @param region cast=(GdkRegion *)
   * @param invalidate_children cast=(gboolean)
   */
@@ -17750,7 +18066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_invalidate_region(window, region, invalidate_children);
-@@ -5294,8 +5294,8 @@ public static final void gdk_window_inva
+@@ -5401,8 +5401,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17761,7 +18077,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_is_visible(window);
-@@ -5304,8 +5304,8 @@ public static final boolean gdk_window_i
+@@ -5411,8 +5411,8 @@
+ 	}
+ }
+ /** @param window cast=(GdkWindow *) */
+-public static final native boolean _gdk_window_is_viewable (int /*long*/ window);
+-public static final boolean gdk_window_is_viewable (int /*long*/ window) {
++public static final native boolean _gdk_window_is_viewable (long /*int*/ window);
++public static final boolean gdk_window_is_viewable (long /*int*/ window) {
+ 	lock.lock();
+ 	try {
+ 		return _gdk_window_is_viewable (window);
+@@ -5421,8 +5421,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17772,7 +18099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_move(window, x, y);
-@@ -5314,8 +5314,8 @@ public static final void gdk_window_move
+@@ -5431,8 +5431,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17783,7 +18110,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_move_resize(window, x, y, width, height);
-@@ -5327,8 +5327,8 @@ public static final void gdk_window_move
+@@ -5444,8 +5444,8 @@
   * @param parent cast=(GdkWindow *)
   * @param attributes flags=no_out
   */
@@ -17794,7 +18121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gdk_window_new(parent, attributes, attributes_mask);
-@@ -5337,8 +5337,8 @@ public static final int /*long*/ gdk_win
+@@ -5454,8 +5454,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17805,7 +18132,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_lower(window);
-@@ -5359,8 +5359,8 @@ public static final void gdk_window_proc
+@@ -5476,8 +5476,8 @@
   * @param window cast=(GdkWindow *)
   * @param update_children cast=(gboolean)
   */
@@ -17816,7 +18143,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_process_updates(window, update_children);
-@@ -5369,8 +5369,8 @@ public static final void gdk_window_proc
+@@ -5486,8 +5486,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17827,7 +18154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_raise(window);
-@@ -5379,8 +5379,8 @@ public static final void gdk_window_rais
+@@ -5496,8 +5496,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17838,7 +18165,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_resize(window, width, height);
-@@ -5394,8 +5394,8 @@ public static final void gdk_window_resi
+@@ -5511,8 +5511,8 @@
   * @param sibling cast=(GdkWindow *)
   * @param above cast=(gboolean)
   */
@@ -17849,7 +18176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_restack(window, sibling, above);
-@@ -5404,8 +5404,8 @@ public static final void gdk_window_rest
+@@ -5521,8 +5521,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17860,7 +18187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_scroll(window, dx, dy);
-@@ -5418,8 +5418,8 @@ public static final void gdk_window_scro
+@@ -5535,8 +5535,8 @@
   * @param window cast=(GdkWindow *)
   * @param accept_focus cast=(gboolean)
   */
@@ -17871,7 +18198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_accept_focus(window, accept_focus);
-@@ -5432,8 +5432,8 @@ public static final void gdk_window_set_
+@@ -5549,8 +5549,8 @@
   * @param pixmap cast=(GdkPixmap *)
   * @param parent_relative cast=(gboolean)
   */
@@ -17882,7 +18209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_back_pixmap(window, pixmap, parent_relative);
-@@ -5445,8 +5445,8 @@ public static final void gdk_window_set_
+@@ -5562,8 +5562,8 @@
   * @param window cast=(GdkWindow *)
   * @param cursor cast=(GdkCursor *)
   */
@@ -17893,7 +18220,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_cursor(window, cursor);
-@@ -5468,8 +5468,8 @@ public static final void gdk_window_set_
+@@ -5585,8 +5585,8 @@
   * @param window cast=(GdkWindow *)
   * @param decorations cast=(GdkWMDecoration)
   */
@@ -17904,7 +18231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_decorations(window, decorations);
-@@ -5478,8 +5478,8 @@ public static final void gdk_window_set_
+@@ -5595,8 +5595,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17915,7 +18242,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_events(window, event_mask);
-@@ -5493,8 +5493,8 @@ public static final void gdk_window_set_
+@@ -5610,8 +5610,8 @@
   * @param pixmap cast=(GdkPixmap *)
   * @param mask cast=(GdkBitmap *)
   */
@@ -17926,7 +18253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_icon(window, icon_window, pixmap, mask);
-@@ -5506,8 +5506,8 @@ public static final void gdk_window_set_
+@@ -5623,8 +5623,8 @@
   * @param window cast=(GdkWindow *)
   * @param pixbufs cast=(GList *)
   */
@@ -17937,7 +18264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_icon_list(window, pixbufs);
-@@ -5520,8 +5520,8 @@ public static final void gdk_window_set_
+@@ -5637,8 +5637,8 @@
   * @param window cast=(GdkWindow *)
   * @param setting cast=(gboolean)
   */
@@ -17948,7 +18275,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_keep_above(window, setting);
-@@ -5533,8 +5533,8 @@ public static final void gdk_window_set_
+@@ -5650,8 +5650,8 @@
   * @param window cast=(GdkWindow *)
   * @param override_redirect cast=(gboolean)
   */
@@ -17959,7 +18286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_override_redirect(window, override_redirect);
-@@ -5546,8 +5546,8 @@ public static final void gdk_window_set_
+@@ -5663,8 +5663,8 @@
   * @param window cast=(GdkWindow *)
   * @param user_data cast=(gpointer)
   */
@@ -17970,7 +18297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_set_user_data(window, user_data);
-@@ -5559,8 +5559,8 @@ public static final void gdk_window_set_
+@@ -5676,8 +5676,8 @@
   * @param window cast=(GdkWindow *)
   * @param shape_region cast=(GdkRegion *)
   */
@@ -17981,7 +18308,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_shape_combine_region(window, shape_region, offset_x, offset_y);
-@@ -5569,8 +5569,8 @@ public static final void gdk_window_shap
+@@ -5686,8 +5686,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -17992,7 +18319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_show(window);
-@@ -5579,8 +5579,8 @@ public static final void gdk_window_show
+@@ -5696,8 +5696,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -18003,7 +18330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_show_unraised(window);
-@@ -5589,8 +5589,8 @@ public static final void gdk_window_show
+@@ -5706,8 +5706,8 @@
  	}
  }
  /** @param window cast=(GdkWindow *) */
@@ -18014,7 +18341,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gdk_window_thaw_updates(window);
-@@ -5598,8 +5598,8 @@ public static final void gdk_window_thaw
+@@ -5729,8 +5729,8 @@
+  * @param accelerator_key cast=(guint *)
+  * @param accelerator_mods cast=(GdkModifierType *)
+  */
+-public static final native void _gtk_accelerator_parse(int /*long*/ accelerator, int [] accelerator_key, int [] accelerator_mods);
+-public static final void gtk_accelerator_parse(int /*long*/ accelerator, int [] accelerator_key, int [] accelerator_mods) {
++public static final native void _gtk_accelerator_parse(long /*int*/ accelerator, int [] accelerator_key, int [] accelerator_mods);
++public static final void gtk_accelerator_parse(long /*int*/ accelerator, int [] accelerator_key, int [] accelerator_mods) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_accelerator_parse(accelerator, accelerator_key, accelerator_mods);
+@@ -5738,8 +5738,8 @@
  		lock.unlock();
  	}
  }
@@ -18025,7 +18363,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_accel_group_new();
-@@ -5612,8 +5612,8 @@ public static final int /*long*/ gtk_acc
+@@ -5752,8 +5752,8 @@
   * @param accelKey cast=(guint)
   * @param accelMods cast=(GdkModifierType)
   */
@@ -18036,7 +18374,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_accel_groups_activate(accelGroup, accelKey, accelMods);
-@@ -5625,8 +5625,8 @@ public static final boolean gtk_accel_gr
+@@ -5765,8 +5765,8 @@
   * @param accel_label cast=(GtkAccelLabel *)
   * @param accel_widget cast=(GtkWidget *)
   */
@@ -18047,7 +18385,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_accel_label_set_accel_widget(accel_label, accel_widget);
-@@ -5635,8 +5635,8 @@ public static final void gtk_accel_label
+@@ -5775,8 +5775,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -18058,7 +18396,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_adjustment_changed(adjustment);
-@@ -5651,8 +5651,8 @@ public static final void gtk_adjustment_
+@@ -5791,8 +5791,8 @@
   * @param step_increment cast=(gdouble)
   * @param page_increment cast=(gdouble)
   */
@@ -18069,7 +18407,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_adjustment_new(value, lower, upper, step_increment, page_increment, page_size);
-@@ -5664,8 +5664,8 @@ public static final int /*long*/ gtk_adj
+@@ -5804,8 +5804,8 @@
   * @param adjustment cast=(GtkAdjustment *)
   * @param value cast=(gdouble)
   */
@@ -18080,7 +18418,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_adjustment_set_value(adjustment, value);
-@@ -5674,8 +5674,8 @@ public static final void gtk_adjustment_
+@@ -5814,8 +5814,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -18091,7 +18429,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_adjustment_value_changed(adjustment);
-@@ -5687,8 +5687,8 @@ public static final void gtk_adjustment_
+@@ -5827,8 +5827,8 @@
   * @param arrow_type cast=(GtkArrowType)
   * @param shadow_type cast=(GtkShadowType)
   */
@@ -18102,7 +18440,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_arrow_new(arrow_type, shadow_type);
-@@ -5701,8 +5701,8 @@ public static final int /*long*/ gtk_arr
+@@ -5841,8 +5841,8 @@
   * @param arrow_type cast=(GtkArrowType)
   * @param shadow_type cast=(GtkShadowType)
   */
@@ -18113,7 +18451,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_arrow_set(arrow, arrow_type, shadow_type);
-@@ -5711,8 +5711,8 @@ public static final void gtk_arrow_set(i
+@@ -5851,8 +5851,8 @@
  	}
  }
  /** @param bin cast=(GtkBin *) */
@@ -18124,7 +18462,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_bin_get_child(bin);
-@@ -5721,8 +5721,8 @@ public static final int /*long*/ gtk_bin
+@@ -5861,8 +5861,8 @@
  	}
  }
  /** @param border cast=(GtkBorder *) */
@@ -18135,7 +18473,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_border_free(border);
-@@ -5731,8 +5731,8 @@ public static final void gtk_border_free
+@@ -5871,8 +5871,8 @@
  	}
  }
  /** @param box cast=(GtkBox *) */
@@ -18146,7 +18484,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_box_set_spacing(box, spacing);
-@@ -5744,8 +5744,8 @@ public static final void gtk_box_set_spa
+@@ -5884,8 +5884,8 @@
   * @param box cast=(GtkBox *)
   * @param child cast=(GtkWidget *)
   */
@@ -18157,7 +18495,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_box_set_child_packing(box, child, expand, fill, padding, pack_type);
-@@ -5754,8 +5754,8 @@ public static final void gtk_box_set_chi
+@@ -5894,8 +5894,8 @@
  	}
  }
  /** @param button cast=(GtkButton *) */
@@ -18168,7 +18506,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_button_clicked(button);
-@@ -5764,8 +5764,8 @@ public static final void gtk_button_clic
+@@ -5904,8 +5904,8 @@
  	}
  }
  /** @param button cast=(GtkButton *) */
@@ -18179,7 +18517,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_button_get_relief(button);
-@@ -5773,8 +5773,8 @@ public static final int gtk_button_get_r
+@@ -5913,8 +5913,8 @@
  		lock.unlock();
  	}
  }
@@ -18190,7 +18528,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_button_new();
-@@ -5786,8 +5786,8 @@ public static final int /*long*/ gtk_but
+@@ -5926,8 +5926,8 @@
   * @param button cast=(GtkButton *)
   * @param newstyle cast=(GtkReliefStyle)
   */
@@ -18201,7 +18539,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_button_set_relief(button, newstyle);
-@@ -5796,8 +5796,8 @@ public static final void gtk_button_set_
+@@ -5936,8 +5936,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18212,7 +18550,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_calendar_new();
-@@ -5811,8 +5811,8 @@ public static final int /*long*/ gtk_cal
+@@ -5951,8 +5951,8 @@
   * @param month cast=(guint)
   * @param year cast=(guint)
   */
@@ -18223,7 +18561,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_calendar_select_month(calendar, month, year);
-@@ -5825,8 +5825,8 @@ public static final boolean /*long*/ gtk
+@@ -5965,8 +5965,8 @@
   * @param calendar cast=(GtkCalendar *)
   * @param day cast=(guint)
   */
@@ -18234,7 +18572,29 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_calendar_select_day(calendar, day);
-@@ -5839,8 +5839,8 @@ public static final void gtk_calendar_se
+@@ -5979,8 +5979,8 @@
+  * @param calendar cast=(GtkCalendar *)
+  * @param day cast=(guint)
+  */
+-public static final native void _gtk_calendar_mark_day(int /*long*/ calendar, int day);
+-public static final void gtk_calendar_mark_day(int /*long*/ calendar, int day) {
++public static final native void _gtk_calendar_mark_day(long /*int*/ calendar, int day);
++public static final void gtk_calendar_mark_day(long /*int*/ calendar, int day) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_calendar_mark_day(calendar, day);
+@@ -5993,8 +5993,8 @@
+  * @param calendar cast=(GtkCalendar *)
+  * @param day cast=(guint)
+  */
+-public static final native void _gtk_calendar_clear_marks(int /*long*/ calendar);
+-public static final void gtk_calendar_clear_marks(int /*long*/ calendar) {
++public static final native void _gtk_calendar_clear_marks(long /*int*/ calendar);
++public static final void gtk_calendar_clear_marks(long /*int*/ calendar) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_calendar_clear_marks(calendar);
+@@ -6007,8 +6007,8 @@
   * @param calendar cast=(GtkCalendar *)
   * @param flags cast=(GtkCalendarDisplayOptions)
   */
@@ -18245,7 +18605,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_calendar_set_display_options(calendar, flags);
-@@ -5853,8 +5853,8 @@ public static final void gtk_calendar_se
+@@ -6021,8 +6021,8 @@
   * @param calendar cast=(GtkCalendar *)
   * @param flags cast=(GtkCalendarDisplayOptions)
   */
@@ -18256,7 +18616,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_calendar_display_options(calendar, flags);
-@@ -5869,8 +5869,8 @@ public static final void gtk_calendar_di
+@@ -6037,8 +6037,8 @@
   * @param month cast=(guint *)
   * @param day cast=(guint *)
   */
@@ -18267,7 +18627,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_calendar_get_date(calendar, year, month, day);
-@@ -5879,8 +5879,8 @@ public static final void gtk_calendar_ge
+@@ -6047,8 +6047,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18278,7 +18638,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_cell_layout_clear(cell_layout);
-@@ -5889,8 +5889,8 @@ public static final void gtk_cell_layout
+@@ -6057,8 +6057,8 @@
  	}
  }
  /** @method flags=no_gen */
@@ -18289,7 +18649,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_cell_layout_set_attributes(cell_layout, cell, attribute, column, sentinel);
-@@ -5899,8 +5899,8 @@ public static final void gtk_cell_layout
+@@ -6067,8 +6067,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18300,7 +18660,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_cell_layout_pack_start(cell_layout, cell, expand);
-@@ -5917,8 +5917,8 @@ public static final void gtk_cell_layout
+@@ -6085,8 +6085,8 @@
   * @param width cast=(gint *)
   * @param height cast=(gint *)
   */
@@ -18311,7 +18671,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_cell_renderer_get_size(cell, widget, area, x_offset, y_offset, width, height);
-@@ -5926,8 +5926,8 @@ public static final void gtk_cell_render
+@@ -6094,8 +6094,8 @@
  		lock.unlock();
  	}
  }
@@ -18322,7 +18682,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_cell_renderer_pixbuf_new();
-@@ -5935,8 +5935,8 @@ public static final int /*long*/ gtk_cel
+@@ -6103,8 +6103,8 @@
  		lock.unlock();
  	}
  }
@@ -18333,7 +18693,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_cell_renderer_text_new();
-@@ -5944,8 +5944,8 @@ public static final int /*long*/ gtk_cel
+@@ -6112,8 +6112,8 @@
  		lock.unlock();
  	}
  }
@@ -18344,7 +18704,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_cell_renderer_toggle_new();
-@@ -5953,8 +5953,8 @@ public static final int /*long*/ gtk_cel
+@@ -6121,8 +6121,8 @@
  		lock.unlock();
  	}
  }
@@ -18355,7 +18715,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_check_button_new();
-@@ -5963,8 +5963,8 @@ public static final int /*long*/ gtk_che
+@@ -6131,8 +6131,8 @@
  	}
  }
  /** @param check_menu_item cast=(GtkCheckMenuItem *) */
@@ -18366,7 +18726,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_check_menu_item_get_active(check_menu_item);
-@@ -5973,8 +5973,8 @@ public static final boolean gtk_check_me
+@@ -6141,8 +6141,8 @@
  	}
  }
  /** @param label cast=(const gchar *) */
@@ -18377,7 +18737,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_check_menu_item_new_with_label(label);
-@@ -5986,8 +5986,8 @@ public static final int /*long*/ gtk_che
+@@ -6154,8 +6154,8 @@
   * @param wid cast=(GtkCheckMenuItem *)
   * @param active cast=(gboolean)
   */
@@ -18388,7 +18748,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_check_menu_item_set_active(wid, active);
-@@ -5995,8 +5995,8 @@ public static final void gtk_check_menu_
+@@ -6163,8 +6163,8 @@
  		lock.unlock();
  	}
  }
@@ -18399,7 +18759,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_check_version(required_major, required_minor, required_micro);
-@@ -6005,8 +6005,8 @@ public static final int /*long*/ gtk_che
+@@ -6173,8 +6173,8 @@
  	}
  }
  /** @param clipboard cast=(GtkClipboard *) */
@@ -18410,7 +18770,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_clipboard_clear(clipboard);
-@@ -6015,8 +6015,8 @@ public static final void gtk_clipboard_c
+@@ -6183,8 +6183,8 @@
  	}
  }
  /** @param selection cast=(GdkAtom) */
@@ -18421,7 +18781,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_clipboard_get(selection);
-@@ -6032,8 +6032,8 @@ public static final int /*long*/ gtk_cli
+@@ -6200,8 +6200,8 @@
   * @param clear_func cast=(GtkClipboardClearFunc)
   * @param user_data cast=(GObject *)
   */
@@ -18432,7 +18792,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_clipboard_set_with_data(clipboard, target, n_targets, get_func, clear_func, user_data);
-@@ -6049,8 +6049,8 @@ public static final boolean gtk_clipboar
+@@ -6217,8 +6217,8 @@
   * @param clear_func cast=(GtkClipboardClearFunc)
   * @param user_data cast=(GObject *)
   */
@@ -18443,7 +18803,29 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_clipboard_set_with_owner(clipboard, target, n_targets, get_func, clear_func, user_data);
-@@ -6062,8 +6062,8 @@ public static final boolean gtk_clipboar
+@@ -6232,8 +6232,8 @@
+  * @param targets cast=(const GtkTargetEntry *)
+  * @param n_targets cast=(gint)
+  */
+-public static final native void _gtk_clipboard_set_can_store(int /*long*/ clipboard, int /*long*/ targets, int n_targets);
+-public static final void gtk_clipboard_set_can_store(int /*long*/ clipboard, int /*long*/ targets, int n_targets) {
++public static final native void _gtk_clipboard_set_can_store(long /*int*/ clipboard, long /*int*/ targets, int n_targets);
++public static final void gtk_clipboard_set_can_store(long /*int*/ clipboard, long /*int*/ targets, int n_targets) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_clipboard_set_can_store(clipboard, targets, n_targets);
+@@ -6245,8 +6245,8 @@
+  * @method flags=dynamic
+  * @param clipboard cast=(GtkClipboard *)
+  */
+-public static final native void _gtk_clipboard_store(int /*long*/ clipboard);
+-public static final void gtk_clipboard_store(int /*long*/ clipboard) {
++public static final native void _gtk_clipboard_store(long /*int*/ clipboard);
++public static final void gtk_clipboard_store(long /*int*/ clipboard) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_clipboard_store(clipboard);
+@@ -6258,8 +6258,8 @@
   * @param clipboard cast=(GtkClipboard *)
   * @param target cast=(GdkAtom)
   */
@@ -18454,7 +18836,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_clipboard_wait_for_contents(clipboard, target);
-@@ -6072,8 +6072,8 @@ public static final int /*long*/ gtk_cli
+@@ -6268,8 +6268,8 @@
  	}
  }
  /** @param title cast=(const gchar *) */
@@ -18465,7 +18847,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_color_selection_dialog_new(title);
-@@ -6085,8 +6085,8 @@ public static final int /*long*/ gtk_col
+@@ -6281,8 +6281,8 @@
   * @param colorsel cast=(GtkColorSelection *)
   * @param color cast=(GdkColor *),flags=no_in
   */
@@ -18476,7 +18858,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_color_selection_get_current_color(colorsel, color);
-@@ -6098,8 +6098,8 @@ public static final void gtk_color_selec
+@@ -6294,8 +6294,8 @@
   * @param colorsel cast=(GtkColorSelection *)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -18487,7 +18869,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_color_selection_set_current_color(colorsel, color);
-@@ -6108,8 +6108,8 @@ public static final void gtk_color_selec
+@@ -6304,8 +6304,8 @@
  	}
  }
  /** @param colorsel cast=(GtkColorSelection *) */
@@ -18498,7 +18880,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_color_selection_set_has_palette(colorsel, has_palette);
-@@ -6118,8 +6118,8 @@ public static final void gtk_color_selec
+@@ -6314,8 +6314,8 @@
  	}
  }
  /** @param combo cast=(GtkCombo *) */
@@ -18509,7 +18891,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_disable_activate(combo);
-@@ -6127,8 +6127,8 @@ public static final void gtk_combo_disab
+@@ -6323,8 +6323,8 @@
  		lock.unlock();
  	}
  }
@@ -18520,7 +18902,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_combo_new();
-@@ -6140,8 +6140,8 @@ public static final int /*long*/ gtk_com
+@@ -6336,8 +6336,8 @@
   * @param combo cast=(GtkCombo *)
   * @param val cast=(gboolean)
   */
@@ -18531,7 +18913,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_set_case_sensitive(combo, val);
-@@ -6150,8 +6150,8 @@ public static final void gtk_combo_set_c
+@@ -6346,8 +6346,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18542,7 +18924,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_set_focus_on_click(combo, val);
-@@ -6163,8 +6163,8 @@ public static final void gtk_combo_box_s
+@@ -6359,8 +6359,8 @@
   * @param combo cast=(GtkCombo *)
   * @param strings cast=(GList *)
   */
@@ -18553,7 +18935,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_set_popdown_strings(combo, strings);
-@@ -6173,8 +6173,8 @@ public static final void gtk_combo_set_p
+@@ -6369,8 +6369,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18564,7 +18946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_combo_box_entry_new_text();
-@@ -6183,8 +6183,8 @@ public static final int /*long*/ gtk_com
+@@ -6379,8 +6379,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18575,7 +18957,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_combo_box_new_text();
-@@ -6193,8 +6193,8 @@ public static final int /*long*/ gtk_com
+@@ -6389,8 +6389,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18586,7 +18968,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_insert_text(combo_box, position, text);
-@@ -6203,8 +6203,8 @@ public static final void gtk_combo_box_i
+@@ -6399,8 +6399,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18597,7 +18979,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_remove_text(combo_box, position);
-@@ -6213,8 +6213,8 @@ public static final void gtk_combo_box_r
+@@ -6409,8 +6409,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18608,7 +18990,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_combo_box_get_active(combo_box);
-@@ -6223,8 +6223,8 @@ public static final int gtk_combo_box_ge
+@@ -6419,8 +6419,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18619,7 +19001,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_combo_box_get_model(combo_box);
-@@ -6233,8 +6233,8 @@ public static final int /*long*/ gtk_com
+@@ -6429,8 +6429,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18630,7 +19012,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_set_active(combo_box, index);
-@@ -6243,8 +6243,8 @@ public static final void gtk_combo_box_s
+@@ -6439,8 +6439,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18641,7 +19023,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_popup(combo_box);
-@@ -6253,8 +6253,8 @@ public static final void gtk_combo_box_p
+@@ -6449,8 +6449,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -18652,7 +19034,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_combo_box_popdown(combo_box);
-@@ -6266,8 +6266,8 @@ public static final void gtk_combo_box_p
+@@ -6462,8 +6462,8 @@
   * @param container cast=(GtkContainer *)
   * @param widget cast=(GtkWidget *)
   */
@@ -18663,7 +19045,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_container_add(container, widget);
-@@ -6280,8 +6280,8 @@ public static final void gtk_container_a
+@@ -6476,8 +6476,8 @@
   * @param callback cast=(GtkCallback)
   * @param callback_data cast=(gpointer)
   */
@@ -18674,7 +19056,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_container_forall(container, callback, callback_data);
-@@ -6290,8 +6290,8 @@ public static final void gtk_container_f
+@@ -6486,8 +6486,8 @@
  	}
  }
  /** @param container cast=(GtkContainer *) */
@@ -18685,7 +19067,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_container_get_border_width(container);
-@@ -6300,8 +6300,8 @@ public static final int gtk_container_ge
+@@ -6496,8 +6496,8 @@
  	}
  }
  /** @param container cast=(GtkContainer *) */
@@ -18696,7 +19078,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_container_get_children(container);
-@@ -6313,8 +6313,8 @@ public static final int /*long*/ gtk_con
+@@ -6509,8 +6509,8 @@
   * @param container cast=(GtkContainer *)
   * @param widget cast=(GtkWidget *)
   */
@@ -18707,7 +19089,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_container_remove(container, widget);
-@@ -6323,8 +6323,8 @@ public static final void gtk_container_r
+@@ -6519,8 +6519,8 @@
  	}
  }
  /** @param container cast=(GtkContainer *) */
@@ -18718,7 +19100,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_container_resize_children(container);
-@@ -6336,8 +6336,8 @@ public static final void gtk_container_r
+@@ -6532,8 +6532,8 @@
   * @param container cast=(GtkContainer *)
   * @param border_width cast=(guint)
   */
@@ -18729,7 +19111,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_container_set_border_width(container, border_width);
-@@ -6350,8 +6350,8 @@ public static final void gtk_container_s
+@@ -6546,8 +6546,8 @@
   * @param button_text cast=(const gchar *)
   * @param response_id cast=(gint)
   */
@@ -18740,7 +19122,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_dialog_add_button(dialog, button_text, response_id);
-@@ -6360,8 +6360,8 @@ public static final int /*long*/ gtk_dia
+@@ -6556,8 +6556,8 @@
  	}
  }
  /** @param dialog cast=(GtkDialog *) */
@@ -18751,7 +19133,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_dialog_run(dialog);
-@@ -6376,8 +6376,8 @@ public static final int gtk_dialog_run(i
+@@ -6572,8 +6572,8 @@
   * @param button cast=(gint)
   * @param event cast=(GdkEvent *)
   */
@@ -18762,7 +19144,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_drag_begin(widget, targets, actions, button, event);
-@@ -6392,8 +6392,8 @@ public static final int /*long*/ gtk_dra
+@@ -6588,8 +6588,8 @@
   * @param current_x cast=(gint)
   * @param current_y cast=(gint)
   */
@@ -18773,7 +19155,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_drag_check_threshold(widget, start_x, start_y, current_x, current_y);
-@@ -6406,8 +6406,8 @@ public static final boolean gtk_drag_che
+@@ -6602,8 +6602,8 @@
   * @param context cast=(GdkDragContext *)
   * @param target_list cast=(GtkTargetList *)
   */
@@ -18784,7 +19166,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_drag_dest_find_target(widget, context, target_list);
-@@ -6422,8 +6422,8 @@ public static final int /*long*/ gtk_dra
+@@ -6618,8 +6618,8 @@
   * @param n_targets cast=(gint)
   * @param actions cast=(GdkDragAction)
   */
@@ -18795,7 +19177,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_drag_dest_set(widget, flags, targets, n_targets, actions);
-@@ -6432,8 +6432,8 @@ public static final void gtk_drag_dest_s
+@@ -6628,8 +6628,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -18806,7 +19188,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_drag_dest_unset(widget);
-@@ -6447,8 +6447,8 @@ public static final void gtk_drag_dest_u
+@@ -6643,8 +6643,8 @@
   * @param delete cast=(gboolean)
   * @param time cast=(guint32)
   */
@@ -18817,7 +19199,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_drag_finish(context, success, delete, time);
-@@ -6462,8 +6462,8 @@ public static final void gtk_drag_finish
+@@ -6658,8 +6658,8 @@
   * @param target cast=(GdkAtom)
   * @param time cast=(guint32)
   */
@@ -18828,7 +19210,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_drag_get_data(widget, context, target, time);
-@@ -6475,8 +6475,8 @@ public static final void gtk_drag_get_da
+@@ -6671,8 +6671,8 @@
   * @param context cast=(GdkDragContext *)
   * @param pixbuf cast=(GdkPixbuf *)
   */
@@ -18839,7 +19221,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_drag_set_icon_pixbuf(context, pixbuf, hot_x, hot_y);
-@@ -6484,8 +6484,8 @@ public static final void gtk_drag_set_ic
+@@ -6680,8 +6680,8 @@
  		lock.unlock();
  	}
  }
@@ -18850,7 +19232,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_drawing_area_new();
-@@ -6494,8 +6494,8 @@ public static final int /*long*/ gtk_dra
+@@ -6690,8 +6690,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18861,7 +19243,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_copy_clipboard(editable);
-@@ -6504,8 +6504,8 @@ public static final void gtk_editable_co
+@@ -6700,8 +6700,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18872,7 +19254,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_cut_clipboard(editable);
-@@ -6514,8 +6514,8 @@ public static final void gtk_editable_cu
+@@ -6710,8 +6710,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18883,7 +19265,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_delete_selection(editable);
-@@ -6528,8 +6528,8 @@ public static final void gtk_editable_de
+@@ -6724,8 +6724,8 @@
   * @param start_pos cast=(gint)
   * @param end_pos cast=(gint)
   */
@@ -18894,7 +19276,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_delete_text(editable, start_pos, end_pos);
-@@ -6542,8 +6542,8 @@ public static final void gtk_editable_de
+@@ -6738,8 +6738,8 @@
   * @param start_pos cast=(gint)
   * @param end_pos cast=(gint)
   */
@@ -18905,7 +19287,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_editable_get_chars(editable, start_pos, end_pos);
-@@ -6552,8 +6552,8 @@ public static final int /*long*/ gtk_edi
+@@ -6748,8 +6748,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18916,7 +19298,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_editable_get_editable(editable);
-@@ -6562,8 +6562,8 @@ public static final boolean gtk_editable
+@@ -6758,8 +6758,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18927,7 +19309,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_editable_get_position(editable);
-@@ -6576,8 +6576,8 @@ public static final int gtk_editable_get
+@@ -6772,8 +6772,8 @@
   * @param start cast=(gint *)
   * @param end cast=(gint *)
   */
@@ -18938,7 +19320,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_editable_get_selection_bounds(editable, start, end);
-@@ -6591,8 +6591,8 @@ public static final boolean gtk_editable
+@@ -6787,8 +6787,8 @@
   * @param new_text_length cast=(gint)
   * @param position cast=(gint *)
   */
@@ -18949,7 +19331,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_insert_text(editable, new_text, new_text_length, position);
-@@ -6601,8 +6601,8 @@ public static final void gtk_editable_in
+@@ -6797,8 +6797,8 @@
  	}
  }
  /** @param editable cast=(GtkEditable *) */
@@ -18960,7 +19342,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_paste_clipboard(editable);
-@@ -6615,8 +6615,8 @@ public static final void gtk_editable_pa
+@@ -6811,8 +6811,8 @@
   * @param start cast=(gint)
   * @param end cast=(gint)
   */
@@ -18971,7 +19353,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_select_region(editable, start, end);
-@@ -6628,8 +6628,8 @@ public static final void gtk_editable_se
+@@ -6824,8 +6824,8 @@
   * @param entry cast=(GtkEditable *)
   * @param editable cast=(gboolean)
   */
@@ -18982,7 +19364,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_set_editable(entry, editable);
-@@ -6641,8 +6641,8 @@ public static final void gtk_editable_se
+@@ -6837,8 +6837,8 @@
   * @param editable cast=(GtkEditable *)
   * @param position cast=(gint)
   */
@@ -18993,7 +19375,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_editable_set_position(editable, position);
-@@ -6651,8 +6651,8 @@ public static final void gtk_editable_se
+@@ -6847,8 +6847,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19004,7 +19386,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_inner_border(entry);
-@@ -6661,8 +6661,8 @@ public static final int /*long*/ gtk_ent
+@@ -6857,8 +6857,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19015,7 +19397,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_invisible_char(entry);
-@@ -6671,8 +6671,8 @@ public static final char gtk_entry_get_i
+@@ -6867,8 +6867,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19026,7 +19408,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_layout(entry);
-@@ -6681,8 +6681,8 @@ public static final int /*long*/ gtk_ent
+@@ -6877,8 +6877,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19037,7 +19419,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_get_layout_offsets(entry, x, y);
-@@ -6691,8 +6691,8 @@ public static final void gtk_entry_get_l
+@@ -6887,8 +6887,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19048,7 +19430,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_text_index_to_layout_index(entry, index);
-@@ -6701,8 +6701,8 @@ public static final int gtk_entry_text_i
+@@ -6897,8 +6897,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19059,7 +19441,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_max_length(entry);
-@@ -6711,8 +6711,8 @@ public static final int gtk_entry_get_ma
+@@ -6907,8 +6907,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19070,7 +19452,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_text(entry);
-@@ -6721,8 +6721,8 @@ public static final int /*long*/ gtk_ent
+@@ -6917,8 +6917,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19081,7 +19463,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _FcConfigAppFontAddFile(config, file);
-@@ -6731,8 +6731,8 @@ public static final boolean FcConfigAppF
+@@ -6927,8 +6927,8 @@
  	}
  }
  /** @param entry cast=(GtkEntry *) */
@@ -19092,7 +19474,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_get_visibility(entry);
-@@ -6740,8 +6740,8 @@ public static final boolean gtk_entry_ge
+@@ -6936,8 +6936,8 @@
  		lock.unlock();
  	}
  }
@@ -19103,7 +19485,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_entry_new();
-@@ -6753,8 +6753,8 @@ public static final int /*long*/ gtk_ent
+@@ -6949,8 +6949,8 @@
   * @param entry cast=(GtkEntry *)
   * @param setting cast=(gboolean)
   */
@@ -19114,7 +19496,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_activates_default(entry, setting);
-@@ -6767,8 +6767,8 @@ public static final void gtk_entry_set_a
+@@ -6963,8 +6963,8 @@
   * @param entry cast=(GtkEntry *)
   * @param xalign cast=(gfloat)
   */
@@ -19125,7 +19507,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_alignment(entry, xalign);
-@@ -6780,8 +6780,8 @@ public static final void gtk_entry_set_a
+@@ -6976,8 +6976,8 @@
   * @param entry cast=(GtkEntry *)
   * @param setting cast=(gboolean)
   */
@@ -19136,7 +19518,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_has_frame(entry, setting);
-@@ -6790,8 +6790,8 @@ public static final void gtk_entry_set_h
+@@ -6986,8 +6986,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19147,7 +19529,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_icon_from_stock(entry, icon, stock);
-@@ -6800,8 +6800,8 @@ public static final void gtk_entry_set_i
+@@ -6996,8 +6996,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19158,7 +19540,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_icon_sensitive(entry, icon_pos, sensitive);
-@@ -6813,8 +6813,8 @@ public static final void gtk_entry_set_i
+@@ -7009,8 +7009,8 @@
   * @param entry cast=(GtkEntry *)
   * @param ch cast=(gint)
   */
@@ -19169,7 +19551,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_invisible_char(entry, ch);
-@@ -6826,8 +6826,8 @@ public static final void gtk_entry_set_i
+@@ -7022,8 +7022,8 @@
   * @param entry cast=(GtkEntry *)
   * @param max cast=(gint)
   */
@@ -19180,7 +19562,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_max_length(entry, max);
-@@ -6839,8 +6839,8 @@ public static final void gtk_entry_set_m
+@@ -7035,8 +7035,8 @@
   * @param entry cast=(GtkEntry *)
   * @param text cast=(const gchar *)
   */
@@ -19191,7 +19573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_text(entry, text);
-@@ -6852,8 +6852,8 @@ public static final void gtk_entry_set_t
+@@ -7048,8 +7048,8 @@
   * @param entry cast=(GtkEntry *)
   * @param visible cast=(gboolean)
   */
@@ -19202,7 +19584,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_entry_set_visibility(entry, visible);
-@@ -6871,8 +6871,8 @@ public static final int gtk_events_pendi
+@@ -7067,8 +7067,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19213,7 +19595,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_expander_get_expanded(expander);
-@@ -6881,8 +6881,8 @@ public static final boolean gtk_expander
+@@ -7077,8 +7077,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19224,7 +19606,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_expander_get_label_widget(expander);
-@@ -6894,8 +6894,8 @@ public static final int /*long*/ gtk_exp
+@@ -7090,8 +7090,8 @@
   * @method flags=dynamic
   * @param label cast=(const gchar *)
   */
@@ -19235,7 +19617,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_expander_new(label);
-@@ -6904,8 +6904,8 @@ public static final int /*long*/ gtk_exp
+@@ -7100,8 +7100,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19246,7 +19628,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_expander_set_expanded(expander, expanded);
-@@ -6917,8 +6917,8 @@ public static final void gtk_expander_se
+@@ -7113,8 +7113,8 @@
   * @method flags=dynamic
   * @param label cast=(const gchar *)
   */
@@ -19257,7 +19639,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_expander_set_label(expander, label);
-@@ -6927,8 +6927,8 @@ public static final void gtk_expander_se
+@@ -7123,8 +7123,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19268,7 +19650,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_expander_set_label_widget(expander, label_widget);
-@@ -6937,8 +6937,8 @@ public static final void  gtk_expander_s
+@@ -7133,8 +7133,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19279,7 +19661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_add_filter(chooser, filter);
-@@ -6947,8 +6947,8 @@ public static final void gtk_file_choose
+@@ -7143,8 +7143,8 @@
  	}
  }
  /** @method flags=no_gen */
@@ -19290,7 +19672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_dialog_new(title, parent, action, first_button_text, first_button_id, second_button_text, second_button_id, terminator);
-@@ -6957,8 +6957,8 @@ public static final int /*long*/ gtk_fil
+@@ -7153,8 +7153,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19301,7 +19683,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_current_folder(chooser);
-@@ -6967,8 +6967,8 @@ public static final int /*long*/ gtk_fil
+@@ -7163,8 +7163,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19312,7 +19694,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_filename(chooser);
-@@ -6977,8 +6977,8 @@ public static final int /*long*/ gtk_fil
+@@ -7173,8 +7173,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19323,7 +19705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_filenames(chooser);
-@@ -6987,8 +6987,8 @@ public static final int /*long*/ gtk_fil
+@@ -7183,8 +7183,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19334,7 +19716,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_uri(chooser);
-@@ -6997,8 +6997,8 @@ public static final int /*long*/ gtk_fil
+@@ -7193,8 +7193,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19345,7 +19727,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_uris(chooser);
-@@ -7007,8 +7007,8 @@ public static final int /*long*/ gtk_fil
+@@ -7203,8 +7203,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19356,7 +19738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_chooser_get_filter(chooser);
-@@ -7017,8 +7017,8 @@ public static final int /*long*/ gtk_fil
+@@ -7213,8 +7213,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19367,7 +19749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_current_folder(chooser, filename);
-@@ -7027,8 +7027,8 @@ public static final void gtk_file_choose
+@@ -7223,8 +7223,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19378,7 +19760,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_current_folder_uri(chooser, uri);
-@@ -7037,8 +7037,8 @@ public static final void gtk_file_choose
+@@ -7233,8 +7233,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19389,7 +19771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_current_name(chooser, name);
-@@ -7047,8 +7047,8 @@ public static final void gtk_file_choose
+@@ -7243,8 +7243,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19400,7 +19782,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_local_only(chooser, local_only);
-@@ -7057,8 +7057,8 @@ public static final void gtk_file_choose
+@@ -7253,8 +7253,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19411,7 +19793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_do_overwrite_confirmation(chooser, do_overwrite_confirmation);
-@@ -7067,8 +7067,8 @@ public static final void gtk_file_choose
+@@ -7263,8 +7263,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19422,7 +19804,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_extra_widget(chooser, extra_widget);
-@@ -7077,8 +7077,8 @@ public static final void gtk_file_choose
+@@ -7273,8 +7273,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19433,7 +19815,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_filename(chooser, name);
-@@ -7087,8 +7087,8 @@ public static final void gtk_file_choose
+@@ -7283,8 +7283,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19444,7 +19826,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_filter(chooser, filter);
-@@ -7097,8 +7097,8 @@ public static final void gtk_file_choose
+@@ -7293,8 +7293,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19455,7 +19837,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_uri(chooser, uri);
-@@ -7107,8 +7107,8 @@ public static final void gtk_file_choose
+@@ -7303,8 +7303,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19466,7 +19848,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_chooser_set_select_multiple(chooser, select_multiple);
-@@ -7117,8 +7117,8 @@ public static final void gtk_file_choose
+@@ -7313,8 +7313,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19477,7 +19859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_filter_add_pattern(filter, pattern);
-@@ -7127,8 +7127,8 @@ public static final void gtk_file_filter
+@@ -7323,8 +7323,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19488,7 +19870,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_filter_new();
-@@ -7137,8 +7137,8 @@ public static final int /*long*/ gtk_fil
+@@ -7333,8 +7333,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19499,7 +19881,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_filter_get_name(filter);
-@@ -7147,8 +7147,8 @@ public static final int /*long*/ gtk_fil
+@@ -7343,8 +7343,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -19510,7 +19892,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_filter_set_name(filter, name);
-@@ -7157,8 +7157,8 @@ public static final void gtk_file_filter
+@@ -7353,8 +7353,8 @@
  	}
  }
  /** @param filesel cast=(GtkFileSelection *) */
@@ -19521,7 +19903,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_selection_get_filename(filesel);
-@@ -7167,8 +7167,8 @@ public static final int /*long*/ gtk_fil
+@@ -7363,8 +7363,8 @@
  	}
  }
  /** @param filesel cast=(GtkFileSelection *) */
@@ -19532,7 +19914,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_selection_get_selections(filesel);
-@@ -7177,8 +7177,8 @@ public static final int /*long*/ gtk_fil
+@@ -7373,8 +7373,8 @@
  	}
  }
  /** @param filesel cast=(GtkFileSelection *) */
@@ -19543,7 +19925,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_selection_hide_fileop_buttons(filesel);
-@@ -7187,8 +7187,8 @@ public static final void gtk_file_select
+@@ -7383,8 +7383,8 @@
  	}
  }
  /** @param title cast=(const gchar *) */
@@ -19554,7 +19936,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_file_selection_new(title);
-@@ -7200,8 +7200,8 @@ public static final int /*long*/ gtk_fil
+@@ -7396,8 +7396,8 @@
   * @param filesel cast=(GtkFileSelection *)
   * @param filename cast=(const gchar *)
   */
@@ -19565,7 +19947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_selection_set_filename(filesel, filename);
-@@ -7213,8 +7213,8 @@ public static final void gtk_file_select
+@@ -7409,8 +7409,8 @@
   * @param filesel cast=(GtkFileSelection *)
   * @param select_multiple cast=(gboolean)
   */
@@ -19576,7 +19958,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_file_selection_set_select_multiple(filesel, select_multiple);
-@@ -7228,8 +7228,8 @@ public static final void gtk_file_select
+@@ -7424,8 +7424,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -19587,7 +19969,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_fixed_move(fixed, widget, x, y);
-@@ -7237,8 +7237,8 @@ public static final void gtk_fixed_move(
+@@ -7433,8 +7433,8 @@
  		lock.unlock();
  	}
  }
@@ -19598,7 +19980,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_fixed_new();
-@@ -7250,8 +7250,8 @@ public static final int /*long*/ gtk_fix
+@@ -7446,8 +7446,8 @@
   * @param fixed cast=(GtkFixed *)
   * @param has_window cast=(gboolean)
   */
@@ -19609,7 +19991,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_fixed_set_has_window(fixed, has_window);
-@@ -7260,8 +7260,8 @@ public static final void gtk_fixed_set_h
+@@ -7456,8 +7456,8 @@
  	}
  }
  /** @param fsd cast=(GtkFontSelectionDialog *) */
@@ -19620,7 +20002,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_font_selection_dialog_get_font_name(fsd);
-@@ -7270,8 +7270,8 @@ public static final int /*long*/ gtk_fon
+@@ -7466,8 +7466,8 @@
  	}
  }
  /** @param title cast=(const gchar *) */
@@ -19631,7 +20013,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_font_selection_dialog_new(title);
-@@ -7283,8 +7283,8 @@ public static final int /*long*/ gtk_fon
+@@ -7479,8 +7479,8 @@
   * @param fsd cast=(GtkFontSelectionDialog *)
   * @param fontname cast=(const gchar *)
   */
@@ -19642,7 +20024,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_font_selection_dialog_set_font_name(fsd, fontname);
-@@ -7293,8 +7293,8 @@ public static final boolean gtk_font_sel
+@@ -7489,8 +7489,8 @@
  	}
  }
  /** @param label cast=(const gchar *) */
@@ -19653,7 +20035,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_frame_new(label);
-@@ -7303,8 +7303,8 @@ public static final int /*long*/ gtk_fra
+@@ -7499,8 +7499,8 @@
  	}
  }
  /** @param frame cast=(GtkFrame *) */
@@ -19664,7 +20046,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_frame_get_label_widget(frame);
-@@ -7316,8 +7316,8 @@ public static final int /*long*/ gtk_fra
+@@ -7512,8 +7512,8 @@
   * @param frame cast=(GtkFrame *)
   * @param label cast=(const gchar *)
   */
@@ -19675,7 +20057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_frame_set_label(frame, label);
-@@ -7329,8 +7329,8 @@ public static final void gtk_frame_set_l
+@@ -7525,8 +7525,8 @@
   * @param frame cast=(GtkFrame *)
   * @param label_widget cast=(GtkWidget *)
   */
@@ -19686,7 +20068,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_frame_set_label_widget(frame, label_widget);
-@@ -7342,8 +7342,8 @@ public static final void gtk_frame_set_l
+@@ -7538,8 +7538,8 @@
   * @param frame cast=(GtkFrame *)
   * @param type cast=(GtkShadowType)
   */
@@ -19697,7 +20079,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_frame_set_shadow_type(frame, type);
-@@ -7351,8 +7351,8 @@ public static final void gtk_frame_set_s
+@@ -7547,8 +7547,8 @@
  		lock.unlock();
  	}
  }
@@ -19708,7 +20090,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_get_current_event();
-@@ -7379,8 +7379,8 @@ public static final int gtk_get_current_
+@@ -7575,8 +7575,8 @@
  		lock.unlock();
  	}
  }
@@ -19719,7 +20101,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_get_default_language();
-@@ -7389,8 +7389,8 @@ public static final int /*long*/ gtk_get
+@@ -7585,8 +7585,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -19730,7 +20112,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_get_event_widget(event);
-@@ -7399,8 +7399,8 @@ public static final int /*long*/ gtk_get
+@@ -7595,8 +7595,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -19741,7 +20123,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_grab_add(widget);
-@@ -7408,8 +7408,8 @@ public static final void gtk_grab_add(in
+@@ -7604,8 +7604,8 @@
  		lock.unlock();
  	}
  }
@@ -19752,7 +20134,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_grab_get_current();
-@@ -7418,8 +7418,8 @@ public static final int /*long*/ gtk_gra
+@@ -7614,8 +7614,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -19763,7 +20145,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_grab_remove(widget);
-@@ -7431,8 +7431,8 @@ public static final void gtk_grab_remove
+@@ -7627,8 +7627,8 @@
   * @param homogeneous cast=(gboolean)
   * @param spacing cast=(gint)
   */
@@ -19774,7 +20156,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_hbox_new(homogeneous, spacing);
-@@ -7441,8 +7441,8 @@ public static final int /*long*/ gtk_hbo
+@@ -7637,8 +7637,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -19785,7 +20167,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_hscale_new(adjustment);
-@@ -7451,8 +7451,8 @@ public static final int /*long*/ gtk_hsc
+@@ -7647,8 +7647,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -19796,7 +20178,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_hscrollbar_new(adjustment);
-@@ -7460,8 +7460,8 @@ public static final int /*long*/ gtk_hsc
+@@ -7656,8 +7656,8 @@
  		lock.unlock();
  	}
  }
@@ -19807,7 +20189,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_hseparator_new();
-@@ -7472,8 +7472,8 @@ public static final int /*long*/ gtk_hse
+@@ -7665,8 +7665,8 @@
+ 		lock.unlock();
+ 	}
+ }
+-public static final native int /*long*/ _gtk_status_icon_position_menu_func();
+-public static final int /*long*/ gtk_status_icon_position_menu_func() {
++public static final native long /*int*/ _gtk_status_icon_position_menu_func();
++public static final long /*int*/ gtk_status_icon_position_menu_func() {
+ 	lock.lock();
+ 	try {
+ 		return _gtk_status_icon_position_menu_func();
+@@ -7677,8 +7677,8 @@
  /**
   * @method flags=dynamic
   */
@@ -19818,7 +20211,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_icon_info_free(icon_info);
-@@ -7482,8 +7482,8 @@ public static final void gtk_icon_info_f
+@@ -7687,8 +7687,8 @@
  	}
  }
  /** @param stock_id cast=(const gchar *) */
@@ -19829,7 +20222,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_factory_lookup_default(stock_id);
-@@ -7492,8 +7492,8 @@ public static final int /*long*/ gtk_ico
+@@ -7697,8 +7697,8 @@
  	}
  }
  /** @param source cast=(GtkIconSource *) */
@@ -19840,7 +20233,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_icon_source_free(source);
-@@ -7501,8 +7501,8 @@ public static final void gtk_icon_source
+@@ -7706,8 +7706,8 @@
  		lock.unlock();
  	}
  }
@@ -19851,7 +20244,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_source_new();
-@@ -7514,8 +7514,8 @@ public static final int /*long*/ gtk_ico
+@@ -7719,8 +7719,8 @@
   * @param source cast=(GtkIconSource *)
   * @param pixbuf cast=(GdkPixbuf *)
   */
@@ -19862,7 +20255,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_icon_source_set_pixbuf(source, pixbuf);
-@@ -7532,8 +7532,8 @@ public static final void gtk_icon_source
+@@ -7737,8 +7737,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const char *)
   */
@@ -19873,7 +20266,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_set_render_icon(icon_set, style, direction, state, size, widget, detail);
-@@ -7544,8 +7544,8 @@ public static final int /*long*/ gtk_ico
+@@ -7749,8 +7749,8 @@
  /**
   * @method flags=dynamic
   */
@@ -19884,7 +20277,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_theme_get_default ();
-@@ -7556,8 +7556,8 @@ public static final int /*long*/ gtk_ico
+@@ -7761,8 +7761,8 @@
  /**
   * @method flags=dynamic
   */
@@ -19895,7 +20288,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_theme_lookup_by_gicon (icon_theme, icon, size, flags);
-@@ -7568,8 +7568,8 @@ public static final int /*long*/ gtk_ico
+@@ -7773,8 +7773,8 @@
  /**
   * @method flags=dynamic
   */
@@ -19906,7 +20299,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_icon_info_load_icon(icon_info, error);
-@@ -7581,8 +7581,8 @@ public static final int /*long*/ gtk_ico
+@@ -7786,8 +7786,8 @@
   * @param context cast=(GtkIMContext *)
   * @param event cast=(GdkEventKey *)
   */
@@ -19917,7 +20310,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_im_context_filter_keypress(context, event);
-@@ -7591,8 +7591,8 @@ public static final boolean gtk_im_conte
+@@ -7796,8 +7796,8 @@
  	}
  }
  /** @param context cast=(GtkIMContext *) */
@@ -19928,7 +20321,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_focus_in(context);
-@@ -7601,8 +7601,8 @@ public static final void gtk_im_context_
+@@ -7806,8 +7806,8 @@
  	}
  }
  /** @param context cast=(GtkIMContext *) */
@@ -19939,7 +20332,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_focus_out(context);
-@@ -7616,8 +7616,8 @@ public static final void gtk_im_context_
+@@ -7821,8 +7821,8 @@
   * @param attrs cast=(PangoAttrList **)
   * @param cursor_pos cast=(gint *)
   */
@@ -19950,7 +20343,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_get_preedit_string(context, str, attrs, cursor_pos);
-@@ -7625,8 +7625,8 @@ public static final void gtk_im_context_
+@@ -7830,8 +7830,8 @@
  		lock.unlock();
  	}
  }
@@ -19961,7 +20354,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_im_context_get_type();
-@@ -7635,8 +7635,8 @@ public static final int /*long*/ gtk_im_
+@@ -7840,8 +7840,8 @@
  	}
  }
  /** @param context cast=(GtkIMContext *) */
@@ -19972,7 +20365,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_reset(context);
-@@ -7648,8 +7648,8 @@ public static final void gtk_im_context_
+@@ -7853,8 +7853,8 @@
   * @param context cast=(GtkIMContext *)
   * @param window cast=(GdkWindow *)
   */
@@ -19983,7 +20376,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_set_client_window(context, window);
-@@ -7661,8 +7661,8 @@ public static final void gtk_im_context_
+@@ -7866,8 +7866,8 @@
   * @param context cast=(GtkIMContext *)
   * @param area cast=(GdkRectangle *),flags=no_out
   */
@@ -19994,7 +20387,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_context_set_cursor_location(context, area);
-@@ -7674,8 +7674,8 @@ public static final void gtk_im_context_
+@@ -7879,8 +7879,8 @@
   * @param context cast=(GtkIMMulticontext *)
   * @param menushell cast=(GtkMenuShell *)
   */
@@ -20005,7 +20398,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_im_multicontext_append_menuitems(context, menushell);
-@@ -7683,8 +7683,8 @@ public static final void gtk_im_multicon
+@@ -7888,8 +7888,8 @@
  		lock.unlock();
  	}
  }
@@ -20016,7 +20409,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_im_multicontext_new();
-@@ -7693,8 +7693,8 @@ public static final int /*long*/ gtk_im_
+@@ -7898,8 +7898,8 @@
  	}
  }
  /** @param label cast=(const gchar *) */
@@ -20027,7 +20420,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_image_menu_item_new_with_label(label);
-@@ -7706,8 +7706,8 @@ public static final int /*long*/ gtk_ima
+@@ -7911,8 +7911,8 @@
   * @param menu_item cast=(GtkImageMenuItem *)
   * @param image cast=(GtkWidget *)
   */
@@ -20038,7 +20431,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_image_menu_item_set_image(menu_item, image);
-@@ -7715,8 +7715,8 @@ public static final void gtk_image_menu_
+@@ -7920,8 +7920,8 @@
  		lock.unlock();
  	}
  }
@@ -20049,7 +20442,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_image_new();
-@@ -7725,8 +7725,8 @@ public static final int /*long*/ gtk_ima
+@@ -7930,8 +7930,8 @@
  	}
  }
  /** @param pixbuf cast=(GdkPixbuf *) */
@@ -20060,7 +20453,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_image_new_from_pixbuf(pixbuf);
-@@ -7738,8 +7738,8 @@ public static final int /*long*/ gtk_ima
+@@ -7943,8 +7943,8 @@
   * @param pixmap cast=(GdkPixmap *)
   * @param mask cast=(GdkBitmap *)
   */
@@ -20071,7 +20464,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_image_new_from_pixmap(pixmap, mask);
-@@ -7751,8 +7751,8 @@ public static final int /*long*/ gtk_ima
+@@ -7956,8 +7956,8 @@
   * @param image cast=(GtkImage *)
   * @param pixbuf cast=(GdkPixbuf *)
   */
@@ -20082,7 +20475,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_image_set_from_pixbuf(image, pixbuf);
-@@ -7765,8 +7765,8 @@ public static final void gtk_image_set_f
+@@ -7970,8 +7970,8 @@
   * @param pixmap cast=(GdkBitmap *)
   * @param mask cast=(GdkBitmap *)
   */
@@ -20093,7 +20486,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_image_set_from_pixmap(image, pixmap, mask);
-@@ -7778,8 +7778,8 @@ public static final void gtk_image_set_f
+@@ -7983,8 +7983,8 @@
   * @param argc cast=(int *)
   * @param argv cast=(char ***)
   */
@@ -20104,7 +20497,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_init_check(argc, argv);
-@@ -7788,8 +7788,8 @@ public static final boolean gtk_init_che
+@@ -7993,8 +7993,8 @@
  	}
  }
  /** @param label cast=(GtkLabel *) */
@@ -20115,7 +20508,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_label_get_layout(label);
-@@ -7798,8 +7798,8 @@ public static final int /*long*/ gtk_lab
+@@ -8003,8 +8003,8 @@
  	}
  }
  /** @param label cast=(GtkLabel *) */
@@ -20126,7 +20519,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_label_get_mnemonic_keyval(label);
-@@ -7808,8 +7808,8 @@ public static final int gtk_label_get_mn
+@@ -8013,8 +8013,8 @@
  	}
  }
  /** @param label cast=(const gchar *) */
@@ -20137,7 +20530,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_label_new(label);
-@@ -7818,8 +7818,8 @@ public static final int /*long*/ gtk_lab
+@@ -8023,8 +8023,8 @@
  	}
  }
  /** @param str cast=(const gchar *) */
@@ -20148,7 +20541,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_label_new_with_mnemonic(str);
-@@ -7831,8 +7831,8 @@ public static final int /*long*/ gtk_lab
+@@ -8036,8 +8036,8 @@
   * @param label cast=(GtkLabel *)
   * @param attrs cast=(PangoAttrList *)
   */
@@ -20159,7 +20552,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_attributes(label, attrs);
-@@ -7844,8 +7844,8 @@ public static final void gtk_label_set_a
+@@ -8049,8 +8049,8 @@
   * @param label cast=(GtkLabel *)
   * @param jtype cast=(GtkJustification)
   */
@@ -20170,7 +20563,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_justify(label, jtype);
-@@ -7857,8 +7857,8 @@ public static final void gtk_label_set_j
+@@ -8062,8 +8062,8 @@
   * @param label cast=(GtkLabel *)
   * @param wrap cast=(gboolean)
   */
@@ -20181,7 +20574,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_line_wrap(label, wrap);
-@@ -7867,8 +7867,8 @@ public static final void gtk_label_set_l
+@@ -8072,8 +8072,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20192,7 +20585,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_line_wrap_mode(label, wrap_mode);
-@@ -7880,8 +7880,8 @@ public static final void gtk_label_set_l
+@@ -8085,8 +8085,8 @@
   * @param label cast=(GtkLabel *)
   * @param str cast=(const gchar *)
   */
@@ -20203,7 +20596,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_text(label, str);
-@@ -7893,8 +7893,8 @@ public static final void gtk_label_set_t
+@@ -8098,8 +8098,8 @@
   * @param label cast=(GtkLabel *)
   * @param str cast=(const gchar *)
   */
@@ -20214,7 +20607,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_text(label, str);
-@@ -7906,8 +7906,8 @@ public static final void gtk_label_set_t
+@@ -8111,8 +8111,8 @@
   * @param label cast=(GtkLabel *)
   * @param str cast=(const gchar *)
   */
@@ -20225,7 +20618,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_label_set_text_with_mnemonic(label, str);
-@@ -7919,8 +7919,8 @@ public static final void gtk_label_set_t
+@@ -8124,8 +8124,8 @@
   * @param list cast=(GtkList *)
   * @param items cast=(GList *)
   */
@@ -20236,7 +20629,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_append_items(list, items);
-@@ -7929,8 +7929,8 @@ public static final void gtk_list_append
+@@ -8134,8 +8134,8 @@
  	}
  }
  /** @param list cast=(GtkList *) */
@@ -20247,7 +20640,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_clear_items(list, start, end);
-@@ -7942,8 +7942,8 @@ public static final void gtk_list_clear_
+@@ -8147,8 +8147,8 @@
   * @param list cast=(GtkList *)
   * @param items cast=(GList *)
   */
@@ -20258,7 +20651,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_insert_items(list, items, position);
-@@ -7952,8 +7952,8 @@ public static final void gtk_list_insert
+@@ -8157,8 +8157,8 @@
  	}
  }
  /** @param label cast=(const gchar *) */
@@ -20269,7 +20662,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_list_item_new_with_label(label);
-@@ -7965,8 +7965,8 @@ public static final int /*long*/ gtk_lis
+@@ -8170,8 +8170,8 @@
   * @param list cast=(GtkList *)
   * @param items cast=(GList *)
   */
@@ -20280,7 +20673,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_remove_items(list, items);
-@@ -7975,8 +7975,8 @@ public static final void gtk_list_remove
+@@ -8180,8 +8180,8 @@
  	}
  }
  /** @param list cast=(GtkList *) */
@@ -20291,7 +20684,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_select_item(list, item);
-@@ -7985,8 +7985,8 @@ public static final void gtk_list_select
+@@ -8190,8 +8190,8 @@
  	}
  }
  /** @param list cast=(GtkList *) */
@@ -20302,7 +20695,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_unselect_all(list);
-@@ -7995,8 +7995,8 @@ public static final void gtk_list_unsele
+@@ -8200,8 +8200,8 @@
  	}
  }
  /** @param list cast=(GtkList *) */
@@ -20313,7 +20706,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_unselect_item(list, item);
-@@ -8008,8 +8008,8 @@ public static final void gtk_list_unsele
+@@ -8213,8 +8213,8 @@
   * @param list_store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20324,7 +20717,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_append(list_store, iter);
-@@ -8018,8 +8018,8 @@ public static final void gtk_list_store_
+@@ -8223,8 +8223,8 @@
  	}
  }
  /** @param store cast=(GtkListStore *) */
@@ -20335,7 +20728,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_clear(store);
-@@ -8032,8 +8032,8 @@ public static final void gtk_list_store_
+@@ -8237,8 +8237,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param position cast=(gint)
   */
@@ -20346,7 +20739,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_insert(list_store, iter, position);
-@@ -8045,8 +8045,8 @@ public static final void gtk_list_store_
+@@ -8250,8 +8250,8 @@
   * @param numColumns cast=(gint)
   * @param types cast=(GType *)
   */
@@ -20357,7 +20750,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_list_store_newv(numColumns, types);
-@@ -8058,8 +8058,8 @@ public static final int /*long*/ gtk_lis
+@@ -8263,8 +8263,8 @@
   * @param list_store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20368,7 +20761,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_remove(list_store, iter);
-@@ -8071,8 +8071,8 @@ public static final void gtk_list_store_
+@@ -8276,8 +8276,8 @@
   * @param store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20379,7 +20772,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_set(store, iter, column, value, terminator);
-@@ -8084,8 +8084,8 @@ public static final void gtk_list_store_
+@@ -8289,8 +8289,8 @@
   * @param store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20390,7 +20783,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_set(store, iter, column, value, terminator);
-@@ -8097,8 +8097,8 @@ public static final void gtk_list_store_
+@@ -8302,8 +8302,8 @@
   * @param store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20401,7 +20794,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_set(store, iter, column, value, terminator);
-@@ -8111,8 +8111,8 @@ public static final void gtk_list_store_
+@@ -8316,8 +8316,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param value flags=no_out
   */
@@ -20412,7 +20805,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_set(store, iter, column, value, terminator);
-@@ -8124,8 +8124,8 @@ public static final void gtk_list_store_
+@@ -8329,8 +8329,8 @@
   * @param store cast=(GtkListStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -20423,7 +20816,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_list_store_set(store, iter, column, value, terminator);
-@@ -8182,8 +8182,8 @@ public static final int gtk_main_iterati
+@@ -8387,8 +8387,8 @@
  	}
  }
  /** @param event cast=(GdkEvent *) */
@@ -20434,7 +20827,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_main_do_event(event);
-@@ -8191,8 +8191,8 @@ public static final void gtk_main_do_eve
+@@ -8396,8 +8396,8 @@
  		lock.unlock();
  	}
  }
@@ -20445,7 +20838,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_menu_bar_new();
-@@ -8201,8 +8201,8 @@ public static final int /*long*/ gtk_men
+@@ -8406,8 +8406,8 @@
  	}
  }
  /** @param menu cast=(GtkMenu *) */
@@ -20456,7 +20849,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_menu_get_attach_widget(menu);
-@@ -8211,8 +8211,8 @@ public static final int /*long*/ gtk_men
+@@ -8416,8 +8416,8 @@
  	}
  }
  /** @param menu_item cast=(GtkMenuItem *) */
@@ -20467,7 +20860,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_item_remove_submenu(menu_item);
-@@ -8221,8 +8221,8 @@ public static final void gtk_menu_item_r
+@@ -8426,8 +8426,8 @@
  	}
  }
  /** @param menu_item cast=(GtkMenuItem *) */
@@ -20478,7 +20871,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_menu_item_get_submenu(menu_item);
-@@ -8234,8 +8234,8 @@ public static final int /*long*/ gtk_men
+@@ -8439,8 +8439,8 @@
   * @param menu_item cast=(GtkMenuItem *)
   * @param submenu cast=(GtkWidget *)
   */
@@ -20489,7 +20882,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_item_set_submenu(menu_item, submenu);
-@@ -8243,8 +8243,8 @@ public static final void gtk_menu_item_s
+@@ -8448,8 +8448,8 @@
  		lock.unlock();
  	}
  }
@@ -20500,7 +20893,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_menu_new();
-@@ -8253,8 +8253,8 @@ public static final int /*long*/ gtk_men
+@@ -8458,8 +8458,8 @@
  	}
  }
  /** @param menu cast=(GtkMenu *) */
@@ -20511,7 +20904,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_popdown(menu);
-@@ -8271,8 +8271,8 @@ public static final void gtk_menu_popdow
+@@ -8476,8 +8476,8 @@
   * @param button cast=(guint)
   * @param activate_time cast=(guint32)
   */
@@ -20522,7 +20915,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_popup(menu, parent_menu_shell, parent_menu_item, func, data, button, activate_time);
-@@ -8281,8 +8281,8 @@ public static final void gtk_menu_popup(
+@@ -8486,8 +8486,8 @@
  	}
  }
  /** @param menu_shell cast=(GtkMenuShell *) */
@@ -20533,7 +20926,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_shell_deactivate(menu_shell);
-@@ -8295,8 +8295,8 @@ public static final void gtk_menu_shell_
+@@ -8500,8 +8500,8 @@
   * @param child cast=(GtkWidget *)
   * @param position cast=(gint)
   */
@@ -20544,7 +20937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_shell_insert(menu_shell, child, position);
-@@ -8308,8 +8308,8 @@ public static final void gtk_menu_shell_
+@@ -8513,8 +8513,8 @@
   * @param menu_shell cast=(GtkMenuShell *)
   * @param menu_item cast=(GtkWidget *)
   */
@@ -20555,7 +20948,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_shell_select_item(menu_shell, menu_item);
-@@ -8322,8 +8322,8 @@ public static final void gtk_menu_shell_
+@@ -8527,8 +8527,8 @@
   * @param menu_shell cast=(GtkMenuShell *)
   * @param take_focus cast=(gboolean)
   */
@@ -20566,7 +20959,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_menu_shell_set_take_focus(menu_shell, take_focus);
-@@ -8338,8 +8338,8 @@ public static final void gtk_menu_shell_
+@@ -8543,8 +8543,8 @@
   * @param buttons cast=(GtkButtonsType)
   * @param message_format cast=(const gchar *)
   */
@@ -20577,7 +20970,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_message_dialog_new(parent, flags, type, buttons, message_format);
-@@ -8352,8 +8352,8 @@ public static final int /*long*/ gtk_mes
+@@ -8557,8 +8557,8 @@
   * @param xalign cast=(gfloat)
   * @param yalign cast=(gfloat)
   */
@@ -20588,7 +20981,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_misc_set_alignment(misc, xalign, yalign);
-@@ -8362,8 +8362,8 @@ public static final void gtk_misc_set_al
+@@ -8567,8 +8567,8 @@
  	}
  }
  /** @param notebook cast=(GtkNotebook *) */
@@ -20599,7 +20992,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_notebook_get_current_page(notebook);
-@@ -8372,8 +8372,8 @@ public static final int gtk_notebook_get
+@@ -8577,8 +8577,8 @@
  	}
  }
  /** @param notebook cast=(GtkNotebook *) */
@@ -20610,7 +21003,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_notebook_get_scrollable(notebook);
-@@ -8387,8 +8387,8 @@ public static final boolean gtk_notebook
+@@ -8592,8 +8592,8 @@
   * @param tab_label cast=(GtkWidget *)
   * @param position cast=(gint)
   */
@@ -20621,7 +21014,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_insert_page(notebook, child, tab_label, position);
-@@ -8396,8 +8396,8 @@ public static final void gtk_notebook_in
+@@ -8601,8 +8601,8 @@
  		lock.unlock();
  	}
  }
@@ -20632,7 +21025,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_notebook_new();
-@@ -8406,8 +8406,8 @@ public static final int /*long*/ gtk_not
+@@ -8611,8 +8611,8 @@
  	}
  }
  /** @param notebook cast=(GtkNotebook *) */
@@ -20643,7 +21036,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_next_page(notebook);
-@@ -8416,8 +8416,8 @@ public static final void gtk_notebook_ne
+@@ -8621,8 +8621,8 @@
  	}
  }
  /** @param notebook cast=(GtkNotebook *) */
@@ -20654,7 +21047,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_prev_page(notebook);
-@@ -8429,8 +8429,8 @@ public static final void gtk_notebook_pr
+@@ -8634,8 +8634,8 @@
   * @param notebook cast=(GtkNotebook *)
   * @param page_num cast=(gint)
   */
@@ -20665,7 +21058,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_remove_page(notebook, page_num);
-@@ -8442,8 +8442,8 @@ public static final void gtk_notebook_re
+@@ -8647,8 +8647,8 @@
   * @param notebook cast=(GtkNotebook *)
   * @param page_num cast=(gint)
   */
@@ -20676,7 +21069,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_set_current_page(notebook, page_num);
-@@ -8455,8 +8455,8 @@ public static final void gtk_notebook_se
+@@ -8660,8 +8660,8 @@
   * @param notebook cast=(GtkNotebook *)
   * @param scrollable cast=(gboolean)
   */
@@ -20687,7 +21080,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_set_scrollable(notebook, scrollable);
-@@ -8468,8 +8468,8 @@ public static final void gtk_notebook_se
+@@ -8673,8 +8673,8 @@
   * @param notebook cast=(GtkNotebook *)
   * @param show_tabs cast=(gboolean)
   */
@@ -20698,7 +21091,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_set_show_tabs(notebook, show_tabs);
-@@ -8481,8 +8481,8 @@ public static final void gtk_notebook_se
+@@ -8686,8 +8686,8 @@
   * @param notebook cast=(GtkNotebook *)
   * @param pos cast=(GtkPositionType)
   */
@@ -20709,7 +21102,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_notebook_set_tab_pos(notebook, pos);
-@@ -8491,8 +8491,8 @@ public static final void gtk_notebook_se
+@@ -8696,8 +8696,8 @@
  	}
  }
  /** @param object cast=(GtkObject *) */
@@ -20720,7 +21113,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_object_sink(object);
-@@ -8501,8 +8501,8 @@ public static final void gtk_object_sink
+@@ -8706,8 +8706,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20731,7 +21124,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_new ();
-@@ -8511,8 +8511,8 @@ public static final int /*long*/ gtk_pag
+@@ -8716,8 +8716,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20742,7 +21135,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_orientation(setup);
-@@ -8521,8 +8521,8 @@ public static final int gtk_page_setup_g
+@@ -8726,8 +8726,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20753,7 +21146,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_orientation(setup, orientation);
-@@ -8531,8 +8531,8 @@ public static final void gtk_page_setup_
+@@ -8736,8 +8736,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20764,7 +21157,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_paper_size(setup);
-@@ -8541,8 +8541,8 @@ public static final int /*long*/ gtk_pag
+@@ -8746,8 +8746,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20775,7 +21168,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_paper_size(setup, size);
-@@ -8551,8 +8551,8 @@ public static final void gtk_page_setup_
+@@ -8756,8 +8756,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20786,7 +21179,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_top_margin(setup, unit);
-@@ -8561,8 +8561,8 @@ public static final double gtk_page_setu
+@@ -8766,8 +8766,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20797,7 +21190,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_top_margin(setup, margin, unit);
-@@ -8571,8 +8571,8 @@ public static final void gtk_page_setup_
+@@ -8776,8 +8776,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20808,7 +21201,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_bottom_margin(setup, unit);
-@@ -8581,8 +8581,8 @@ public static final double gtk_page_setu
+@@ -8786,8 +8786,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20819,7 +21212,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_bottom_margin(setup, margin, unit);
-@@ -8591,8 +8591,8 @@ public static final void gtk_page_setup_
+@@ -8796,8 +8796,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20830,7 +21223,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_left_margin(setup, unit);
-@@ -8601,8 +8601,8 @@ public static final double gtk_page_setu
+@@ -8806,8 +8806,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20841,7 +21234,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_left_margin(setup, margin, unit);
-@@ -8611,8 +8611,8 @@ public static final void gtk_page_setup_
+@@ -8816,8 +8816,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20852,7 +21245,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_right_margin(setup, unit);
-@@ -8621,8 +8621,8 @@ public static final double gtk_page_setu
+@@ -8826,8 +8826,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20863,7 +21256,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_page_setup_set_right_margin(setup, margin, unit);
-@@ -8631,8 +8631,8 @@ public static final void gtk_page_setup_
+@@ -8836,8 +8836,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20874,7 +21267,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_paper_width(setup, unit);
-@@ -8641,8 +8641,8 @@ public static final double gtk_page_setu
+@@ -8846,8 +8846,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20885,7 +21278,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_paper_height(setup, unit);
-@@ -8651,8 +8651,8 @@ public static final double gtk_page_setu
+@@ -8856,8 +8856,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20896,7 +21289,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_page_width(setup, unit);
-@@ -8661,8 +8661,8 @@ public static final double gtk_page_setu
+@@ -8866,8 +8866,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -20907,7 +21300,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_page_setup_get_page_height(setup, unit);
-@@ -8677,8 +8677,8 @@ public static final double gtk_page_setu
+@@ -8882,8 +8882,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20918,7 +21311,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_handle(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height, orientation);
-@@ -8692,8 +8692,8 @@ public static final void gtk_paint_handl
+@@ -8897,8 +8897,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20929,7 +21322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_flat_box(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8708,8 +8708,8 @@ public static final void gtk_paint_flat_
+@@ -8913,8 +8913,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20940,7 +21333,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_focus(style, window, state_type, area, widget, detail, x, y, width, height);
-@@ -8723,8 +8723,8 @@ public static final void gtk_paint_focus
+@@ -8928,8 +8928,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20951,7 +21344,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_option(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8738,8 +8738,8 @@ public static final void gtk_paint_optio
+@@ -8943,8 +8943,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20962,7 +21355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_slider(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height, orientation);
-@@ -8753,8 +8753,8 @@ public static final void gtk_paint_slide
+@@ -8958,8 +8958,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20973,7 +21366,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_tab(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8768,8 +8768,8 @@ public static final void gtk_paint_tab(i
+@@ -8973,8 +8973,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20984,7 +21377,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_arrow(style, window, state_type, shadow_type, area, widget, detail, arrow_type, fill, x, y, width, height);
-@@ -8784,8 +8784,8 @@ public static final void gtk_paint_arrow
+@@ -8989,8 +8989,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -20995,7 +21388,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_box(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8799,8 +8799,8 @@ public static final void gtk_paint_box(i
+@@ -9004,8 +9004,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(gchar *)
   */
@@ -21006,7 +21399,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_box_gap(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height, gap_side, gap_x, gap_width);
-@@ -8814,8 +8814,8 @@ public static final void gtk_paint_box_g
+@@ -9019,8 +9019,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -21017,7 +21410,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_check(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8829,8 +8829,8 @@ public static final void gtk_paint_check
+@@ -9034,8 +9034,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -21028,7 +21421,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_expander(style, window, state_type, area, widget, detail, x, y, expander_style);
-@@ -8844,8 +8844,8 @@ public static final void gtk_paint_expan
+@@ -9049,8 +9049,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(gchar *)
   */
@@ -21039,7 +21432,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_extension(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height, gap_side);
-@@ -8859,8 +8859,8 @@ public static final void gtk_paint_exten
+@@ -9064,8 +9064,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -21050,7 +21443,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_hline(style, window, state_type, area, widget, detail, x1, x2, y);
-@@ -8875,8 +8875,8 @@ public static final void gtk_paint_hline
+@@ -9080,8 +9080,8 @@
   * @param detail cast=(const gchar *)
   * @param layout cast=(PangoLayout *)
   */
@@ -21061,7 +21454,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_layout(style, window, state_type, use_text, area, widget, detail, x, y, layout);
-@@ -8890,8 +8890,8 @@ public static final void gtk_paint_layou
+@@ -9095,8 +9095,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(gchar *)
   */
@@ -21072,7 +21465,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_shadow_gap(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height, gap_side, gap_x, gap_width);
-@@ -8905,8 +8905,8 @@ public static final void gtk_paint_shado
+@@ -9110,8 +9110,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(gchar *)
   */
@@ -21083,7 +21476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_shadow(style, window, state_type, shadow_type, area, widget, detail, x, y, width, height);
-@@ -8920,8 +8920,8 @@ public static final void gtk_paint_shado
+@@ -9125,8 +9125,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -21094,7 +21487,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paint_vline(style, window, state_type, area, widget, detail, y1, y2, x);
-@@ -8930,8 +8930,8 @@ public static final void gtk_paint_vline
+@@ -9135,8 +9135,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21105,7 +21498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_paper_size_free(size);
-@@ -8940,8 +8940,8 @@ public static final void gtk_paper_size_
+@@ -9145,8 +9145,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21116,7 +21509,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_new(name);
-@@ -8950,8 +8950,8 @@ public static final int /*long*/ gtk_pap
+@@ -9155,8 +9155,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21127,7 +21520,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_new_from_ppd(ppd_name, ppd_display_name, width, height);
-@@ -8960,8 +8960,8 @@ public static final int /*long*/ gtk_pap
+@@ -9165,8 +9165,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21138,7 +21531,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_new_custom(name, display_name, width, height, unit);
-@@ -8970,8 +8970,8 @@ public static final int /*long*/ gtk_pap
+@@ -9175,8 +9175,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21149,7 +21542,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_get_name(size);
-@@ -8980,8 +8980,8 @@ public static final int /*long*/ gtk_pap
+@@ -9185,8 +9185,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21160,7 +21553,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_get_display_name(size);
-@@ -8990,8 +8990,8 @@ public static final int /*long*/ gtk_pap
+@@ -9195,8 +9195,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21171,7 +21564,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_get_ppd_name(size);
-@@ -9000,8 +9000,8 @@ public static final int /*long*/ gtk_pap
+@@ -9205,8 +9205,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21182,7 +21575,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_get_width(size, unit);
-@@ -9010,8 +9010,8 @@ public static final double gtk_paper_siz
+@@ -9215,8 +9215,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21193,7 +21586,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_get_height(size, unit);
-@@ -9020,8 +9020,8 @@ public static final double gtk_paper_siz
+@@ -9225,8 +9225,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21204,7 +21597,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_paper_size_is_custom(size);
-@@ -9030,8 +9030,8 @@ public static final boolean gtk_paper_si
+@@ -9235,8 +9235,8 @@
  	}
  }
  /** @param plug cast=(GtkPlug *) */
@@ -21215,7 +21608,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_plug_get_id(plug);
-@@ -9039,8 +9039,8 @@ public static final int /*long*/ gtk_plu
+@@ -9244,8 +9244,8 @@
  		lock.unlock();
  	}
  }
@@ -21226,7 +21619,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_plug_new(socket_id);
-@@ -9049,8 +9049,8 @@ public static final int /*long*/ gtk_plu
+@@ -9254,8 +9254,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21237,7 +21630,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_printer_get_backend(printer);
-@@ -9059,8 +9059,8 @@ public static final int /*long*/ gtk_pri
+@@ -9264,8 +9264,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21248,7 +21641,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_printer_get_name(printer);
-@@ -9069,8 +9069,8 @@ public static final int /*long*/ gtk_pri
+@@ -9274,8 +9274,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21259,7 +21652,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_printer_is_default(printer);
-@@ -9084,8 +9084,8 @@ public static final boolean gtk_printer_
+@@ -9289,8 +9289,8 @@
   * @param destroy cast=(GDestroyNotify)
   * @param wait cast=(gboolean)
   */
@@ -21270,7 +21663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_enumerate_printers(func, data, destroy, wait);
-@@ -9097,8 +9097,8 @@ public static final void gtk_enumerate_p
+@@ -9302,8 +9302,8 @@
   * @method flags=dynamic
   * @param title cast=(const gchar *)
   */
@@ -21281,7 +21674,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_new(title, printer, settings, page_setup);
-@@ -9107,8 +9107,8 @@ public static final int /*long*/ gtk_pri
+@@ -9312,8 +9312,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21292,7 +21685,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_get_settings(job);
-@@ -9117,8 +9117,8 @@ public static final int /*long*/ gtk_pri
+@@ -9322,8 +9322,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21303,7 +21696,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_get_printer(job);
-@@ -9127,8 +9127,8 @@ public static final int /*long*/ gtk_pri
+@@ -9332,8 +9332,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21314,7 +21707,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_get_title(job);
-@@ -9137,8 +9137,8 @@ public static final int /*long*/ gtk_pri
+@@ -9342,8 +9342,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21325,7 +21718,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_get_status(job);
-@@ -9151,8 +9151,8 @@ public static final int gtk_print_job_ge
+@@ -9356,8 +9356,8 @@
   * @param filename cast=(const gchar *)
   * @param error cast=(GError **)
   */
@@ -21336,7 +21729,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_set_source_file(job, filename, error);
-@@ -9164,8 +9164,8 @@ public static final boolean gtk_print_jo
+@@ -9369,8 +9369,8 @@
   * @method flags=dynamic
   * @param error cast=(GError **)
   */
@@ -21347,7 +21740,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_job_get_surface(job, error);
-@@ -9178,8 +9178,8 @@ public static final int /*long*/ gtk_pri
+@@ -9383,8 +9383,8 @@
   * @param user_data cast=(gpointer)
   * @param dnotify cast=(GDestroyNotify)
   */
@@ -21358,7 +21751,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_job_send(job, callback, user_data, dnotify);
-@@ -9188,8 +9188,8 @@ public static final void gtk_print_job_s
+@@ -9393,8 +9393,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21369,7 +21762,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_new();
-@@ -9201,8 +9201,8 @@ public static final int /*long*/ gtk_pri
+@@ -9406,8 +9406,8 @@
   * @method flags=dynamic
   * @param data cast=(gpointer)
   */
@@ -21380,7 +21773,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_foreach(settings, func, data);
-@@ -9214,8 +9214,8 @@ public static final void gtk_print_setti
+@@ -9419,8 +9419,8 @@
   * @method flags=dynamic
   * @param key cast=(const gchar *)
   */
@@ -21391,7 +21784,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get(settings, key);
-@@ -9228,8 +9228,8 @@ public static final int /*long*/ gtk_pri
+@@ -9433,8 +9433,8 @@
   * @param key cast=(const gchar *)
   * @param value cast=(const gchar *)
   */
@@ -21402,7 +21795,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set(settings, key, value);
-@@ -9238,8 +9238,8 @@ public static final void gtk_print_setti
+@@ -9443,8 +9443,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21413,7 +21806,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_printer(settings);
-@@ -9248,8 +9248,8 @@ public static final int /*long*/ gtk_pri
+@@ -9453,8 +9453,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21424,7 +21817,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_printer(settings, printer);
-@@ -9258,8 +9258,8 @@ public static final void gtk_print_setti
+@@ -9463,8 +9463,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21435,7 +21828,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_orientation(settings);
-@@ -9268,8 +9268,8 @@ public static final int gtk_print_settin
+@@ -9473,8 +9473,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21446,7 +21839,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_orientation(settings, orientation);
-@@ -9278,8 +9278,8 @@ public static final void gtk_print_setti
+@@ -9483,8 +9483,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21457,7 +21850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_collate(settings);
-@@ -9291,8 +9291,8 @@ public static final boolean gtk_print_se
+@@ -9496,8 +9496,8 @@
   * @method flags=dynamic
   * @param collate cast=(gboolean)
   */
@@ -21468,7 +21861,29 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_collate(settings, collate);
-@@ -9301,8 +9301,8 @@ public static final void gtk_print_setti
+@@ -9506,8 +9506,8 @@
+ 	}
+ }
+ /** @method flags=dynamic */
+-public static final native int _gtk_print_settings_get_duplex(int /*long*/ settings);
+-public static final int gtk_print_settings_get_duplex(int /*long*/ settings) {
++public static final native int _gtk_print_settings_get_duplex(long /*int*/ settings);
++public static final int gtk_print_settings_get_duplex(long /*int*/ settings) {
+ 	lock.lock();
+ 	try {
+ 		return _gtk_print_settings_get_duplex(settings);
+@@ -9516,8 +9516,8 @@
+ 	}
+ }
+ /** @method flags=dynamic */
+-public static final native void _gtk_print_settings_set_duplex(int /*long*/ settings, int duplex);
+-public static final void gtk_print_settings_set_duplex(int /*long*/ settings, int duplex) {
++public static final native void _gtk_print_settings_set_duplex(long /*int*/ settings, int duplex);
++public static final void gtk_print_settings_set_duplex(long /*int*/ settings, int duplex) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_print_settings_set_duplex(settings, duplex);
+@@ -9526,8 +9526,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21479,7 +21894,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_n_copies(settings);
-@@ -9314,8 +9314,8 @@ public static final int gtk_print_settin
+@@ -9539,8 +9539,8 @@
   * @method flags=dynamic
   * @param num_copies cast=(gint)
   */
@@ -21490,7 +21905,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_n_copies(settings, num_copies);
-@@ -9324,8 +9324,8 @@ public static final void gtk_print_setti
+@@ -9549,8 +9549,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21501,7 +21916,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_print_pages(settings);
-@@ -9334,8 +9334,8 @@ public static final int gtk_print_settin
+@@ -9559,8 +9559,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21512,7 +21927,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_print_pages(settings, pages);
-@@ -9347,8 +9347,8 @@ public static final void gtk_print_setti
+@@ -9572,8 +9572,8 @@
   * @method flags=dynamic
   * @param num_ranges cast=(gint *)
   */
@@ -21523,7 +21938,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_page_ranges(settings, num_ranges);
-@@ -9360,8 +9360,8 @@ public static final int /*long*/ gtk_pri
+@@ -9585,8 +9585,8 @@
   * @method flags=dynamic
   * @param num_ranges cast=(gint)
   */
@@ -21534,7 +21949,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_settings_set_page_ranges(settings, page_ranges, num_ranges);
-@@ -9370,8 +9370,8 @@ public static final void gtk_print_setti
+@@ -9595,8 +9595,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21545,7 +21960,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_paper_width(settings, unit);
-@@ -9380,8 +9380,8 @@ public static final double gtk_print_set
+@@ -9605,8 +9605,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21556,7 +21971,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_paper_height(settings, unit);
-@@ -9390,8 +9390,8 @@ public static final double gtk_print_set
+@@ -9615,8 +9615,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21567,7 +21982,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_settings_get_resolution(settings);
-@@ -9404,8 +9404,8 @@ public static final int gtk_print_settin
+@@ -9629,8 +9629,8 @@
   * @param title cast=(const gchar *)
   * @param parent cast=(GtkWindow *)
   */
@@ -21578,7 +21993,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_unix_dialog_new(title, parent);
-@@ -9414,8 +9414,8 @@ public static final int /*long*/ gtk_pri
+@@ -9639,8 +9639,8 @@
+ 	}
+ }
+ /** @method flags=dynamic */
+-public static final native void _gtk_print_unix_dialog_set_embed_page_setup(int /*long*/ dialog, boolean embed);
+-public static final void gtk_print_unix_dialog_set_embed_page_setup(int /*long*/ dialog, boolean embed) {
++public static final native void _gtk_print_unix_dialog_set_embed_page_setup(long /*int*/ dialog, boolean embed);
++public static final void gtk_print_unix_dialog_set_embed_page_setup(long /*int*/ dialog, boolean embed) {
+ 	lock.lock();
+ 	try {
+ 		_gtk_print_unix_dialog_set_embed_page_setup(dialog, embed);
+@@ -9649,8 +9649,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21589,7 +22015,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_unix_dialog_set_page_setup(dialog, page_setup);
-@@ -9424,8 +9424,8 @@ public static final void gtk_print_unix_
+@@ -9659,8 +9659,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21600,7 +22026,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_unix_dialog_get_page_setup(dialog);
-@@ -9437,8 +9437,8 @@ public static final int /*long*/ gtk_pri
+@@ -9672,8 +9672,8 @@
   * @method flags=dynamic
   * @param current_page cast=(gint)
   */
@@ -21611,7 +22037,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_unix_dialog_set_current_page(dialog, current_page);
-@@ -9447,8 +9447,8 @@ public static final void gtk_print_unix_
+@@ -9682,8 +9682,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21622,7 +22048,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_unix_dialog_get_current_page(dialog);
-@@ -9457,8 +9457,8 @@ public static final int gtk_print_unix_d
+@@ -9692,8 +9692,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21633,7 +22059,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_unix_dialog_set_settings(dialog, settings);
-@@ -9467,8 +9467,8 @@ public static final void gtk_print_unix_
+@@ -9702,8 +9702,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21644,7 +22070,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_unix_dialog_get_settings(dialog);
-@@ -9477,8 +9477,8 @@ public static final int /*long*/ gtk_pri
+@@ -9712,8 +9712,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21655,7 +22081,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_print_unix_dialog_get_selected_printer(dialog);
-@@ -9487,8 +9487,8 @@ public static final int /*long*/ gtk_pri
+@@ -9722,8 +9722,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -21666,7 +22092,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_print_unix_dialog_set_manual_capabilities(dialog, capabilities);
-@@ -9496,8 +9496,8 @@ public static final void gtk_print_unix_
+@@ -9731,8 +9731,8 @@
  		lock.unlock();
  	}
  }
@@ -21677,7 +22103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_progress_bar_new();
-@@ -9506,8 +9506,8 @@ public static final int /*long*/ gtk_pro
+@@ -9741,8 +9741,8 @@
  	}
  }
  /** @param pbar cast=(GtkProgressBar *) */
@@ -21688,7 +22114,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_progress_bar_pulse(pbar);
-@@ -9519,8 +9519,8 @@ public static final void gtk_progress_ba
+@@ -9754,8 +9754,8 @@
   * @param pbar cast=(GtkProgressBar *)
   * @param fraction cast=(gdouble)
   */
@@ -21699,7 +22125,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_progress_bar_set_fraction(pbar, fraction);
-@@ -9532,8 +9532,8 @@ public static final void gtk_progress_ba
+@@ -9767,8 +9767,8 @@
   * @param pbar cast=(GtkProgressBar *)
   * @param orientation cast=(GtkProgressBarOrientation)
   */
@@ -21710,7 +22136,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_progress_bar_set_orientation(pbar, orientation);
-@@ -9542,8 +9542,8 @@ public static final void gtk_progress_ba
+@@ -9777,8 +9777,8 @@
  	}
  }
  /** @param radio_button cast=(GtkRadioButton *) */
@@ -21721,7 +22147,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_radio_button_get_group(radio_button);
-@@ -9552,8 +9552,8 @@ public static final int /*long*/ gtk_rad
+@@ -9787,8 +9787,8 @@
  	}
  }
  /** @param group cast=(GSList *) */
@@ -21732,7 +22158,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_radio_button_new(group);
-@@ -9562,8 +9562,8 @@ public static final int /*long*/ gtk_rad
+@@ -9797,8 +9797,8 @@
  	}
  }
  /** @param radio_menu_item cast=(GtkRadioMenuItem *) */
@@ -21743,7 +22169,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_radio_menu_item_get_group(radio_menu_item);
-@@ -9572,8 +9572,8 @@ public static final int /*long*/ gtk_rad
+@@ -9807,8 +9807,8 @@
  	}
  }
  /** @param group cast=(GSList *) */
@@ -21754,7 +22180,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_radio_menu_item_new(group);
-@@ -9585,8 +9585,8 @@ public static final int /*long*/ gtk_rad
+@@ -9820,8 +9820,8 @@
   * @param group cast=(GSList *)
   * @param label cast=(const gchar *)
   */
@@ -21765,7 +22191,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_radio_menu_item_new_with_label(group, label);
-@@ -9595,8 +9595,8 @@ public static final int /*long*/ gtk_rad
+@@ -9830,8 +9830,8 @@
  	}
  }
  /** @param range cast=(GtkRange *) */
@@ -21776,7 +22202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_range_get_adjustment(range);
-@@ -9605,8 +9605,8 @@ public static final int /*long*/ gtk_ran
+@@ -9840,8 +9840,8 @@
  	}
  }
  /** @param range cast=(GtkRange *) */
@@ -21787,7 +22213,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_range_set_increments(range, step, page);
-@@ -9615,8 +9615,8 @@ public static final void gtk_range_set_i
+@@ -9850,8 +9850,8 @@
  	}
  }
  /** @param range cast=(GtkRange *) */
@@ -21798,7 +22224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_range_set_inverted(range, setting);
-@@ -9625,8 +9625,8 @@ public static final void gtk_range_set_i
+@@ -9860,8 +9860,8 @@
  	}
  }
  /** @param range cast=(GtkRange *) */
@@ -21809,7 +22235,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_range_set_range(range, min, max);
-@@ -9635,8 +9635,8 @@ public static final void gtk_range_set_r
+@@ -9870,8 +9870,8 @@
  	}
  }
  /** @param range cast=(GtkRange *) */
@@ -21820,7 +22246,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_range_set_value(range, value);
-@@ -9655,8 +9655,8 @@ public static final void gtk_rc_parse_st
+@@ -9890,8 +9890,8 @@
  	}
  }
  /** @param style cast=(GtkRcStyle *) */
@@ -21831,7 +22257,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_rc_style_get_bg_pixmap_name(style, index);
-@@ -9665,8 +9665,8 @@ public static final int /*long*/ gtk_rc_
+@@ -9900,8 +9900,8 @@
  	}
  }
  /** @param style cast=(GtkRcStyle *) */
@@ -21842,7 +22268,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_rc_style_get_color_flags(style, index);
-@@ -9678,8 +9678,8 @@ public static final int gtk_rc_style_get
+@@ -9913,8 +9913,8 @@
   * @param style cast=(GtkRcStyle *)
   * @param color flags=no_out
   */
@@ -21853,7 +22279,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_rc_style_set_bg(style, index, color);
-@@ -9691,8 +9691,8 @@ public static final void gtk_rc_style_se
+@@ -9926,8 +9926,8 @@
   * @param style cast=(GtkRcStyle *)
   * @param name cast=(char *)
   */
@@ -21864,7 +22290,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_rc_style_set_bg_pixmap_name(style, index, name);
-@@ -9701,8 +9701,8 @@ public static final void gtk_rc_style_se
+@@ -9936,8 +9936,8 @@
  	}
  }
  /** @param style cast=(GtkRcStyle *) */
@@ -21875,7 +22301,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_rc_style_set_color_flags(style, index, flag);
-@@ -9714,8 +9714,8 @@ public static final void gtk_rc_style_se
+@@ -9949,8 +9949,8 @@
   * @param scale cast=(GtkScale *)
   * @param digits cast=(gint)
   */
@@ -21886,7 +22312,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scale_set_digits(scale, digits);
-@@ -9727,8 +9727,8 @@ public static final void gtk_scale_set_d
+@@ -9962,8 +9962,8 @@
   * @param scale cast=(GtkScale *)
   * @param draw_value cast=(gboolean)
   */
@@ -21897,7 +22323,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scale_set_draw_value(scale, draw_value);
-@@ -9740,8 +9740,8 @@ public static final void gtk_scale_set_d
+@@ -9975,8 +9975,8 @@
   * @param style cast=(GtkRcStyle *)
   * @param color flags=no_out
   */
@@ -21908,7 +22334,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_rc_style_set_fg(style, index, color);
-@@ -9753,8 +9753,8 @@ public static final void gtk_rc_style_se
+@@ -9988,8 +9988,8 @@
   * @param style cast=(GtkRcStyle *)
   * @param color flags=no_out
   */
@@ -21919,7 +22345,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_rc_style_set_text(style, index, color);
-@@ -9766,8 +9766,8 @@ public static final void gtk_rc_style_se
+@@ -10001,8 +10001,8 @@
   * @param scrolled_window cast=(GtkScrolledWindow *)
   * @param child cast=(GtkWidget *)
   */
@@ -21930,7 +22356,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scrolled_window_add_with_viewport(scrolled_window, child);
-@@ -9776,8 +9776,8 @@ public static final void gtk_scrolled_wi
+@@ -10011,8 +10011,8 @@
  	}
  }
  /** @param scrolled_window cast=(GtkScrolledWindow *) */
@@ -21941,7 +22367,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_scrolled_window_get_hadjustment(scrolled_window);
-@@ -9790,8 +9790,8 @@ public static final int /*long*/ gtk_scr
+@@ -10025,8 +10025,8 @@
   * @param hscrollbar_policy cast=(GtkPolicyType *)
   * @param vscrollbar_policy cast=(GtkPolicyType *)
   */
@@ -21952,7 +22378,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scrolled_window_get_policy(scrolled_window, hscrollbar_policy, vscrollbar_policy);
-@@ -9800,8 +9800,8 @@ public static final void gtk_scrolled_wi
+@@ -10035,8 +10035,8 @@
  	}
  }
  /** @param scrolled_window cast=(GtkScrolledWindow *) */
@@ -21963,7 +22389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_scrolled_window_get_shadow_type(scrolled_window);
-@@ -9810,8 +9810,8 @@ public static final int gtk_scrolled_win
+@@ -10045,8 +10045,8 @@
  	}
  }
  /** @param scrolled_window cast=(GtkScrolledWindow *) */
@@ -21974,7 +22400,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_scrolled_window_get_vadjustment(scrolled_window);
-@@ -9823,8 +9823,8 @@ public static final int /*long*/ gtk_scr
+@@ -10058,8 +10058,8 @@
   * @param hadjustment cast=(GtkAdjustment *)
   * @param vadjustment cast=(GtkAdjustment *)
   */
@@ -21985,7 +22411,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_scrolled_window_new(hadjustment, vadjustment);
-@@ -9836,8 +9836,8 @@ public static final int /*long*/ gtk_scr
+@@ -10071,8 +10071,8 @@
   * @param scrolled_window cast=(GtkScrolledWindow *)
   * @param placement cast=(GtkCornerType)
   */
@@ -21996,7 +22422,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scrolled_window_set_placement(scrolled_window, placement);
-@@ -9850,8 +9850,8 @@ public static final void gtk_scrolled_wi
+@@ -10085,8 +10085,8 @@
   * @param hscrollbar_policy cast=(GtkPolicyType)
   * @param vscrollbar_policy cast=(GtkPolicyType)
   */
@@ -22007,7 +22433,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scrolled_window_set_policy(scrolled_window, hscrollbar_policy, vscrollbar_policy);
-@@ -9863,8 +9863,8 @@ public static final void gtk_scrolled_wi
+@@ -10098,8 +10098,8 @@
   * @param scrolled_window cast=(GtkScrolledWindow *)
   * @param type cast=(GtkShadowType)
   */
@@ -22018,7 +22444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_scrolled_window_set_shadow_type(scrolled_window, type);
-@@ -9872,8 +9872,8 @@ public static final void gtk_scrolled_wi
+@@ -10107,8 +10107,8 @@
  		lock.unlock();
  	}
  }
@@ -22029,7 +22455,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_settings_get_default();
-@@ -9882,8 +9882,8 @@ public static final int /*long*/ gtk_set
+@@ -10117,8 +10117,8 @@
  	}
  }
  /** @param selection_data cast=(GtkSelectionData *) */
@@ -22040,7 +22466,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_selection_data_free(selection_data);
-@@ -9898,8 +9898,8 @@ public static final void gtk_selection_d
+@@ -10133,8 +10133,8 @@
   * @param data cast=(const guchar *)
   * @param length cast=(gint)
   */
@@ -22051,7 +22477,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_selection_data_set(selection_data, type, format, data, length);
-@@ -9907,8 +9907,8 @@ public static final void gtk_selection_d
+@@ -10142,8 +10142,8 @@
  		lock.unlock();
  	}
  }
@@ -22062,7 +22488,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_separator_menu_item_new();
-@@ -9916,8 +9916,8 @@ public static final int /*long*/ gtk_sep
+@@ -10151,8 +10151,8 @@
  		lock.unlock();
  	}
  }
@@ -22073,7 +22499,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_set_locale();
-@@ -9926,8 +9926,8 @@ public static final int /*long*/ gtk_set
+@@ -10161,8 +10161,8 @@
  	}
  }
  /** @param socket cast=(GtkSocket *) */
@@ -22084,7 +22510,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_socket_get_id(socket);
-@@ -9935,8 +9935,8 @@ public static final int /*long*/ gtk_soc
+@@ -10170,8 +10170,8 @@
  		lock.unlock();
  	}
  }
@@ -22095,7 +22521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_socket_new();
-@@ -9945,8 +9945,8 @@ public static final int /*long*/ gtk_soc
+@@ -10180,8 +10180,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -22106,7 +22532,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_spin_button_new(adjustment, climb_rate, digits);
-@@ -9958,8 +9958,8 @@ public static final int /*long*/ gtk_spi
+@@ -10193,8 +10193,8 @@
   * @param spin_button cast=(GtkSpinButton*)
   * @param adjustment cast=(GtkAdjustment *) 
   **/
@@ -22117,7 +22543,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_configure(spin_button, adjustment, climb_rate, digits);
-@@ -9968,8 +9968,8 @@ public static final void gtk_spin_button
+@@ -10203,8 +10203,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22128,7 +22554,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_spin_button_get_adjustment(spin_button);
-@@ -9979,8 +9979,8 @@ public static final int /*long*/ gtk_spi
+@@ -10214,8 +10214,8 @@
  }
  
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22139,7 +22565,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_spin_button_get_digits(spin_button);
-@@ -9989,8 +9989,8 @@ public static final int gtk_spin_button_
+@@ -10224,8 +10224,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22150,7 +22576,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_set_digits(spin_button, digits);
-@@ -9999,8 +9999,8 @@ public static final void gtk_spin_button
+@@ -10234,8 +10234,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22161,7 +22587,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_set_increments(spin_button, step, page);
-@@ -10009,8 +10009,8 @@ public static final void gtk_spin_button
+@@ -10244,8 +10244,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22172,7 +22598,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_set_range(spin_button, max, min);
-@@ -10019,8 +10019,8 @@ public static final void gtk_spin_button
+@@ -10254,8 +10254,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22183,7 +22609,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_set_value(spin_button, value);
-@@ -10029,8 +10029,8 @@ public static final void gtk_spin_button
+@@ -10264,8 +10264,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22194,7 +22620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_set_wrap(spin_button, wrap);
-@@ -10039,8 +10039,8 @@ public static final void gtk_spin_button
+@@ -10274,8 +10274,8 @@
  	}
  }
  /** @param spin_button cast=(GtkSpinButton*) */
@@ -22205,7 +22631,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_spin_button_update(spin_button);
-@@ -10051,8 +10051,8 @@ public static final void gtk_spin_button
+@@ -10286,8 +10286,8 @@
  /**
   * @method flags=dynamic
   */
@@ -22216,7 +22642,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_status_icon_get_geometry(handle, screen, area, orientation);
-@@ -10063,8 +10063,8 @@ public static final boolean gtk_status_i
+@@ -10298,8 +10298,8 @@
  /**
   * @method flags=dynamic
   */
@@ -22227,7 +22653,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_status_icon_get_visible(handle);
-@@ -10073,8 +10073,8 @@ public static final boolean gtk_status_i
+@@ -10308,8 +10308,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -22238,7 +22664,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_status_icon_new();
-@@ -10085,8 +10085,8 @@ public static final int /*long*/ gtk_sta
+@@ -10320,8 +10320,8 @@
  /**
   * @method flags=dynamic
   */
@@ -22249,7 +22675,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_status_icon_set_from_pixbuf(handle, pixbuf);
-@@ -10097,8 +10097,8 @@ public static final void gtk_status_icon
+@@ -10332,8 +10332,8 @@
  /**
   * @method flags=dynamic
   */
@@ -22260,7 +22686,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_status_icon_set_visible(handle, visible);
-@@ -10109,8 +10109,8 @@ public static final void gtk_status_icon
+@@ -10344,8 +10344,8 @@
  /**
   * @method flags=dynamic
   */
@@ -22271,7 +22697,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_status_icon_set_tooltip(handle, tip_text);
-@@ -10122,8 +10122,8 @@ public static final void gtk_status_icon
+@@ -10357,8 +10357,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22282,7 +22708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_base(style, index, color);
-@@ -10135,8 +10135,8 @@ public static final void gtk_style_get_b
+@@ -10370,8 +10370,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22293,7 +22719,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_black(style, color);
-@@ -10148,8 +10148,8 @@ public static final void gtk_style_get_b
+@@ -10383,8 +10383,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22304,7 +22730,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_bg(style, index, color);
-@@ -10161,8 +10161,8 @@ public static final void gtk_style_get_b
+@@ -10396,8 +10396,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22315,7 +22741,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_dark(style, index, color);
-@@ -10174,8 +10174,8 @@ public static final void gtk_style_get_d
+@@ -10409,8 +10409,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22326,7 +22752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_fg(style, index, color);
-@@ -10187,8 +10187,8 @@ public static final void gtk_style_get_f
+@@ -10422,8 +10422,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **),flags=no_in
   */
@@ -22337,7 +22763,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_fg_gc(style, index, gc);
-@@ -10200,8 +10200,8 @@ public static final void gtk_style_get_f
+@@ -10435,8 +10435,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **),flags=no_in
   */
@@ -22348,7 +22774,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_bg_gc(style, index, gc);
-@@ -10213,8 +10213,8 @@ public static final void gtk_style_get_b
+@@ -10448,8 +10448,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **)
   */
@@ -22359,7 +22785,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_light_gc(style, index, gc);
-@@ -10226,8 +10226,8 @@ public static final void gtk_style_get_l
+@@ -10461,8 +10461,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **),flags=no_in
   */
@@ -22370,7 +22796,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_dark_gc(style, index, gc);
-@@ -10239,8 +10239,8 @@ public static final void gtk_style_get_d
+@@ -10474,8 +10474,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **)
   */
@@ -22381,7 +22807,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_mid_gc(style, index, gc);
-@@ -10252,8 +10252,8 @@ public static final void gtk_style_get_m
+@@ -10487,8 +10487,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **)
   */
@@ -22392,7 +22818,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_text_gc(style, index, gc);
-@@ -10265,8 +10265,8 @@ public static final void gtk_style_get_t
+@@ -10500,8 +10500,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **)
   */
@@ -22403,7 +22829,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_text_aa_gc(style, index, gc);
-@@ -10278,8 +10278,8 @@ public static final void gtk_style_get_t
+@@ -10513,8 +10513,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **),flags=no_in
   */
@@ -22414,7 +22840,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_black_gc(style, gc);
-@@ -10291,8 +10291,8 @@ public static final void gtk_style_get_b
+@@ -10526,8 +10526,8 @@
   * @param style cast=(GtkStyle *)
   * @param gc cast=(GdkGC **)
   */
@@ -22425,7 +22851,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_white_gc(style, gc);
-@@ -10301,8 +10301,8 @@ public static final void gtk_style_get_w
+@@ -10536,8 +10536,8 @@
  	}
  }
  /** @param style cast=(GtkStyle *) */
@@ -22436,7 +22862,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_style_get_font_desc(style);
-@@ -10314,8 +10314,8 @@ public static final int /*long*/ gtk_sty
+@@ -10549,8 +10549,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22447,7 +22873,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_light(style, index, color);
-@@ -10327,8 +10327,8 @@ public static final void gtk_style_get_l
+@@ -10562,8 +10562,8 @@
   * @param style cast=(GtkStyle *)
   * @param color flags=no_in
   */
@@ -22458,7 +22884,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_style_get_text(style, index, color);
-@@ -10337,8 +10337,8 @@ public static final void gtk_style_get_t
+@@ -10572,8 +10572,8 @@
  	}
  }
  /** @param style cast=(GtkStyle *) */
@@ -22469,7 +22895,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_style_get_xthickness(style);
-@@ -10347,8 +10347,8 @@ public static final int gtk_style_get_xt
+@@ -10582,8 +10582,8 @@
  	}
  }
  /** @param style cast=(GtkStyle *) */
@@ -22480,7 +22906,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_style_get_ythickness(style);
-@@ -10362,8 +10362,8 @@ public static final int gtk_style_get_yt
+@@ -10597,8 +10597,8 @@
   * @param widget cast=(GtkWidget *)
   * @param detail cast=(const gchar *)
   */
@@ -22491,7 +22917,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_style_render_icon(style, source, direction, state, size, widget, detail);
-@@ -10375,8 +10375,8 @@ public static final int /*long*/ gtk_sty
+@@ -10610,8 +10610,8 @@
   * @param targets cast=(const GtkTargetEntry *)
   * @param ntargets cast=(guint)
   */
@@ -22502,7 +22928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_target_list_new(targets, ntargets);
-@@ -10385,8 +10385,8 @@ public static final int /*long*/ gtk_tar
+@@ -10620,8 +10620,8 @@
  	}
  }
  /** @param list cast=(GtkTargetList *) */
@@ -22513,7 +22939,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_target_list_unref(list);
-@@ -10398,8 +10398,8 @@ public static final void gtk_target_list
+@@ -10633,8 +10633,8 @@
   * @param buffer cast=(GtkTextBuffer *)
   * @param clipboard cast=(GtkClipboard *)
   */
@@ -22524,7 +22950,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_copy_clipboard(buffer, clipboard);
-@@ -10412,8 +10412,8 @@ public static final void gtk_text_buffer
+@@ -10647,8 +10647,8 @@
   * @param clipboard cast=(GtkClipboard *)
   * @param default_editable cast=(gboolean)
   */
@@ -22535,7 +22961,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_cut_clipboard(buffer, clipboard, default_editable);
-@@ -10426,8 +10426,8 @@ public static final void gtk_text_buffer
+@@ -10661,8 +10661,8 @@
   * @param start cast=(GtkTextIter *)
   * @param end cast=(GtkTextIter *)
   */
@@ -22546,7 +22972,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_delete(buffer, start, end);
-@@ -10440,8 +10440,8 @@ public static final void gtk_text_buffer
+@@ -10675,8 +10675,8 @@
   * @param start cast=(GtkTextIter *)
   * @param end cast=(GtkTextIter *)
   */
@@ -22557,7 +22983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_get_bounds(buffer, start, end);
-@@ -10450,8 +10450,8 @@ public static final void gtk_text_buffer
+@@ -10685,8 +10685,8 @@
  	}
  }
  /** @param buffer cast=(GtkTextBuffer *) */
@@ -22568,7 +22994,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_char_count(buffer);
-@@ -10463,8 +10463,8 @@ public static final int gtk_text_buffer_
+@@ -10698,8 +10698,8 @@
   * @param buffer cast=(GtkTextBuffer *)
   * @param iter cast=(GtkTextIter *)
   */
@@ -22579,7 +23005,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_get_end_iter(buffer, iter);
-@@ -10473,8 +10473,8 @@ public static final void gtk_text_buffer
+@@ -10708,8 +10708,8 @@
  	}
  }
  /** @param buffer cast=(GtkTextBuffer *) */
@@ -22590,7 +23016,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_insert(buffer);
-@@ -10487,8 +10487,8 @@ public static final int /*long*/ gtk_tex
+@@ -10722,8 +10722,8 @@
   * @param iter cast=(GtkTextIter *)
   * @param line_number cast=(gint)
   */
@@ -22601,7 +23027,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_get_iter_at_line(buffer, iter, line_number);
-@@ -10501,8 +10501,8 @@ public static final void gtk_text_buffer
+@@ -10736,8 +10736,8 @@
   * @param iter cast=(GtkTextIter *)
   * @param mark cast=(GtkTextMark *)
   */
@@ -22612,7 +23038,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_get_iter_at_mark(buffer, iter, mark);
-@@ -10515,8 +10515,8 @@ public static final void gtk_text_buffer
+@@ -10750,8 +10750,8 @@
   * @param iter cast=(GtkTextIter *)
   * @param char_offset cast=(gint)
   */
@@ -22623,7 +23049,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_get_iter_at_offset(buffer, iter, char_offset);
-@@ -10525,8 +10525,8 @@ public static final void gtk_text_buffer
+@@ -10760,8 +10760,8 @@
  	}
  }
  /** @param buffer cast=(GtkTextBuffer *) */
@@ -22634,7 +23060,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_line_count(buffer);
-@@ -10535,8 +10535,8 @@ public static final int gtk_text_buffer_
+@@ -10770,8 +10770,8 @@
  	}
  }
  /** @param buffer cast=(GtkTextBuffer *) */
@@ -22645,7 +23071,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_selection_bound(buffer);
-@@ -10549,8 +10549,8 @@ public static final int /*long*/ gtk_tex
+@@ -10784,8 +10784,8 @@
   * @param start cast=(GtkTextIter *)
   * @param end cast=(GtkTextIter *)
   */
@@ -22656,7 +23082,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_selection_bounds(buffer, start, end);
-@@ -10564,8 +10564,8 @@ public static final boolean gtk_text_buf
+@@ -10799,8 +10799,8 @@
   * @param end cast=(GtkTextIter *)
   * @param include_hidden_chars cast=(gboolean)
   */
@@ -22667,7 +23093,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_buffer_get_text(buffer, start, end, include_hidden_chars);
-@@ -10579,8 +10579,8 @@ public static final int /*long*/ gtk_tex
+@@ -10814,8 +10814,8 @@
   * @param text cast=(const gchar *)
   * @param len cast=(gint)
   */
@@ -22678,7 +23104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_insert(buffer, iter, text, len);
-@@ -10594,8 +10594,8 @@ public static final void gtk_text_buffer
+@@ -10829,8 +10829,8 @@
   * @param text cast=(const gchar *)
   * @param len cast=(gint)
   */
@@ -22689,7 +23115,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_insert(buffer, iter, text, len);
-@@ -10608,8 +10608,8 @@ public static final void gtk_text_buffer
+@@ -10843,8 +10843,8 @@
   * @param mark cast=(GtkTextMark *)
   * @param where cast=(const GtkTextIter *)
   */
@@ -22700,7 +23126,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_move_mark(buffer, mark, where);
-@@ -10623,8 +10623,8 @@ public static final void gtk_text_buffer
+@@ -10858,8 +10858,8 @@
   * @param override_location cast=(GtkTextIter *)
   * @param default_editable cast=(gboolean)
   */
@@ -22711,7 +23137,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_paste_clipboard(buffer, clipboard, override_location, default_editable);
-@@ -10636,8 +10636,8 @@ public static final void gtk_text_buffer
+@@ -10871,8 +10871,8 @@
   * @param buffer cast=(GtkTextBuffer *)
   * @param where cast=(const GtkTextIter *)
   */
@@ -22722,7 +23148,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_place_cursor(buffer, where);
-@@ -10650,8 +10650,8 @@ public static final void gtk_text_buffer
+@@ -10885,8 +10885,8 @@
   * @param text cast=(const gchar *)
   * @param len cast=(gint)
   */
@@ -22733,7 +23159,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_buffer_set_text(buffer, text, len);
-@@ -10687,8 +10687,8 @@ public static final int gtk_text_iter_ge
+@@ -10922,8 +10922,8 @@
   * @param window_x cast=(gint *)
   * @param window_y cast=(gint *)
   */
@@ -22744,7 +23170,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_buffer_to_window_coords(text_view, win, buffer_x, buffer_y, window_x, window_y);
-@@ -10697,8 +10697,8 @@ public static final void gtk_text_view_b
+@@ -10932,8 +10932,8 @@
  	}
  }
  /** @param text_view cast=(GtkTextView *) */
@@ -22755,7 +23181,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_view_get_buffer(text_view);
-@@ -10707,8 +10707,8 @@ public static final int /*long*/ gtk_tex
+@@ -10942,8 +10942,8 @@
  	}
  }
  /** @param text_view cast=(GtkTextView *) */
@@ -22766,7 +23192,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_view_get_editable(text_view);
-@@ -10722,8 +10722,8 @@ public static final boolean gtk_text_vie
+@@ -10957,8 +10957,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -22777,7 +23203,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_get_iter_at_location(text_view, iter, x, y);
-@@ -10736,8 +10736,8 @@ public static final void gtk_text_view_g
+@@ -10971,8 +10971,8 @@
   * @param iter cast=(const GtkTextIter *)
   * @param location cast=(GdkRectangle *),flags=no_in
   */
@@ -22788,7 +23214,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_get_iter_location(text_view, iter, location);
-@@ -10751,8 +10751,8 @@ public static final void gtk_text_view_g
+@@ -10986,8 +10986,8 @@
   * @param y cast=(gint)
   * @param line_top cast=(gint *)
   */
@@ -22799,7 +23225,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_get_line_at_y(text_view, target_iter, y, line_top);
-@@ -10764,8 +10764,8 @@ public static final void gtk_text_view_g
+@@ -10999,8 +10999,8 @@
   * @param text_view cast=(GtkTextView *)
   * @param visible_rect cast=(GdkRectangle *),flags=no_in
   */
@@ -22810,7 +23236,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_get_visible_rect(text_view, visible_rect);
-@@ -10777,8 +10777,8 @@ public static final void gtk_text_view_g
+@@ -11012,8 +11012,8 @@
   * @param text_view cast=(GtkTextView *)
   * @param win cast=(GtkTextWindowType)
   */
@@ -22821,7 +23247,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_view_get_window(text_view, win);
-@@ -10786,8 +10786,8 @@ public static final int /*long*/ gtk_tex
+@@ -11021,8 +11021,8 @@
  		lock.unlock();
  	}
  }
@@ -22832,7 +23258,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_view_new();
-@@ -10799,8 +10799,8 @@ public static final int /*long*/ gtk_tex
+@@ -11034,8 +11034,8 @@
   * @param text_view cast=(GtkTextView *)
   * @param mark cast=(GtkTextMark *)
   */
@@ -22843,7 +23269,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_scroll_mark_onscreen(text_view, mark);
-@@ -10816,8 +10816,8 @@ public static final void gtk_text_view_s
+@@ -11051,8 +11051,8 @@
   * @param xalign cast=(gdouble)
   * @param yalign cast=(gdouble)
   */
@@ -22854,7 +23280,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_text_view_scroll_to_iter(text_view, iter, within_margin, use_align, xalign, yalign);
-@@ -10829,8 +10829,8 @@ public static final boolean gtk_text_vie
+@@ -11064,8 +11064,8 @@
   * @param text_view cast=(GtkTextView *)
   * @param setting cast=(gboolean)
   */
@@ -22865,7 +23291,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_set_editable(text_view, setting);
-@@ -10839,8 +10839,8 @@ public static final void gtk_text_view_s
+@@ -11074,8 +11074,8 @@
  	}
  }
  /** @param text_view cast=(GtkTextView *) */
@@ -22876,7 +23302,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_set_justification(text_view, justification);
-@@ -10852,8 +10852,8 @@ public static final void gtk_text_view_s
+@@ -11087,8 +11087,8 @@
   * @param text_view cast=(GtkTextView *)
   * @param tabs cast=(PangoTabArray *)
   */
@@ -22887,7 +23313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_set_tabs(text_view, tabs);
-@@ -10862,8 +10862,8 @@ public static final void gtk_text_view_s
+@@ -11097,8 +11097,8 @@
  	}
  }
  /** @param text_view cast=(GtkTextView *) */
@@ -22898,7 +23324,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_set_wrap_mode(text_view, wrap_mode);
-@@ -10879,8 +10879,8 @@ public static final void gtk_text_view_s
+@@ -11114,8 +11114,8 @@
   * @param buffer_x cast=(gint *)
   * @param buffer_y cast=(gint *)
   */
@@ -22909,7 +23335,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_text_view_window_to_buffer_coords(text_view, win, window_x, window_y, buffer_x, buffer_y);
-@@ -10893,8 +10893,8 @@ public static final void gtk_text_view_w
+@@ -11128,8 +11128,8 @@
   * @param function cast=(GtkFunction)
   * @param data cast=(gpointer)
   */
@@ -22920,7 +23346,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_timeout_add(interval, function, data);
-@@ -10913,8 +10913,8 @@ public static final void gtk_timeout_rem
+@@ -11148,8 +11148,8 @@
  	}
  }
  /** @param toggle_button cast=(GtkToggleButton *) */
@@ -22931,7 +23357,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_toggle_button_get_active(toggle_button);
-@@ -10922,8 +10922,8 @@ public static final boolean gtk_toggle_b
+@@ -11157,8 +11157,8 @@
  		lock.unlock();
  	}
  }
@@ -22942,7 +23368,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_toggle_button_new();
-@@ -10932,8 +10932,8 @@ public static final int /*long*/ gtk_tog
+@@ -11167,8 +11167,8 @@
  	}
  }
  /** @param toggle_button cast=(GtkToggleButton *) */
@@ -22953,7 +23379,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_toggle_button_get_inconsistent(toggle_button);
-@@ -10945,8 +10945,8 @@ public static final boolean gtk_toggle_b
+@@ -11180,8 +11180,8 @@
   * @param toggle_button cast=(GtkToggleButton *)
   * @param is_active cast=(gboolean)
   */
@@ -22964,7 +23390,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_toggle_button_set_active(toggle_button, is_active);
-@@ -10958,8 +10958,8 @@ public static final void gtk_toggle_butt
+@@ -11193,8 +11193,8 @@
   * @param toggle_button cast=(GtkToggleButton *)
   * @param setting cast=(gboolean)
   */
@@ -22975,7 +23401,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_toggle_button_set_inconsistent(toggle_button, setting);
-@@ -10971,8 +10971,8 @@ public static final void gtk_toggle_butt
+@@ -11206,8 +11206,8 @@
   * @param toggle_button cast=(GtkToggleButton *)
   * @param draw_indicator cast=(gboolean)
   */
@@ -22986,7 +23412,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_toggle_button_set_mode(toggle_button, draw_indicator);
-@@ -10987,8 +10987,8 @@ public static final void gtk_toggle_butt
+@@ -11222,8 +11222,8 @@
   * @param tooltip_private_text cast=(const char *)
   * @param position cast=(gint)
   */
@@ -22997,7 +23423,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_toolbar_insert_widget(toolbar, widget, tooltip_text, tooltip_private_text, position);
-@@ -10996,8 +10996,8 @@ public static final void gtk_toolbar_ins
+@@ -11231,8 +11231,8 @@
  		lock.unlock();
  	}
  }
@@ -23008,7 +23434,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_toolbar_new();
-@@ -11009,8 +11009,8 @@ public static final int /*long*/ gtk_too
+@@ -11244,8 +11244,8 @@
   * @param toolbar cast=(GtkToolbar *)
   * @param orientation cast=(GtkOrientation)
   */
@@ -23019,7 +23445,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_toolbar_set_orientation(toolbar, orientation);
-@@ -11019,8 +11019,8 @@ public static final void gtk_toolbar_set
+@@ -11254,8 +11254,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -23030,7 +23456,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tooltips_data_get(widget);
-@@ -11029,8 +11029,8 @@ public static final int /*long*/ gtk_too
+@@ -11264,8 +11264,8 @@
  	}
  }
  /** @param tooltips cast=(GtkTooltips *) */
@@ -23041,7 +23467,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tooltips_disable(tooltips);
-@@ -11039,8 +11039,8 @@ public static final void gtk_tooltips_di
+@@ -11274,8 +11274,8 @@
  	}
  }
  /** @param tooltips cast=(GtkTooltips *) */
@@ -23052,7 +23478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tooltips_enable(tooltips);
-@@ -11048,8 +11048,8 @@ public static final void gtk_tooltips_en
+@@ -11283,8 +11283,8 @@
  		lock.unlock();
  	}
  }
@@ -23063,7 +23489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tooltips_new();
-@@ -11058,8 +11058,8 @@ public static final int /*long*/ gtk_too
+@@ -11293,8 +11293,8 @@
  	}
  }
  /** @param tooltips cast=(GtkTooltips *) */
@@ -23074,7 +23500,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tooltips_force_window(tooltips);
-@@ -11073,8 +11073,8 @@ public static final void gtk_tooltips_fo
+@@ -11308,8 +11308,8 @@
   * @param tip_text cast=(const gchar *)
   * @param tip_private cast=(const gchar *)
   */
@@ -23085,7 +23511,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tooltips_set_tip(tooltips, widget, tip_text, tip_private);
-@@ -11086,8 +11086,8 @@ public static final void gtk_tooltips_se
+@@ -11321,8 +11321,8 @@
   * @param tree_model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23096,7 +23522,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_model_get(tree_model, iter, column, value, terminator);
-@@ -11099,8 +11099,8 @@ public static final void gtk_tree_model_
+@@ -11334,8 +11334,8 @@
   * @param tree_model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23107,7 +23533,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_model_get(tree_model, iter, column, value, terminator);
-@@ -11113,8 +11113,8 @@ public static final void gtk_tree_model_
+@@ -11348,8 +11348,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param path cast=(GtkTreePath *)
   */
@@ -23118,7 +23544,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_get_iter(tree_model, iter, path);
-@@ -11126,8 +11126,8 @@ public static final boolean gtk_tree_mod
+@@ -11361,8 +11361,8 @@
   * @param tree_model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23129,7 +23555,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_get_iter_first(tree_model, iter);
-@@ -11136,8 +11136,8 @@ public static final boolean gtk_tree_mod
+@@ -11371,8 +11371,8 @@
  	}
  }
  /** @param tree_model cast=(GtkTreeModel *) */
@@ -23140,7 +23566,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_get_n_columns(tree_model);
-@@ -11149,8 +11149,8 @@ public static final int gtk_tree_model_g
+@@ -11384,8 +11384,8 @@
   * @param tree_model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23151,7 +23577,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_get_path(tree_model, iter);
-@@ -11158,8 +11158,8 @@ public static final int /*long*/ gtk_tre
+@@ -11393,8 +11393,8 @@
  		lock.unlock();
  	}
  }
@@ -23162,7 +23588,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_get_type();
-@@ -11172,8 +11172,8 @@ public static final int /*long*/ gtk_tre
+@@ -11407,8 +11407,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param parent cast=(GtkTreeIter *)
   */
@@ -23173,7 +23599,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_iter_children(model, iter, parent);
-@@ -11185,8 +11185,8 @@ public static final boolean gtk_tree_mod
+@@ -11420,8 +11420,8 @@
   * @param model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23184,7 +23610,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_iter_n_children(model, iter);
-@@ -11198,8 +11198,8 @@ public static final int gtk_tree_model_i
+@@ -11433,8 +11433,8 @@
   * @param model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23195,7 +23621,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_iter_next(model, iter);
-@@ -11212,8 +11212,8 @@ public static final boolean gtk_tree_mod
+@@ -11447,8 +11447,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param parent cast=(GtkTreeIter *)
   */
@@ -23206,7 +23632,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_model_iter_nth_child(tree_model, iter, parent, n);
-@@ -11222,8 +11222,8 @@ public static final boolean gtk_tree_mod
+@@ -11457,8 +11457,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23217,7 +23643,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_path_append_index(path, index);
-@@ -11235,8 +11235,8 @@ public static final void gtk_tree_path_a
+@@ -11470,8 +11470,8 @@
   * @param a cast=(const GtkTreePath *)
   * @param b cast=(const GtkTreePath *)
   */
@@ -23228,7 +23654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		 return _gtk_tree_path_compare(a, b);
-@@ -11245,8 +11245,8 @@ public static final int /*long*/ gtk_tre
+@@ -11480,8 +11480,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23239,7 +23665,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		 _gtk_tree_path_down(path);
-@@ -11255,8 +11255,8 @@ public static final void gtk_tree_path_d
+@@ -11490,8 +11490,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23250,7 +23676,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_path_free(path);
-@@ -11265,8 +11265,8 @@ public static final void gtk_tree_path_f
+@@ -11500,8 +11500,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23261,7 +23687,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_get_depth(path);
-@@ -11275,8 +11275,8 @@ public static final int gtk_tree_path_ge
+@@ -11510,8 +11510,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23272,7 +23698,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_get_indices(path);
-@@ -11284,8 +11284,8 @@ public static final int /*long*/ gtk_tre
+@@ -11519,8 +11519,8 @@
  		lock.unlock();
  	}
  }
@@ -23283,7 +23709,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_new();
-@@ -11293,8 +11293,8 @@ public static final int /*long*/ gtk_tre
+@@ -11528,8 +11528,8 @@
  		lock.unlock();
  	}
  }
@@ -23294,7 +23720,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_new_first();
-@@ -11303,8 +11303,8 @@ public static final int /*long*/ gtk_tre
+@@ -11538,8 +11538,8 @@
  	}
  }
  /** @param path cast=(const gchar *) */
@@ -23305,7 +23731,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_new_from_string(path);
-@@ -11313,8 +11313,8 @@ public static final int /*long*/ gtk_tre
+@@ -11548,8 +11548,8 @@
  	}
  }
  /** @param path cast=(const gchar *) */
@@ -23316,7 +23742,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_new_from_string(path);
-@@ -11323,8 +11323,8 @@ public static final int /*long*/ gtk_tre
+@@ -11558,8 +11558,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23327,7 +23753,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_path_next(path);
-@@ -11333,8 +11333,8 @@ public static final void gtk_tree_path_n
+@@ -11568,8 +11568,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23338,7 +23764,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_prev(path);
-@@ -11343,8 +11343,8 @@ public static final boolean gtk_tree_pat
+@@ -11578,8 +11578,8 @@
  	}
  }
  /** @param path cast=(GtkTreePath *) */
@@ -23349,7 +23775,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_path_up(path);
-@@ -11356,8 +11356,8 @@ public static final boolean gtk_tree_pat
+@@ -11591,8 +11591,8 @@
   * @method flags=dynamic
   * @param selection cast=(GtkTreeSelection *)
   */
@@ -23360,7 +23786,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_selection_count_selected_rows(selection);
-@@ -11370,8 +11370,8 @@ public static final int gtk_tree_selecti
+@@ -11605,8 +11605,8 @@
   * @param model cast=(GtkTreeModel **)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23371,7 +23797,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_selection_get_selected(selection, model, iter);
-@@ -11384,8 +11384,8 @@ public static final boolean gtk_tree_sel
+@@ -11619,8 +11619,8 @@
   * @param selection cast=(GtkTreeSelection *)
   * @param model cast=(GtkTreeModel **)
   */
@@ -23382,7 +23808,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_selection_get_selected_rows(selection, model);
-@@ -11397,8 +11397,8 @@ public static final int /*long*/ gtk_tre
+@@ -11632,8 +11632,8 @@
   * @param selection cast=(GtkTreeSelection *)
   * @param path cast=(GtkTreePath *)
   */
@@ -23393,7 +23819,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_selection_path_is_selected(selection, path);
-@@ -11407,8 +11407,8 @@ public static final boolean gtk_tree_sel
+@@ -11642,8 +11642,8 @@
  	}
  }
  /** @param selection cast=(GtkTreeSelection *) */
@@ -23404,7 +23830,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_select_all(selection);
-@@ -11420,8 +11420,8 @@ public static final void gtk_tree_select
+@@ -11655,8 +11655,8 @@
   * @param selection cast=(GtkTreeSelection *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23415,7 +23841,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_select_iter(selection, iter);
-@@ -11434,8 +11434,8 @@ public static final void gtk_tree_select
+@@ -11669,8 +11669,8 @@
   * @param func cast=(GtkTreeSelectionForeachFunc)
   * @param data cast=(gpointer)
   */
@@ -23426,7 +23852,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_selected_foreach(selection, func, data);
-@@ -11447,8 +11447,8 @@ public static final void gtk_tree_select
+@@ -11682,8 +11682,8 @@
   * @param selection cast=(GtkTreeSelection *)
   * @param mode cast=(GtkSelectionMode)
   */
@@ -23437,7 +23863,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_set_mode(selection, mode);
-@@ -11457,8 +11457,8 @@ public static final void gtk_tree_select
+@@ -11692,8 +11692,8 @@
  	}
  }
  /** @param selection cast=(GtkTreeSelection *) */
@@ -23448,7 +23874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_unselect_all(selection);
-@@ -11470,8 +11470,8 @@ public static final void gtk_tree_select
+@@ -11705,8 +11705,8 @@
   * @param selection cast=(GtkTreeSelection *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23459,7 +23885,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_selection_unselect_iter(selection, iter);
-@@ -11484,8 +11484,8 @@ public static final void gtk_tree_select
+@@ -11719,8 +11719,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param parent cast=(GtkTreeIter *)
   */
@@ -23470,7 +23896,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_append(store, iter, parent);
-@@ -11494,8 +11494,8 @@ public static final void gtk_tree_store_
+@@ -11729,8 +11729,8 @@
  	}
  }
  /** @param store cast=(GtkTreeStore *) */
@@ -23481,7 +23907,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_clear(store);
-@@ -11509,8 +11509,8 @@ public static final void gtk_tree_store_
+@@ -11744,8 +11744,8 @@
   * @param parent cast=(GtkTreeIter *)
   * @param position cast=(gint)
   */
@@ -23492,7 +23918,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_insert(store, iter, parent, position);
-@@ -11519,8 +11519,8 @@ public static final void gtk_tree_store_
+@@ -11754,8 +11754,8 @@
  	}
  }
  /** @param types cast=(GType *) */
@@ -23503,7 +23929,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_store_newv(numColumns, types);
-@@ -11532,8 +11532,8 @@ public static final int /*long*/ gtk_tre
+@@ -11767,8 +11767,8 @@
   * @param store cast=(GtkTreeStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23514,7 +23940,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_remove(store, iter);
-@@ -11545,8 +11545,8 @@ public static final void gtk_tree_store_
+@@ -11780,8 +11780,8 @@
   * @param store cast=(GtkTreeStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23525,7 +23951,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_set(store, iter, column, value, terminator);
-@@ -11558,8 +11558,8 @@ public static final void gtk_tree_store_
+@@ -11793,8 +11793,8 @@
   * @param store cast=(GtkTreeStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23536,7 +23962,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_set(store, iter, column, value, terminator);
-@@ -11571,8 +11571,8 @@ public static final void gtk_tree_store_
+@@ -11806,8 +11806,8 @@
   * @param store cast=(GtkTreeStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23547,7 +23973,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_set(store, iter, column, value, terminator);
-@@ -11585,8 +11585,8 @@ public static final void gtk_tree_store_
+@@ -11820,8 +11820,8 @@
   * @param iter cast=(GtkTreeIter *)
   * @param value flags=no_out
   */
@@ -23558,7 +23984,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_set(store, iter, column, value, terminator);
-@@ -11598,8 +11598,8 @@ public static final void gtk_tree_store_
+@@ -11833,8 +11833,8 @@
   * @param store cast=(GtkTreeStore *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23569,7 +23995,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_store_set(store, iter, column, value, terminator);
-@@ -11611,8 +11611,8 @@ public static final void gtk_tree_store_
+@@ -11846,8 +11846,8 @@
   * @param view cast=(GtkTreeView *)
   * @param path cast=(GtkTreePath *)
   */
@@ -23580,7 +24006,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_create_row_drag_icon(view, path);
-@@ -11624,8 +11624,8 @@ public static final int /*long*/ gtk_tre
+@@ -11859,8 +11859,8 @@
   * @param view cast=(GtkTreeView *)
   * @param path cast=(GtkTreePath *)
   */
@@ -23591,7 +24017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_collapse_row(view, path);
-@@ -11639,8 +11639,8 @@ public static final boolean gtk_tree_vie
+@@ -11874,8 +11874,8 @@
   * @param attribute cast=(const gchar *)
   * @param column cast=(gint)
   */
@@ -23602,7 +24028,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_add_attribute(treeColumn, cellRenderer, attribute, column);
-@@ -11655,8 +11655,8 @@ public static final void gtk_tree_view_c
+@@ -11890,8 +11890,8 @@
   * @param start_pos cast=(gint *)
   * @param width cast=(gint *)
   */
@@ -23613,7 +24039,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_cell_get_position(tree_column, cell_renderer, start_pos, width);
-@@ -11672,8 +11672,8 @@ public static final boolean gtk_tree_vie
+@@ -11907,8 +11907,8 @@
   * @param width cast=(gint *)
   * @param height cast=(gint *)
   */
@@ -23624,7 +24050,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_cell_get_size(tree_column, cell_area, x_offset, y_offset, width, height);
-@@ -11686,8 +11686,8 @@ public static final void gtk_tree_view_c
+@@ -11921,8 +11921,8 @@
   * @param tree_model cast=(GtkTreeModel *)
   * @param iter cast=(GtkTreeIter *)
   */
@@ -23635,7 +24061,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_cell_set_cell_data(tree_column, tree_model, iter, is_expander, is_expanded);
-@@ -11696,8 +11696,8 @@ public static final void gtk_tree_view_c
+@@ -11931,8 +11931,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23646,7 +24072,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_clear(tree_column);
-@@ -11706,8 +11706,8 @@ public static final void gtk_tree_view_c
+@@ -11941,8 +11941,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23657,7 +24083,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_cell_renderers(tree_column);
-@@ -11716,8 +11716,8 @@ public static final int /*long*/ gtk_tre
+@@ -11951,8 +11951,8 @@
  	}
  }
  /** @param column cast=(GtkTreeViewColumn *) */
@@ -23668,7 +24094,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_fixed_width(column);
-@@ -11726,8 +11726,8 @@ public static final int gtk_tree_view_co
+@@ -11961,8 +11961,8 @@
  	}
  }
  /** @param column cast=(GtkTreeViewColumn *) */
@@ -23679,7 +24105,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_reorderable(column);
-@@ -11736,8 +11736,8 @@ public static final boolean gtk_tree_vie
+@@ -11971,8 +11971,8 @@
  	}
  }
  /** @param column cast=(GtkTreeViewColumn *) */
@@ -23690,7 +24116,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_resizable(column);
-@@ -11746,8 +11746,8 @@ public static final boolean gtk_tree_vie
+@@ -11981,8 +11981,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23701,7 +24127,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_sizing(tree_column);
-@@ -11756,8 +11756,8 @@ public static final int gtk_tree_view_co
+@@ -11991,8 +11991,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23712,7 +24138,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_spacing(tree_column);
-@@ -11766,8 +11766,8 @@ public static final int gtk_tree_view_co
+@@ -12001,8 +12001,8 @@
  	}
  }
  /** @param column cast=(GtkTreeViewColumn *) */
@@ -23723,7 +24149,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_visible(column);
-@@ -11776,8 +11776,8 @@ public static final boolean gtk_tree_vie
+@@ -12011,8 +12011,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23734,7 +24160,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_sort_indicator(tree_column);
-@@ -11786,8 +11786,8 @@ public static final boolean gtk_tree_vie
+@@ -12021,8 +12021,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23745,7 +24171,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_sort_order(tree_column);
-@@ -11796,8 +11796,8 @@ public static final int gtk_tree_view_co
+@@ -12031,8 +12031,8 @@
  	}
  }
  /** @param column cast=(GtkTreeViewColumn *) */
@@ -23756,7 +24182,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_get_width(column);
-@@ -11805,8 +11805,8 @@ public static final int gtk_tree_view_co
+@@ -12040,8 +12040,8 @@
  		lock.unlock();
  	}
  }
@@ -23767,7 +24193,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_column_new();
-@@ -11819,8 +11819,8 @@ public static final int /*long*/ gtk_tre
+@@ -12054,8 +12054,8 @@
   * @param cell_renderer cast=(GtkCellRenderer *)
   * @param expand cast=(gboolean)
   */
@@ -23778,7 +24204,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_pack_start(tree_column, cell_renderer, expand);
-@@ -11833,8 +11833,8 @@ public static final void gtk_tree_view_c
+@@ -12068,8 +12068,8 @@
   * @param cell_renderer cast=(GtkCellRenderer *)
   * @param expand cast=(gboolean)
   */
@@ -23789,7 +24215,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_pack_end(tree_column, cell_renderer, expand);
-@@ -11843,8 +11843,8 @@ public static final void gtk_tree_view_c
+@@ -12078,8 +12078,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23800,7 +24226,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_alignment(tree_column, xalign);
-@@ -11859,8 +11859,8 @@ public static final void gtk_tree_view_c
+@@ -12094,8 +12094,8 @@
   * @param func_data cast=(gpointer)
   * @param destroy cast=(GtkDestroyNotify)
   */
@@ -23811,7 +24237,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_cell_data_func(tree_column, cell_renderer, func, func_data, destroy);
-@@ -11872,8 +11872,8 @@ public static final void gtk_tree_view_c
+@@ -12107,8 +12107,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param clickable cast=(gboolean)
   */
@@ -23822,7 +24248,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_clickable(column, clickable);
-@@ -11885,8 +11885,8 @@ public static final void gtk_tree_view_c
+@@ -12120,8 +12120,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param fixed_width cast=(gint)
   */
@@ -23833,7 +24259,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_fixed_width(column, fixed_width);
-@@ -11898,8 +11898,8 @@ public static final void gtk_tree_view_c
+@@ -12133,8 +12133,8 @@
   * @param tree_column cast=(GtkTreeViewColumn *)
   * @param min_width cast=(gint)
   */
@@ -23844,7 +24270,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_min_width(tree_column, min_width);
-@@ -11911,8 +11911,8 @@ public static final void gtk_tree_view_c
+@@ -12146,8 +12146,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param reorderable cast=(gboolean)
   */
@@ -23855,7 +24281,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_reorderable(column, reorderable);
-@@ -11924,8 +11924,8 @@ public static final void gtk_tree_view_c
+@@ -12159,8 +12159,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param resizable cast=(gboolean)
   */
@@ -23866,7 +24292,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_resizable(column, resizable);
-@@ -11937,8 +11937,8 @@ public static final void gtk_tree_view_c
+@@ -12172,8 +12172,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param type cast=(GtkTreeViewColumnSizing)
   */
@@ -23877,7 +24303,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_sizing(column, type);
-@@ -11950,8 +11950,8 @@ public static final void gtk_tree_view_c
+@@ -12185,8 +12185,8 @@
   * @param tree_column cast=(GtkTreeViewColumn *)
   * @param setting cast=(gboolean)
   */
@@ -23888,7 +24314,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_sort_indicator(tree_column, setting);
-@@ -11963,8 +11963,8 @@ public static final void gtk_tree_view_c
+@@ -12198,8 +12198,8 @@
   * @param tree_column cast=(GtkTreeViewColumn *)
   * @param order cast=(GtkSortType)
   */
@@ -23899,7 +24325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_sort_order(tree_column, order);
-@@ -11976,8 +11976,8 @@ public static final void gtk_tree_view_c
+@@ -12211,8 +12211,8 @@
   * @param tree_column cast=(GtkTreeViewColumn *)
   * @param title cast=(const gchar *)
   */
@@ -23910,7 +24336,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_title(tree_column, title);
-@@ -11986,8 +11986,8 @@ public static final void gtk_tree_view_c
+@@ -12221,8 +12221,8 @@
  	}
  }
  /** @param tree_column cast=(GtkTreeViewColumn *) */
@@ -23921,7 +24347,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_visible(tree_column, visible);
-@@ -11999,8 +11999,8 @@ public static final void gtk_tree_view_c
+@@ -12234,8 +12234,8 @@
   * @param tree_column cast=(GtkTreeViewColumn *)
   * @param widget cast=(GtkWidget *)
   */
@@ -23932,7 +24358,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_column_set_widget(tree_column, widget);
-@@ -12012,8 +12012,8 @@ public static final void gtk_tree_view_c
+@@ -12247,8 +12247,8 @@
   * @param view cast=(GtkTreeView *)
   * @param path cast=(GtkTreePath *)
   */
@@ -23943,7 +24369,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_drag_dest_row(view, path, pos);
-@@ -12022,8 +12022,8 @@ public static final void gtk_tree_view_s
+@@ -12257,8 +12257,8 @@
  	}
  }
  /** @param view cast=(GtkTreeView *) */
@@ -23954,7 +24380,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_enable_search(view, enable_search);
-@@ -12036,8 +12036,8 @@ public static final void gtk_tree_view_s
+@@ -12271,8 +12271,8 @@
   * @param path cast=(GtkTreePath *)
   * @param open_all cast=(gboolean)
   */
@@ -23965,7 +24391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_expand_row(view, path, open_all);
-@@ -12051,8 +12051,8 @@ public static final boolean gtk_tree_vie
+@@ -12286,8 +12286,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param rect cast=(GdkRectangle *)
   */
@@ -23976,7 +24402,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_get_background_area(tree_view, path, column, rect);
-@@ -12061,8 +12061,8 @@ public static final void gtk_tree_view_g
+@@ -12296,8 +12296,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -23987,7 +24413,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_bin_window(tree_view);
-@@ -12076,8 +12076,8 @@ public static final int /*long*/ gtk_tre
+@@ -12311,8 +12311,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param rect cast=(GdkRectangle *),flags=no_in
   */
@@ -23998,7 +24424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_get_cell_area(tree_view, path, column, rect);
-@@ -12086,8 +12086,8 @@ public static final void gtk_tree_view_g
+@@ -12321,8 +12321,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24009,7 +24435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_expander_column(tree_view);
-@@ -12099,8 +12099,8 @@ public static final int /*long*/gtk_tree
+@@ -12334,8 +12334,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param n cast=(gint)
   */
@@ -24020,7 +24446,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_column(tree_view, n);
-@@ -12109,8 +12109,8 @@ public static final int /*long*/ gtk_tre
+@@ -12344,8 +12344,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24031,7 +24457,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_columns(tree_view);
-@@ -12123,8 +12123,8 @@ public static final int /*long*/ gtk_tre
+@@ -12358,8 +12358,8 @@
   * @param path cast=(GtkTreePath **)
   * @param focus_column cast=(GtkTreeViewColumn **)
   */
@@ -24042,7 +24468,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_get_cursor(tree_view, path, focus_column);
-@@ -12133,8 +12133,8 @@ public static final void gtk_tree_view_g
+@@ -12368,8 +12368,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24053,7 +24479,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_headers_visible(tree_view);
-@@ -12151,8 +12151,8 @@ public static final boolean gtk_tree_vie
+@@ -12386,8 +12386,8 @@
   * @param cell_x cast=(gint *)
   * @param cell_y cast=(gint *)
   */
@@ -24064,7 +24490,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_path_at_pos(tree_view, x, y, path, column, cell_x, cell_y);
-@@ -12161,8 +12161,8 @@ public static final boolean gtk_tree_vie
+@@ -12396,8 +12396,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24075,7 +24501,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_rules_hint(tree_view);
-@@ -12171,8 +12171,8 @@ public static final boolean gtk_tree_vie
+@@ -12406,8 +12406,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24086,7 +24512,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_get_selection(tree_view);
-@@ -12184,8 +12184,8 @@ public static final int /*long*/ gtk_tre
+@@ -12419,8 +12419,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param visible_rect flags=no_in
   */
@@ -24097,7 +24523,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_get_visible_rect(tree_view, visible_rect);
-@@ -12198,8 +12198,8 @@ public static final void gtk_tree_view_g
+@@ -12433,8 +12433,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param position cast=(gint)
   */
@@ -24108,7 +24534,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_insert_column(tree_view, column, position);
-@@ -12212,8 +12212,8 @@ public static final int gtk_tree_view_in
+@@ -12447,8 +12447,8 @@
   * @param column cast=(GtkTreeViewColumn *)
   * @param base_column cast=(GtkTreeViewColumn *)
   */
@@ -24119,7 +24545,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_move_column_after(tree_view, column, base_column);
-@@ -12222,8 +12222,8 @@ public static final void gtk_tree_view_m
+@@ -12457,8 +12457,8 @@
  	}
  }
  /** @param model cast=(GtkTreeModel *) */
@@ -24130,7 +24556,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_new_with_model(model);
-@@ -12235,8 +12235,8 @@ public static final int /*long*/ gtk_tre
+@@ -12470,8 +12470,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param column cast=(GtkTreeViewColumn *)
   */
@@ -24141,7 +24567,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_remove_column(tree_view, column);
-@@ -12248,8 +12248,8 @@ public static final void gtk_tree_view_r
+@@ -12483,8 +12483,8 @@
   * @param view cast=(GtkTreeView *)
   * @param path cast=(GtkTreePath *)
   */
@@ -24152,7 +24578,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_tree_view_row_expanded(view, path);
-@@ -12265,8 +12265,8 @@ public static final boolean gtk_tree_vie
+@@ -12500,8 +12500,8 @@
   * @param row_aligh cast=(gfloat)
   * @param column_align cast=(gfloat)
   */
@@ -24163,7 +24589,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_scroll_to_cell(tree_view, path, column, use_align, row_aligh, column_align);
-@@ -12279,8 +12279,8 @@ public static final void gtk_tree_view_s
+@@ -12514,8 +12514,8 @@
   * @param tree_x cast=(gint)
   * @param tree_y cast=(gint)
   */
@@ -24174,7 +24600,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_scroll_to_point(tree_view, tree_x, tree_y);
-@@ -12293,8 +12293,8 @@ public static final void gtk_tree_view_s
+@@ -12528,8 +12528,8 @@
   * @param path cast=(GtkTreePath *)
   * @param focus_column cast=(GtkTreeViewColumn *)
   */
@@ -24185,7 +24611,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_cursor(tree_view, path, focus_column, start_editing);
-@@ -12306,8 +12306,8 @@ public static final void gtk_tree_view_s
+@@ -12541,8 +12541,8 @@
   * @method flags=dynamic
   * @param tree_view cast=(GtkTreeView*)
   */
@@ -24196,7 +24622,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_grid_lines(tree_view, grid_lines);
-@@ -12319,8 +12319,8 @@ public static final void gtk_tree_view_s
+@@ -12554,8 +12554,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param visible cast=(gboolean)
   */
@@ -24207,7 +24633,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_headers_visible(tree_view, visible);
-@@ -12332,8 +12332,8 @@ public static final void gtk_tree_view_s
+@@ -12567,8 +12567,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param model cast=(GtkTreeModel *)
   */
@@ -24218,7 +24644,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_model(tree_view, model);
-@@ -12342,8 +12342,8 @@ public static final void gtk_tree_view_s
+@@ -12577,8 +12577,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24229,7 +24655,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_rules_hint(tree_view, setting);
-@@ -12355,8 +12355,8 @@ public static final void gtk_tree_view_s
+@@ -12590,8 +12590,8 @@
   * @param tree_view cast=(GtkTreeView *)
   * @param column cast=(gint)
   */
@@ -24240,7 +24666,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_set_search_column(tree_view, column);
-@@ -12371,8 +12371,8 @@ public static final void gtk_tree_view_s
+@@ -12606,8 +12606,8 @@
   * @param wx cast=(gint *)
   * @param wy cast=(gint *)
   */
@@ -24251,7 +24677,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_tree_to_widget_coords(tree_view, tx, ty, wx, wy);
-@@ -12381,8 +12381,8 @@ public static final void gtk_tree_view_t
+@@ -12616,8 +12616,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24262,7 +24688,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_unset_rows_drag_dest(tree_view);
-@@ -12391,8 +12391,8 @@ public static final void gtk_tree_view_u
+@@ -12626,8 +12626,8 @@
  	}
  }
  /** @param tree_view cast=(GtkTreeView *) */
@@ -24273,7 +24699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_tree_view_widget_to_tree_coords(tree_view, wx, wy, tx, ty);
-@@ -12404,8 +12404,8 @@ public static final void gtk_tree_view_w
+@@ -12639,8 +12639,8 @@
   * @param homogeneous cast=(gboolean)
   * @param spacing cast=(gint)
   */
@@ -24284,7 +24710,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_vbox_new(homogeneous, spacing);
-@@ -12414,8 +12414,8 @@ public static final int /*long*/ gtk_vbo
+@@ -12649,8 +12649,8 @@
  	}
  }
  /** @param viewport cast=(GtkViewport *) */
@@ -24295,7 +24721,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_viewport_get_shadow_type(viewport);
-@@ -12427,8 +12427,8 @@ public static final int gtk_viewport_get
+@@ -12662,8 +12662,8 @@
   * @param viewport cast=(GtkViewport *)
   * @param type cast=(GtkShadowType)
   */
@@ -24306,7 +24732,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_viewport_set_shadow_type(viewport, type);
-@@ -12437,8 +12437,8 @@ public static final void gtk_viewport_se
+@@ -12672,8 +12672,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -24317,7 +24743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_vscale_new(adjustment);
-@@ -12447,8 +12447,8 @@ public static final int /*long*/ gtk_vsc
+@@ -12682,8 +12682,8 @@
  	}
  }
  /** @param adjustment cast=(GtkAdjustment *) */
@@ -24328,7 +24754,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_vscrollbar_new(adjustment);
-@@ -12456,8 +12456,8 @@ public static final int /*long*/ gtk_vsc
+@@ -12691,8 +12691,8 @@
  		lock.unlock();
  	}
  }
@@ -24339,7 +24765,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_vseparator_new();
-@@ -12472,8 +12472,8 @@ public static final int /*long*/ gtk_vse
+@@ -12707,8 +12707,8 @@
   * @param accel_key cast=(guint)
   * @param accel_mods cast=(GdkModifierType)
   */
@@ -24350,7 +24776,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_add_accelerator(widget, accel_signal, accel_group, accel_key, accel_mods, accel_flags);
-@@ -12485,8 +12485,8 @@ public static final void gtk_widget_add_
+@@ -12720,8 +12720,8 @@
   * @param widget cast=(GtkWidget *)
   * @param events cast=(gint)
   */
@@ -24361,7 +24787,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_add_events(widget, events);
-@@ -12495,8 +12495,8 @@ public static final void gtk_widget_add_
+@@ -12730,8 +12730,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24372,7 +24798,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_child_focus(widget, direction);
-@@ -12508,8 +12508,8 @@ public static final boolean gtk_widget_c
+@@ -12743,8 +12743,8 @@
   * @param widget cast=(GtkWidget *)
   * @param text cast=(const gchar *)
   */
@@ -24383,7 +24809,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_create_pango_layout(widget, text);
-@@ -12521,8 +12521,8 @@ public static final int /*long*/ gtk_wid
+@@ -12756,8 +12756,8 @@
   * @param widget cast=(GtkWidget *)
   * @param text cast=(const gchar *)
   */
@@ -24394,7 +24820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_create_pango_layout(widget, text);
-@@ -12531,8 +12531,8 @@ public static final int /*long*/ gtk_wid
+@@ -12766,8 +12766,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24405,7 +24831,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_destroy(widget);
-@@ -12544,8 +12544,8 @@ public static final void gtk_widget_dest
+@@ -12779,8 +12779,8 @@
   * @param widget cast=(GtkWidget *)
   * @param event cast=(GdkEvent *)
   */
@@ -24416,7 +24842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_event(widget, event);
-@@ -12554,8 +12554,8 @@ public static final boolean gtk_widget_e
+@@ -12789,8 +12789,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24427,7 +24853,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_accessible(widget);
-@@ -12564,8 +12564,8 @@ public static final int /*long*/ gtk_wid
+@@ -12799,8 +12799,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24438,7 +24864,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_child_visible(widget);
-@@ -12582,8 +12582,8 @@ public static final int gtk_widget_get_d
+@@ -12817,8 +12817,8 @@
  		lock.unlock();
  	}
  }
@@ -24449,7 +24875,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_default_style();
-@@ -12592,8 +12592,8 @@ public static final int /*long*/ gtk_wid
+@@ -12827,8 +12827,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24460,7 +24886,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_direction(widget);
-@@ -12602,8 +12602,8 @@ public static final int gtk_widget_get_d
+@@ -12837,8 +12837,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24471,7 +24897,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_events(widget);
-@@ -12612,8 +12612,8 @@ public static final int gtk_widget_get_e
+@@ -12847,8 +12847,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24482,7 +24908,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_modifier_style(widget);
-@@ -12622,8 +12622,8 @@ public static final int /*long*/ gtk_wid
+@@ -12857,8 +12857,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24493,7 +24919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_pango_context(widget);
-@@ -12632,8 +12632,8 @@ public static final int /*long*/ gtk_wid
+@@ -12867,8 +12867,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24504,7 +24930,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_parent(widget);
-@@ -12642,8 +12642,8 @@ public static final int /*long*/ gtk_wid
+@@ -12877,8 +12877,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24515,7 +24941,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_parent_window(widget);
-@@ -12652,8 +12652,8 @@ public static final int /*long*/ gtk_wid
+@@ -12887,8 +12887,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24526,7 +24952,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_style(widget);
-@@ -12666,8 +12666,8 @@ public static final int /*long*/ gtk_wid
+@@ -12901,8 +12901,8 @@
   * @param width cast=(gint *)
   * @param height cast=(gint *)
   */
@@ -24537,7 +24963,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_get_size_request(widget, width, height);
-@@ -12676,8 +12676,8 @@ public static final void gtk_widget_get_
+@@ -12911,8 +12911,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24548,7 +24974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_get_toplevel(widget);
-@@ -12686,8 +12686,8 @@ public static final int /*long*/ gtk_wid
+@@ -12921,8 +12921,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24559,7 +24985,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_grab_focus(widget);
-@@ -12696,8 +12696,8 @@ public static final void gtk_widget_grab
+@@ -12931,8 +12931,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24570,7 +24996,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_hide(widget);
-@@ -12709,8 +12709,8 @@ public static final void gtk_widget_hide
+@@ -12944,8 +12944,8 @@
   * @method flags=dynamic
   * @param widget cast=(GtkWidget *)
   */
@@ -24581,7 +25007,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_is_composited(widget);
-@@ -12719,8 +12719,8 @@ public static final boolean gtk_widget_i
+@@ -12954,8 +12954,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24592,7 +25018,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_is_focus(widget);
-@@ -12729,8 +12729,8 @@ public static final boolean gtk_widget_i
+@@ -12964,8 +12964,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24603,7 +25029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_map(widget);
-@@ -12742,8 +12742,8 @@ public static final void gtk_widget_map(
+@@ -12977,8 +12977,8 @@
   * @param widget cast=(GtkWidget *)
   * @param group_cycling cast=(gboolean)
   */
@@ -24614,7 +25040,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_mnemonic_activate(widget, group_cycling);
-@@ -12756,8 +12756,8 @@ public static final boolean gtk_widget_m
+@@ -12991,8 +12991,8 @@
   * @param state cast=(GtkStateType)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -24625,7 +25051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_base(widget, state, color);
-@@ -12770,8 +12770,8 @@ public static final void gtk_widget_modi
+@@ -13005,8 +13005,8 @@
   * @param state cast=(GtkStateType)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -24636,7 +25062,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_bg(widget, state, color);
-@@ -12784,8 +12784,8 @@ public static final void gtk_widget_modi
+@@ -13019,8 +13019,8 @@
   * @param state cast=(GtkStateType)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -24647,7 +25073,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_fg(widget, state, color);
-@@ -12797,8 +12797,8 @@ public static final void gtk_widget_modi
+@@ -13032,8 +13032,8 @@
   * @param widget cast=(GtkWidget *)
   * @param pango_font_descr cast=(PangoFontDescription *)
   */
@@ -24658,7 +25084,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_font(widget, pango_font_descr);
-@@ -12810,8 +12810,8 @@ public static final void gtk_widget_modi
+@@ -13045,8 +13045,8 @@
   * @param widget cast=(GtkWidget *)
   * @param style cast=(GtkRcStyle *)
   */
@@ -24669,7 +25095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_style(widget, style);
-@@ -12824,8 +12824,8 @@ public static final void gtk_widget_modi
+@@ -13059,8 +13059,8 @@
   * @param state cast=(GtkStateType)
   * @param color cast=(GdkColor *),flags=no_out
   */
@@ -24680,7 +25106,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_modify_text(widget, state, color);
-@@ -12834,8 +12834,8 @@ public static final void gtk_widget_modi
+@@ -13069,8 +13069,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24691,7 +25117,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_queue_resize(widget);
-@@ -12844,8 +12844,8 @@ public static final void gtk_widget_queu
+@@ -13079,8 +13079,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24702,7 +25128,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_realize(widget);
-@@ -12859,8 +12859,8 @@ public static final void gtk_widget_real
+@@ -13094,8 +13094,8 @@
   * @param accel_key cast=(guint)
   * @param accel_mods cast=(GdkModifierType)
   */
@@ -24713,7 +25139,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_remove_accelerator(widget, accel_group, accel_key, accel_mods);
-@@ -12872,8 +12872,8 @@ public static final void gtk_widget_remo
+@@ -13107,8 +13107,8 @@
   * @param widget cast=(GtkWidget *)
   * @param new_parent cast=(GtkWidget *)
   */
@@ -24724,7 +25150,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_reparent(widget, new_parent);
-@@ -12885,8 +12885,8 @@ public static final void gtk_widget_repa
+@@ -13120,8 +13120,8 @@
   * @param widget cast=(GtkWidget *)
   * @param event cast=(GdkEvent *)
   */
@@ -24735,7 +25161,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_send_expose(widget, event);
-@@ -12895,8 +12895,8 @@ public static final int gtk_widget_send_
+@@ -13130,8 +13130,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24746,7 +25172,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_app_paintable(widget, app_paintable);
-@@ -12918,8 +12918,8 @@ public static final void gtk_widget_set_
+@@ -13153,8 +13153,8 @@
   * @param widget cast=(GtkWidget *)
   * @param dir cast=(GtkTextDirection)
   */
@@ -24757,7 +25183,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_direction(widget, dir);
-@@ -12931,8 +12931,8 @@ public static final void gtk_widget_set_
+@@ -13166,8 +13166,8 @@
   * @param widget cast=(GtkWidget *)
   * @param double_buffered cast=(gboolean)
   */
@@ -24768,7 +25194,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_double_buffered(widget, double_buffered);
-@@ -12944,8 +12944,8 @@ public static final void gtk_widget_set_
+@@ -13179,8 +13179,8 @@
   * @param widget cast=(GtkWidget *)
   * @param name cast=(const char *)
   */
@@ -24779,7 +25205,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_name(widget, name);
-@@ -12957,8 +12957,8 @@ public static final void gtk_widget_set_
+@@ -13192,8 +13192,8 @@
   * @param widget cast=(GtkWidget *)
   * @param redraw cast=(gboolean)
   */
@@ -24790,7 +25216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_redraw_on_allocate(widget, redraw);
-@@ -12970,8 +12970,8 @@ public static final void gtk_widget_set_
+@@ -13205,8 +13205,8 @@
   * @param widget cast=(GtkWidget *)
   * @param sensitive cast=(gboolean)
   */
@@ -24801,7 +25227,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_sensitive(widget, sensitive);
-@@ -12984,8 +12984,8 @@ public static final void gtk_widget_set_
+@@ -13219,8 +13219,8 @@
   * @param width cast=(gint)
   * @param height cast=(gint)
   */
@@ -24812,7 +25238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_size_request(widget, width, height);
-@@ -12997,8 +12997,8 @@ public static final void gtk_widget_set_
+@@ -13232,8 +13232,8 @@
   * @param widget cast=(GtkWidget *)
   * @param state cast=(GtkStateType)
   */
@@ -24823,7 +25249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_state(widget, state);
-@@ -13010,8 +13010,8 @@ public static final void gtk_widget_set_
+@@ -13245,8 +13245,8 @@
   * @param widget cast=(GtkWidget *)
   * @param style cast=(GtkStyle *)
   */
@@ -24834,7 +25260,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_style(widget, style);
-@@ -13025,8 +13025,8 @@ public static final void gtk_widget_set_
+@@ -13260,8 +13260,8 @@
   * @param offset_x cast=(gint)
   * @param offset_y cast=(gint)
   */
@@ -24845,7 +25271,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_shape_combine_mask(widget, shape_mask, offset_x, offset_y);
-@@ -13035,8 +13035,8 @@ public static final void gtk_widget_shap
+@@ -13270,8 +13270,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24856,7 +25282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_show(widget);
-@@ -13045,8 +13045,8 @@ public static final void gtk_widget_show
+@@ -13280,8 +13280,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24867,7 +25293,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_show_now(widget);
-@@ -13058,8 +13058,8 @@ public static final void gtk_widget_show
+@@ -13293,8 +13293,8 @@
   * @param widget cast=(GtkWidget *)
   * @param allocation cast=(GtkAllocation *),flags=no_out
   */
@@ -24878,7 +25304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_size_allocate(widget, allocation);
-@@ -13071,8 +13071,8 @@ public static final void gtk_widget_size
+@@ -13306,8 +13306,8 @@
   * @param widget cast=(GtkWidget *)
   * @param requisition cast=(GtkRequisition *),flags=no_in
   */
@@ -24889,7 +25315,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_size_request(widget, requisition);
-@@ -13085,8 +13085,8 @@ public static final void gtk_widget_size
+@@ -13320,8 +13320,8 @@
   * @param property_name cast=(const gchar *)
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -24900,7 +25326,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_style_get(widget, property_name, value, terminator);
-@@ -13099,8 +13099,8 @@ public static final void gtk_widget_styl
+@@ -13334,8 +13334,8 @@
   * @param property_name cast=(const gchar *)
   * @param terminator cast=(const gchar *),flags=sentinel
   */
@@ -24911,7 +25337,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_style_get(widget, property_name, value, terminator);
-@@ -13112,8 +13112,8 @@ public static final void gtk_widget_styl
+@@ -13347,8 +13347,8 @@
   * @param src_widget cast=(GtkWidget *)
   * @param dest_widget cast=(GtkWidget *)
   */
@@ -24922,7 +25348,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_widget_translate_coordinates(src_widget, dest_widget, src_x, src_y, dest_x, dest_y);
-@@ -13122,8 +13122,8 @@ public static final boolean gtk_widget_t
+@@ -13357,8 +13357,8 @@
  	}
  }
  /** @param widget cast=(GtkWidget *) */
@@ -24933,7 +25359,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_unrealize(widget);
-@@ -13132,8 +13132,8 @@ public static final void gtk_widget_unre
+@@ -13367,8 +13367,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -24944,7 +25370,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_activate_default(window);
-@@ -13145,8 +13145,8 @@ public static final boolean gtk_window_a
+@@ -13380,8 +13380,8 @@
   * @param window cast=(GtkWindow *)
   * @param accel_group cast=(GtkAccelGroup *)
   */
@@ -24955,7 +25381,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_add_accel_group(window, accel_group);
-@@ -13155,8 +13155,8 @@ public static final void gtk_window_add_
+@@ -13390,8 +13390,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -24966,7 +25392,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_deiconify(handle);
-@@ -13165,8 +13165,8 @@ public static final void gtk_window_deic
+@@ -13400,8 +13400,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -24977,7 +25403,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_focus(window);
-@@ -13178,8 +13178,8 @@ public static final int /*long*/ gtk_win
+@@ -13413,8 +13413,8 @@
   * @method flags=dynamic
   * @param window cast=(GtkWindow *)
   */
@@ -24988,7 +25414,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_group(window);
-@@ -13188,8 +13188,8 @@ public static final int /*long*/ gtk_win
+@@ -13423,8 +13423,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -24999,7 +25425,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_icon_list(window);
-@@ -13198,8 +13198,8 @@ public static final int /*long*/ gtk_win
+@@ -13433,8 +13433,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -25010,7 +25436,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_modal(window);
-@@ -13208,8 +13208,8 @@ public static final boolean gtk_window_g
+@@ -13443,8 +13443,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -25021,7 +25447,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_mnemonic_modifier(window);
-@@ -13221,8 +13221,8 @@ public static final int gtk_window_get_m
+@@ -13456,8 +13456,8 @@
   * @method flags=dynamic
   * @param window cast=(GtkWindow *)
   */
@@ -25032,7 +25458,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_get_opacity (window);
-@@ -13235,8 +13235,8 @@ public static final double gtk_window_ge
+@@ -13470,8 +13470,8 @@
   * @param x cast=(gint *)
   * @param y cast=(gint *)
   */
@@ -25043,7 +25469,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_get_position(handle, x, y);
-@@ -13249,8 +13249,8 @@ public static final void gtk_window_get_
+@@ -13484,8 +13484,8 @@
   * @param x cast=(gint *)
   * @param y cast=(gint *)
   */
@@ -25054,7 +25480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_get_size(handle, x, y);
-@@ -13262,8 +13262,8 @@ public static final void gtk_window_get_
+@@ -13497,8 +13497,8 @@
   * @param group cast=(GtkWindowGroup*)
   * @param window cast=(GtkWindow*)
   */
@@ -25065,7 +25491,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_group_add_window(group, window);
-@@ -13275,8 +13275,8 @@ public static final void gtk_window_grou
+@@ -13510,8 +13510,8 @@
   * @param group cast=(GtkWindowGroup*)
   * @param window cast=(GtkWindow*)
   */
@@ -25076,7 +25502,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_group_remove_window(group, window);
-@@ -13284,8 +13284,8 @@ public static final void gtk_window_grou
+@@ -13519,8 +13519,8 @@
  		lock.unlock();
  	}
  }
@@ -25087,7 +25513,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_group_new();
-@@ -13294,8 +13294,8 @@ public static final int /*long*/ gtk_win
+@@ -13529,8 +13529,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25098,7 +25524,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_is_active(handle);
-@@ -13304,8 +13304,8 @@ public static final boolean gtk_window_i
+@@ -13539,8 +13539,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25109,7 +25535,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_iconify(handle);
-@@ -13313,8 +13313,8 @@ public static final void gtk_window_icon
+@@ -13548,8 +13548,8 @@
  		lock.unlock();
  	}
  }
@@ -25120,7 +25546,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_list_toplevels ();
-@@ -13323,8 +13323,8 @@ public static final int /*long*/ gtk_win
+@@ -13558,8 +13558,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25131,7 +25557,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_maximize(handle);
-@@ -13333,8 +13333,8 @@ public static final void gtk_window_maxi
+@@ -13568,8 +13568,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25142,7 +25568,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_fullscreen(handle);
-@@ -13343,8 +13343,8 @@ public static final void gtk_window_full
+@@ -13578,8 +13578,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25153,7 +25579,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_unfullscreen(handle);
-@@ -13357,8 +13357,8 @@ public static final void gtk_window_unfu
+@@ -13592,8 +13592,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -25164,7 +25590,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_move(handle, x, y);
-@@ -13367,8 +13367,8 @@ public static final void gtk_window_move
+@@ -13602,8 +13602,8 @@
  	}
  }
  /** @param type cast=(GtkWindowType) */
@@ -25175,7 +25601,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _gtk_window_new(type);
-@@ -13377,8 +13377,8 @@ public static final int /*long*/ gtk_win
+@@ -13612,8 +13612,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -25186,7 +25612,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_present(window);
-@@ -13390,8 +13390,8 @@ public static final void gtk_window_pres
+@@ -13625,8 +13625,8 @@
   * @param window cast=(GtkWindow *)
   * @param accel_group cast=(GtkAccelGroup *)
   */
@@ -25197,7 +25623,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_remove_accel_group(window, accel_group);
-@@ -13404,8 +13404,8 @@ public static final void gtk_window_remo
+@@ -13639,8 +13639,8 @@
   * @param x cast=(gint)
   * @param y cast=(gint)
   */
@@ -25208,7 +25634,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_resize(handle, x, y);
-@@ -13417,8 +13417,8 @@ public static final void gtk_window_resi
+@@ -13652,8 +13652,8 @@
   * @param window cast=(GtkWindow *)
   * @param widget cast=(GtkWidget *)
   */
@@ -25219,7 +25645,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_default(window, widget);
-@@ -13430,8 +13430,8 @@ public static final void gtk_window_set_
+@@ -13665,8 +13665,8 @@
   * @param window cast=(GtkWindow *)
   * @param setting cast=(gboolean)
   */
@@ -25230,7 +25656,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_destroy_with_parent(window, setting);
-@@ -13444,8 +13444,8 @@ public static final void gtk_window_set_
+@@ -13679,8 +13679,8 @@
   * @param window cast=(GtkWindow *)
   * @param setting cast=(gboolean)
   */
@@ -25241,7 +25667,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_keep_below(window, setting);
-@@ -13458,8 +13458,8 @@ public static final void gtk_window_set_
+@@ -13693,8 +13693,8 @@
   * @param geometry_widget cast=(GtkWidget *)
   * @param geometry flags=no_out
   */
@@ -25252,7 +25678,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_geometry_hints(window, geometry_widget, geometry, geom_mask);
-@@ -13471,8 +13471,8 @@ public static final void gtk_window_set_
+@@ -13706,8 +13706,8 @@
   * @param window cast=(GtkWindow *)
   * @param list cast=(GList *)
   */
@@ -25263,7 +25689,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_icon_list(window, list);
-@@ -13484,8 +13484,8 @@ public static final void gtk_window_set_
+@@ -13719,8 +13719,8 @@
   * @param window cast=(GtkWindow *)
   * @param modal cast=(gboolean)
   */
@@ -25274,7 +25700,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_modal(window, modal);
-@@ -13497,8 +13497,8 @@ public static final void gtk_window_set_
+@@ -13732,8 +13732,8 @@
   * @method flags=dynamic
   * @param window cast=(GtkWindow *)
   */
@@ -25285,7 +25711,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		 _gtk_window_set_opacity(window, opacity);
-@@ -13511,8 +13511,8 @@ public static final void gtk_window_set_
+@@ -13746,8 +13746,8 @@
   * @param widget cast=(GtkWidget *)
   * @param tip_text cast=(const gchar *)
   */
@@ -25296,7 +25722,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_tooltip_text(widget, tip_text);
-@@ -13524,8 +13524,8 @@ public static final void gtk_widget_set_
+@@ -13759,8 +13759,8 @@
   * @param widget cast=(GtkWidget *)
   * @param parent_window cast=(GdkWindow *)
   */
@@ -25307,7 +25733,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_widget_set_parent_window(widget, parent_window);
-@@ -13537,8 +13537,8 @@ public static final void gtk_widget_set_
+@@ -13772,8 +13772,8 @@
   * @param window cast=(GtkWindow *)
   * @param resizable cast=(gboolean)
   */
@@ -25318,7 +25744,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_resizable(window, resizable);
-@@ -13550,8 +13550,8 @@ public static final void gtk_window_set_
+@@ -13785,8 +13785,8 @@
   * @param window cast=(GtkWindow *)
   * @param title cast=(const gchar *)
   */
@@ -25329,7 +25755,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_title(window, title);
-@@ -13564,8 +13564,8 @@ public static final void gtk_window_set_
+@@ -13799,8 +13799,8 @@
   * @param window cast=(GtkWindow *)
   * @param skips_taskbar cast=(gboolean)
   */
@@ -25340,7 +25766,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_skip_taskbar_hint(window, skips_taskbar);
-@@ -13574,8 +13574,8 @@ public static final void gtk_window_set_
+@@ -13809,8 +13809,8 @@
  	}
  }
  /** @param window cast=(GtkWindow *) */
@@ -25351,7 +25777,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_type_hint(window, hint);
-@@ -13587,8 +13587,8 @@ public static final void gtk_window_set_
+@@ -13822,8 +13822,8 @@
   * @param window cast=(GtkWindow *)
   * @param parent cast=(GtkWindow *)
   */
@@ -25362,7 +25788,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_set_transient_for(window, parent);
-@@ -13597,8 +13597,8 @@ public static final void gtk_window_set_
+@@ -13832,8 +13832,8 @@
  	}
  }
  /** @param handle cast=(GtkWindow *) */
@@ -25373,7 +25799,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_gtk_window_unmaximize(handle);
-@@ -13611,261 +13611,261 @@ public static final void gtk_window_unma
+@@ -13846,261 +13846,261 @@
   * @param src cast=(const void *),flags=no_out
   * @param size cast=(size_t)
   */
@@ -25685,7 +26111,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_background_new(red, green, blue);
-@@ -13874,8 +13874,8 @@ public static final int /*long*/ pango_a
+@@ -14109,8 +14109,8 @@
  	}
  }
  /** @param desc cast=(const PangoFontDescription *) */
@@ -25696,7 +26122,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_font_desc_new(desc);
-@@ -13883,8 +13883,8 @@ public static final int /*long*/ pango_a
+@@ -14118,8 +14118,8 @@
  		lock.unlock();
  	}
  }
@@ -25707,7 +26133,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_foreground_new(red, green, blue);
-@@ -13892,8 +13892,8 @@ public static final int /*long*/ pango_a
+@@ -14127,8 +14127,8 @@
  		lock.unlock();
  	}
  }
@@ -25718,7 +26144,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_rise_new(rise);
-@@ -13905,8 +13905,8 @@ public static final int /*long*/ pango_a
+@@ -14140,8 +14140,8 @@
   * @param ink_rect flags=no_out
   * @param logical_rect flags=no_out
   */
@@ -25729,7 +26155,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_shape_new(ink_rect, logical_rect);
-@@ -13918,8 +13918,8 @@ public static final int /*long*/ pango_a
+@@ -14153,8 +14153,8 @@
   * @param list cast=(PangoAttrList *)
   * @param attr cast=(PangoAttribute *)
   */
@@ -25740,7 +26166,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_attr_list_insert(list, attr);
-@@ -13931,8 +13931,8 @@ public static final void pango_attr_list
+@@ -14166,8 +14166,8 @@
   * @param list cast=(PangoAttrList *)
   * @param attr cast=(PangoAttribute *)
   */
@@ -25751,7 +26177,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_attr_list_change(list, attr);
-@@ -13941,8 +13941,8 @@ public static final void pango_attr_list
+@@ -14176,8 +14176,8 @@
  	}
  }
  /** @param list cast=(PangoAttrList *) */
@@ -25762,7 +26188,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_list_get_iterator(list);
-@@ -13951,8 +13951,8 @@ public static final int /*long*/ pango_a
+@@ -14186,8 +14186,8 @@
  	}
  }
  /** @param iterator cast=(PangoAttrIterator *) */
@@ -25773,7 +26199,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_iterator_next(iterator);
-@@ -13961,8 +13961,8 @@ public static final boolean pango_attr_i
+@@ -14196,8 +14196,8 @@
  	}
  }
  /** @param iterator cast=(PangoAttrIterator *) */
@@ -25784,7 +26210,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_attr_iterator_range(iterator, start, end);
-@@ -13974,8 +13974,8 @@ public static final void pango_attr_iter
+@@ -14209,8 +14209,8 @@
   * @param iterator cast=(PangoAttrIterator *)
   * @param type cast=(PangoAttrType)
   */
@@ -25795,7 +26221,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_iterator_get(iterator, type);
-@@ -13984,8 +13984,8 @@ public static final int /*long*/ pango_a
+@@ -14219,8 +14219,8 @@
  	}
  }
  /** @param iterator cast=(PangoAttrIterator *) */
@@ -25806,7 +26232,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_iterator_get_attrs(iterator);
-@@ -13995,8 +13995,8 @@ public static final int /*long*/ pango_a
+@@ -14230,8 +14230,8 @@
  }
  
  /** @param iterator cast=(PangoAttrIterator *) */
@@ -25817,7 +26243,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_attr_iterator_destroy(iterator);
-@@ -14004,8 +14004,8 @@ public static final void pango_attr_iter
+@@ -14239,8 +14239,8 @@
  		lock.unlock();
  	}
  }
@@ -25828,7 +26254,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_list_new();
-@@ -14014,8 +14014,8 @@ public static final int /*long*/ pango_a
+@@ -14249,8 +14249,8 @@
  	}
  }
  /** @param list cast=(PangoAttrList *) */
@@ -25839,7 +26265,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_attr_list_unref(list);
-@@ -14024,8 +14024,8 @@ public static final void pango_attr_list
+@@ -14259,8 +14259,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25850,7 +26276,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_strikethrough_color_new(red, green, blue);
-@@ -14033,8 +14033,8 @@ public static final int /*long*/ pango_a
+@@ -14268,8 +14268,8 @@
  		lock.unlock();
  	}
  }
@@ -25861,7 +26287,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_strikethrough_new(strikethrough);
-@@ -14043,8 +14043,8 @@ public static final int /*long*/ pango_a
+@@ -14278,8 +14278,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25872,7 +26298,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_underline_color_new(red, green, blue);
-@@ -14052,8 +14052,8 @@ public static final int /*long*/ pango_a
+@@ -14287,8 +14287,8 @@
  		lock.unlock();
  	}
  }
@@ -25883,7 +26309,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_underline_new(underline);
-@@ -14061,8 +14061,8 @@ public static final int /*long*/ pango_a
+@@ -14296,8 +14296,8 @@
  		lock.unlock();
  	}
  }
@@ -25894,7 +26320,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_attr_weight_new(weight);
-@@ -14071,8 +14071,8 @@ public static final int /*long*/ pango_a
+@@ -14306,8 +14306,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25905,7 +26331,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_cairo_font_map_get_default();
-@@ -14081,8 +14081,8 @@ public static final int /*long*/ pango_c
+@@ -14316,8 +14316,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25916,7 +26342,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_cairo_font_map_new();
-@@ -14091,8 +14091,8 @@ public static final int /*long*/ pango_c
+@@ -14326,8 +14326,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25927,7 +26353,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_cairo_font_map_create_context(fontmap);
-@@ -14101,8 +14101,8 @@ public static final int /*long*/ pango_c
+@@ -14336,8 +14336,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25938,7 +26364,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_cairo_create_layout(cairo);
-@@ -14114,8 +14114,8 @@ public static final int /*long*/ pango_c
+@@ -14349,8 +14349,8 @@
   * @method flags=dynamic
   * @param context cast=(PangoContext *)
   */
@@ -25949,7 +26375,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_cairo_context_get_font_options(context);
-@@ -14127,8 +14127,8 @@ public static final int /*long*/ pango_c
+@@ -14362,8 +14362,8 @@
   * @method flags=dynamic
   * @param context cast=(PangoContext *)
   */
@@ -25960,7 +26386,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_cairo_context_set_font_options(context, options);
-@@ -14137,8 +14137,8 @@ public static final void pango_cairo_con
+@@ -14372,8 +14372,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25971,7 +26397,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_cairo_font_map_set_resolution(fontmap, dpi);
-@@ -14147,8 +14147,8 @@ public static final void pango_cairo_fon
+@@ -14382,8 +14382,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25982,7 +26408,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_cairo_layout_path(cairo, layout);
-@@ -14157,8 +14157,8 @@ public static final void pango_cairo_lay
+@@ -14392,8 +14392,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -25993,7 +26419,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_cairo_show_layout(cairo, layout);
-@@ -14167,8 +14167,8 @@ public static final void pango_cairo_sho
+@@ -14402,8 +14402,8 @@
  	}
  }
  /** @param context cast=(PangoContext *) */
@@ -26004,7 +26430,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_context_get_base_dir(context);
-@@ -14177,8 +14177,8 @@ public static final int pango_context_ge
+@@ -14412,8 +14412,8 @@
  	}
  }
  /** @param context cast=(PangoContext *) */
@@ -26015,7 +26441,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_context_get_language(context);
-@@ -14191,8 +14191,8 @@ public static final int /*long*/ pango_c
+@@ -14426,8 +14426,8 @@
   * @param desc cast=(const PangoFontDescription *)
   * @param language cast=(PangoLanguage *)
   */
@@ -26026,7 +26452,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_context_get_metrics(context, desc, language);
-@@ -14205,8 +14205,8 @@ public static final int /*long*/ pango_c
+@@ -14440,8 +14440,8 @@
   * @param families cast=(PangoFontFamily ***)
   * @param n_families cast=(int *)
   */
@@ -26037,7 +26463,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_context_list_families(context, families, n_families);
-@@ -14215,8 +14215,8 @@ public static final void pango_context_l
+@@ -14450,8 +14450,8 @@
  	}
  }
  /** @param context cast=(PangoContext *) */
@@ -26048,7 +26474,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_context_set_base_dir(context, direction);
-@@ -14228,8 +14228,8 @@ public static final void pango_context_s
+@@ -14463,8 +14463,8 @@
   * @param context cast=(PangoContext *)
   * @param language cast=(PangoLanguage *)
   */
@@ -26059,7 +26485,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_context_set_language(context, language);
-@@ -14238,8 +14238,8 @@ public static final void pango_context_s
+@@ -14473,8 +14473,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26070,7 +26496,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_copy(desc);
-@@ -14248,8 +14248,8 @@ public static final int /*long*/ pango_f
+@@ -14483,8 +14483,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26081,7 +26507,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_free(desc);
-@@ -14258,8 +14258,8 @@ public static final void pango_font_desc
+@@ -14493,8 +14493,8 @@
  	}
  }
  /** @param str cast=(const char *),flags=no_out critical */
@@ -26092,7 +26518,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_from_string(str);
-@@ -14268,8 +14268,8 @@ public static final int /*long*/ pango_f
+@@ -14503,8 +14503,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26103,7 +26529,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_family(desc);
-@@ -14278,8 +14278,8 @@ public static final int /*long*/ pango_f
+@@ -14513,8 +14513,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26114,7 +26540,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_size(desc);
-@@ -14288,8 +14288,8 @@ public static final int pango_font_descr
+@@ -14523,8 +14523,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26125,7 +26551,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_stretch(desc);
-@@ -14298,8 +14298,8 @@ public static final int pango_font_descr
+@@ -14533,8 +14533,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26136,7 +26562,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_variant(desc);
-@@ -14308,8 +14308,8 @@ public static final int pango_font_descr
+@@ -14543,8 +14543,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26147,7 +26573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_style(desc);
-@@ -14318,8 +14318,8 @@ public static final int pango_font_descr
+@@ -14553,8 +14553,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26158,7 +26584,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_get_weight(desc);
-@@ -14327,8 +14327,8 @@ public static final int pango_font_descr
+@@ -14562,8 +14562,8 @@
  		lock.unlock();
  	}
  }
@@ -26169,7 +26595,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_new();
-@@ -14340,8 +14340,8 @@ public static final int /*long*/ pango_f
+@@ -14575,8 +14575,8 @@
   * @param desc cast=(PangoFontDescription *)
   * @param family cast=(const char *),flags=no_out critical
   */
@@ -26180,7 +26606,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_set_family(desc, family);
-@@ -14353,8 +14353,8 @@ public static final void pango_font_desc
+@@ -14588,8 +14588,8 @@
   * @param desc cast=(PangoFontDescription *)
   * @param size cast=(gint)
   */
@@ -26191,7 +26617,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_set_size(desc, size);
-@@ -14366,8 +14366,8 @@ public static final void pango_font_desc
+@@ -14601,8 +14601,8 @@
   * @param desc cast=(PangoFontDescription *)
   * @param stretch cast=(PangoStretch)
   */
@@ -26202,7 +26628,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_set_stretch(desc, stretch);
-@@ -14379,8 +14379,8 @@ public static final void pango_font_desc
+@@ -14614,8 +14614,8 @@
   * @param desc cast=(PangoFontDescription *)
   * @param weight cast=(PangoStyle)
   */
@@ -26213,7 +26639,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_set_style(desc, weight);
-@@ -14392,8 +14392,8 @@ public static final void pango_font_desc
+@@ -14627,8 +14627,8 @@
   * @param desc cast=(PangoFontDescription *)
   * @param weight cast=(PangoWeight)
   */
@@ -26224,7 +26650,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_description_set_weight(desc, weight);
-@@ -14402,8 +14402,8 @@ public static final void pango_font_desc
+@@ -14640,8 +14640,8 @@
+  * @param desc cast=(PangoFontDescription *)
+  * @param variant cast=(PangoVariant)
+  */
+-public static final native void _pango_font_description_set_variant(int /*long*/ desc, int variant);
+-public static final void pango_font_description_set_variant(int /*long*/ desc, int variant) {
++public static final native void _pango_font_description_set_variant(long /*int*/ desc, int variant);
++public static final void pango_font_description_set_variant(long /*int*/ desc, int variant) {
+ 	lock.lock();
+ 	try {
+ 		_pango_font_description_set_variant(desc, variant);
+@@ -14650,8 +14650,8 @@
  	}
  }
  /** @param desc cast=(PangoFontDescription *) */
@@ -26235,7 +26672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_description_to_string(desc);
-@@ -14412,8 +14412,8 @@ public static final int /*long*/ pango_f
+@@ -14660,8 +14660,8 @@
  	}
  }
  /** @param face cast=(PangoFontFace *) */
@@ -26246,7 +26683,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_face_describe(face);
-@@ -14422,8 +14422,8 @@ public static final int /*long*/ pango_f
+@@ -14670,8 +14670,8 @@
  	}
  }
  /** @param family cast=(PangoFontFamily *) */
@@ -26257,7 +26694,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_family_get_name(family);
-@@ -14436,8 +14436,8 @@ public static final int /*long*/ pango_f
+@@ -14684,8 +14684,8 @@
   * @param faces cast=(PangoFontFace ***)
   * @param n_faces cast=(int *)
   */
@@ -26268,7 +26705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_family_list_faces(family, faces, n_faces);
-@@ -14449,8 +14449,8 @@ public static final void pango_font_fami
+@@ -14697,8 +14697,8 @@
   * @param font cast=(PangoFont *)
   * @param language cast=(PangoLanguage *)
   */
@@ -26279,7 +26716,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_get_metrics(font, language);
-@@ -14459,8 +14459,8 @@ public static final int /*long*/ pango_f
+@@ -14707,8 +14707,8 @@
  	}
  }
  /** @param metrics cast=(PangoFontMetrics *) */
@@ -26290,7 +26727,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_approximate_char_width(metrics);
-@@ -14469,8 +14469,8 @@ public static final int pango_font_metri
+@@ -14717,8 +14717,8 @@
  	}
  }
  /** @param metrics cast=(PangoFontMetrics *) */
@@ -26301,7 +26738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_ascent(metrics);
-@@ -14479,8 +14479,8 @@ public static final int pango_font_metri
+@@ -14727,8 +14727,8 @@
  	}
  }
  /** @param metrics cast=(PangoFontMetrics *) */
@@ -26312,7 +26749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_descent(metrics);
-@@ -14489,8 +14489,8 @@ public static final int pango_font_metri
+@@ -14737,8 +14737,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -26323,7 +26760,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_underline_thickness(metrics);
-@@ -14499,8 +14499,8 @@ public static final int pango_font_metri
+@@ -14747,8 +14747,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -26334,7 +26771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_underline_position(metrics);
-@@ -14509,8 +14509,8 @@ public static final int pango_font_metri
+@@ -14757,8 +14757,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -26345,7 +26782,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_strikethrough_thickness(metrics);
-@@ -14519,8 +14519,8 @@ public static final int pango_font_metri
+@@ -14767,8 +14767,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -26356,7 +26793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_font_metrics_get_strikethrough_position(metrics);
-@@ -14529,8 +14529,8 @@ public static final int pango_font_metri
+@@ -14777,8 +14777,8 @@
  	}
  }
  /** @param metrics cast=(PangoFontMetrics *) */
@@ -26367,7 +26804,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_font_metrics_unref(metrics);
-@@ -14539,8 +14539,8 @@ public static final void pango_font_metr
+@@ -14787,8 +14787,8 @@
  	}
  }
  /** @param language cast=(const char *),flags=no_out */
@@ -26378,7 +26815,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_language_from_string(language);
-@@ -14549,8 +14549,8 @@ public static final int /*long*/ pango_l
+@@ -14797,8 +14797,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26389,7 +26826,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_context_changed(layout);
-@@ -14559,8 +14559,8 @@ public static final void pango_layout_co
+@@ -14807,8 +14807,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26400,7 +26837,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_alignment(layout);
-@@ -14569,8 +14569,8 @@ public static final int pango_layout_get
+@@ -14817,8 +14817,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26411,7 +26848,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_context(layout);
-@@ -14579,8 +14579,8 @@ public static final int /*long*/ pango_l
+@@ -14827,8 +14827,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26422,7 +26859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_attributes(layout);
-@@ -14589,8 +14589,8 @@ public static final int /*long*/ pango_l
+@@ -14837,8 +14837,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26433,7 +26870,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_indent(layout);
-@@ -14599,8 +14599,8 @@ public static final int pango_layout_get
+@@ -14847,8 +14847,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26444,7 +26881,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_iter(layout);
-@@ -14609,8 +14609,8 @@ public static final int /*long*/ pango_l
+@@ -14857,8 +14857,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26455,7 +26892,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_justify(layout);
-@@ -14619,8 +14619,8 @@ public static final boolean pango_layout
+@@ -14867,8 +14867,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26466,7 +26903,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_line(layout, line);
-@@ -14629,8 +14629,8 @@ public static final int /*long*/ pango_l
+@@ -14877,8 +14877,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26477,7 +26914,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_line_count(layout);
-@@ -14643,8 +14643,8 @@ public static final int pango_layout_get
+@@ -14891,8 +14891,8 @@
   * @param attrs cast=(PangoLogAttr **)
   * @param n_attrs cast=(int *)
   */
@@ -26488,7 +26925,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_get_log_attrs(layout, attrs, n_attrs);
-@@ -14657,8 +14657,8 @@ public static final void pango_layout_ge
+@@ -14905,8 +14905,8 @@
   * @param width cast=(int *)
   * @param height cast=(int *)
   */
@@ -26499,7 +26936,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_get_size(layout, width, height);
-@@ -14667,8 +14667,8 @@ public static final void pango_layout_ge
+@@ -14915,8 +14915,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26510,7 +26947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_spacing(layout);
-@@ -14677,8 +14677,8 @@ public static final int pango_layout_get
+@@ -14925,8 +14925,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26521,7 +26958,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_tabs(layout);
-@@ -14687,8 +14687,8 @@ public static final int /*long*/ pango_l
+@@ -14935,8 +14935,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26532,7 +26969,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_text(layout);
-@@ -14697,8 +14697,8 @@ public static final int /*long*/ pango_l
+@@ -14945,8 +14945,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26543,7 +26980,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_get_width(layout);
-@@ -14710,8 +14710,8 @@ public static final int pango_layout_get
+@@ -14958,8 +14958,8 @@
   * @param layout cast=(PangoLayout*)
   * @param pos flags=no_in
   */
@@ -26554,7 +26991,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_index_to_pos(layout, index, pos);
-@@ -14720,8 +14720,8 @@ public static final void pango_layout_in
+@@ -14968,8 +14968,8 @@
  	}
  }
  /** @param iter cast=(PangoLayoutIter*) */
@@ -26565,7 +27002,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_iter_free(iter);
-@@ -14734,8 +14734,8 @@ public static final void pango_layout_it
+@@ -14982,8 +14982,8 @@
   * @param ink_rect flags=no_in
   * @param logical_rect flags=no_in
   */
@@ -26576,7 +27013,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_iter_get_line_extents(iter, ink_rect, logical_rect);
-@@ -14744,8 +14744,8 @@ public static final void pango_layout_it
+@@ -14992,8 +14992,8 @@
  	}
  }
  /** @param iter cast=(PangoLayoutIter*) */
@@ -26587,7 +27024,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_iter_get_index(iter);
-@@ -14754,8 +14754,8 @@ public static final int pango_layout_ite
+@@ -15002,8 +15002,8 @@
  	}
  }
  /** @param iter cast=(PangoLayoutIter*) */
@@ -26598,7 +27035,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_iter_get_run(iter);
-@@ -14764,8 +14764,8 @@ public static final int /*long*/ pango_l
+@@ -15012,8 +15012,8 @@
  	}
  }
  /** @param iter cast=(PangoLayoutIter*) */
@@ -26609,7 +27046,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_iter_next_line(iter);
-@@ -14774,8 +14774,8 @@ public static final boolean pango_layout
+@@ -15022,8 +15022,8 @@
  	}
  }
  /** @param iter cast=(PangoLayoutIter*) */
@@ -26620,7 +27057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_iter_next_run(iter);
-@@ -14788,8 +14788,8 @@ public static final boolean pango_layout
+@@ -15036,8 +15036,8 @@
   * @param ink_rect cast=(PangoRectangle *),flags=no_in
   * @param logical_rect cast=(PangoRectangle *),flags=no_in
   */
@@ -26631,7 +27068,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_line_get_extents(line, ink_rect, logical_rect);
-@@ -14802,8 +14802,8 @@ public static final void pango_layout_li
+@@ -15050,8 +15050,8 @@
   * @param index_ cast=(int *)
   * @param trailing cast=(int *)
   */
@@ -26642,7 +27079,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_line_x_to_index(line, x_pos, index_, trailing);
-@@ -14812,8 +14812,8 @@ public static final boolean pango_layout
+@@ -15060,8 +15060,8 @@
  	}
  }
  /** @param context cast=(PangoContext *) */
@@ -26653,7 +27090,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_new(context);
-@@ -14822,8 +14822,8 @@ public static final int /*long*/ pango_l
+@@ -15070,8 +15070,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26664,7 +27101,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_alignment(layout, alignment);
-@@ -14835,8 +14835,8 @@ public static final void pango_layout_se
+@@ -15083,8 +15083,8 @@
   * @param layout cast=(PangoLayout *)
   * @param attrs cast=(PangoAttrList *)
   */
@@ -26675,7 +27112,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_attributes(layout, attrs);
-@@ -14845,8 +14845,8 @@ public static final void pango_layout_se
+@@ -15093,8 +15093,8 @@
  	}
  }
  /** @method flags=dynamic */
@@ -26686,7 +27123,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_auto_dir(layout, auto_dir);
-@@ -14858,8 +14858,8 @@ public static final void pango_layout_se
+@@ -15106,8 +15106,8 @@
   * @param context cast=(PangoLayout *)
   * @param descr cast=(PangoFontDescription *)
   */
@@ -26697,7 +27134,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_font_description(context, descr);
-@@ -14868,8 +14868,8 @@ public static final void pango_layout_se
+@@ -15116,8 +15116,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26708,7 +27145,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_indent(layout, indent);
-@@ -14878,8 +14878,8 @@ public static final void pango_layout_se
+@@ -15126,8 +15126,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout*) */
@@ -26719,7 +27156,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_justify(layout, justify);
-@@ -14891,8 +14891,8 @@ public static final void pango_layout_se
+@@ -15139,8 +15139,8 @@
   * @param context cast=(PangoLayout *)
   * @param setting cast=(gboolean)
   */
@@ -26730,7 +27167,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_single_paragraph_mode(context, setting);
-@@ -14901,8 +14901,8 @@ public static final void pango_layout_se
+@@ -15149,8 +15149,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26741,7 +27178,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_spacing(layout, spacing);
-@@ -14914,8 +14914,8 @@ public static final void pango_layout_se
+@@ -15162,8 +15162,8 @@
   * @param layout cast=(PangoLayout *)
   * @param tabs cast=(PangoTabArray *)
   */
@@ -26752,7 +27189,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_tabs(layout, tabs);
-@@ -14928,8 +14928,8 @@ public static final void pango_layout_se
+@@ -15176,8 +15176,8 @@
   * @param text cast=(const char *),flags=no_out critical
   * @param length cast=(int)
   */
@@ -26763,7 +27200,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_text(layout, text, length);
-@@ -14938,8 +14938,8 @@ public static final void pango_layout_se
+@@ -15186,8 +15186,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26774,7 +27211,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_width(layout, width);
-@@ -14948,8 +14948,8 @@ public static final void pango_layout_se
+@@ -15196,8 +15196,8 @@
  	}
  }
  /** @param layout cast=(PangoLayout *) */
@@ -26785,7 +27222,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_layout_set_wrap(layout, wrap);
-@@ -14962,8 +14962,8 @@ public static final void pango_layout_se
+@@ -15210,8 +15210,8 @@
   * @param index cast=(int *)
   * @param trailing cast=(int *)
   */
@@ -26796,7 +27233,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_layout_xy_to_index(layout, x, y, index, trailing);
-@@ -14972,8 +14972,8 @@ public static final boolean pango_layout
+@@ -15220,8 +15220,8 @@
  	}
  }
  /** @param tab_array cast=(PangoTabArray *) */
@@ -26807,7 +27244,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_tab_array_get_size(tab_array);
-@@ -14986,8 +14986,8 @@ public static final int pango_tab_array_
+@@ -15234,8 +15234,8 @@
   * @param alignments cast=(PangoTabAlign **)
   * @param locations cast=(int **)
   */
@@ -26818,7 +27255,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_tab_array_get_tabs(tab_array, alignments, locations);
-@@ -14996,8 +14996,8 @@ public static final void pango_tab_array
+@@ -15244,8 +15244,8 @@
  	}
  }
  /** @param tab_array cast=(PangoTabArray *) */
@@ -26829,7 +27266,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_tab_array_free(tab_array);
-@@ -15009,8 +15009,8 @@ public static final void pango_tab_array
+@@ -15257,8 +15257,8 @@
   * @param initial_size cast=(gint)
   * @param positions_in_pixels cast=(gboolean)
   */
@@ -26840,7 +27277,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _pango_tab_array_new(initial_size, positions_in_pixels);
-@@ -15024,8 +15024,8 @@ public static final int /*long*/ pango_t
+@@ -15272,8 +15272,8 @@
   * @param alignment cast=(PangoTabAlign)
   * @param location cast=(gint)
   */
@@ -26851,7 +27288,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		_pango_tab_array_set_tab(tab_array, tab_index, alignment, location);
-@@ -15039,8 +15039,8 @@ public static final void pango_tab_array
+@@ -15287,8 +15287,8 @@
   * @param relationship cast=(AtkRelationType)
   * @param target cast=(AtkObject *)
   */
@@ -26862,7 +27299,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _atk_object_add_relationship(object, relationship, target);
-@@ -15054,8 +15054,8 @@ public static final boolean atk_object_a
+@@ -15302,8 +15302,8 @@
   * @param relationship cast=(AtkRelationType)
   * @param target cast=(AtkObject *)
   */
@@ -26873,10 +27310,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/OS.java swt-gtk-3.6.
  	lock.lock();
  	try {
  		return _atk_object_remove_relationship(object, relationship, target);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoAttribute.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoAttribute.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoAttribute.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoAttribute.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoAttribute.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoAttribute.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoAttribute.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoAttribute.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  
  public class PangoAttribute {
  	/** @field cast=(const PangoAttrClass *) */
@@ -26885,10 +27322,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoAttribute.java
  	public int start_index;
  	public int end_index;
  	public static final int sizeof = OS.PangoAttribute_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoItem.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoItem.java	2011-03-21 11:34:23.345733664 +0000
-@@ -19,16 +19,16 @@ public class PangoItem {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoItem.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -19,16 +19,16 @@
  	public int length;
  	public int num_chars;
  	/** @field accessor=analysis.shape_engine,cast=(PangoEngineShape *) */
@@ -26910,10 +27347,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoItem.java swt-g
 +	public long /*int*/ analysis_extra_attrs;
  	public static final int sizeof = OS.PangoItem_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutLine.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoLayoutLine.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutLine.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoLayoutLine.java	2011-03-21 11:34:23.345733664 +0000
-@@ -16,11 +16,11 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoLayoutLine.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoLayoutLine.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoLayoutLine.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoLayoutLine.java	2011-06-13 20:53:32.000000000 +0000
+@@ -16,11 +16,11 @@
  
  public class PangoLayoutLine {
  	/** @field cast=(PangoLayout *) */
@@ -26927,10 +27364,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutLine.java
  //	public boolean is_paragraph_start;
  //	public byte resolved_dir;
  	public static final int sizeof = OS.PangoLayoutLine_sizeof();
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutRun.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoLayoutRun.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutRun.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/PangoLayoutRun.java	2011-03-21 11:34:23.335733804 +0000
-@@ -16,8 +16,8 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoLayoutRun.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoLayoutRun.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/PangoLayoutRun.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/PangoLayoutRun.java	2011-06-13 20:53:32.000000000 +0000
+@@ -16,8 +16,8 @@
  
  public class PangoLayoutRun {
  	/** @field cast=(PangoItem *) */
@@ -26941,10 +27378,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/PangoLayoutRun.java
 +	public long /*int*/ glyphs;
  	public static final int sizeof = OS.PangoLayoutRun_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XAnyEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XAnyEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XAnyEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XAnyEvent.java	2011-03-21 11:34:23.345733664 +0000
-@@ -12,11 +12,11 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XAnyEvent.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/XAnyEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XAnyEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/XAnyEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -12,11 +12,11 @@
  
   
  public abstract class XAnyEvent extends XEvent {
@@ -26959,10 +27396,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XAnyEvent.java swt-g
 +	public long /*int*/ window;
  	public static final int sizeof = OS.XAnyEvent_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XClientMessageEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XClientMessageEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XClientMessageEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XClientMessageEvent.java	2011-03-21 11:34:23.335733804 +0000
-@@ -13,16 +13,16 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XClientMessageEvent.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/XClientMessageEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XClientMessageEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/XClientMessageEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -13,16 +13,16 @@
   
  public class XClientMessageEvent {
  	public int type;
@@ -26984,10 +27421,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XClientMessageEvent.
 +	public long /*int*/[] data = new long /*int*/[5];
  	public static final int sizeof = OS.XClientMessageEvent_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XCrossingEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XCrossingEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XCrossingEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XCrossingEvent.java	2011-03-21 11:34:23.335733804 +0000
-@@ -13,9 +13,9 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XCrossingEvent.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/XCrossingEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XCrossingEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/XCrossingEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -13,9 +13,9 @@
   
  public class XCrossingEvent extends XAnyEvent {
  	/** @field cast=(Window) */
@@ -26999,10 +27436,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XCrossingEvent.java
  	/** @field cast=(Time) */
  	public int time;
  	public int x;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java	2011-03-21 11:34:23.335733804 +0000
-@@ -13,17 +13,17 @@ package org.eclipse.swt.internal.gtk;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/XRenderPictureAttributes.java	2011-06-13 20:53:32.000000000 +0000
+@@ -13,17 +13,17 @@
   
  public class XRenderPictureAttributes {
  	public boolean repeat;
@@ -27023,10 +27460,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XRenderPictureAttrib
  	public boolean component_alpha;
  	public static final int sizeof = OS.XRenderPictureAttributes_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XWindowChanges.java swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XWindowChanges.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XWindowChanges.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/gtk/XWindowChanges.java	2011-03-21 11:34:23.335733804 +0000
-@@ -17,7 +17,7 @@ public class XWindowChanges {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XWindowChanges.java swt-gtk-3.7//org/eclipse/swt/internal/gtk/XWindowChanges.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/gtk/XWindowChanges.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/gtk/XWindowChanges.java	2011-06-13 20:53:32.000000000 +0000
+@@ -17,7 +17,7 @@
  	public int width;
  	public int height;
  	public int border_width;
@@ -27035,22 +27472,22 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/gtk/XWindowChanges.java
  	public int stack_mode;
  	public static final int sizeof = OS.XWindowChanges_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Library.java swt-gtk-3.6.2/org/eclipse/swt/internal/Library.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/Library.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/Library.java	2011-03-21 11:34:23.325733931 +0000
-@@ -40,7 +40,7 @@ public class Library {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/Library.java swt-gtk-3.7//org/eclipse/swt/internal/Library.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/Library.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/Library.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,7 +40,7 @@
  	static final String DELIMITER;
  	
  	/* 64-bit support */
 -	static final boolean IS_64 = longConst() == (int /*long*/)longConst();
 +	static final boolean IS_64 = longConst() == (long /*int*/)longConst();
  	static final String SUFFIX_64 = "-64";	//$NON-NLS-1$
- 	static final String SWTDIR_32 = "swtlib-32";	//$NON-NLS-1$
- 	static final String SWTDIR_64 = "swtlib-64";	//$NON-NLS-1$
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/LONG.java swt-gtk-3.6.2/org/eclipse/swt/internal/LONG.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/LONG.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/LONG.java	2011-03-21 11:34:23.475731816 +0000
-@@ -12,9 +12,9 @@ package org.eclipse.swt.internal;
+ 	static final String SWT_LIB_DIR;
+ 
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/LONG.java swt-gtk-3.7//org/eclipse/swt/internal/LONG.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/LONG.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/LONG.java	2011-06-13 20:53:32.000000000 +0000
+@@ -12,9 +12,9 @@
  
  /** @jniclass flags=no_gen */
  public class LONG {
@@ -27062,10 +27499,24 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/LONG.java swt-gtk-3.6.2/
  		this.value = value;
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java	2011-03-21 11:34:23.445732231 +0000
-@@ -13,10 +13,10 @@ package org.eclipse.swt.internal.mozilla
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/GREProperty.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/GREProperty.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/GREProperty.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/GREProperty.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,8 +30,8 @@
+ /** @jniclass flags=cpp */
+ public class GREProperty {
+ 	/** @field cast=(const char *) */
+-	public int /*long*/ property;
++	public long /*int*/ property;
+ 	/** @field cast=(const char *) */
+-	public int /*long*/ value;
++	public long /*int*/ value;
+     public static final int sizeof = XPCOMInit.GREProperty_sizeof ();
+ }
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/GREVersionRange.java	2011-06-13 20:53:32.000000000 +0000
+@@ -30,10 +30,10 @@
  /** @jniclass flags=cpp */
  public class GREVersionRange {
      /** @field cast=(const char *) */
@@ -27078,24 +27529,24 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/init/GREVersionR
      public boolean upperInclusive;
      public static final int sizeof = XPCOMInit.GREVersionRange_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java	2011-03-21 11:34:23.445732231 +0000
-@@ -40,8 +40,8 @@ public static final native int GREVersio
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/init/XPCOMInit.java	2011-06-13 20:53:32.000000000 +0000
+@@ -41,8 +41,8 @@
   * @param properties cast=(const GREProperty *)
   * @param buffer cast=(char *)
   */
--public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen);
--public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen) {
-+public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, long /*int*/ properties, int propertiesLength, long /*int*/ buffer, int buflen);
-+public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, long /*int*/ properties, int propertiesLength, long /*int*/ buffer, int buflen) {
+-public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, int /*long*/ buffer, int buflen);
+-public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, int /*long*/ buffer, int buflen) {
++public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, long /*int*/ buffer, int buflen);
++public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, long /*int*/ buffer, int buflen) {
  	lock.lock();
  	try {
  		return _GRE_GetGREPathWithProperties(versions, versionsLength, properties, propertiesLength, buffer, buflen);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java	2011-03-21 11:34:23.455732087 +0000
-@@ -12,7 +12,7 @@ package org.eclipse.swt.internal.mozilla
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java	2011-06-13 20:53:32.000000000 +0000
+@@ -29,7 +29,7 @@
  
  public class nsDynamicFunctionLoad {
      /** @field cast=(const char *) */
@@ -27105,9 +27556,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsDynamicFunctio
 -	public int /*long*/ function;
 +	public long /*int*/ function;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsEmbedString.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsEmbedString.java	2011-03-21 11:34:23.455732087 +0000
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsEmbedString.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsEmbedString.java	2011-06-13 20:53:32.000000000 +0000
 @@ -28,7 +28,7 @@
  package org.eclipse.swt.internal.mozilla;
  
@@ -27117,7 +27568,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.ja
  	
  public nsEmbedString() {
  	handle = XPCOM.nsEmbedString_new();
-@@ -42,14 +42,14 @@ public nsEmbedString(String string) {
+@@ -42,14 +42,14 @@
  	}   
  }
  
@@ -27134,10 +27585,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsEmbedString.ja
  	char[] dest = new char[length];
  	XPCOM.memmove(dest, buffer, length * 2);
  	return new String(dest);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIAppShell.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIAppShell.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,11 +37,11 @@ public class nsIAppShell extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIAppShell.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIAppShell.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IAPPSHELL_IID =
  		new nsID(NS_IAPPSHELL_IID_STR);
  
@@ -27151,7 +27602,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), argc, argv);
  	}
  
-@@ -57,15 +57,15 @@ public class nsIAppShell extends nsISupp
+@@ -57,15 +57,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress());
  	}
  
@@ -27170,10 +27621,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAppShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aRealEvent, aEvent);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIAuthInformation.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIAuthInformation extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIAuthInformation.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IAUTHINFORMATION_IID =
  		new nsID(NS_IAUTHINFORMATION_IID_STR);
  
@@ -27182,7 +27633,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformati
  		super(address);
  	}
  
-@@ -53,35 +53,35 @@ public class nsIAuthInformation extends
+@@ -53,35 +53,35 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aFlags);
  	}
  
@@ -27226,10 +27677,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIAuthInformati
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aDomain);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,11 +37,11 @@ public class nsIBadCertListener2 extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIBadCertListener2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IBADCERTLISTENER2_IID =
  		new nsID(NS_IBADCERTLISTENER2_IID_STR);
  
@@ -27244,10 +27695,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBadCertListen
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIBaseWindow.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,11 +37,11 @@ public class nsIBaseWindow extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIBaseWindow.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IBASEWINDOW_IID =
  		new nsID(NS_IBASEWINDOW_IID_STR);
  
@@ -27261,7 +27712,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parentNativeWindow, parentWidget, x, y, cx, cy);
  	}
  
-@@ -81,19 +81,19 @@ public class nsIBaseWindow extends nsISu
+@@ -81,19 +81,19 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), force);
  	}
  
@@ -27285,7 +27736,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), aParentNativeWindow);
  	}
  
-@@ -121,7 +121,7 @@ public class nsIBaseWindow extends nsISu
+@@ -121,7 +121,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aBlurSuppression);
  	}
  
@@ -27294,7 +27745,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), aMainWidget);
  	}
  
-@@ -129,7 +129,7 @@ public class nsIBaseWindow extends nsISu
+@@ -129,7 +129,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress());
  	}
  
@@ -27303,10 +27754,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIBaseWindow.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), aTitle);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICancelable.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICancelable.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICancelable.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICancelable.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsICancelable extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICancelable.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICancelable.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICancelable.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICancelable.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ICANCELABLE_IID =
  		new nsID(NS_ICANCELABLE_IID_STR);
  
@@ -27315,10 +27766,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICancelable.ja
  		super(address);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICategoryManager.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICategoryManager.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICategoryManager.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICategoryManager.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,15 +37,15 @@ public class nsICategoryManager extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICategoryManager.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICategoryManager.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICategoryManager.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICategoryManager.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_ICATEGORYMANAGER_IID =
  		new nsID(NS_ICATEGORYMANAGER_IID_STR);
  
@@ -27337,7 +27788,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICategoryManag
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aCategory, aEntry, aValue, aPersist, aReplace, _retval);
  	}
  
-@@ -57,11 +57,11 @@ public class nsICategoryManager extends
+@@ -57,11 +57,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aCategory);
  	}
  
@@ -27351,10 +27802,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICategoryManag
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,31 +37,31 @@ public class nsICertificateDialogs exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICertificateDialogs.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,31 +37,31 @@
  	public static final nsID NS_ICERTIFICATEDIALOGS_IID =
  		new nsID(NS_ICERTIFICATEDIALOGS_IID_STR);
  
@@ -27394,10 +27845,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertificateDi
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICertOverrideService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICertOverrideService.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsICertOverrideService exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICertOverrideService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ICERTOVERRIDESERVICE_IID =
  		new nsID(NS_ICERTOVERRIDESERVICE_IID_STR);
  
@@ -27406,7 +27857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideS
  		super(address);
  	}
  
-@@ -47,27 +47,27 @@ public class nsICertOverrideService exte
+@@ -47,27 +47,27 @@
  
  	public static final int ERROR_TIME = 4;
  
@@ -27441,10 +27892,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICertOverrideS
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIChannel.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIChannel.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,55 +37,55 @@ public class nsIChannel extends nsIReque
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIChannel.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIChannel.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,55 +37,55 @@
  	public static final nsID NS_ICHANNEL_IID =
  		new nsID(NS_ICHANNEL_IID_STR);
  
@@ -27513,7 +27964,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java
  		return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 12, getAddress(), aContentCharset);
  	}
  
-@@ -97,11 +97,11 @@ public class nsIChannel extends nsIReque
+@@ -97,11 +97,11 @@
  		return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 14, getAddress(), aContentLength);
  	}
  
@@ -27527,10 +27978,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIChannel.java
  		return XPCOM.VtblCall(nsIRequest.LAST_METHOD_ID + 16, getAddress(), aListener, aContext);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIClassInfo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIClassInfo.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,27 +37,27 @@ public class nsIClassInfo extends nsISup
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIClassInfo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIClassInfo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,27 +37,27 @@
  	public static final nsID NS_ICLASSINFO_IID =
  		new nsID(NS_ICLASSINFO_IID_STR);
  
@@ -27564,7 +28015,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aClassID);
  	}
  
-@@ -85,7 +85,7 @@ public class nsIClassInfo extends nsISup
+@@ -85,7 +85,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aFlags);
  	}
  
@@ -27573,10 +28024,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIClassInfo.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aClassIDNoAlloc);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentManager.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIComponentManager.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentManager.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIComponentManager.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,23 +37,23 @@ public class nsIComponentManager extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIComponentManager.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIComponentManager.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIComponentManager.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIComponentManager.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_ICOMPONENTMANAGER_IID =
  		new nsID(NS_ICOMPONENTMANAGER_IID_STR);
  
@@ -27606,10 +28057,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentMana
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,31 +37,31 @@ public class nsIComponentRegistrar exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIComponentRegistrar.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,31 +37,31 @@
  	public static final nsID NS_ICOMPONENTREGISTRAR_IID =
  		new nsID(NS_ICOMPONENTREGISTRAR_IID_STR);
  
@@ -27648,7 +28099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegi
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aClass, aFile);
  	}
  
-@@ -73,19 +73,19 @@ public class nsIComponentRegistrar exten
+@@ -73,19 +73,19 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aContractID, _retval);
  	}
  
@@ -27672,10 +28123,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIComponentRegi
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), aContractID, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,7 +37,7 @@ public class nsIContextMenuListener exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIContextMenuListener.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ICONTEXTMENULISTENER_IID =
  		new nsID(NS_ICONTEXTMENULISTENER_IID_STR);
  
@@ -27684,7 +28135,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuLi
  		super(address);
  	}
  
-@@ -53,7 +53,7 @@ public class nsIContextMenuListener exte
+@@ -53,7 +53,7 @@
  
  	public static final int CONTEXT_INPUT = 16;
  
@@ -27694,10 +28145,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIContextMenuLi
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookie.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookie.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,15 +37,15 @@ public class nsICookie extends nsISuppor
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookie.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookie.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookie.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookie.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_ICOOKIE_IID =
  		new nsID(NS_ICOOKIE_IID_STR);
  
@@ -27716,7 +28167,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java s
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aValue);
  	}
  
-@@ -53,11 +53,11 @@ public class nsICookie extends nsISuppor
+@@ -53,11 +53,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aIsDomain);
  	}
  
@@ -27730,7 +28181,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java s
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPath);
  	}
  
-@@ -79,7 +79,7 @@ public class nsICookie extends nsISuppor
+@@ -79,7 +79,7 @@
  
  	public static final int STATUS_REJECTED = 4;
  
@@ -27739,7 +28190,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java s
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aStatus);
  	}
  
-@@ -95,7 +95,7 @@ public class nsICookie extends nsISuppor
+@@ -95,7 +95,7 @@
  
  	public static final int POLICY_NO_II = 5;
  
@@ -27748,10 +28199,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookie.java s
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPolicy);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieManager.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieManager.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieManager.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieManager.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,7 +37,7 @@ public class nsICookieManager extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieManager.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieManager.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieManager.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieManager.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ICOOKIEMANAGER_IID =
  		new nsID(NS_ICOOKIEMANAGER_IID_STR);
  
@@ -27760,7 +28211,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieManager
  		super(address);
  	}
  
-@@ -45,11 +45,11 @@ public class nsICookieManager extends ns
+@@ -45,11 +45,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
  	}
  
@@ -27774,10 +28225,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieManager
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aDomain, aName, aPath, aBlocked);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,23 +37,23 @@ public class  nsICookieService_1_9 exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieService_1_9.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_ICOOKIESERVICE_IID =
  		new nsID(NS_ICOOKIESERVICE_IID_STR);
  
@@ -27806,10 +28257,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aURI, aFirstURI, aPrompt, aCookie, aServerTime, aChannel);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsICookieService.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,23 +37,23 @@ public class nsICookieService extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsICookieService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsICookieService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_ICOOKIESERVICE_IID =
  		new nsID(NS_ICOOKIESERVICE_IID_STR);
  
@@ -27838,10 +28289,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsICookieService
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aURI, aFirstURI, aPrompt, aCookie, aServerTime, aChannel);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDataType.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDataType.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDataType.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDataType.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,7 +37,7 @@ public class nsIDataType extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDataType.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDataType.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDataType.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDataType.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDATATYPE_IID =
  		new nsID(NS_IDATATYPE_IID_STR);
  
@@ -27850,10 +28301,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDataType.java
  		super(address);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryService.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIDirectoryService extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDIRECTORYSERVICE_IID =
  		new nsID(NS_IDIRECTORYSERVICE_IID_STR);
  
@@ -27862,7 +28313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServ
  		super(address);
  	}
  
-@@ -45,11 +45,11 @@ public class nsIDirectoryService extends
+@@ -45,11 +45,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress());
  	}
  
@@ -27876,10 +28327,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServ
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), prov);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,11 +37,11 @@ public class nsIDirectoryServiceProvider
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IDIRECTORYSERVICEPROVIDER2_IID =
  		new nsID(NS_IDIRECTORYSERVICEPROVIDER2_IID_STRING);
  
@@ -27894,10 +28345,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServ
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,11 +37,11 @@ public class nsIDirectoryServiceProvider
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDirectoryServiceProvider.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IDIRECTORYSERVICEPROVIDER_IID =
  		new nsID(NS_IDIRECTORYSERVICEPROVIDER_IID_STR);
  
@@ -27911,10 +28362,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDirectoryServ
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), prop, persistent, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsID.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsID.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsID.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsID.java	2011-03-21 11:34:23.435732379 +0000
-@@ -44,9 +44,9 @@ public nsID(String id) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsID.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsID.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsID.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsID.java	2011-06-13 20:53:32.000000000 +0000
+@@ -46,9 +46,9 @@
  }
  
  public boolean Equals(nsID other) {
@@ -27926,10 +28377,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsID.java swt-gt
  	XPCOM.memmove (otherPtr, other, nsID.sizeof);
  	boolean result = XPCOM.nsID_Equals (ptr, otherPtr) != 0;
  	XPCOM.nsID_delete (ptr);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,15 +37,15 @@ public class nsIDocShell_1_8 extends nsI
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IDOCSHELL_IID =
  		new nsID(NS_IDOCSHELL_IID_STR);
  
@@ -27948,7 +28399,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aStream, aURI, aContentType, aContentCharset, aLoadInfo);
  	}
  
-@@ -55,11 +55,11 @@ public class nsIDocShell_1_8 extends nsI
+@@ -55,11 +55,11 @@
  
  	public static final int INTERNAL_LOAD_FLAGS_DONT_SEND_REFERRER = 2;
  
@@ -27962,7 +28413,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), loadInfo);
  	}
  
-@@ -67,7 +67,7 @@ public class nsIDocShell_1_8 extends nsI
+@@ -67,7 +67,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress());
  	}
  
@@ -27971,7 +28422,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aURI);
  	}
  
-@@ -75,35 +75,35 @@ public class nsIDocShell_1_8 extends nsI
+@@ -75,35 +75,35 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), isUnload);
  	}
  
@@ -28015,7 +28466,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aDocumentCharsetInfo);
  	}
  
-@@ -151,7 +151,7 @@ public class nsIDocShell_1_8 extends nsI
+@@ -151,7 +151,7 @@
  
  	public static final int ENUMERATE_BACKWARDS = 1;
  
@@ -28024,7 +28475,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aItemType, aDirection, _retval);
  	}
  
-@@ -255,11 +255,11 @@ public class nsIDocShell_1_8 extends nsI
+@@ -255,11 +255,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 46, getAddress(), aIsExecutingOnLoadHandler);
  	}
  
@@ -28038,7 +28489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 48, getAddress(), aLayoutHistoryState);
  	}
  
-@@ -267,11 +267,11 @@ public class nsIDocShell_1_8 extends nsI
+@@ -267,11 +267,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 49, getAddress(), aShouldSaveLayoutState);
  	}
  
@@ -28052,7 +28503,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 51, getAddress(), aSecurityUI);
  	}
  
-@@ -283,7 +283,7 @@ public class nsIDocShell_1_8 extends nsI
+@@ -283,7 +283,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 53, getAddress());
  	}
  
@@ -28061,10 +28512,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell_1_8.
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 54, getAddress(), viewer, top);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDocShell.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDocShell.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,23 +37,23 @@ public class nsIDocShell extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDocShell.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDocShell.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_IDOCSHELL_IID =
  		new nsID(NS_IDOCSHELL_IID_STR);
  
@@ -28093,7 +28544,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), loadInfo);
  	}
  
-@@ -61,7 +61,7 @@ public class nsIDocShell extends nsISupp
+@@ -61,7 +61,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress());
  	}
  
@@ -28102,7 +28553,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aURI);
  	}
  
-@@ -69,43 +69,43 @@ public class nsIDocShell extends nsISupp
+@@ -69,43 +69,43 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress());
  	}
  
@@ -28156,7 +28607,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aDocumentCharsetInfo);
  	}
  
-@@ -153,7 +153,7 @@ public class nsIDocShell extends nsISupp
+@@ -153,7 +153,7 @@
  
  	public static final int ENUMERATE_BACKWARDS = 1;
  
@@ -28165,7 +28616,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 28, getAddress(), aItemType, aDirection, _retval);
  	}
  
-@@ -255,11 +255,11 @@ public class nsIDocShell extends nsISupp
+@@ -255,11 +255,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 48, getAddress(), aIsExecutingOnLoadHandler);
  	}
  
@@ -28179,10 +28630,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDocShell.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 50, getAddress(), aLayoutHistoryState);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMEvent.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,7 +37,7 @@ public class nsIDOMEvent extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDOMEVENT_IID =
  		new nsID(NS_IDOMEVENT_IID_STR);
  
@@ -28191,7 +28642,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
  		super(address);
  	}
  
-@@ -47,15 +47,15 @@ public class nsIDOMEvent extends nsISupp
+@@ -47,15 +47,15 @@
  
  	public static final int BUBBLING_PHASE = 3;
  
@@ -28210,7 +28661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aCurrentTarget);
  	}
  
-@@ -71,7 +71,7 @@ public class nsIDOMEvent extends nsISupp
+@@ -71,7 +71,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aCancelable);
  	}
  
@@ -28219,7 +28670,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aTimeStamp);
  	}
  
-@@ -83,7 +83,7 @@ public class nsIDOMEvent extends nsISupp
+@@ -83,7 +83,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress());
  	}
  
@@ -28228,10 +28679,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEvent.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), eventTypeArg, canBubbleArg, cancelableArg);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,19 +37,19 @@ public class nsIDOMEventTarget extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMEventTarget.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_IDOMEVENTTARGET_IID =
  		new nsID(NS_IDOMEVENTTARGET_IID_STR);
  
@@ -28255,10 +28706,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMEventTarge
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), evt, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIDOMKeyEvent extends nsID
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDOMKEYEVENT_IID =
  		new nsID(NS_IDOMKEYEVENT_IID_STR);
  
@@ -28267,7 +28718,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.j
  		super(address);
  	}
  
-@@ -293,7 +293,7 @@ public class nsIDOMKeyEvent extends nsID
+@@ -293,7 +293,7 @@
  		return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 6, getAddress(), aMetaKey);
  	}
  
@@ -28276,10 +28727,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMKeyEvent.j
  		return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 7, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, keyCodeArg, charCodeArg);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIDOMMouseEvent extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDOMMOUSEEVENT_IID =
  		new nsID(NS_IDOMMOUSEEVENT_IID_STR);
  
@@ -28288,7 +28739,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent
  		super(address);
  	}
  
-@@ -77,11 +77,11 @@ public class nsIDOMMouseEvent extends ns
+@@ -77,11 +77,11 @@
  		return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 9, getAddress(), aButton);
  	}
  
@@ -28302,10 +28753,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMMouseEvent
  		return XPCOM.VtblCall(nsIDOMUIEvent.LAST_METHOD_ID + 11, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,15 +37,15 @@ public class nsIDOMSerializer_1_7 extend
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMSerializer_1_7.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IDOMSERIALIZER_IID =
  		new nsID(NS_IDOMSERIALIZER_IID_STR);
  
@@ -28324,10 +28775,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), root, stream, charset);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,15 +37,15 @@ public class nsIDOMSerializer extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMSerializer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IDOMSERIALIZER_IID =
  		new nsID(NS_IDOMSERIALIZER_IID_STR);
  
@@ -28346,10 +28797,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMSerializer
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), root, stream, charset);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,11 +37,11 @@ public class nsIDOMUIEvent extends nsIDO
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IDOMUIEVENT_IID =
  		new nsID(NS_IDOMUIEVENT_IID_STR);
  
@@ -28363,7 +28814,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.ja
  		return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 1, getAddress(), aView);
  	}
  
-@@ -49,7 +49,7 @@ public class nsIDOMUIEvent extends nsIDO
+@@ -49,7 +49,7 @@
  		return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 2, getAddress(), aDetail);
  	}
  
@@ -28372,10 +28823,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMUIEvent.ja
  		return XPCOM.VtblCall(nsIDOMEvent.LAST_METHOD_ID + 3, getAddress(), typeArg, canBubbleArg, cancelableArg, viewArg, detailArg);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIDOMWindowCollection exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMWindowCollection.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IDOMWINDOWCOLLECTION_IID =
  		new nsID(NS_IDOMWINDOWCOLLECTION_IID_STR);
  
@@ -28384,7 +28835,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowColl
  		super(address);
  	}
  
-@@ -45,11 +45,11 @@ public class nsIDOMWindowCollection exte
+@@ -45,11 +45,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aLength);
  	}
  
@@ -28398,10 +28849,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindowColl
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), name, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDOMWindow.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,35 +37,35 @@ public class nsIDOMWindow extends nsISup
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDOMWindow.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,35 +37,35 @@
  	public static final nsID NS_IDOMWINDOW_IID =
  		new nsID(NS_IDOMWINDOW_IID_STR);
  
@@ -28445,7 +28896,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aName);
  	}
  
-@@ -93,7 +93,7 @@ public class nsIDOMWindow extends nsISup
+@@ -93,7 +93,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), xScrollDif, yScrollDif);
  	}
  
@@ -28454,10 +28905,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDOMWindow.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), _retval);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,11 +37,11 @@ public class nsIDownload_1_8 extends nsI
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IDOWNLOAD_IID =
  		new nsID(NS_IDOWNLOAD_IID_STR);
  
@@ -28471,7 +28922,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.
  		return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 1, getAddress(), aTargetFile);
  	}
  
-@@ -49,27 +49,27 @@ public class nsIDownload_1_8 extends nsI
+@@ -49,27 +49,27 @@
  		return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 2, getAddress(), aPercentComplete);
  	}
  
@@ -28505,7 +28956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.
  		return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 8, getAddress(), aDisplayName);
  	}
  
-@@ -77,7 +77,7 @@ public class nsIDownload_1_8 extends nsI
+@@ -77,7 +77,7 @@
  		return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 9, getAddress(), aStartTime);
  	}
  
@@ -28514,10 +28965,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload_1_8.
  		return XPCOM.VtblCall(nsITransfer.LAST_METHOD_ID + 10, getAddress(), aMIMEInfo);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDownload.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIDownload.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,23 +37,23 @@ public class nsIDownload extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDownload.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIDownload.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_IDOWNLOAD_IID =
  		new nsID(NS_IDOWNLOAD_IID_STR);
  
@@ -28546,7 +28997,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aPersist);
  	}
  
-@@ -61,7 +61,7 @@ public class nsIDownload extends nsISupp
+@@ -61,7 +61,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPercentComplete);
  	}
  
@@ -28555,7 +29006,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aDisplayName);
  	}
  
-@@ -73,23 +73,23 @@ public class nsIDownload extends nsISupp
+@@ -73,23 +73,23 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aStartTime);
  	}
  
@@ -28585,10 +29036,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIDownload.java
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,7 +37,7 @@ public class nsIEmbeddingSiteWindow exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIEmbeddingSiteWindow.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IEMBEDDINGSITEWINDOW_IID =
  		new nsID(NS_IEMBEDDINGSITEWINDOW_IID_STR);
  
@@ -28597,7 +29048,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSite
  		super(address);
  	}
  
-@@ -67,7 +67,7 @@ public class nsIEmbeddingSiteWindow exte
+@@ -67,7 +67,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aVisibility);
  	}
  
@@ -28606,7 +29057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSite
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aTitle);
  	}
  
-@@ -75,7 +75,7 @@ public class nsIEmbeddingSiteWindow exte
+@@ -75,7 +75,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aTitle);
  	}
  
@@ -28615,10 +29066,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIEmbeddingSite
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aSiteWindow);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFactory.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFactory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFactory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFactory.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,11 +37,11 @@ public class nsIFactory extends nsISuppo
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFactory.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFactory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFactory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFactory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IFACTORY_IID =
  		new nsID(NS_IFACTORY_IID_STR);
  
@@ -28632,10 +29083,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFactory.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aOuter, iid, result);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFile.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFile.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,7 +37,7 @@ public class nsIFile extends nsISupports
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFile.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFile.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFile.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IFILE_IID =
  		new nsID(NS_IFILE_IID_STR);
  
@@ -28644,7 +29095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt
  		super(address);
  	}
  
-@@ -45,11 +45,11 @@ public class nsIFile extends nsISupports
+@@ -45,11 +45,11 @@
  
  	public static final int DIRECTORY_TYPE = 1;
  
@@ -28658,7 +29109,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), node);
  	}
  
-@@ -61,43 +61,43 @@ public class nsIFile extends nsISupports
+@@ -61,43 +61,43 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), type, permissions);
  	}
  
@@ -28712,7 +29163,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), newParentDir, newName);
  	}
  
-@@ -149,19 +149,19 @@ public class nsIFile extends nsISupports
+@@ -149,19 +149,19 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aFileSizeOfLink);
  	}
  
@@ -28736,7 +29187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 30, getAddress(), aNativePath);
  	}
  
-@@ -205,23 +205,23 @@ public class nsIFile extends nsISupports
+@@ -205,23 +205,23 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 40, getAddress(), type, permissions);
  	}
  
@@ -28765,10 +29216,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFile.java swt
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 45, getAddress(), aDirectoryEntries);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIFilePicker_1_8 extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IFILEPICKER_IID =
  		new nsID(NS_IFILEPICKER_IID_STR);
  
@@ -28777,7 +29228,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_
  		super(address);
  	}
  
-@@ -56,7 +56,7 @@ public class nsIFilePicker_1_8 extends n
+@@ -56,7 +56,7 @@
  	public static final int filterXUL = 32;
  	public static final int filterApps = 64;
  
@@ -28786,7 +29237,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parent, title, mode);
  	}
  
-@@ -64,23 +64,23 @@ public class nsIFilePicker_1_8 extends n
+@@ -64,23 +64,23 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), filterMask);
  	}
  
@@ -28815,7 +29266,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aDefaultExtension);
  	}
  
-@@ -92,27 +92,27 @@ public class nsIFilePicker_1_8 extends n
+@@ -92,27 +92,27 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aFilterIndex);
  	}
  
@@ -28849,10 +29300,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker_1_
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFilePicker.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIFilePicker.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIFilePicker extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFilePicker.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIFilePicker.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IFILEPICKER_IID =
  		new nsID(NS_IFILEPICKER_IID_STR);
  
@@ -28861,7 +29312,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.ja
  		super(address);
  	}
  
-@@ -56,7 +56,7 @@ public class nsIFilePicker extends nsISu
+@@ -56,7 +56,7 @@
  	public static final int filterXUL = 32;
  	public static final int filterApps = 64;
  
@@ -28870,7 +29321,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), parent, title, mode);
  	}
  
-@@ -68,7 +68,7 @@ public class nsIFilePicker extends nsISu
+@@ -68,7 +68,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), title, filter);
  	}
  
@@ -28879,7 +29330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aDefaultString);
  	}
  
-@@ -76,7 +76,7 @@ public class nsIFilePicker extends nsISu
+@@ -76,7 +76,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aDefaultString);
  	}
  
@@ -28888,7 +29339,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aDefaultExtension);
  	}
  
-@@ -92,27 +92,27 @@ public class nsIFilePicker extends nsISu
+@@ -92,27 +92,27 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aFilterIndex);
  	}
  
@@ -28922,10 +29373,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIFilePicker.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,31 +37,31 @@ public class nsIHelperAppLauncher_1_8 ex
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,31 +37,31 @@
  	public static final nsID NS_IHELPERAPPLAUNCHER_IID =
  		new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
  
@@ -28964,7 +29415,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 6, getAddress(), aWebProgressListener);
  	}
  
-@@ -69,11 +69,11 @@ public class nsIHelperAppLauncher_1_8 ex
+@@ -69,11 +69,11 @@
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 7, getAddress());
  	}
  
@@ -28978,10 +29429,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 9, getAddress(), aTimeDownloadStarted);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,31 +37,31 @@ public class nsIHelperAppLauncher_1_9 ex
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher_1_9.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,31 +37,31 @@
  	public static final nsID NS_IHELPERAPPLAUNCHER_IID =
  		new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
  
@@ -29020,7 +29471,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 6, getAddress(), aWebProgressListener);
  	}
  
-@@ -69,7 +69,7 @@ public class nsIHelperAppLauncher_1_9 ex
+@@ -69,7 +69,7 @@
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 7, getAddress());
  	}
  
@@ -29029,7 +29480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 8, getAddress(), aTargetFile);
  	}
  
-@@ -77,7 +77,7 @@ public class nsIHelperAppLauncher_1_9 ex
+@@ -77,7 +77,7 @@
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 9, getAddress(), aTargetFileIsExecutable);
  	}
  
@@ -29038,10 +29489,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsICancelable.LAST_METHOD_ID + 10, getAddress(), aTimeDownloadStarted);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java	2011-03-21 11:34:23.475731816 +0000
-@@ -37,7 +37,7 @@ public class nsIHelperAppLauncherDialog_
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog_1_9.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IHELPERAPPLAUNCHERDIALOG_IID =
  		new nsID(NS_IHELPERAPPLAUNCHERDIALOG_IID_STR);
  
@@ -29050,7 +29501,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		super(address);
  	}
  
-@@ -47,11 +47,11 @@ public class nsIHelperAppLauncherDialog_
+@@ -47,11 +47,11 @@
  
  	public static final int REASON_TYPESNIFFED = 2;
  
@@ -29065,10 +29516,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,19 +37,19 @@ public class nsIHelperAppLauncherDialog
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncherDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_IHELPERAPPLAUNCHERDIALOG_IID =
  		new nsID(NS_IHELPERAPPLAUNCHERDIALOG_IID_STR);
  
@@ -29093,10 +29544,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,27 +37,27 @@ public class nsIHelperAppLauncher extend
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIHelperAppLauncher.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,27 +37,27 @@
  	public static final nsID NS_IHELPERAPPLAUNCHER_IID =
  		new nsID(NS_IHELPERAPPLAUNCHER_IID_STR);
  
@@ -29130,7 +29581,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aApplication, aRememberThisPreference);
  	}
  
-@@ -65,7 +65,7 @@ public class nsIHelperAppLauncher extend
+@@ -65,7 +65,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress());
  	}
  
@@ -29139,7 +29590,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aWebProgressListener);
  	}
  
-@@ -73,7 +73,7 @@ public class nsIHelperAppLauncher extend
+@@ -73,7 +73,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress());
  	}
  
@@ -29148,10 +29599,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIHelperAppLaun
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aSourceUrl, aTimeDownloadStarted, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIInputStream.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIInputStream.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,7 +37,7 @@ public class nsIInputStream extends nsIS
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIInputStream.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIInputStream.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IINPUTSTREAM_IID =
  		new nsID(NS_IINPUTSTREAM_IID_STR);
  
@@ -29160,7 +29611,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.j
  		super(address);
  	}
  
-@@ -53,7 +53,7 @@ public class nsIInputStream extends nsIS
+@@ -53,7 +53,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aBuf, aCount, _retval);
  	}
  
@@ -29169,10 +29620,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInputStream.j
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aWriter, aClosure, aCount, _retval);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,11 +37,11 @@ public class nsIInterfaceRequestor exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIInterfaceRequestor.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IINTERFACEREQUESTOR_IID =
  		new nsID(NS_IINTERFACEREQUESTOR_IID_STR);
  
@@ -29187,10 +29638,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIInterfaceRequ
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIIOService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIIOService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIIOService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIIOService.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,11 +37,11 @@ public class nsIIOService extends nsISup
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIIOService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIIOService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIIOService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIIOService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IIOSERVICE_IID =
  		new nsID(NS_IIOSERVICE_IID_STR);
  
@@ -29204,7 +29655,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIIOService.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aScheme, _retval);
  	}
  
-@@ -49,19 +49,19 @@ public class nsIIOService extends nsISup
+@@ -49,19 +49,19 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aScheme, _retval);
  	}
  
@@ -29228,7 +29679,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIIOService.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aSpec, aOriginCharset, aBaseURI, _retval);
  	}
  
-@@ -77,7 +77,7 @@ public class nsIIOService extends nsISup
+@@ -77,7 +77,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aPort, aScheme, _retval);
  	}
  
@@ -29237,10 +29688,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIIOService.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), urlString, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIJSContextStack.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIJSContextStack extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIJSContextStack.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IJSCONTEXTSTACK_IID =
  		new nsID(NS_IJSCONTEXTSTACK_IID_STR);
  
@@ -29249,7 +29700,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStac
  		super(address);
  	}
  
-@@ -45,15 +45,15 @@ public class nsIJSContextStack extends n
+@@ -45,15 +45,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aCount);
  	}
  
@@ -29268,10 +29719,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIJSContextStac
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), cx);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsILocalFile.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsILocalFile.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,19 +37,19 @@ public class nsILocalFile extends nsIFil
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsILocalFile.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsILocalFile.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_ILOCALFILE_IID =
  		new nsID(NS_ILOCALFILE_IID_STR);
  
@@ -29295,7 +29746,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.jav
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 3, getAddress(), aFile);
  	}
  
-@@ -61,15 +61,15 @@ public class nsILocalFile extends nsIFil
+@@ -61,15 +61,15 @@
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 5, getAddress(), aFollowLinks);
  	}
  
@@ -29314,7 +29765,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.jav
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 8, getAddress(), _retval);
  	}
  
-@@ -77,19 +77,19 @@ public class nsILocalFile extends nsIFil
+@@ -77,19 +77,19 @@
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 9, getAddress(), aDiskSpaceAvailable);
  	}
  
@@ -29338,7 +29789,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.jav
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 13, getAddress(), aPersistentDescriptor);
  	}
  
-@@ -101,11 +101,11 @@ public class nsILocalFile extends nsIFil
+@@ -101,11 +101,11 @@
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 15, getAddress());
  	}
  
@@ -29352,10 +29803,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsILocalFile.jav
  		return XPCOM.VtblCall(nsIFile.LAST_METHOD_ID + 17, getAddress(), fromFile, relativeDesc);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMemory.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIMemory.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMemory.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIMemory.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,19 +37,19 @@ public class nsIMemory extends nsISuppor
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIMemory.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIMemory.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIMemory.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIMemory.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_IMEMORY_IID =
  		new nsID(NS_IMEMORY_IID_STR);
  
@@ -29379,10 +29830,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMemory.java s
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), ptr);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,7 +37,7 @@ public class  nsIMIMEInputStream extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIMIMEInputStream.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IMIMEINPUTSTREAM_IID =
  		new nsID(NS_IMIMEINPUTSTREAM_IID_STR);
  
@@ -29391,7 +29842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStre
  		super(address);
  	}
  
-@@ -53,7 +53,7 @@ public class  nsIMIMEInputStream extends
+@@ -53,7 +53,7 @@
  		return XPCOM.VtblCall(nsIInputStream.LAST_METHOD_ID + 3, getAddress(), name, value);
  	}
  
@@ -29401,10 +29852,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIMIMEInputStre
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIObserverService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIObserverService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIObserverService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIObserverService.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,23 +37,23 @@ public class nsIObserverService extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIObserverService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIObserverService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIObserverService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIObserverService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_IOBSERVERSERVICE_IID =
  		new nsID(NS_IOBSERVERSERVICE_IID_STR);
  
@@ -29433,10 +29884,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIObserverServi
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aTopic, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefBranch.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,7 +37,7 @@ public class nsIPrefBranch extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefBranch.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IPREFBRANCH_IID =
  		new nsID(NS_IPREFBRANCH_IID_STR);
  
@@ -29445,7 +29896,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.ja
  		super(address);
  	}
  
-@@ -49,7 +49,7 @@ public class nsIPrefBranch extends nsISu
+@@ -49,7 +49,7 @@
  
  	public static final int PREF_BOOL = 128;
  
@@ -29454,7 +29905,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aRoot);
  	}
  
-@@ -65,7 +65,7 @@ public class nsIPrefBranch extends nsISu
+@@ -65,7 +65,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aPrefName, aValue);
  	}
  
@@ -29463,7 +29914,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aPrefName, _retval);
  	}
  
-@@ -81,11 +81,11 @@ public class nsIPrefBranch extends nsISu
+@@ -81,11 +81,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aPrefName, aValue);
  	}
  
@@ -29477,7 +29928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), aPrefName, aType, aValue);
  	}
  
-@@ -113,7 +113,7 @@ public class nsIPrefBranch extends nsISu
+@@ -113,7 +113,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), aStartingAt);
  	}
  
@@ -29486,10 +29937,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefBranch.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aStartingAt, aCount, aChildArray);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,11 +37,11 @@ public class nsIPrefLocalizedString exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefLocalizedString.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IPREFLOCALIZEDSTRING_IID =
  		new nsID(NS_IPREFLOCALIZEDSTRING_IID_STR);
  
@@ -29503,7 +29954,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalized
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aData);
  	}
  
-@@ -49,7 +49,7 @@ public class nsIPrefLocalizedString exte
+@@ -49,7 +49,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aData);
  	}
  
@@ -29512,10 +29963,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefLocalized
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrefService.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,11 +37,11 @@ public class nsIPrefService extends nsIS
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrefService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IPREFSERVICE_IID =
  		new nsID(NS_IPREFSERVICE_IID_STR);
  
@@ -29529,7 +29980,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.j
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aFile);
  	}
  
-@@ -53,15 +53,15 @@ public class nsIPrefService extends nsIS
+@@ -53,15 +53,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress());
  	}
  
@@ -29548,10 +29999,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrefService.j
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aPrefRoot, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrincipal.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPrincipal.java	2011-03-21 11:34:23.475731816 +0000
-@@ -37,7 +37,7 @@ public class  nsIPrincipal extends nsISe
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrincipal.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPrincipal.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IPRINCIPAL_IID =
  		new nsID(NS_IPRINCIPAL_IID_STR);
  
@@ -29560,7 +30011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.jav
  		super(address);
  	}
  
-@@ -49,11 +49,11 @@ public class  nsIPrincipal extends nsISe
+@@ -49,11 +49,11 @@
  
  	public static final int ENABLE_GRANTED = 4;
  
@@ -29574,7 +30025,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.jav
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 2, getAddress(), other, _retval);
  	}
  
-@@ -61,19 +61,19 @@ public class  nsIPrincipal extends nsISe
+@@ -61,19 +61,19 @@
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 3, getAddress(), aHashValue);
  	}
  
@@ -29598,7 +30049,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.jav
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 7, getAddress(), capability, _retval);
  	}
  
-@@ -81,35 +81,35 @@ public class  nsIPrincipal extends nsISe
+@@ -81,35 +81,35 @@
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 8, getAddress(), capability, canEnable);
  	}
  
@@ -29642,7 +30093,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.jav
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 16, getAddress(), aOrigin);
  	}
  
-@@ -117,27 +117,27 @@ public class  nsIPrincipal extends nsISe
+@@ -117,27 +117,27 @@
  		return XPCOM.VtblCall(nsISerializable.LAST_METHOD_ID + 17, getAddress(), aHasCertificate);
  	}
  
@@ -29677,10 +30128,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPrincipal.jav
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,11 +37,11 @@ public class nsIProgressDialog_1_8 exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProgressDialog_1_8.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IPROGRESSDIALOG_IID =
  		new nsID(NS_IPROGRESSDIALOG_IID_STR);
  
@@ -29694,7 +30145,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialo
  		return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 1, getAddress(), aParent);
  	}
  
-@@ -53,19 +53,19 @@ public class nsIProgressDialog_1_8 exten
+@@ -53,19 +53,19 @@
  		return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 3, getAddress(), aCancelDownloadOnClose);
  	}
  
@@ -29718,10 +30169,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialo
  		return XPCOM.VtblCall(nsIDownload_1_8.LAST_METHOD_ID + 7, getAddress(), aDialog);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProgressDialog.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,11 +37,11 @@ public class nsIProgressDialog extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProgressDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IPROGRESSDIALOG_IID =
  		new nsID(NS_IPROGRESSDIALOG_IID_STR);
  
@@ -29735,7 +30186,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialo
  		return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 1, getAddress(), aParent);
  	}
  
-@@ -53,11 +53,11 @@ public class nsIProgressDialog extends n
+@@ -53,11 +53,11 @@
  		return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 3, getAddress(), aCancelDownloadOnClose);
  	}
  
@@ -29749,10 +30200,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProgressDialo
  		return XPCOM.VtblCall(nsIDownload.LAST_METHOD_ID + 5, getAddress(), aDialog);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService2.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPromptService2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPromptService2.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,15 +37,15 @@ public class nsIPromptService2 extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPromptService2.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPromptService2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPromptService2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPromptService2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IPROMPTSERVICE2_IID =
  		new nsID(NS_IPROMPTSERVICE2_IID_STR);
  
@@ -29771,10 +30222,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService
  		return XPCOM.VtblCall(nsIPromptService.LAST_METHOD_ID + 2, getAddress(), aParent, aChannel, aCallback, aContext, level, authInfo, checkboxLabel, checkValue, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPromptService.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIPromptService.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,23 +37,23 @@ public class nsIPromptService extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPromptService.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPromptService.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIPromptService.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIPromptService.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_IPROMPTSERVICE_IID =
  		new nsID(NS_IPROMPTSERVICE_IID_STR);
  
@@ -29803,7 +30254,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aParent, aDialogTitle, aText, aCheckMsg, aCheckState, _retval);
  	}
  
-@@ -91,23 +91,23 @@ public class nsIPromptService extends ns
+@@ -91,23 +91,23 @@
  
  	public static final int STD_YES_NO_BUTTONS = 1027;
  	
@@ -29832,10 +30283,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIPromptService
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aParent, aDialogTitle, aText, aCount, aSelectList, aOutSelection, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProperties.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProperties.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProperties.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIProperties.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,15 +37,15 @@ public class nsIProperties extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProperties.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProperties.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIProperties.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIProperties.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IPROPERTIES_IID =
  		new nsID(NS_IPROPERTIES_IID_STR);
  
@@ -29854,7 +30305,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProperties.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), prop, value);
  	}
  
-@@ -57,7 +57,7 @@ public class nsIProperties extends nsISu
+@@ -57,7 +57,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), prop);
  	}
  
@@ -29863,10 +30314,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIProperties.ja
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), count, keys);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIRequest.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIRequest.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,11 +37,11 @@ public class nsIRequest extends nsISuppo
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIRequest.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIRequest.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IREQUEST_IID =
  		new nsID(NS_IREQUEST_IID_STR);
  
@@ -29880,7 +30331,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aName);
  	}
  
-@@ -49,7 +49,7 @@ public class nsIRequest extends nsISuppo
+@@ -49,7 +49,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
  	}
  
@@ -29889,7 +30340,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aStatus);
  	}
  
-@@ -65,15 +65,15 @@ public class nsIRequest extends nsISuppo
+@@ -65,15 +65,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress());
  	}
  
@@ -29908,10 +30359,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIRequest.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), aLoadFlags);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,19 +37,19 @@ public class nsIScriptSecurityManager_1_
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9_1.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_ISCRIPTSECURITYMANAGER_IID =
  		new nsID(NS_ISCRIPTSECURITYMANAGER_IID_STR);
  
@@ -29935,7 +30386,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 3, getAddress(), cx, uri);
  	}
  
-@@ -65,47 +65,47 @@ public class nsIScriptSecurityManager_1_
+@@ -65,47 +65,47 @@
  
  	public static final int DISALLOW_SCRIPT = 8;
  
@@ -29994,7 +30445,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  //		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 14, getAddress(), principal, capability, _retval NS_OUTPARAM);
  //	}
  
-@@ -125,11 +125,11 @@ public class nsIScriptSecurityManager_1_
+@@ -125,11 +125,11 @@
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 18, getAddress(), capability);
  	}
  
@@ -30008,7 +30459,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  //		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 20, getAddress(), cx, obj, _retval NS_OUTPARAM);
  //	}
  
-@@ -137,23 +137,23 @@ public class nsIScriptSecurityManager_1_
+@@ -137,23 +137,23 @@
  //		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 21, getAddress(), _retval NS_OUTPARAM);
  //	}
  
@@ -30038,10 +30489,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  //	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,19 +37,19 @@ public class  nsIScriptSecurityManager_1
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIScriptSecurityManager_1_9.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,19 +37,19 @@
  	public static final nsID NS_ISCRIPTSECURITYMANAGER_IID =
  		new nsID(NS_ISCRIPTSECURITYMANAGER_IID_STR);
  
@@ -30065,7 +30516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 3, getAddress(), cx, uri);
  	}
  
-@@ -65,47 +65,47 @@ public class  nsIScriptSecurityManager_1
+@@ -65,47 +65,47 @@
  
  	public static final int DISALLOW_SCRIPT = 8;
  
@@ -30124,7 +30575,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  //		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 14, getAddress(), principal, capability, _retval);
  //	}
  
-@@ -125,11 +125,11 @@ public class  nsIScriptSecurityManager_1
+@@ -125,11 +125,11 @@
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 18, getAddress(), capability);
  	}
  
@@ -30138,7 +30589,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 20, getAddress(), cx, obj, _retval);
  	}
  
-@@ -137,23 +137,23 @@ public class  nsIScriptSecurityManager_1
+@@ -137,23 +137,23 @@
  		return XPCOM.VtblCall(nsIXPCSecurityManager.LAST_METHOD_ID + 21, getAddress(), _retval);
  	}
  
@@ -30168,10 +30619,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIScriptSecurit
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,23 +37,23 @@ public class nsISecurityCheckedComponent
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,23 +37,23 @@
  	public static final nsID NS_ISECURITYCHECKEDCOMPONENT_IID =
  		new nsID(NS_ISECURITYCHECKEDCOMPONENT_IID_STR);
  
@@ -30200,10 +30651,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISecurityCheck
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), iid, propertyName, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISerializable.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISerializable.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISerializable.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISerializable.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,15 +37,15 @@ public class  nsISerializable extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISerializable.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISerializable.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISerializable.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISerializable.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_ISERIALIZABLE_IID =
  		new nsID(NS_ISERIALIZABLE_IID_STR);
  
@@ -30223,10 +30674,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISerializable.
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIServiceManager.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIServiceManager.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIServiceManager.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIServiceManager.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,15 +37,15 @@ public class nsIServiceManager extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIServiceManager.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIServiceManager.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIServiceManager.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIServiceManager.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_ISERVICEMANAGER_IID =
  		new nsID(NS_ISERVICEMANAGER_IID_STR);
  
@@ -30245,10 +30696,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIServiceManage
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aContractID, aIID, result);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsISimpleEnumerator extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISimpleEnumerator.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ISIMPLEENUMERATOR_IID =
  		new nsID(NS_ISIMPLEENUMERATOR_IID_STR);
  
@@ -30257,7 +30708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumera
  		super(address);
  	}
  
-@@ -45,7 +45,7 @@ public class nsISimpleEnumerator extends
+@@ -45,7 +45,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), _retval);
  	}
  
@@ -30266,10 +30717,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISimpleEnumera
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISSLStatus.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISSLStatus.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISSLStatus.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISSLStatus.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,15 +37,15 @@ public class nsISSLStatus extends nsISup
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISSLStatus.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISSLStatus.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISSLStatus.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISSLStatus.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_ISSLSTATUS_IID =
  		new nsID(NS_ISSLSTATUS_IID_STR);
  
@@ -30288,10 +30739,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISSLStatus.jav
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aCipherName);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupports.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISupports.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupports.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISupports.java	2011-03-21 11:34:23.445732231 +0000
-@@ -44,17 +44,17 @@ public class nsISupports {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISupports.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISupports.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISupports.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISupports.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,17 +44,17 @@
  	public static final nsID NS_ISUPPORTS_IID =
  		new nsID(NS_ISUPPORTS_IID_STR);
  
@@ -30313,10 +30764,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupports.java
  		return XPCOM.VtblCall(FIRST_METHOD_ID, getAddress(), uuid, result);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,11 +37,11 @@ public class nsISupportsWeakReference ex
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsISupportsWeakReference.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_ISUPPORTSWEAKREFERENCE_IID =
  		new nsID(NS_ISUPPORTSWEAKREFERENCE_IID_STR);
  
@@ -30331,10 +30782,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsISupportsWeakR
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITooltipListener.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsITooltipListener.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITooltipListener.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsITooltipListener.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,7 +37,7 @@ public class nsITooltipListener extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsITooltipListener.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsITooltipListener.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsITooltipListener.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsITooltipListener.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_ITOOLTIPLISTENER_IID =
  		new nsID(NS_ITOOLTIPLISTENER_IID_STR);
  
@@ -30343,10 +30794,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITooltipListen
  		super(address);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITransfer.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsITransfer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITransfer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsITransfer.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,11 +37,11 @@ public class nsITransfer extends nsIWebP
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsITransfer.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsITransfer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsITransfer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsITransfer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_ITRANSFER_IID =
  		new nsID(NS_ITRANSFER_IID_STR);
  
@@ -30360,10 +30811,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsITransfer.java
  		return XPCOM.VtblCall(nsIWebProgressListener2.LAST_METHOD_ID + 1, getAddress(), aSource, aTarget, aDisplayName, aMIMEInfo, startTime, aTempFile, aCancelable);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIURIContentListener.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,39 +37,39 @@ public class nsIURIContentListener exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIURIContentListener.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,39 +37,39 @@
  	public static final nsID NS_IURICONTENTLISTENER_IID =
  		new nsID(NS_IURICONTENTLISTENER_IID_STR);
  
@@ -30412,10 +30863,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURIContentLis
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aParentContentListener);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURI.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIURI.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURI.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIURI.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,67 +37,67 @@ public class nsIURI extends nsISupports
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIURI.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIURI.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIURI.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIURI.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,67 +37,67 @@
  	public static final nsID NS_IURI_IID =
  		new nsID(NS_IURI_IID_STR);
  
@@ -30499,7 +30950,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURI.java swt-
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), aHost);
  	}
  
-@@ -109,15 +109,15 @@ public class nsIURI extends nsISupports
+@@ -109,15 +109,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), aPort);
  	}
  
@@ -30518,7 +30969,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURI.java swt-
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), other, _retval);
  	}
  
-@@ -125,23 +125,23 @@ public class nsIURI extends nsISupports
+@@ -125,23 +125,23 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), scheme, _retval);
  	}
  
@@ -30547,10 +30998,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIURI.java swt-
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), aOriginCharset);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIVariant.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIVariant.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,7 +37,7 @@ public class nsIVariant extends nsISuppo
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIVariant.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIVariant.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IVARIANT_IID =
  		new nsID(NS_IVARIANT_IID_STR);
  
@@ -30559,7 +31010,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		super(address);
  	}
  
-@@ -45,11 +45,11 @@ public class nsIVariant extends nsISuppo
+@@ -45,11 +45,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aDataType);
  	}
  
@@ -30573,7 +31024,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval);
  	}
  
-@@ -61,7 +61,7 @@ public class nsIVariant extends nsISuppo
+@@ -61,7 +61,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), _retval);
  	}
  
@@ -30582,7 +31033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), _retval);
  	}
  
-@@ -73,7 +73,7 @@ public class nsIVariant extends nsISuppo
+@@ -73,7 +73,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), _retval);
  	}
  
@@ -30591,7 +31042,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), _retval);
  	}
  
-@@ -81,7 +81,7 @@ public class nsIVariant extends nsISuppo
+@@ -81,7 +81,7 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), _retval);
  	}
  
@@ -30600,7 +31051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), _retval);
  	}
  
-@@ -97,51 +97,51 @@ public class nsIVariant extends nsISuppo
+@@ -97,51 +97,51 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), _retval);
  	}
  
@@ -30664,10 +31115,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIVariant.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), size, str);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWeakReference.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWeakReference.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWeakReference.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWeakReference.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,11 +37,11 @@ public class nsIWeakReference extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWeakReference.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWeakReference.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWeakReference.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWeakReference.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IWEAKREFERENCE_IID =
  		new nsID(NS_IWEAKREFERENCE_IID_STR);
  
@@ -30682,10 +31133,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWeakReference
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIWebBrowserChromeFocus ex
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserChromeFocus.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBBROWSERCHROMEFOCUS_IID =
  		new nsID(NS_IWEBBROWSERCHROMEFOCUS_IID_STR);
  
@@ -30694,10 +31145,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChr
  		super(address);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,7 +37,7 @@ public class nsIWebBrowserChrome extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserChrome.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBBROWSERCHROME_IID =
  		new nsID(NS_IWEBBROWSERCHROME_IID_STR);
  
@@ -30706,7 +31157,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChr
  		super(address);
  	}
  
-@@ -51,11 +51,11 @@ public class nsIWebBrowserChrome extends
+@@ -51,11 +51,11 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), statusType, status);
  	}
  
@@ -30720,10 +31171,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserChr
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aWebBrowser);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIWebBrowserFocus extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserFocus.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBBROWSERFOCUS_IID =
  		new nsID(NS_IWEBBROWSERFOCUS_IID_STR);
  
@@ -30732,7 +31183,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFoc
  		super(address);
  	}
  
-@@ -57,19 +57,19 @@ public class nsIWebBrowserFocus extends
+@@ -57,19 +57,19 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress());
  	}
  
@@ -30757,10 +31208,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserFoc
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowser.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,35 +37,35 @@ public class nsIWebBrowser extends nsISu
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowser.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,35 +37,35 @@
  	public static final nsID NS_IWEBBROWSER_IID =
  		new nsID(NS_IWEBBROWSER_IID_STR);
  
@@ -30805,10 +31256,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowser.ja
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java	2011-03-21 11:34:23.475731816 +0000
-@@ -37,7 +37,7 @@ public class nsIWebBrowserSetup extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserSetup.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBBROWSERSETUP_IID =
  		new nsID(NS_IWEBBROWSERSETUP_IID_STR);
  
@@ -30817,10 +31268,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserSet
  		super(address);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,15 +37,15 @@ public class nsIWebBrowserStream extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebBrowserStream.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,15 +37,15 @@
  	public static final nsID NS_IWEBBROWSERSTREAM_IID =
  		new nsID(NS_IWEBBROWSERSTREAM_IID_STR);
  
@@ -30839,10 +31290,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebBrowserStr
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), aData, aLen);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,7 +37,7 @@ public class nsIWebNavigationInfo extend
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebNavigationInfo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBNAVIGATIONINFO_IID =
  		new nsID(NS_IWEBNAVIGATIONINFO_IID_STR);
  
@@ -30851,7 +31302,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation
  		super(address);
  	}
  
-@@ -49,7 +49,7 @@ public class nsIWebNavigationInfo extend
+@@ -49,7 +49,7 @@
  
  	public static final int OTHER = 32768;
  
@@ -30861,10 +31312,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebNavigation.java	2011-03-21 11:34:23.475731816 +0000
-@@ -37,7 +37,7 @@ public class nsIWebNavigation extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebNavigation.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBNAVIGATION_IID =
  		new nsID(NS_IWEBNAVIGATION_IID_STR);
  
@@ -30873,7 +31324,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation
  		super(address);
  	}
  
-@@ -79,7 +79,7 @@ public class nsIWebNavigation extends ns
+@@ -79,7 +79,7 @@
  
  	public static final int LOAD_FLAGS_CHARSET_CHANGE = 1024;
  
@@ -30882,7 +31333,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), uri, loadFlags, referrer, postData, headers);
  	}
  
-@@ -97,23 +97,23 @@ public class nsIWebNavigation extends ns
+@@ -97,23 +97,23 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), stopFlags);
  	}
  
@@ -30911,10 +31362,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebNavigation
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), aSessionHistory);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgress.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgress.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,7 +37,7 @@ public class nsIWebProgress extends nsIS
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgress.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgress.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBPROGRESS_IID =
  		new nsID(NS_IWEBPROGRESS_IID_STR);
  
@@ -30923,7 +31374,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.j
  		super(address);
  	}
  
-@@ -61,15 +61,15 @@ public class nsIWebProgress extends nsIS
+@@ -61,15 +61,15 @@
  
  	public static final int NOTIFY_ALL = 255;
  
@@ -30942,10 +31393,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgress.j
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aDOMWindow);
  	}
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java	2011-03-21 11:34:23.465731960 +0000
-@@ -37,11 +37,11 @@ public class nsIWebProgressListener2 ext
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgressListener2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IWEBPROGRESSLISTENER2_IID =
  		new nsID(NS_IWEBPROGRESSLISTENER2_IID_STR);
  
@@ -30959,10 +31410,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressLi
  		return XPCOM.VtblCall(nsIWebProgressListener.LAST_METHOD_ID + 1, getAddress(), aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java	2011-03-21 11:34:23.445732231 +0000
-@@ -37,7 +37,7 @@ public class nsIWebProgressListener exte
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWebProgressListener.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWEBPROGRESSLISTENER_IID =
  		new nsID(NS_IWEBPROGRESSLISTENER_IID_STR);
  
@@ -30971,7 +31422,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressLi
  		super(address);
  	}
  
-@@ -71,23 +71,23 @@ public class nsIWebProgressListener exte
+@@ -71,23 +71,23 @@
  
  	public static final int STATE_SECURE_LOW = 131072;
  
@@ -31001,10 +31452,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWebProgressLi
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,13 +37,13 @@ public class nsIWindowCreator2 extends n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowCreator2.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,13 +37,13 @@
  	public static final nsID NS_IWINDOWCREATOR2_IID =
  		new nsID(NS_IWINDOWCREATOR2_IID_STR);
  
@@ -31020,10 +31471,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator
  		return XPCOM.VtblCall(nsIWindowCreator.LAST_METHOD_ID + 1, getAddress(), parent, chromeFlags, contextFlags, uri, cancel, _retval);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowCreator.java	2011-03-21 11:34:23.435732379 +0000
-@@ -37,11 +37,11 @@ public class nsIWindowCreator extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowCreator.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,11 +37,11 @@
  	public static final nsID NS_IWINDOWCREATOR_IID =
  		new nsID(NS_IWINDOWCREATOR_IID_STR);
  
@@ -31038,10 +31489,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowCreator
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,51 +37,51 @@ public class nsIWindowWatcher extends ns
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWindowWatcher.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,51 +37,51 @@
  	public static final nsID NS_IWINDOWWATCHER_IID =
  		new nsID(NS_IWINDOWWATCHER_IID_STR);
  
@@ -31106,10 +31557,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWindowWatcher
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIWritableVariant extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIWritableVariant.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IWRITABLEVARIANT_IID =
  		new nsID(NS_IWRITABLEVARIANT_IID_STR);
  
@@ -31118,7 +31569,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVaria
  		super(address);
  	}
  
-@@ -101,23 +101,23 @@ public class nsIWritableVariant extends
+@@ -101,23 +101,23 @@
  //		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 15, getAddress(), aValue);
  //	}
  
@@ -31147,7 +31598,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVaria
  		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 20, getAddress(), aValue);
  	}
  
-@@ -129,15 +129,15 @@ public class nsIWritableVariant extends
+@@ -129,15 +129,15 @@
  		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 22, getAddress(), aValue);
  	}
  
@@ -31166,7 +31617,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVaria
  		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 25, getAddress(), type, iid, count, ptr);
  	}
  
-@@ -161,7 +161,7 @@ public class nsIWritableVariant extends
+@@ -161,7 +161,7 @@
  		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 30, getAddress());
  	}
  
@@ -31175,10 +31626,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIWritableVaria
  		return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 31, getAddress(), aValue);
  	}
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIX509Cert.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIX509Cert.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,87 +37,87 @@ public class nsIX509Cert extends nsISupp
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIX509Cert.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIX509Cert.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,87 +37,87 @@
  	public static final nsID NS_IX509CERT_IID =
  		new nsID(NS_IX509CERT_IID_STR);
  
@@ -31287,7 +31738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), aWindowTitle);
  	}
  
-@@ -173,15 +173,15 @@ public class nsIX509Cert extends nsISupp
+@@ -173,15 +173,15 @@
  
  	public static final int CERT_USAGE_AnyCA = 11;
  
@@ -31306,7 +31757,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), ignoreOcsp, verified, usages);
  	}
  
-@@ -189,15 +189,15 @@ public class nsIX509Cert extends nsISupp
+@@ -189,15 +189,15 @@
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), usage, _retval);
  	}
  
@@ -31326,10 +31777,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509Cert.java
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java	2011-03-21 11:34:23.425732531 +0000
-@@ -37,39 +37,39 @@ public class nsIX509CertValidity extends
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIX509CertValidity.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,39 +37,39 @@
  	public static final nsID NS_IX509CERTVALIDITY_IID =
  		new nsID(NS_IX509CERTVALIDITY_IID_STR);
  
@@ -31379,10 +31830,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIX509CertValid
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java	2011-03-21 11:34:23.455732087 +0000
-@@ -37,7 +37,7 @@ public class nsIXPCSecurityManager exten
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/nsIXPCSecurityManager.java	2011-06-13 20:53:32.000000000 +0000
+@@ -37,7 +37,7 @@
  	public static final nsID NS_IXPCSECURITYMANAGER_IID =
  		new nsID(NS_IXPCSECURITYMANAGER_IID_STR);
  
@@ -31391,7 +31842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityMa
  		super(address);
  	}
  
-@@ -55,15 +55,15 @@ public class nsIXPCSecurityManager exten
+@@ -55,15 +55,15 @@
  
  	public static final int HOOK_ALL = 63;
  
@@ -31410,7 +31861,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityMa
  		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aJSContext, aCID);
  	}
  
-@@ -73,7 +73,7 @@ public class nsIXPCSecurityManager exten
+@@ -73,7 +73,7 @@
  
  	public static final int ACCESS_SET_PROPERTY = 2;
  
@@ -31420,10 +31871,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/nsIXPCSecurityMa
  	}
  }
 \ No newline at end of file
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/XPCOM.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/XPCOM.java	2011-03-21 11:34:23.475731816 +0000
-@@ -140,25 +140,25 @@ public static final native int nsDynamic
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/XPCOM.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/XPCOM.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/XPCOM.java	2011-06-13 20:53:32.000000000 +0000
+@@ -140,25 +140,25 @@
   * @param src cast=(const void *),flags=no_out critical
   * @param size cast=(size_t)
   */
@@ -31455,7 +31906,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _JS_EvaluateUCScriptForPrincipals(mozillaPath, cx, obj, principals, chars, length, filename, lineno, retVal);
-@@ -167,8 +167,8 @@ public static final int JS_EvaluateUCScr
+@@ -167,8 +167,8 @@
  	}
  }
  /** @method flags=no_gen */
@@ -31466,7 +31917,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _NS_Free(mozillaPath, aPtr);
-@@ -177,8 +177,8 @@ public static final boolean NS_Free(byte
+@@ -177,8 +177,8 @@
  	}
  }
  /** @param result cast=(nsIComponentManager**) */
@@ -31477,7 +31928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _NS_GetComponentManager(result);
-@@ -187,8 +187,8 @@ public static final int NS_GetComponentM
+@@ -187,8 +187,8 @@
  	}
  }
  /** @param result cast=(nsIServiceManager**) */
@@ -31488,7 +31939,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _NS_GetServiceManager(result);
-@@ -201,8 +201,8 @@ public static final int NS_GetServiceMan
+@@ -201,8 +201,8 @@
   * @param binDirectory cast=(nsIFile *)
   * @param appFileLocationProvider cast=(nsIDirectoryServiceProvider *)
   */
@@ -31499,7 +31950,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _NS_InitXPCOM2(result, binDirectory, appFileLocationProvider);
-@@ -214,8 +214,8 @@ public static final int NS_InitXPCOM2(in
+@@ -214,8 +214,8 @@
   * @param path cast=(nsAString *),flags=struct
   * @param result cast=(nsILocalFile**)
   */
@@ -31510,7 +31961,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _NS_NewLocalFile(path, followLinks, result);
-@@ -224,8 +224,8 @@ public static final int NS_NewLocalFile(
+@@ -224,8 +224,8 @@
  	}
  }
  /** @method flags=new */
@@ -31521,7 +31972,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedCString_new();
-@@ -237,8 +237,8 @@ public static final int /*long*/ nsEmbed
+@@ -237,8 +237,8 @@
   * @method flags=new
   * @param aString cast=(const char *)
   */
@@ -31532,7 +31983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedCString_new(aString, length);
-@@ -250,8 +250,8 @@ public static final int /*long*/ nsEmbed
+@@ -250,8 +250,8 @@
   * @method flags=new
   * @param aString cast=(const char *)
   */
@@ -31543,7 +31994,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedCString_new(aString, length);
-@@ -263,8 +263,8 @@ public static final int /*long*/ nsEmbed
+@@ -263,8 +263,8 @@
   * @method flags=delete
   * @param ptr cast=(nsEmbedCString *)
   */
@@ -31554,7 +32005,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		_nsEmbedCString_delete(ptr);
-@@ -276,8 +276,8 @@ public static final void nsEmbedCString_
+@@ -276,8 +276,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsEmbedCString *)
   */
@@ -31565,7 +32016,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedCString_Length(ptr);
-@@ -289,8 +289,8 @@ public static final int nsEmbedCString_L
+@@ -289,8 +289,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsIScriptGlobalObject *)
   */
@@ -31576,7 +32027,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIScriptGlobalObject_EnsureScriptEnvironment(ptr, lang);
-@@ -302,8 +302,8 @@ public static final int nsIScriptGlobalO
+@@ -302,8 +302,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsIScriptGlobalObject *)
   */
@@ -31587,7 +32038,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIScriptGlobalObject_GetScriptGlobal(ptr, lang);
-@@ -315,8 +315,8 @@ public static final int /*long*/ nsIScri
+@@ -315,8 +315,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsIScriptGlobalObject *)
   */
@@ -31598,7 +32049,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIScriptGlobalObject_GetScriptContext(ptr, lang);
-@@ -328,8 +328,8 @@ public static final int /*long*/ nsIScri
+@@ -328,8 +328,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsIScriptContext *)
   */
@@ -31609,7 +32060,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIScriptContext_GetNativeContext(ptr);
-@@ -342,8 +342,8 @@ public static final int /*long*/ nsIScri
+@@ -342,8 +342,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsEmbedCString *)
   */
@@ -31620,7 +32071,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedCString_get(ptr);
-@@ -355,8 +355,8 @@ public static final int /*long*/ nsEmbed
+@@ -355,8 +355,8 @@
   * @method flags=delete
   * @param ptr cast=(nsID *)
   */
@@ -31631,7 +32082,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		_nsID_delete(ptr);
-@@ -365,8 +365,8 @@ public static final void nsID_delete(int
+@@ -365,8 +365,8 @@
  	}
  }
  /** @method flags=new */
@@ -31642,7 +32093,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsID_new();
-@@ -379,8 +379,8 @@ public static final int /*long*/ nsID_ne
+@@ -379,8 +379,8 @@
   * @param ptr cast=(nsID *)
   * @param other cast=(nsID *),flags=struct
   */
@@ -31653,7 +32104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsID_Equals(ptr, other);
-@@ -389,8 +389,8 @@ public static final int nsID_Equals(int
+@@ -389,8 +389,8 @@
  	}
  }
  /** @method flags=new */
@@ -31664,7 +32115,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedString_new();
-@@ -402,8 +402,8 @@ public static final int /*long*/ nsEmbed
+@@ -402,8 +402,8 @@
   * @method flags=new
   * @param aString cast=(PRUnichar *)
   */
@@ -31675,7 +32126,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedString_new(aString);
-@@ -415,8 +415,8 @@ public static final int /*long*/ nsEmbed
+@@ -415,8 +415,8 @@
   * @method flags=delete
   * @param ptr cast=(nsEmbedString *)
   */
@@ -31686,7 +32137,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		_nsEmbedString_delete(ptr);
-@@ -428,8 +428,8 @@ public static final void nsEmbedString_d
+@@ -428,8 +428,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsEmbedString *)
   */
@@ -31697,7 +32148,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedString_Length(ptr);
-@@ -441,8 +441,8 @@ public static final int nsEmbedString_Le
+@@ -441,8 +441,8 @@
   * @method flags=cpp
   * @param ptr cast=(nsEmbedString *)
   */
@@ -31708,7 +32159,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsEmbedString_get(ptr);
-@@ -455,8 +455,8 @@ public static final int /*long*/ nsEmbed
+@@ -455,8 +455,8 @@
   * @param ptr cast=(nsIMemory *)
   * @param size cast=(size_t)
   */
@@ -31719,7 +32170,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIMemory_Alloc(ptr, size);
-@@ -470,8 +470,8 @@ public static final int /*long*/ nsIMemo
+@@ -470,8 +470,8 @@
   * @param ptr2 cast=(void *)
   * @param size cast=(size_t)
   */
@@ -31730,7 +32181,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _nsIMemory_Realloc(ptr1, ptr2, size);
-@@ -480,8 +480,8 @@ public static final int /*long*/ nsIMemo
+@@ -480,8 +480,8 @@
  	}
  }
  /** @param functionLoad cast=(const nsDynamicFunctionLoad *) */
@@ -31741,7 +32192,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _XPCOMGlueLoadXULFunctions(functionLoad);
-@@ -509,8 +509,8 @@ public static final int XPCOMGlueShutdow
+@@ -509,8 +509,8 @@
  	}
  }
  
@@ -31752,7 +32203,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _Call(ptr);
-@@ -526,8 +526,8 @@ public static final int Call(int /*long*
+@@ -526,8 +526,8 @@
   * @param aFromSegment cast=(const char *)
   * @param aWriteCount cast=(PRUint32 *)
   */
@@ -31763,7 +32214,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _Call(ptr, aInStream, aClosure, aFromSegment, aToOffset, aCount, aWriteCount);
-@@ -543,8 +543,8 @@ public static final int /*long*/ Call(in
+@@ -543,8 +543,8 @@
   * @param aAppDirProvider cast=(nsIDirectoryServiceProvider *)
   * @param aStaticComponents cast=(nsStaticModuleInfo const *)
   */
@@ -31774,7 +32225,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _Call(ptr, aLibXULDirectory, aAppDirectory, aAppDirProvider, aStaticComponents, aStaticComponentsCount);
-@@ -553,8 +553,8 @@ public static final int Call(int /*long*
+@@ -553,8 +553,8 @@
  	}
  }
  
@@ -31785,7 +32236,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl);
-@@ -563,8 +563,8 @@ static final int VtblCall(int fnNumber,
+@@ -563,8 +563,8 @@
  	}
  }
  
@@ -31796,7 +32247,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -572,8 +572,8 @@ static final int VtblCall(int fnNumber,
+@@ -572,8 +572,8 @@
  		lock.unlock();
  	}
  }
@@ -31807,7 +32258,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -581,8 +581,8 @@ static final int VtblCall(int fnNumber,
+@@ -581,8 +581,8 @@
  		lock.unlock();
  	}
  }
@@ -31818,7 +32269,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -590,8 +590,8 @@ static final int VtblCall(int fnNumber,
+@@ -590,8 +590,8 @@
  		lock.unlock();
  	}
  }
@@ -31829,7 +32280,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -599,8 +599,8 @@ static final int VtblCall(int fnNumber,
+@@ -599,8 +599,8 @@
  		lock.unlock();
  	}
  }
@@ -31840,7 +32291,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -608,8 +608,8 @@ static final int VtblCall(int fnNumber,
+@@ -608,8 +608,8 @@
  		lock.unlock();
  	}
  }
@@ -31851,7 +32302,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -617,8 +617,8 @@ static final int VtblCall(int fnNumber,
+@@ -617,8 +617,8 @@
  		lock.unlock();
  	}
  }
@@ -31862,7 +32313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -626,8 +626,8 @@ static final int VtblCall(int fnNumber,
+@@ -626,8 +626,8 @@
  		lock.unlock();
  	}
  }
@@ -31873,7 +32324,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -635,8 +635,8 @@ static final int VtblCall(int fnNumber,
+@@ -635,8 +635,8 @@
  		lock.unlock();
  	}
  }
@@ -31884,7 +32335,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -644,8 +644,8 @@ static final int VtblCall(int fnNumber,
+@@ -644,8 +644,8 @@
  		lock.unlock();
  	}
  }
@@ -31895,7 +32346,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0);
-@@ -654,8 +654,8 @@ static final int VtblCall(int fnNumber,
+@@ -654,8 +654,8 @@
  	}
  }
  
@@ -31906,7 +32357,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -663,8 +663,8 @@ static final int VtblCall(int fnNumber,
+@@ -663,8 +663,8 @@
  		lock.unlock();
  	}
  }
@@ -31917,7 +32368,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -672,8 +672,8 @@ static final int VtblCall(int fnNumber,
+@@ -672,8 +672,8 @@
  		lock.unlock();
  	}
  }
@@ -31928,7 +32379,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -681,8 +681,8 @@ static final int VtblCall(int fnNumber,
+@@ -681,8 +681,8 @@
  		lock.unlock();
  	}
  }
@@ -31939,7 +32390,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -690,8 +690,8 @@ static final int VtblCall(int fnNumber,
+@@ -690,8 +690,8 @@
  		lock.unlock();
  	}
  }
@@ -31950,7 +32401,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -699,8 +699,8 @@ static final int VtblCall(int fnNumber,
+@@ -699,8 +699,8 @@
  		lock.unlock();
  	}
  }
@@ -31961,7 +32412,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -708,8 +708,8 @@ static final int VtblCall(int fnNumber,
+@@ -708,8 +708,8 @@
  		lock.unlock();
  	}
  }
@@ -31972,7 +32423,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -717,8 +717,8 @@ static final int VtblCall(int fnNumber,
+@@ -717,8 +717,8 @@
  		lock.unlock();
  	}
  }
@@ -31983,7 +32434,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -726,8 +726,8 @@ static final int VtblCall(int fnNumber,
+@@ -726,8 +726,8 @@
  		lock.unlock();
  	}
  }
@@ -31994,7 +32445,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -735,8 +735,8 @@ static final int VtblCall(int fnNumber,
+@@ -735,8 +735,8 @@
  		lock.unlock();
  	}
  }
@@ -32005,7 +32456,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -744,8 +744,8 @@ static final int VtblCall(int fnNumber,
+@@ -744,8 +744,8 @@
  		lock.unlock();
  	}
  }
@@ -32016,7 +32467,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -753,8 +753,8 @@ static final int VtblCall(int fnNumber,
+@@ -753,8 +753,8 @@
  		lock.unlock();
  	}
  }
@@ -32027,7 +32478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -762,8 +762,8 @@ static final int VtblCall(int fnNumber,
+@@ -762,8 +762,8 @@
  		lock.unlock();
  	}
  }
@@ -32038,7 +32489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -771,8 +771,8 @@ static final int VtblCall(int fnNumber,
+@@ -771,8 +771,8 @@
  		lock.unlock();
  	}
  }
@@ -32049,7 +32500,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -780,8 +780,8 @@ static final int VtblCall(int fnNumber,
+@@ -780,8 +780,8 @@
  		lock.unlock();
  	}
  }
@@ -32060,7 +32511,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -789,8 +789,8 @@ static final int VtblCall(int fnNumber,
+@@ -789,8 +789,8 @@
  		lock.unlock();
  	}
  }
@@ -32071,7 +32522,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -798,8 +798,8 @@ static final int VtblCall(int fnNumber,
+@@ -798,8 +798,8 @@
  		lock.unlock();
  	}
  }
@@ -32082,7 +32533,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -807,8 +807,8 @@ static final int VtblCall(int fnNumber,
+@@ -807,8 +807,8 @@
  		lock.unlock();
  	}
  }
@@ -32093,7 +32544,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -816,8 +816,8 @@ static final int VtblCall(int fnNumber,
+@@ -816,8 +816,8 @@
  		lock.unlock();
  	}
  }
@@ -32104,7 +32555,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -825,8 +825,8 @@ static final int VtblCall(int fnNumber,
+@@ -825,8 +825,8 @@
  		lock.unlock();
  	}
  }
@@ -32115,7 +32566,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -834,8 +834,8 @@ static final int VtblCall(int fnNumber,
+@@ -834,8 +834,8 @@
  		lock.unlock();
  	}
  }
@@ -32126,7 +32577,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -843,8 +843,8 @@ static final int VtblCall(int fnNumber,
+@@ -843,8 +843,8 @@
  		lock.unlock();
  	}
  }
@@ -32137,7 +32588,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -852,8 +852,8 @@ static final int VtblCall(int fnNumber,
+@@ -852,8 +852,8 @@
  		lock.unlock();
  	}
  }
@@ -32148,7 +32599,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -862,8 +862,8 @@ static final int VtblCall(int fnNumber,
+@@ -862,8 +862,8 @@
  	}
  }
  
@@ -32159,7 +32610,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -871,8 +871,8 @@ static final int VtblCall(int fnNumber,
+@@ -871,8 +871,8 @@
  		lock.unlock();
  	}
  }
@@ -32170,7 +32621,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -880,8 +880,8 @@ static final int VtblCall(int fnNumber,
+@@ -880,8 +880,8 @@
  		lock.unlock();
  	}
  }
@@ -32181,7 +32632,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -889,8 +889,8 @@ static final int VtblCall(int fnNumber,
+@@ -889,8 +889,8 @@
  		lock.unlock();
  	}
  }
@@ -32192,7 +32643,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -898,8 +898,8 @@ static final int VtblCall(int fnNumber,
+@@ -898,8 +898,8 @@
  		lock.unlock();
  	}
  }
@@ -32203,7 +32654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -907,8 +907,8 @@ static final int VtblCall(int fnNumber,
+@@ -907,8 +907,8 @@
  		lock.unlock();
  	}
  }
@@ -32214,7 +32665,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1);
-@@ -916,8 +916,8 @@ static final int VtblCall(int fnNumber,
+@@ -916,8 +916,8 @@
  		lock.unlock();
  	}
  }
@@ -32225,7 +32676,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -925,8 +925,8 @@ static final int VtblCall(int fnNumber,
+@@ -925,8 +925,8 @@
  		lock.unlock();
  	}
  }
@@ -32236,7 +32687,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -934,8 +934,8 @@ static final int VtblCall(int fnNumber,
+@@ -934,8 +934,8 @@
  		lock.unlock();
  	}
  }
@@ -32247,7 +32698,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -944,8 +944,8 @@ static final int VtblCall(int fnNumber,
+@@ -944,8 +944,8 @@
  	}
  }
  
@@ -32258,7 +32709,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -953,8 +953,8 @@ static final int VtblCall(int fnNumber,
+@@ -953,8 +953,8 @@
  		lock.unlock();
  	}
  }
@@ -32269,7 +32720,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -963,8 +963,8 @@ static final int VtblCall(int fnNumber,
+@@ -963,8 +963,8 @@
  	}
  }
  
@@ -32280,7 +32731,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -972,8 +972,8 @@ static final int VtblCall(int fnNumber,
+@@ -972,8 +972,8 @@
  		lock.unlock();
  	}
  }
@@ -32291,7 +32742,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -981,8 +981,8 @@ static final int VtblCall(int fnNumber,
+@@ -981,8 +981,8 @@
  		lock.unlock();
  	}
  }
@@ -32302,7 +32753,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -990,8 +990,8 @@ static final int VtblCall(int fnNumber,
+@@ -990,8 +990,8 @@
  		lock.unlock();
  	}
  }
@@ -32313,7 +32764,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -999,8 +999,8 @@ static final int VtblCall(int fnNumber,
+@@ -999,8 +999,8 @@
  		lock.unlock();
  	}
  }
@@ -32324,7 +32775,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1008,8 +1008,8 @@ static final int VtblCall(int fnNumber,
+@@ -1008,8 +1008,8 @@
  		lock.unlock();
  	}
  }
@@ -32335,7 +32786,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1017,8 +1017,8 @@ static final int VtblCall(int fnNumber,
+@@ -1017,8 +1017,8 @@
  		lock.unlock();
  	}
  }
@@ -32346,7 +32797,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1026,8 +1026,8 @@ static final int VtblCall(int fnNumber,
+@@ -1026,8 +1026,8 @@
  		lock.unlock();
  	}
  }
@@ -32357,7 +32808,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1035,8 +1035,8 @@ static final int VtblCall(int fnNumber,
+@@ -1035,8 +1035,8 @@
  		lock.unlock();
  	}
  }
@@ -32368,7 +32819,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1044,8 +1044,8 @@ static final int VtblCall(int fnNumber,
+@@ -1044,8 +1044,8 @@
  		lock.unlock();
  	}
  }
@@ -32379,7 +32830,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1053,8 +1053,8 @@ static final int VtblCall(int fnNumber,
+@@ -1053,8 +1053,8 @@
  		lock.unlock();
  	}
  }
@@ -32390,7 +32841,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1062,8 +1062,8 @@ static final int VtblCall(int fnNumber,
+@@ -1062,8 +1062,8 @@
  		lock.unlock();
  	}
  }
@@ -32401,7 +32852,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1071,8 +1071,8 @@ static final int VtblCall(int fnNumber,
+@@ -1071,8 +1071,8 @@
  		lock.unlock();
  	}
  }
@@ -32412,7 +32863,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1080,8 +1080,8 @@ static final int VtblCall(int fnNumber,
+@@ -1080,8 +1080,8 @@
  		lock.unlock();
  	}
  }
@@ -32423,7 +32874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1089,8 +1089,8 @@ static final int VtblCall(int fnNumber,
+@@ -1089,8 +1089,8 @@
  		lock.unlock();
  	}
  }
@@ -32434,7 +32885,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1098,8 +1098,8 @@ static final int VtblCall(int fnNumber,
+@@ -1098,8 +1098,8 @@
  		lock.unlock();
  	}
  }
@@ -32445,7 +32896,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1107,8 +1107,8 @@ static final int VtblCall(int fnNumber,
+@@ -1107,8 +1107,8 @@
  		lock.unlock();
  	}
  }
@@ -32456,7 +32907,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1116,8 +1116,8 @@ static final int VtblCall(int fnNumber,
+@@ -1116,8 +1116,8 @@
  		lock.unlock();
  	}
  }
@@ -32467,7 +32918,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1125,8 +1125,8 @@ static final int VtblCall(int fnNumber,
+@@ -1125,8 +1125,8 @@
  		lock.unlock();
  	}
  }
@@ -32478,7 +32929,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1134,8 +1134,8 @@ static final int VtblCall(int fnNumber,
+@@ -1134,8 +1134,8 @@
  		lock.unlock();
  	}
  }
@@ -32489,7 +32940,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1143,8 +1143,8 @@ static final int VtblCall(int fnNumber,
+@@ -1143,8 +1143,8 @@
  		lock.unlock();
  	}
  }
@@ -32500,7 +32951,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1152,8 +1152,8 @@ static final int VtblCall(int fnNumber,
+@@ -1152,8 +1152,8 @@
  		lock.unlock();
  	}
  }
@@ -32511,7 +32962,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1161,8 +1161,8 @@ static final int VtblCall(int fnNumber,
+@@ -1161,8 +1161,8 @@
  		lock.unlock();
  	}
  }
@@ -32522,7 +32973,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1170,8 +1170,8 @@ static final int VtblCall(int fnNumber,
+@@ -1170,8 +1170,8 @@
  		lock.unlock();
  	}
  }
@@ -32533,7 +32984,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1179,8 +1179,8 @@ static final int VtblCall(int fnNumber,
+@@ -1179,8 +1179,8 @@
  		lock.unlock();
  	}
  }
@@ -32544,7 +32995,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1188,8 +1188,8 @@ static final int VtblCall(int fnNumber,
+@@ -1188,8 +1188,8 @@
  		lock.unlock();
  	}
  }
@@ -32555,7 +33006,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1197,8 +1197,8 @@ static final int VtblCall(int fnNumber,
+@@ -1197,8 +1197,8 @@
  		lock.unlock();
  	}
  }
@@ -32566,7 +33017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1206,8 +1206,8 @@ static final int VtblCall(int fnNumber,
+@@ -1206,8 +1206,8 @@
  		lock.unlock();
  	}
  }
@@ -32577,7 +33028,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1215,8 +1215,8 @@ static final int VtblCall(int fnNumber,
+@@ -1215,8 +1215,8 @@
  		lock.unlock();
  	}
  }
@@ -32588,7 +33039,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1224,8 +1224,8 @@ static final int VtblCall(int fnNumber,
+@@ -1224,8 +1224,8 @@
  		lock.unlock();
  	}
  }
@@ -32599,7 +33050,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1233,8 +1233,8 @@ static final int VtblCall(int fnNumber,
+@@ -1233,8 +1233,8 @@
  		lock.unlock();
  	}
  }
@@ -32610,7 +33061,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1242,8 +1242,8 @@ static final int VtblCall(int fnNumber,
+@@ -1242,8 +1242,8 @@
  		lock.unlock();
  	}
  }
@@ -32621,7 +33072,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1251,8 +1251,8 @@ static final int VtblCall(int fnNumber,
+@@ -1251,8 +1251,8 @@
  		lock.unlock();
  	}
  }
@@ -32632,7 +33083,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1260,8 +1260,8 @@ static final int VtblCall(int fnNumber,
+@@ -1260,8 +1260,8 @@
  		lock.unlock();
  	}
  }
@@ -32643,7 +33094,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1269,8 +1269,8 @@ static final int VtblCall(int fnNumber,
+@@ -1269,8 +1269,8 @@
  		lock.unlock();
  	}
  }
@@ -32654,7 +33105,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1278,8 +1278,8 @@ static final int VtblCall(int fnNumber,
+@@ -1278,8 +1278,8 @@
  		lock.unlock();
  	}
  }
@@ -32665,7 +33116,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1287,8 +1287,8 @@ static final int VtblCall(int fnNumber,
+@@ -1287,8 +1287,8 @@
  		lock.unlock();
  	}
  }
@@ -32676,7 +33127,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1296,8 +1296,8 @@ static final int VtblCall(int fnNumber,
+@@ -1296,8 +1296,8 @@
  		lock.unlock();
  	}
  }
@@ -32687,7 +33138,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1305,8 +1305,8 @@ static final int VtblCall(int fnNumber,
+@@ -1305,8 +1305,8 @@
  		lock.unlock();
  	}
  }
@@ -32698,7 +33149,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1314,8 +1314,8 @@ static final int VtblCall(int fnNumber,
+@@ -1314,8 +1314,8 @@
  		lock.unlock();
  	}
  }
@@ -32709,7 +33160,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1323,8 +1323,8 @@ static final int VtblCall(int fnNumber,
+@@ -1323,8 +1323,8 @@
  		lock.unlock();
  	}
  }
@@ -32720,7 +33171,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1332,8 +1332,8 @@ static final int VtblCall(int fnNumber,
+@@ -1332,8 +1332,8 @@
  		lock.unlock();
  	}
  }
@@ -32731,7 +33182,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2);
-@@ -1342,8 +1342,8 @@ static final int VtblCall(int fnNumber,
+@@ -1342,8 +1342,8 @@
  	}
  }
  
@@ -32742,7 +33193,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1351,8 +1351,8 @@ static final int VtblCall(int fnNumber,
+@@ -1351,8 +1351,8 @@
  		lock.unlock();
  	}
  }
@@ -32753,7 +33204,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1360,8 +1360,8 @@ static final int VtblCall(int fnNumber,
+@@ -1360,8 +1360,8 @@
  		lock.unlock();
  	}
  }
@@ -32764,7 +33215,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1369,8 +1369,8 @@ static final int VtblCall(int fnNumber,
+@@ -1369,8 +1369,8 @@
  		lock.unlock();
  	}
  }
@@ -32775,7 +33226,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1378,8 +1378,8 @@ static final int VtblCall(int fnNumber,
+@@ -1378,8 +1378,8 @@
  		lock.unlock();
  	}
  }
@@ -32786,7 +33237,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1387,8 +1387,8 @@ static final int VtblCall(int fnNumber,
+@@ -1387,8 +1387,8 @@
  		lock.unlock();
  	}
  }
@@ -32797,7 +33248,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1396,8 +1396,8 @@ static final int VtblCall(int fnNumber,
+@@ -1396,8 +1396,8 @@
  		lock.unlock();
  	}
  }
@@ -32808,7 +33259,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1405,8 +1405,8 @@ static final int VtblCall(int fnNumber,
+@@ -1405,8 +1405,8 @@
  		lock.unlock();
  	}
  }
@@ -32819,7 +33270,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1414,8 +1414,8 @@ static final int VtblCall(int fnNumber,
+@@ -1414,8 +1414,8 @@
  		lock.unlock();
  	}
  }
@@ -32830,7 +33281,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1423,8 +1423,8 @@ static final int VtblCall(int fnNumber,
+@@ -1423,8 +1423,8 @@
  		lock.unlock();
  	}
  }
@@ -32841,7 +33292,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1432,8 +1432,8 @@ static final int VtblCall(int fnNumber,
+@@ -1432,8 +1432,8 @@
  		lock.unlock();
  	}
  }
@@ -32852,7 +33303,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1441,8 +1441,8 @@ static final int VtblCall(int fnNumber,
+@@ -1441,8 +1441,8 @@
  		lock.unlock();
  	}
  }
@@ -32863,7 +33314,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1450,8 +1450,8 @@ static final int VtblCall(int fnNumber,
+@@ -1450,8 +1450,8 @@
  		lock.unlock();
  	}
  }
@@ -32874,7 +33325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1459,8 +1459,8 @@ static final int VtblCall(int fnNumber,
+@@ -1459,8 +1459,8 @@
  		lock.unlock();
  	}
  }
@@ -32885,7 +33336,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1468,8 +1468,8 @@ static final int VtblCall(int fnNumber,
+@@ -1468,8 +1468,8 @@
  		lock.unlock();
  	}
  }
@@ -32896,7 +33347,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1477,8 +1477,8 @@ static final int VtblCall(int fnNumber,
+@@ -1477,8 +1477,8 @@
  		lock.unlock();
  	}
  }
@@ -32907,7 +33358,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1486,8 +1486,8 @@ static final int VtblCall(int fnNumber,
+@@ -1486,8 +1486,8 @@
  		lock.unlock();
  	}
  }
@@ -32918,7 +33369,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1495,8 +1495,8 @@ static final int VtblCall(int fnNumber,
+@@ -1495,8 +1495,8 @@
  		lock.unlock();
  	}
  }
@@ -32929,7 +33380,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1504,8 +1504,8 @@ static final int VtblCall(int fnNumber,
+@@ -1504,8 +1504,8 @@
  		lock.unlock();
  	}
  }
@@ -32940,7 +33391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1513,8 +1513,8 @@ static final int VtblCall(int fnNumber,
+@@ -1513,8 +1513,8 @@
  		lock.unlock();
  	}
  }
@@ -32951,7 +33402,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1522,8 +1522,8 @@ static final int VtblCall(int fnNumber,
+@@ -1522,8 +1522,8 @@
  		lock.unlock();
  	}
  }
@@ -32962,7 +33413,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1531,8 +1531,8 @@ static final int VtblCall(int fnNumber,
+@@ -1531,8 +1531,8 @@
  		lock.unlock();
  	}
  }
@@ -32973,7 +33424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1540,8 +1540,8 @@ static final int VtblCall(int fnNumber,
+@@ -1540,8 +1540,8 @@
  		lock.unlock();
  	}
  }
@@ -32984,7 +33435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1549,8 +1549,8 @@ static final int VtblCall(int fnNumber,
+@@ -1549,8 +1549,8 @@
  		lock.unlock();
  	}
  }
@@ -32995,7 +33446,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1558,8 +1558,8 @@ static final int VtblCall(int fnNumber,
+@@ -1558,8 +1558,8 @@
  		lock.unlock();
  	}
  }
@@ -33006,7 +33457,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1567,8 +1567,8 @@ static final int VtblCall(int fnNumber,
+@@ -1567,8 +1567,8 @@
  		lock.unlock();
  	}
  }
@@ -33017,7 +33468,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1576,8 +1576,8 @@ static final int VtblCall(int fnNumber,
+@@ -1576,8 +1576,8 @@
  		lock.unlock();
  	}
  }
@@ -33028,7 +33479,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1585,8 +1585,8 @@ static final int VtblCall(int fnNumber,
+@@ -1585,8 +1585,8 @@
  		lock.unlock();
  	}
  }
@@ -33039,7 +33490,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1594,8 +1594,8 @@ static final int VtblCall(int fnNumber,
+@@ -1594,8 +1594,8 @@
  		lock.unlock();
  	}
  }
@@ -33050,7 +33501,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1603,8 +1603,8 @@ static final int VtblCall(int fnNumber,
+@@ -1603,8 +1603,8 @@
  		lock.unlock();
  	}
  }
@@ -33061,7 +33512,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1612,8 +1612,8 @@ static final int VtblCall(int fnNumber,
+@@ -1612,8 +1612,8 @@
  		lock.unlock();
  	}
  }
@@ -33072,7 +33523,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1621,8 +1621,8 @@ static final int VtblCall(int fnNumber,
+@@ -1621,8 +1621,8 @@
  		lock.unlock();
  	}
  }
@@ -33083,7 +33534,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1630,8 +1630,8 @@ static final int VtblCall(int fnNumber,
+@@ -1630,8 +1630,8 @@
  		lock.unlock();
  	}
  }
@@ -33094,7 +33545,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1639,8 +1639,8 @@ static final int VtblCall(int fnNumber,
+@@ -1639,8 +1639,8 @@
  		lock.unlock();
  	}
  }
@@ -33105,7 +33556,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3);
-@@ -1649,8 +1649,8 @@ static final int VtblCall(int fnNumber,
+@@ -1649,8 +1649,8 @@
  	}
  }
  
@@ -33116,7 +33567,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1658,8 +1658,8 @@ static final int VtblCall(int fnNumber,
+@@ -1658,8 +1658,8 @@
  		lock.unlock();
  	}
  }
@@ -33127,7 +33578,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1667,8 +1667,8 @@ static final int VtblCall(int fnNumber,
+@@ -1667,8 +1667,8 @@
  		lock.unlock();
  	}
  }
@@ -33138,7 +33589,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1676,8 +1676,8 @@ static final int VtblCall(int fnNumber,
+@@ -1676,8 +1676,8 @@
  		lock.unlock();
  	}
  }
@@ -33149,7 +33600,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1685,8 +1685,8 @@ static final int VtblCall(int fnNumber,
+@@ -1685,8 +1685,8 @@
  		lock.unlock();
  	}
  }
@@ -33160,7 +33611,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1694,8 +1694,8 @@ static final int VtblCall(int fnNumber,
+@@ -1694,8 +1694,8 @@
  		lock.unlock();
  	}
  }
@@ -33171,7 +33622,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1703,8 +1703,8 @@ static final int VtblCall(int fnNumber,
+@@ -1703,8 +1703,8 @@
  		lock.unlock();
  	}
  }
@@ -33182,7 +33633,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1712,8 +1712,8 @@ static final int VtblCall(int fnNumber,
+@@ -1712,8 +1712,8 @@
  		lock.unlock();
  	}
  }
@@ -33193,7 +33644,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1721,8 +1721,8 @@ static final int VtblCall(int fnNumber,
+@@ -1721,8 +1721,8 @@
  		lock.unlock();
  	}
  }
@@ -33204,7 +33655,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1730,8 +1730,8 @@ static final int VtblCall(int fnNumber,
+@@ -1730,8 +1730,8 @@
  		lock.unlock();
  	}
  }
@@ -33215,7 +33666,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1740,8 +1740,8 @@ static final int VtblCall(int fnNumber,
+@@ -1740,8 +1740,8 @@
  	}
  }
  
@@ -33226,7 +33677,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1749,8 +1749,8 @@ static final int VtblCall(int fnNumber,
+@@ -1749,8 +1749,8 @@
  		lock.unlock();
  	}
  }
@@ -33237,7 +33688,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1758,8 +1758,8 @@ static final int VtblCall(int fnNumber,
+@@ -1758,8 +1758,8 @@
  		lock.unlock();
  	}
  }
@@ -33248,7 +33699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1767,8 +1767,8 @@ static final int VtblCall(int fnNumber,
+@@ -1767,8 +1767,8 @@
  		lock.unlock();
  	}
  }
@@ -33259,7 +33710,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4);
-@@ -1777,8 +1777,8 @@ static final int VtblCall(int fnNumber,
+@@ -1777,8 +1777,8 @@
  	}
  }
  
@@ -33270,7 +33721,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1786,8 +1786,8 @@ static final int VtblCall(int fnNumber,
+@@ -1786,8 +1786,8 @@
  		lock.unlock();
  	}
  }
@@ -33281,7 +33732,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1795,8 +1795,8 @@ static final int VtblCall(int fnNumber,
+@@ -1795,8 +1795,8 @@
  		lock.unlock();
  	}
  }
@@ -33292,7 +33743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1804,8 +1804,8 @@ static final int VtblCall(int fnNumber,
+@@ -1804,8 +1804,8 @@
  		lock.unlock();
  	}
  }
@@ -33303,7 +33754,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1813,8 +1813,8 @@ static final int VtblCall(int fnNumber,
+@@ -1813,8 +1813,8 @@
  		lock.unlock();
  	}
  }
@@ -33314,7 +33765,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1822,8 +1822,8 @@ static final int VtblCall(int fnNumber,
+@@ -1822,8 +1822,8 @@
  		lock.unlock();
  	}
  }
@@ -33325,7 +33776,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1831,8 +1831,8 @@ static final int VtblCall(int fnNumber,
+@@ -1831,8 +1831,8 @@
  		lock.unlock();
  	}
  }
@@ -33336,7 +33787,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1841,8 +1841,8 @@ static final int VtblCall(int fnNumber,
+@@ -1841,8 +1841,8 @@
  	}
  }
  
@@ -33347,7 +33798,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1850,8 +1850,8 @@ static final int VtblCall(int fnNumber,
+@@ -1850,8 +1850,8 @@
  		lock.unlock();
  	}
  }
@@ -33358,7 +33809,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1859,8 +1859,8 @@ static final int VtblCall(int fnNumber,
+@@ -1859,8 +1859,8 @@
  		lock.unlock();
  	}
  }
@@ -33369,7 +33820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1868,8 +1868,8 @@ static final int VtblCall(int fnNumber,
+@@ -1868,8 +1868,8 @@
  		lock.unlock();
  	}
  }
@@ -33380,7 +33831,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1878,8 +1878,8 @@ static final int VtblCall(int fnNumber,
+@@ -1878,8 +1878,8 @@
  	}
  }
  
@@ -33391,7 +33842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1887,8 +1887,8 @@ static final int VtblCall(int fnNumber,
+@@ -1887,8 +1887,8 @@
  		lock.unlock();
  	}
  }
@@ -33402,7 +33853,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1896,8 +1896,8 @@ static final int VtblCall(int fnNumber,
+@@ -1896,8 +1896,8 @@
  		lock.unlock();
  	}
  }
@@ -33413,7 +33864,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1905,8 +1905,8 @@ static final int VtblCall(int fnNumber,
+@@ -1905,8 +1905,8 @@
  		lock.unlock();
  	}
  }
@@ -33424,7 +33875,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1914,8 +1914,8 @@ static final int VtblCall(int fnNumber,
+@@ -1914,8 +1914,8 @@
  		lock.unlock();
  	}
  }
@@ -33435,7 +33886,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1923,8 +1923,8 @@ static final int VtblCall(int fnNumber,
+@@ -1923,8 +1923,8 @@
  		lock.unlock();
  	}
  }
@@ -33446,7 +33897,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1932,8 +1932,8 @@ static final int VtblCall(int fnNumber,
+@@ -1932,8 +1932,8 @@
  		lock.unlock();
  	}
  }
@@ -33457,7 +33908,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1941,8 +1941,8 @@ static final int VtblCall(int fnNumber,
+@@ -1941,8 +1941,8 @@
  		lock.unlock();
  	}
  }
@@ -33468,7 +33919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1950,8 +1950,8 @@ static final int VtblCall(int fnNumber,
+@@ -1950,8 +1950,8 @@
  		lock.unlock();
  	}
  }
@@ -33479,7 +33930,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1959,8 +1959,8 @@ static final int VtblCall(int fnNumber,
+@@ -1959,8 +1959,8 @@
  		lock.unlock();
  	}
  }
@@ -33490,7 +33941,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1968,8 +1968,8 @@ static final int VtblCall(int fnNumber,
+@@ -1968,8 +1968,8 @@
  		lock.unlock();
  	}
  }
@@ -33501,7 +33952,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1977,8 +1977,8 @@ static final int VtblCall(int fnNumber,
+@@ -1977,8 +1977,8 @@
  		lock.unlock();
  	}
  }
@@ -33512,7 +33963,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1986,8 +1986,8 @@ static final int VtblCall(int fnNumber,
+@@ -1986,8 +1986,8 @@
  		lock.unlock();
  	}
  }
@@ -33523,7 +33974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -1995,8 +1995,8 @@ static final int VtblCall(int fnNumber,
+@@ -1995,8 +1995,8 @@
  		lock.unlock();
  	}
  }
@@ -33534,7 +33985,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -2004,8 +2004,8 @@ static final int VtblCall(int fnNumber,
+@@ -2004,8 +2004,8 @@
  		lock.unlock();
  	}
  }
@@ -33545,7 +33996,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -2013,8 +2013,8 @@ static final int VtblCall(int fnNumber,
+@@ -2013,8 +2013,8 @@
  		lock.unlock();
  	}
  }
@@ -33556,7 +34007,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -2022,8 +2022,8 @@ static final int VtblCall(int fnNumber,
+@@ -2022,8 +2022,8 @@
  		lock.unlock();
  	}
  }
@@ -33567,7 +34018,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5);
-@@ -2032,8 +2032,8 @@ static final int VtblCall(int fnNumber,
+@@ -2032,8 +2032,8 @@
  	}
  }
  
@@ -33578,7 +34029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2041,8 +2041,8 @@ static final int VtblCall(int fnNumber,
+@@ -2041,8 +2041,8 @@
  		lock.unlock();
  	}
  }
@@ -33589,7 +34040,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2050,8 +2050,8 @@ static final int VtblCall(int fnNumber,
+@@ -2050,8 +2050,8 @@
  		lock.unlock();
  	}
  }
@@ -33600,7 +34051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2059,8 +2059,8 @@ static final int VtblCall(int fnNumber,
+@@ -2059,8 +2059,8 @@
  		lock.unlock();
  	}
  }
@@ -33611,7 +34062,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2068,8 +2068,8 @@ static final int VtblCall(int fnNumber,
+@@ -2068,8 +2068,8 @@
  		lock.unlock();
  	}
  }
@@ -33622,7 +34073,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2077,8 +2077,8 @@ static final int VtblCall(int fnNumber,
+@@ -2077,8 +2077,8 @@
  		lock.unlock();
  	}
  }
@@ -33633,7 +34084,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2086,8 +2086,8 @@ static final int VtblCall(int fnNumber,
+@@ -2086,8 +2086,8 @@
  		lock.unlock();
  	}
  }
@@ -33644,7 +34095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2095,8 +2095,8 @@ static final int VtblCall(int fnNumber,
+@@ -2095,8 +2095,8 @@
  		lock.unlock();
  	}
  }
@@ -33655,7 +34106,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2104,8 +2104,8 @@ static final int VtblCall(int fnNumber,
+@@ -2104,8 +2104,8 @@
  		lock.unlock();
  	}
  }
@@ -33666,7 +34117,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2113,8 +2113,8 @@ static final int VtblCall(int fnNumber,
+@@ -2113,8 +2113,8 @@
  		lock.unlock();
  	}
  }
@@ -33677,7 +34128,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
-@@ -2123,8 +2123,8 @@ static final int VtblCall(int fnNumber,
+@@ -2123,8 +2123,8 @@
  	}
  }
  
@@ -33688,7 +34139,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-@@ -2132,8 +2132,8 @@ static final int VtblCall(int fnNumber,
+@@ -2132,8 +2132,8 @@
  		lock.unlock();
  	}
  }
@@ -33699,7 +34150,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-@@ -2141,8 +2141,8 @@ static final int VtblCall(int fnNumber,
+@@ -2141,8 +2141,8 @@
  		lock.unlock();
  	}
  }
@@ -33710,7 +34161,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-@@ -2150,8 +2150,8 @@ static final int VtblCall(int fnNumber,
+@@ -2150,8 +2150,8 @@
  		lock.unlock();
  	}
  }
@@ -33721,7 +34172,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
-@@ -2160,8 +2160,8 @@ static final int VtblCall(int fnNumber,
+@@ -2160,8 +2160,8 @@
  	}
  }
  
@@ -33732,7 +34183,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-@@ -2169,8 +2169,8 @@ static final int VtblCall(int fnNumber,
+@@ -2169,8 +2169,8 @@
  		lock.unlock();
  	}
  }
@@ -33743,7 +34194,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
-@@ -2178,8 +2178,8 @@ static final int VtblCall(int fnNumber,
+@@ -2178,8 +2178,8 @@
  		lock.unlock();
  	}
  }
@@ -33754,7 +34205,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-@@ -2187,8 +2187,8 @@ static final int VtblCall(int fnNumber,
+@@ -2187,8 +2187,8 @@
  		lock.unlock();
  	}
  }
@@ -33765,7 +34216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-@@ -2196,8 +2196,8 @@ static final int VtblCall(int fnNumber,
+@@ -2196,8 +2196,8 @@
  		lock.unlock();
  	}
  }
@@ -33776,7 +34227,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-@@ -2205,8 +2205,8 @@ static final int VtblCall(int fnNumber,
+@@ -2205,8 +2205,8 @@
  		lock.unlock();
  	}
  }
@@ -33787,7 +34238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
-@@ -2214,8 +2214,8 @@ static final int VtblCall(int fnNumber,
+@@ -2214,8 +2214,8 @@
  		lock.unlock();
  	}
  }
@@ -33798,7 +34249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
-@@ -2223,8 +2223,8 @@ static final int VtblCall(int fnNumber,
+@@ -2223,8 +2223,8 @@
  		lock.unlock();
  	}
  }
@@ -33809,7 +34260,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
-@@ -2232,8 +2232,8 @@ static final int VtblCall(int fnNumber,
+@@ -2232,8 +2232,8 @@
  		lock.unlock();
  	}
  }
@@ -33820,7 +34271,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-@@ -2241,8 +2241,8 @@ static final int VtblCall(int fnNumber,
+@@ -2241,8 +2241,8 @@
  		lock.unlock();
  	}
  }
@@ -33831,7 +34282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
-@@ -2250,8 +2250,8 @@ static final int VtblCall(int fnNumber,
+@@ -2250,8 +2250,8 @@
  		lock.unlock();
  	}
  }
@@ -33842,7 +34293,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
-@@ -2259,8 +2259,8 @@ static final int VtblCall(int fnNumber,
+@@ -2259,8 +2259,8 @@
  		lock.unlock();
  	}
  }
@@ -33853,10 +34304,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOM.java swt-g
  	lock.lock();
  	try {
  		return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/XPCOMObject.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/mozilla/XPCOMObject.java	2011-03-21 11:34:23.475731816 +0000
-@@ -21,7 +21,7 @@ public class XPCOMObject {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java swt-gtk-3.7//org/eclipse/swt/internal/mozilla/XPCOMObject.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/mozilla/XPCOMObject.java	2011-06-13 20:53:32.000000000 +0000
+@@ -21,7 +21,7 @@
  		IsSolaris = osName.startsWith ("sunos") || osName.startsWith("solaris"); //$NON-NLS-1$
  	}
  	
@@ -33865,7 +34316,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java
  
  	static private final int MAX_ARG_COUNT = 12;
  	static private final int MAX_VTABLE_LENGTH = 80;
-@@ -31,7 +31,7 @@ public class XPCOMObject {
+@@ -31,7 +31,7 @@
  	
  	
  public XPCOMObject (int[] argCounts) {
@@ -33874,7 +34325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java
  	synchronized (Callbacks) {
  		for (int i = 0, length = argCounts.length; i < length; i++) {
  			if ((Callbacks[i + OS_OFFSET][argCounts[i]]) == null) {
-@@ -42,737 +42,737 @@ public XPCOMObject (int[] argCounts) {
+@@ -42,737 +42,737 @@
  		}
  	}
  
@@ -34855,7 +35306,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java
  	XPCOM.memmove (pVtable, ppVtable, C.PTR_SIZEOF);
  	C.free (pVtable[0]);
  	C.free (ppVtable);	
-@@ -783,248 +783,248 @@ public void dispose() {
+@@ -783,248 +783,248 @@
  	ppVtable = 0;
  }
  	
@@ -35185,10 +35636,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/mozilla/XPCOMObject.java
  	return XPCOM.NS_ERROR_NOT_IMPLEMENTED;
  }
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-gtk-3.6.2/org/eclipse/swt/internal/opengl/glx/GLX.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/opengl/glx/GLX.java	2011-03-21 11:34:23.305734214 +0000
-@@ -231,8 +231,8 @@ public static final void glViewport(int
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-gtk-3.7//org/eclipse/swt/internal/opengl/glx/GLX.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/opengl/glx/GLX.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/opengl/glx/GLX.java	2011-06-13 20:53:32.000000000 +0000
+@@ -231,8 +231,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35199,7 +35650,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXChooseVisual(dpy, screen, attribList);
-@@ -245,8 +245,8 @@ public static final int /*long*/ glXChoo
+@@ -245,8 +245,8 @@
   * @param src cast=(GLXContext)
   * @param dst cast=(GLXContext)
   */
@@ -35210,7 +35661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		_glXCopyContext(dpy, src, dst, mask);
-@@ -258,8 +258,8 @@ public static final void glXCopyContext(
+@@ -258,8 +258,8 @@
   * @param dpy cast=(Display *)
   * @param shareList cast=(GLXContext)
   */
@@ -35221,7 +35672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXCreateContext(dpy, vis, shareList, direct);
-@@ -271,8 +271,8 @@ public static final int /*long*/ glXCrea
+@@ -271,8 +271,8 @@
   * @param dpy cast=(Display *)
   * @param pixmap cast=(Pixmap)
   */
@@ -35232,7 +35683,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXCreateGLXPixmap(dpy, vis, pixmap);
-@@ -284,8 +284,8 @@ public static final int /*long*/ glXCrea
+@@ -284,8 +284,8 @@
   * @param dpy cast=(Display *)
   * @param ctx cast=(GLXContext)
   */
@@ -35243,7 +35694,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		_glXDestroyContext(dpy, ctx);
-@@ -297,8 +297,8 @@ public static final void glXDestroyConte
+@@ -297,8 +297,8 @@
   * @param dpy cast=(Display *)
   * @param pix cast=(GLXPixmap)
   */
@@ -35254,7 +35705,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		_glXDestroyGLXPixmap(dpy, pix);
-@@ -307,8 +307,8 @@ public static final void glXDestroyGLXPi
+@@ -307,8 +307,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35265,7 +35716,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXGetClientString(dpy, name);
-@@ -317,8 +317,8 @@ public static final int /*long*/ glXGetC
+@@ -317,8 +317,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35276,7 +35727,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXGetConfig(dpy, vis, attrib, value);
-@@ -326,8 +326,8 @@ public static final int glXGetConfig(int
+@@ -326,8 +326,8 @@
  		lock.unlock();
  	}
  }
@@ -35287,7 +35738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXGetCurrentContext();
-@@ -335,8 +335,8 @@ public static final int /*long*/ glXGetC
+@@ -335,8 +335,8 @@
  		lock.unlock();
  	}
  }
@@ -35298,7 +35749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXGetCurrentDrawable();
-@@ -348,8 +348,8 @@ public static final int /*long*/ glXGetC
+@@ -348,8 +348,8 @@
   * @param dpy cast=(Display *)
   * @param ctx cast=(GLXContext)
   */
@@ -35309,7 +35760,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXIsDirect(dpy, ctx);
-@@ -362,8 +362,8 @@ public static final boolean glXIsDirect(
+@@ -362,8 +362,8 @@
   * @param drawable cast=(GLXDrawable)
   * @param ctx cast=(GLXContext)
   */
@@ -35320,7 +35771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXMakeCurrent(dpy, drawable, ctx);
-@@ -372,8 +372,8 @@ public static final boolean glXMakeCurre
+@@ -372,8 +372,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35331,7 +35782,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXQueryExtension(dpy, errorBase, eventBase);
-@@ -382,8 +382,8 @@ public static final boolean glXQueryExte
+@@ -382,8 +382,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35342,7 +35793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXQueryExtensionsString(dpy, screen);
-@@ -392,8 +392,8 @@ public static final int /*long*/ glXQuer
+@@ -392,8 +392,8 @@
  	}
  }
  /** @param dpy cast=(Display *) */
@@ -35353,7 +35804,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXQueryServerString(dpy, screen, name);
-@@ -406,8 +406,8 @@ public static final int /*long*/ glXQuer
+@@ -406,8 +406,8 @@
   * @param major flags=no_in
   * @param minor flags=no_in
   */
@@ -35364,7 +35815,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		return _glXQueryVersion(dpy, major, minor);
-@@ -419,8 +419,8 @@ public static final boolean glXQueryVers
+@@ -419,8 +419,8 @@
   * @param dpy cast=(Display *)
   * @param drawable cast=(GLXDrawable)
   */
@@ -35375,17 +35826,17 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/GLX.java swt-
  	lock.lock();
  	try {
  		_glXSwapBuffers(dpy, drawable);
-@@ -450,5 +450,5 @@ public static final void glXWaitX() {
+@@ -450,5 +450,5 @@
   * @param src cast=(const void *)
   * @param size cast=(size_t)
   */
 -public static final native void memmove(XVisualInfo dest, int /*long*/ src, int size);
 +public static final native void memmove(XVisualInfo dest, long /*int*/ src, int size);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java swt-gtk-3.6.2/org/eclipse/swt/internal/opengl/glx/XVisualInfo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/opengl/glx/XVisualInfo.java	2011-03-21 11:34:23.305734214 +0000
-@@ -12,7 +12,7 @@ package org.eclipse.swt.internal.opengl.
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java swt-gtk-3.7//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/opengl/glx/XVisualInfo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -12,7 +12,7 @@
  
  public class XVisualInfo {
  	/** @field cast=(Visual *) */
@@ -35394,10 +35845,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/opengl/glx/XVisualInfo.j
  	public int visualid;
  	public int screen;
  	public int depth;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ButtonDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ButtonDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ButtonDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ButtonDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -25,10 +25,10 @@ public ButtonDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ButtonDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ButtonDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ButtonDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ButtonDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -25,10 +25,10 @@
  void draw(Theme theme, GC gc, Rectangle bounds) {
  	int state = this.state[DrawData.WIDGET_WHOLE];
  
@@ -35411,7 +35862,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ButtonDrawData.jav
  		theme.transferClipping (gc, gtkStyle);
  		int indicator_size = theme.getWidgetProperty(radioButtonHandle, "indicator-size");
  		int indicator_spacing = theme.getWidgetProperty(radioButtonHandle, "indicator-spacing");
-@@ -74,8 +74,8 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -74,8 +74,8 @@
  	}
  	
  	if ((style & SWT.CHECK) != 0) {
@@ -35422,7 +35873,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ButtonDrawData.jav
  		theme.transferClipping (gc, gtkStyle);
  		int indicator_size = theme.getWidgetProperty(checkButtonHandle, "indicator-size");
  		int indicator_spacing = theme.getWidgetProperty(checkButtonHandle, "indicator-spacing");
-@@ -122,8 +122,8 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -122,15 +122,15 @@
  	
  
  	if ((style & SWT.PUSH) != 0) {
@@ -35433,10 +35884,27 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ButtonDrawData.jav
  		theme.transferClipping (gc, gtkStyle);		
  		int focus_line_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
  		int focus_padding = theme.getWidgetProperty(buttonHandle, "focus-padding");
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ComboDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ComboDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ComboDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ComboDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -24,9 +24,9 @@ public ComboDrawData() {
+ 		int border_width = OS.gtk_container_get_border_width(buttonHandle);
+ 		
+ 		GtkBorder default_border = new GtkBorder();
+-		int /*long*/ default_border_ptr = theme.getBorderProperty(buttonHandle, "default-border");
++		long /*int*/ default_border_ptr = theme.getBorderProperty(buttonHandle, "default-border");
+ 		if (default_border_ptr != 0) {
+ 			OS.memmove(default_border, default_border_ptr, GtkBorder.sizeof);
+ 			OS.gtk_border_free(default_border_ptr);
+@@ -139,7 +139,7 @@
+ 		}
+ 
+ 		GtkBorder default_outside_border = new GtkBorder();
+-		int /*long*/ default_outside_border_ptr = theme.getBorderProperty(buttonHandle, "default-outside-border");
++		long /*int*/ default_outside_border_ptr = theme.getBorderProperty(buttonHandle, "default-outside-border");
+ 		if (default_outside_border_ptr != 0) {
+ 			OS.memmove(default_outside_border, default_outside_border_ptr, GtkBorder.sizeof);
+ 			OS.gtk_border_free(default_outside_border_ptr);
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ComboDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ComboDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ComboDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ComboDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -24,9 +24,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35449,7 +35917,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ComboDrawData.java
  	theme.transferClipping(gc, gtkStyle);
  	
  	int x = bounds.x;
-@@ -61,10 +61,10 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -61,10 +61,10 @@
  		OS.gtk_paint_box(gtkStyle, drawable, state_type, shadow_type, null, buttonHandle, detail, arrow_button_x, y, arrow_button_width, height);
  	}		
  	byte[] arrow_detail = Converter.wcsToMbcs(null, "arrow", true);
@@ -35462,7 +35930,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ComboDrawData.java
  	gtkStyle = OS.gtk_widget_get_style(entryHandle);
  	theme.transferClipping(gc, gtkStyle);
  	state_type = getStateType(DrawData.WIDGET_WHOLE);
-@@ -100,8 +100,8 @@ int getStateType(int part) {
+@@ -100,8 +100,8 @@
  
  int hit(Theme theme, Point position, Rectangle bounds) {
  	if (!bounds.contains(position)) return DrawData.WIDGET_NOWHERE;
@@ -35473,10 +35941,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ComboDrawData.java
  	int interior_focus = theme.getWidgetProperty(buttonHandle, "interior-focus");
  	int focus_line_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
  	int focus_padding = theme.getWidgetProperty(buttonHandle, "focus-padding");
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/DrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/DrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -79,21 +79,21 @@ void draw(Theme theme, GC gc, Rectangle
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/DrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/DrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/DrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/DrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -79,21 +79,21 @@
  }
  
  void drawImage(Theme theme, Image image, GC gc, Rectangle bounds) {
@@ -35504,7 +35972,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java swt-
  			OS.g_object_unref(pixbuf);
  			//TODO - stretching
  			if (rendered != 0) {
-@@ -106,12 +106,12 @@ void drawImage(Theme theme, Image image,
+@@ -106,12 +106,12 @@
  }
  
  void drawText(Theme theme, String text, int flags, GC gc, Rectangle bounds) {
@@ -35521,7 +35989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java swt-
  	int[] width = new int[1], height = new int[1];
  	OS.pango_layout_get_size(layout, width, height);
  	OS.pango_layout_set_width(layout, bounds.width * OS.PANGO_SCALE);
-@@ -160,7 +160,7 @@ int getStateType(int part) {
+@@ -160,7 +160,7 @@
  	return state_type;
  }
  
@@ -35530,7 +35998,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java swt-
  	return theme.labelHandle;
  }
  
-@@ -169,9 +169,9 @@ int hit(Theme theme, Point position, Rec
+@@ -169,9 +169,9 @@
  }
  
  Rectangle measureText(Theme theme, String text, int flags, GC gc, Rectangle bounds) {
@@ -35542,10 +36010,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/DrawData.java swt-
  	if (bounds != null) OS.pango_layout_set_width(layout, bounds.width);
  	if ((flags & DrawData.DRAW_LEFT) != 0) {
  		OS.pango_layout_set_alignment(layout, OS.PANGO_ALIGN_LEFT);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ExpanderDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ExpanderDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -22,9 +22,9 @@ public ExpanderDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ExpanderDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ExpanderDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -22,9 +22,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35558,7 +36026,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.j
  	theme.transferClipping(gc, gtkStyle);
  	int state_type = getStateType(DrawData.WIDGET_WHOLE);
  	int expander_style = OS.GTK_EXPANDER_COLAPSED;
-@@ -38,7 +38,7 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -38,7 +38,7 @@
  
  int hit(Theme theme, Point position, Rectangle bounds) {
  	if (!bounds.contains(position)) return DrawData.WIDGET_NOWHERE;
@@ -35567,10 +36035,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ExpanderDrawData.j
  	int expander_size = theme.getWidgetProperty(treeHandle, "expander-size");
  	if (new Rectangle(bounds.x, bounds.y, expander_size, expander_size).contains(position)) {
  		return DrawData.WIDGET_WHOLE;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/GroupDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/GroupDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/GroupDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/GroupDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -29,9 +29,9 @@ public GroupDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/GroupDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/GroupDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/GroupDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/GroupDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -29,9 +29,9 @@
  static final int GROUP_HEADER_X = 9;
  static final int GROUP_HEADER_PAD = 2;
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35583,10 +36051,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/GroupDrawData.java
  	theme.transferClipping(gc, gtkStyle);
  	int xthickness = OS.gtk_style_get_xthickness(gtkStyle);
  	int ythickness = OS.gtk_style_get_ythickness(gtkStyle);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ProgressBarDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ProgressBarDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ProgressBarDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ProgressBarDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -22,9 +22,9 @@ public ProgressBarDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ProgressBarDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ProgressBarDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ProgressBarDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ProgressBarDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -22,9 +22,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35599,10 +36067,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ProgressBarDrawDat
  	theme.transferClipping(gc, gtkStyle);
  	byte[] detail = Converter.wcsToMbcs(null, "trough", true);
  	int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabFolderDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/TabFolderDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabFolderDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/TabFolderDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -31,9 +31,9 @@ public TabFolderDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/TabFolderDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/TabFolderDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/TabFolderDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/TabFolderDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -31,9 +31,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35615,10 +36083,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabFolderDrawData.
  	theme.transferClipping(gc, gtkStyle);
  	int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
  	height -= tabsHeight;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabItemDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/TabItemDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabItemDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/TabItemDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -27,8 +27,8 @@ public TabItemDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/TabItemDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/TabItemDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/TabItemDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/TabItemDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -27,8 +27,8 @@
  }
  
  Rectangle computeTrim(Theme theme, GC gc) {
@@ -35629,7 +36097,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabItemDrawData.ja
  	int hborder, vborder;
  	if (OS.GTK_VERSION >= OS.VERSION(2, 4, 0)) {
  		hborder = theme.getWidgetProperty(notebookHandle, "tab-hborder");
-@@ -50,9 +50,9 @@ Rectangle computeTrim(Theme theme, GC gc
+@@ -50,9 +50,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35642,10 +36110,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/TabItemDrawData.ja
  	theme.transferClipping(gc, gtkStyle);
  	int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
  	if ((state[DrawData.WIDGET_WHOLE] & DrawData.SELECTED) == 0) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/Theme.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/Theme.java	2011-03-21 11:34:23.315734069 +0000
-@@ -18,7 +18,7 @@ import org.eclipse.swt.internal.gtk.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk-3.7//org/eclipse/swt/internal/theme/Theme.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/Theme.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/Theme.java	2011-06-13 20:53:32.000000000 +0000
+@@ -18,7 +18,7 @@
  public class Theme {
  	Device device;
  	
@@ -35654,7 +36122,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  		frameHandle, entryHandle, checkButtonHandle, radioButtonHandle, 
  		notebookHandle, treeHandle, progressHandle, toolbarHandle,
  		labelHandle, separatorHandle;
-@@ -68,29 +68,29 @@ public Theme(Device device) {
+@@ -68,29 +68,29 @@
  }
  
  //TODO - share this code 
@@ -35692,7 +36160,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  			OS.memmove(maskLine, maskOffset, maskStride);
  			for (int x=0; x<w[0]; x++) {
  				if (maskLine[x * 3] == 0) {
-@@ -109,10 +109,10 @@ static int /*long*/ createPixbuf(Image i
+@@ -109,10 +109,10 @@
  		if (hasAlpha) {
  			byte [] alpha = data.alphaData;
  			int stride = OS.gdk_pixbuf_get_rowstride (pixbuf);
@@ -35705,7 +36173,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  				OS.memmove (line, offset, stride);
  				for (int x = 0; x < w [0]; x++) {
  					line [x*4+3] = alpha [y*w [0]+x];
-@@ -218,18 +218,18 @@ public Rectangle measureText(GC gc, Rect
+@@ -218,7 +218,7 @@
  	return data.measureText(this, text, flags, gc, bounds);
  }
  
@@ -35714,6 +36182,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  	byte[] propertyName = Converter.wcsToMbcs(null, name, true);
  	int[] result = new int[1];
  	OS.gtk_widget_style_get(handle, propertyName, result, 0);
+@@ -226,18 +226,18 @@
+ }
+ 
+ 
+-int /*long*/ getBorderProperty(int /*long*/ handle, String name) {
++long /*int*/ getBorderProperty(long /*int*/ handle, String name) {
+ 	byte[] propertyName = Converter.wcsToMbcs(null, name, true);
+-	int /*long*/ [] result = new int /*long*/[1];
++	long /*int*/ [] result = new long /*int*/[1];
+ 	OS.gtk_widget_style_get(handle, propertyName, result, 0);
  	return result[0];
  }
  
@@ -35729,7 +36207,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  	if (damageRgn != 0) {
  		if (clipping != 0) {
  			clipping = OS.gdk_region_new();
-@@ -239,7 +239,7 @@ void transferClipping(GC gc, int /*long*
+@@ -247,7 +247,7 @@
  			clipping = damageRgn;
  		}
  	}
@@ -35738,10 +36216,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/Theme.java swt-gtk
  	for (int i = 0; i < 5; i++) {
  		OS.gtk_style_get_fg_gc (style, i, curGC);
  		if (curGC[0] != 0) OS.gdk_gc_set_clip_region (curGC[0], clipping);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolBarDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ToolBarDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolBarDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ToolBarDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -21,9 +21,9 @@ public ToolBarDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ToolBarDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ToolBarDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ToolBarDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ToolBarDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -21,9 +21,9 @@
  }
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
@@ -35754,10 +36232,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolBarDrawData.ja
  	theme.transferClipping(gc, gtkStyle);
  	int x = bounds.x, y = bounds.y, width = bounds.width, height = bounds.height;
  	byte[] detail = Converter.wcsToMbcs(null, "toolbar", true);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.java swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ToolItemDrawData.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/theme/ToolItemDrawData.java	2011-03-21 11:34:23.315734069 +0000
-@@ -27,8 +27,8 @@ public ToolItemDrawData() {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.java swt-gtk-3.7//org/eclipse/swt/internal/theme/ToolItemDrawData.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/theme/ToolItemDrawData.java	2011-06-13 20:53:32.000000000 +0000
+@@ -27,8 +27,8 @@
  }
  
  Rectangle computeTrim(Theme theme, GC gc) {
@@ -35768,7 +36246,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.j
  	int focus_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
  	int focus_padding = theme.getWidgetProperty(buttonHandle, "focus-padding");
  	int xthickness = OS.gtk_style_get_xthickness(gtkStyle);
-@@ -47,13 +47,13 @@ Rectangle computeTrim(Theme theme, GC gc
+@@ -47,13 +47,13 @@
  
  void draw(Theme theme, GC gc, Rectangle bounds) {
  	int state = this.state[DrawData.WIDGET_WHOLE];
@@ -35785,7 +36263,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.j
  		theme.transferClipping(gc, gtkStyle);
  		if ((parent.style & SWT.VERTICAL) != 0) {
  			OS.gtk_paint_hline(gtkStyle, drawable, state_type, null, separatorHandle, detail, bounds.x, bounds.x + bounds.width, bounds.y + bounds.height / 2);
-@@ -63,8 +63,8 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -63,8 +63,8 @@
  		return;
  	}
  
@@ -35796,7 +36274,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.j
  	theme.transferClipping (gc, gtkStyle);
  	int focus_line_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
  	int focus_padding = theme.getWidgetProperty(buttonHandle, "focus-padding");
-@@ -83,7 +83,7 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -83,7 +83,7 @@
  	}
  	
  	int[] relief = new int[1];
@@ -35805,7 +36283,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.j
  	OS.gtk_widget_style_get(toolbarHandle, OS.button_relief, relief, 0);
  
  	int shadow_type = OS.GTK_SHADOW_OUT;
-@@ -149,8 +149,8 @@ void draw(Theme theme, GC gc, Rectangle
+@@ -149,8 +149,8 @@
  int hit(Theme theme, Point position, Rectangle bounds) {
  	if (!bounds.contains(position)) return DrawData.WIDGET_NOWHERE;
  	if ((style & SWT.DROP_DOWN) != 0) {
@@ -35816,10 +36294,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/theme/ToolItemDrawData.j
  		int xthickness = OS.gtk_style_get_xthickness(gtkStyle);
  		int interior_focus = theme.getWidgetProperty(buttonHandle, "interior-focus");
  		int focus_line_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/JSClassDefinition.java swt-gtk-3.6.2/org/eclipse/swt/internal/webkit/JSClassDefinition.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/JSClassDefinition.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/webkit/JSClassDefinition.java	2011-03-21 11:34:23.325733931 +0000
-@@ -20,35 +20,35 @@ public class JSClassDefinition {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/webkit/JSClassDefinition.java swt-gtk-3.7//org/eclipse/swt/internal/webkit/JSClassDefinition.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/webkit/JSClassDefinition.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/webkit/JSClassDefinition.java	2011-06-13 20:53:32.000000000 +0000
+@@ -20,35 +20,35 @@
      /** @field cast=(JSClassAttributes) */
      public int attributes;
      /** @field cast=(const char*) */
@@ -35870,10 +36348,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/JSClassDefinition
      
      public static final int sizeof = WebKitGTK.JSClassDefinition_sizeof();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java swt-gtk-3.6.2/org/eclipse/swt/internal/webkit/WebKitGTK.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/internal/webkit/WebKitGTK.java	2011-03-21 11:34:23.325733931 +0000
-@@ -81,8 +81,8 @@ protected static byte [] ascii (String n
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java swt-gtk-3.7//org/eclipse/swt/internal/webkit/WebKitGTK.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/internal/webkit/WebKitGTK.java	2011-06-13 20:53:32.000000000 +0000
+@@ -82,8 +82,8 @@
  /**
   * @param definition cast=(const JSClassDefinition*)
   */
@@ -35884,7 +36362,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSClassCreate (definition);
-@@ -94,8 +94,8 @@ public static final int /*long*/ JSClass
+@@ -95,8 +95,8 @@
  /**
   * @param ctx cast=(JSContextRef)
   */
@@ -35895,7 +36373,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSContextGetGlobalObject (ctx);
-@@ -111,8 +111,8 @@ public static final int /*long*/ JSConte
+@@ -112,8 +112,8 @@
   * @param sourceURL cast=(JSStringRef)
   * @param exception cast=(JSValueRef *)
   */
@@ -35906,7 +36384,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSEvaluateScript (ctx, script, thisObject, sourceURL, startingLineNumber, exception);
-@@ -124,8 +124,8 @@ public static final int /*long*/ JSEvalu
+@@ -125,8 +125,8 @@
  /**
   * @param object cast=(JSObjectRef)
   */
@@ -35917,7 +36395,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectGetPrivate (object);
-@@ -140,8 +140,8 @@ public static final int /*long*/ JSObjec
+@@ -141,8 +141,8 @@
   * @param propertyName cast=(JSStringRef)
   * @param exception cast=(JSValueRef*)
   */
@@ -35928,7 +36406,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectGetProperty (ctx, object, propertyName, exception);
-@@ -156,8 +156,8 @@ public static final int /*long*/ JSObjec
+@@ -157,8 +157,8 @@
   * @param propertyIndex cast=(unsigned)
   * @param exception cast=(JSValueRef*)
   */
@@ -35939,7 +36417,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectGetPropertyAtIndex (ctx, object, propertyIndex, exception);
-@@ -171,8 +171,8 @@ public static final int /*long*/ JSObjec
+@@ -172,8 +172,8 @@
   * @param jsClass cast=(JSClassRef)
   * @param data cast=(void *)
   */
@@ -35950,7 +36428,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectMake (ctx, jsClass, data);
-@@ -187,8 +187,8 @@ public static final int /*long*/ JSObjec
+@@ -188,8 +188,8 @@
   * @param arguments cast=(const struct OpaqueJSValue * const*)
   * @param exception cast=(JSValueRef*)
   */
@@ -35961,7 +36439,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectMakeArray (ctx, argumentCount, arguments, exception);
-@@ -202,8 +202,8 @@ public static final int /*long*/ JSObjec
+@@ -203,8 +203,8 @@
   * @param name cast=(JSStringRef)
   * @param callAsFunction cast=(JSObjectCallAsFunctionCallback)
   */
@@ -35972,7 +36450,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSObjectMakeFunctionWithCallback (ctx, name, callAsFunction);
-@@ -220,8 +220,8 @@ public static final int /*long*/ JSObjec
+@@ -221,8 +221,8 @@
   * @param attributes cast=(JSPropertyAttributes)
   * @param exception cast=(JSValueRef *)
   */
@@ -35983,7 +36461,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_JSObjectSetProperty (ctx, object, propertyName, value, attributes, exception);
-@@ -233,8 +233,8 @@ public static final void JSObjectSetProp
+@@ -234,8 +234,8 @@
  /**
   * @param string cast=(const char *)
   */
@@ -35994,7 +36472,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSStringCreateWithUTF8CString (string);
-@@ -246,8 +246,8 @@ public static final int /*long*/ JSStrin
+@@ -247,8 +247,8 @@
  /**
   * @param string cast=(JSStringRef)
   */
@@ -36005,7 +36483,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSStringGetLength (string);
-@@ -259,8 +259,8 @@ public static final int /*long*/ JSStrin
+@@ -260,8 +260,8 @@
  /**
   * @param string cast=(JSStringRef)
   */
@@ -36016,7 +36494,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSStringGetMaximumUTF8CStringSize (string);
-@@ -274,8 +274,8 @@ public static final int /*long*/ JSStrin
+@@ -275,8 +275,8 @@
   * @param buffer cast=(char *)
   * @param bufferSize cast=(size_t)
   */
@@ -36027,7 +36505,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSStringGetUTF8CString (string, buffer, bufferSize);
-@@ -288,8 +288,8 @@ public static final int /*long*/ JSStrin
+@@ -289,8 +289,8 @@
   * @param a cast=(JSStringRef)
   * @param b cast=(const char *)
   */
@@ -36038,7 +36516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSStringIsEqualToUTF8CString (a, b);
-@@ -301,8 +301,8 @@ public static final int JSStringIsEqualT
+@@ -302,8 +302,8 @@
  /**
   * @param string cast=(JSStringRef)
   */
@@ -36049,7 +36527,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_JSStringRelease (string);
-@@ -315,8 +315,8 @@ public static final void JSStringRelease
+@@ -316,8 +316,8 @@
   * @param ctx cast=(JSContextRef)
   * @param value cast=(JSValueRef)
   */
@@ -36060,7 +36538,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueGetType (ctx, value);
-@@ -330,8 +330,8 @@ public static final int JSValueGetType (
+@@ -331,8 +331,8 @@
   * @param value cast=(JSValueRef)
   * @param jsClass cast=(JSClassRef)
   */
@@ -36071,7 +36549,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueIsObjectOfClass (ctx, value, jsClass);
-@@ -344,8 +344,8 @@ public static final int JSValueIsObjectO
+@@ -345,8 +345,8 @@
   * @param ctx cast=(JSContextRef)
   * @param bool cast=(bool)
   */
@@ -36082,7 +36560,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueMakeBoolean (ctx, bool);
-@@ -358,8 +358,8 @@ public static final int /*long*/ JSValue
+@@ -359,8 +359,8 @@
   * @param ctx cast=(JSContextRef)
   * @param number cast=(double)
   */
@@ -36093,7 +36571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueMakeNumber (ctx, number);
-@@ -372,8 +372,8 @@ public static final int /*long*/ JSValue
+@@ -373,8 +373,8 @@
   * @param ctx cast=(JSContextRef)
   * @param string cast=(JSStringRef)
   */
@@ -36104,7 +36582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueMakeString (ctx, string);
-@@ -385,8 +385,8 @@ public static final int /*long*/ JSValue
+@@ -386,8 +386,8 @@
  /**
   * @param ctx cast=(JSContextRef)
   */
@@ -36115,7 +36593,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueMakeUndefined (ctx);
-@@ -399,8 +399,8 @@ public static final int /*long*/ JSValue
+@@ -400,8 +400,8 @@
   * @param ctx cast=(JSContextRef)
   * @param value cast=(JSValueRef)
   */
@@ -36126,7 +36604,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueToBoolean (ctx, value);
-@@ -414,8 +414,8 @@ public static final int JSValueToBoolean
+@@ -415,8 +415,8 @@
   * @param value cast=(JSValueRef)
   * @param exception cast=(JSValueRef*)
   */
@@ -36137,7 +36615,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueToNumber (ctx, value, exception);
-@@ -429,8 +429,8 @@ public static final double JSValueToNumb
+@@ -430,8 +430,8 @@
   * @param value cast=(JSValueRef)
   * @param exception cast=(JSValueRef*)
   */
@@ -36148,7 +36626,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _JSValueToStringCopy (ctx, value, exception);
-@@ -446,8 +446,8 @@ public static final int /*long*/ JSValue
+@@ -447,8 +447,8 @@
   * @param username cast=(const char *)
   * @param password cast=(const char *)
   */
@@ -36159,7 +36637,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_auth_authenticate (auth, username, password);
-@@ -459,8 +459,8 @@ public static final void soup_auth_authe
+@@ -460,8 +460,8 @@
  /**
   * @param auth cast=(SoupAuth *)
   */
@@ -36170,7 +36648,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_auth_get_host (auth);
-@@ -472,8 +472,8 @@ public static final int /*long*/ soup_au
+@@ -473,8 +473,8 @@
  /**
   * @param auth cast=(SoupAuth *)
   */
@@ -36181,7 +36659,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_auth_get_scheme_name (auth);
-@@ -486,8 +486,8 @@ public static final int /*long*/ soup_au
+@@ -487,8 +487,8 @@
   * @param jar cast=(SoupCookieJar *)
   * @param cookie cast=(SoupCookie *)
   */
@@ -36192,7 +36670,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_cookie_jar_add_cookie (jar, cookie);
-@@ -499,8 +499,8 @@ public static final void soup_cookie_jar
+@@ -500,8 +500,8 @@
  /**
   * @param jar cast=(SoupCookieJar *)
   */
@@ -36203,7 +36681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_cookie_jar_all_cookies (jar);
-@@ -513,8 +513,8 @@ public static final int /*long*/ soup_co
+@@ -514,8 +514,8 @@
   * @param jar cast=(SoupCookieJar *)
   * @param cookie cast=(SoupCookie *)
   */
@@ -36214,7 +36692,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_cookie_jar_delete_cookie (jar, cookie);
-@@ -527,8 +527,8 @@ public static final void soup_cookie_jar
+@@ -528,8 +528,8 @@
   * @param jar cast=(SoupCookieJar *)
   * @param uri cast=(SoupURI *)
   */
@@ -36225,7 +36703,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_cookie_jar_get_cookies (jar, uri, for_http);
-@@ -537,8 +537,8 @@ public static final int /*long*/ soup_co
+@@ -538,8 +538,8 @@
  	}
  }
  
@@ -36236,7 +36714,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_cookie_jar_get_type ();
-@@ -551,8 +551,8 @@ public static final int /*long*/ soup_co
+@@ -552,8 +552,8 @@
   * @param header cast=(const char *)
   * @param origin cast=(SoupURI *)
   */
@@ -36247,7 +36725,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_cookie_parse (header, origin);
-@@ -565,8 +565,8 @@ public static final int /*long*/ soup_co
+@@ -566,8 +566,8 @@
   * @method flags=getter
   * @param cookie cast=(SoupCookie *)
   */
@@ -36258,7 +36736,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _SoupCookie_expires (cookie);
-@@ -575,8 +575,8 @@ public static final int /*long*/ SoupCoo
+@@ -576,8 +576,8 @@
  	}
  }
  
@@ -36269,7 +36747,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _SOUP_IS_SESSION (object);
-@@ -590,8 +590,8 @@ public static final boolean SOUP_IS_SESS
+@@ -591,8 +591,8 @@
   * @param message cast=(SoupMessage *)
   * @param method cast=(const char *)
   */
@@ -36280,7 +36758,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_SoupMessage_method (message, method);
-@@ -604,8 +604,8 @@ public static final void SoupMessage_met
+@@ -605,8 +605,8 @@
   * @method flags=getter
   * @param message cast=(SoupMessage *)
   */
@@ -36291,7 +36769,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _SoupMessage_request_body (message);
-@@ -618,8 +618,8 @@ public static final int /*long*/ SoupMes
+@@ -619,8 +619,8 @@
   * @method flags=getter
   * @param message cast=(SoupMessage *)
   */
@@ -36302,7 +36780,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _SoupMessage_request_headers (message);
-@@ -634,8 +634,8 @@ public static final int /*long*/ SoupMes
+@@ -635,8 +635,8 @@
   * @param data cast=(gconstpointer)
   * @param length cast=(gsize)
   */
@@ -36313,7 +36791,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_message_body_append (body, use, data, length);
-@@ -647,8 +647,8 @@ public static final void soup_message_bo
+@@ -648,8 +648,8 @@
  /**
   * @param body cast=(SoupMessageBody *)
   */
@@ -36324,7 +36802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_message_body_flatten (body);
-@@ -660,8 +660,8 @@ public static final void soup_message_bo
+@@ -661,8 +661,8 @@
  /**
   * @param msg cast=(SoupMessage *)
   */
@@ -36335,7 +36813,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_message_get_uri (msg);
-@@ -675,8 +675,8 @@ public static final int /*long*/ soup_me
+@@ -676,8 +676,8 @@
   * @param name cast=(const char *)
   * @param value cast=(const char *)
   */
@@ -36346,7 +36824,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_message_headers_append (headers, name, value);
-@@ -689,8 +689,8 @@ public static final void soup_message_he
+@@ -690,8 +690,8 @@
   * @param session cast=(SoupSession *)
   * @param type cast=(GType)
   */
@@ -36357,7 +36835,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_session_add_feature_by_type (session, type);
-@@ -703,8 +703,8 @@ public static final void soup_session_ad
+@@ -704,8 +704,8 @@
   * @param session cast=(SoupSession *)
   * @param feature_type cast=(GType)
   */
@@ -36368,7 +36846,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_session_get_feature (session, feature_type);
-@@ -717,8 +717,8 @@ public static final int /*long*/ soup_se
+@@ -718,8 +718,8 @@
   * @param feature cast=(SoupSessionFeature *)
   * @param session cast=(SoupSession *)
   */
@@ -36379,7 +36857,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_session_feature_attach (feature, session);
-@@ -731,8 +731,8 @@ public static final void soup_session_fe
+@@ -732,8 +732,8 @@
   * @param feature cast=(SoupSessionFeature *)
   * @param session cast=(SoupSession *)
   */
@@ -36390,7 +36868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_session_feature_detach (feature, session);
-@@ -744,8 +744,8 @@ public static final void soup_session_fe
+@@ -745,8 +745,8 @@
  /**
   * @param uri cast=(SoupURI *)
   */
@@ -36401,7 +36879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_soup_uri_free (uri);
-@@ -757,8 +757,8 @@ public static final void soup_uri_free (
+@@ -758,8 +758,8 @@
  /**
   * @param uri_string cast=(const char *)
   */
@@ -36412,7 +36890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_uri_new (uri_string);
-@@ -770,8 +770,8 @@ public static final int /*long*/ soup_ur
+@@ -771,8 +771,8 @@
  /**
   * @param uri cast=(SoupURI *)
   */
@@ -36423,7 +36901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _soup_uri_to_string (uri, just_path_and_query);
-@@ -785,8 +785,8 @@ public static final int /*long*/ soup_ur
+@@ -786,8 +786,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36434,7 +36912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_download_cancel (download);
-@@ -798,8 +798,8 @@ public static final void webkit_download
+@@ -799,8 +799,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36445,7 +36923,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_download_get_current_size (download);
-@@ -811,8 +811,8 @@ public static final long webkit_download
+@@ -812,8 +812,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36456,7 +36934,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_download_get_status (download);
-@@ -824,8 +824,8 @@ public static final int webkit_download_
+@@ -825,8 +825,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36467,7 +36945,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_download_get_suggested_filename (download);
-@@ -837,8 +837,8 @@ public static final int /*long*/ webkit_
+@@ -838,8 +838,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36478,7 +36956,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_download_get_total_size (download);
-@@ -850,8 +850,8 @@ public static final long webkit_download
+@@ -851,8 +851,8 @@
  /**
   * @param download cast=(WebKitDownload *)
   */
@@ -36489,7 +36967,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_download_get_uri (download);
-@@ -864,8 +864,8 @@ public static final int /*long*/ webkit_
+@@ -865,8 +865,8 @@
   * @param download cast=(WebKitDownload *)
   * @param destination_uri cast=(const gchar *)
   */
@@ -36500,7 +36978,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_download_set_destination_uri (download, destination_uri);
-@@ -874,8 +874,8 @@ public static final void webkit_download
+@@ -875,8 +875,8 @@
  	}
  }
  
@@ -36511,7 +36989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_get_default_session ();
-@@ -884,8 +884,8 @@ public static final int /*long*/ webkit_
+@@ -885,8 +885,8 @@
  	}
  }
  
@@ -36522,7 +37000,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _WEBKIT_IS_WEB_FRAME (object);
-@@ -927,8 +927,8 @@ public static final int webkit_minor_ver
+@@ -928,8 +928,8 @@
  /**
   * @param request cast=(WebKitNetworkRequest *)
   */
@@ -36533,7 +37011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_network_request_get_message (request);
-@@ -940,8 +940,8 @@ public static final int /*long*/ webkit_
+@@ -941,8 +941,8 @@
  /**
   * @param request cast=(WebKitNetworkRequest *)
   */
@@ -36544,7 +37022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_network_request_get_uri (request);
-@@ -953,8 +953,8 @@ public static final int /*long*/ webkit_
+@@ -954,8 +954,8 @@
  /**
   * @param uri cast=(const gchar *)
   */
@@ -36555,7 +37033,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_network_request_new (uri);
-@@ -963,8 +963,8 @@ public static final int /*long*/ webkit_
+@@ -964,8 +964,8 @@
  	}
  }
  
@@ -36566,7 +37044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_soup_auth_dialog_get_type ();
-@@ -976,8 +976,8 @@ public static final int /*long*/ webkit_
+@@ -977,8 +977,8 @@
  /**
   * @param data_source cast=(WebKitWebDataSource *)
   */
@@ -36577,7 +37055,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_data_source_get_data (data_source);
-@@ -989,8 +989,8 @@ public static final int /*long*/ webkit_
+@@ -990,8 +990,8 @@
  /**
   * @param data_source cast=(WebKitWebDataSource *)
   */
@@ -36588,7 +37066,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_data_source_get_encoding (data_source);
-@@ -1002,8 +1002,8 @@ public static final int /*long*/ webkit_
+@@ -1003,8 +1003,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36599,7 +37077,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_data_source (frame);
-@@ -1015,8 +1015,8 @@ public static final int /*long*/ webkit_
+@@ -1016,8 +1016,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36610,7 +37088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_global_context (frame);
-@@ -1028,8 +1028,8 @@ public static final int /*long*/ webkit_
+@@ -1029,8 +1029,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36621,7 +37099,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_load_status (frame);
-@@ -1041,8 +1041,8 @@ public static final int webkit_web_frame
+@@ -1042,8 +1042,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36632,7 +37110,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_parent (frame);
-@@ -1054,8 +1054,8 @@ public static final int /*long*/ webkit_
+@@ -1055,8 +1055,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36643,7 +37121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_title (frame);
-@@ -1067,8 +1067,8 @@ public static final int /*long*/ webkit_
+@@ -1068,8 +1068,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36654,7 +37132,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_uri (frame);
-@@ -1080,8 +1080,8 @@ public static final int /*long*/ webkit_
+@@ -1081,8 +1081,8 @@
  /**
   * @param frame cast=(WebKitWebFrame *)
   */
@@ -36665,7 +37143,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_frame_get_web_view (frame);
-@@ -1093,8 +1093,8 @@ public static final int /*long*/ webkit_
+@@ -1094,8 +1094,8 @@
  /**
   * @param decision cast=(WebKitWebPolicyDecision *)
   */
@@ -36676,7 +37154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_policy_decision_download (decision);
-@@ -1106,8 +1106,8 @@ public static final void webkit_web_poli
+@@ -1107,8 +1107,8 @@
  /**
   * @param decision cast=(WebKitWebPolicyDecision *)
   */
@@ -36687,7 +37165,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_policy_decision_ignore (decision);
-@@ -1119,8 +1119,8 @@ public static final void webkit_web_poli
+@@ -1120,8 +1120,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36698,7 +37176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_can_go_back (web_view);
-@@ -1132,8 +1132,8 @@ public static final int webkit_web_view_
+@@ -1133,8 +1133,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36709,7 +37187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_can_go_forward (web_view);
-@@ -1146,8 +1146,8 @@ public static final int webkit_web_view_
+@@ -1147,8 +1147,8 @@
   * @param web_view cast=(WebKitWebView *)
   * @param mime_type cast=(const gchar *)
   */
@@ -36720,7 +37198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_can_show_mime_type (web_view, mime_type);
-@@ -1160,8 +1160,8 @@ public static final int webkit_web_view_
+@@ -1161,8 +1161,8 @@
   * @param web_view cast=(WebKitWebView *)
   * @param script cast=(const gchar *)
   */
@@ -36731,7 +37209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_execute_script (web_view, script);
-@@ -1173,8 +1173,8 @@ public static final void webkit_web_view
+@@ -1174,8 +1174,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36742,7 +37220,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_load_status (web_view);
-@@ -1186,8 +1186,8 @@ public static final int webkit_web_view_
+@@ -1187,8 +1187,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36753,7 +37231,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_main_frame (web_view);
-@@ -1199,8 +1199,8 @@ public static final int /*long*/ webkit_
+@@ -1200,8 +1200,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36764,7 +37242,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_progress (web_view);
-@@ -1212,8 +1212,8 @@ public static final double webkit_web_vi
+@@ -1213,8 +1213,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36775,7 +37253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_settings (web_view);
-@@ -1225,8 +1225,8 @@ public static final int /*long*/ webkit_
+@@ -1226,8 +1226,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36786,7 +37264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_title (web_view);
-@@ -1238,8 +1238,8 @@ public static final int /*long*/ webkit_
+@@ -1239,8 +1239,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36797,7 +37275,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_uri (web_view);
-@@ -1251,8 +1251,8 @@ public static final int /*long*/ webkit_
+@@ -1252,8 +1252,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36808,7 +37286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_get_window_features (web_view);
-@@ -1264,8 +1264,8 @@ public static final int /*long*/ webkit_
+@@ -1265,8 +1265,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36819,7 +37297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_go_back (web_view);
-@@ -1277,8 +1277,8 @@ public static final void webkit_web_view
+@@ -1278,8 +1278,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36830,7 +37308,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_go_forward (web_view);
-@@ -1294,8 +1294,8 @@ public static final void webkit_web_view
+@@ -1295,8 +1295,8 @@
   * @param encoding cast=(const gchar *)
   * @param base_uri cast=(const gchar *)
   */
@@ -36841,7 +37319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_load_string (web_view, content, mime_type, encoding, base_uri);
-@@ -1308,8 +1308,8 @@ public static final void webkit_web_view
+@@ -1309,8 +1309,8 @@
   * @param web_view cast=(WebKitWebView *)
   * @param uri cast=(const gchar *)
   */
@@ -36852,7 +37330,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_load_uri (web_view, uri);
-@@ -1318,8 +1318,8 @@ public static final void webkit_web_view
+@@ -1319,8 +1319,8 @@
  	}
  }
  
@@ -36863,7 +37341,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		return _webkit_web_view_new ();
-@@ -1331,8 +1331,8 @@ public static final int /*long*/ webkit_
+@@ -1332,8 +1332,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36874,7 +37352,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_reload (web_view);
-@@ -1344,8 +1344,8 @@ public static final void webkit_web_view
+@@ -1345,8 +1345,8 @@
  /**
   * @param web_view cast=(WebKitWebView *)
   */
@@ -36885,7 +37363,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
  	lock.lock();
  	try {
  		_webkit_web_view_stop_loading (web_view);
-@@ -1363,6 +1363,6 @@ public static final native int JSClassDe
+@@ -1364,6 +1364,6 @@
   * @param src cast=(const void *),flags=no_out
   * @param size cast=(size_t)
   */
@@ -36893,10 +37371,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/internal/webkit/WebKitGTK.java sw
 +public static final native void memmove (long /*int*/ dest, JSClassDefinition src, long /*int*/ size);
  
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.2/org/eclipse/swt/opengl/GLCanvas.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/opengl/GLCanvas.java	2011-03-21 11:34:23.215735487 +0000
-@@ -27,9 +27,9 @@ import org.eclipse.swt.internal.opengl.g
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.7//org/eclipse/swt/opengl/GLCanvas.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/opengl/GLCanvas.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/opengl/GLCanvas.java	2011-06-13 20:53:32.000000000 +0000
+@@ -27,9 +27,9 @@
   */
  
  public class GLCanvas extends Canvas {
@@ -36909,7 +37387,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	XVisualInfo vinfo;
  	static final int MAX_ATTRIBUTES = 32;
  
-@@ -104,9 +104,9 @@ public GLCanvas (Composite parent, int s
+@@ -104,9 +104,9 @@
  	}
  	glxAttrib [pos++] = 0;
  	OS.gtk_widget_realize (handle);
@@ -36922,7 +37400,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	if (infoPtr == 0) {
  		dispose ();
  		SWT.error (SWT.ERROR_UNSUPPORTED_DEPTH);
-@@ -114,9 +114,9 @@ public GLCanvas (Composite parent, int s
+@@ -114,9 +114,9 @@
  	vinfo = new XVisualInfo ();
  	GLX.memmove (vinfo, infoPtr, XVisualInfo.sizeof);
  	OS.XFree (infoPtr);
@@ -36935,7 +37413,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	context = GLX.glXCreateContext (xDisplay, vinfo, share, true);
  	if (context == 0) SWT.error (SWT.ERROR_NO_HANDLES);
  	GdkWindowAttr attrs = new GdkWindowAttr ();
-@@ -156,8 +156,8 @@ public GLCanvas (Composite parent, int s
+@@ -156,8 +156,8 @@
  				OS.gdk_window_resize (glWindow, clientArea.width, clientArea.height);
  				break;
  			case SWT.Dispose:
@@ -36946,7 +37424,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  				if (context != 0) {
  					if (GLX.glXGetCurrentContext () == context) {
  						GLX.glXMakeCurrent (xDisplay, 0, 0);
-@@ -189,8 +189,8 @@ public GLCanvas (Composite parent, int s
+@@ -189,8 +189,8 @@
   */
  public GLData getGLData () {
  	checkWidget ();
@@ -36957,7 +37435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	GLData data = new GLData ();
  	int [] value = new int [1];
  	GLX.glXGetConfig (xDisplay, vinfo, GLX.GLX_DOUBLEBUFFER, value);
-@@ -252,8 +252,8 @@ public boolean isCurrent () {
+@@ -252,8 +252,8 @@
  public void setCurrent () {
  	checkWidget ();
  	if (GLX.glXGetCurrentContext () == context) return;
@@ -36968,7 +37446,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	GLX.glXMakeCurrent (xDisplay, xWindow, context);
  }
  
-@@ -267,8 +267,8 @@ public void setCurrent () {
+@@ -267,8 +267,8 @@
   */
  public void swapBuffers () {
  	checkWidget ();
@@ -36979,10 +37457,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/opengl/GLCanvas.java swt-gtk-3.6.
  	GLX.glXSwapBuffers (xDisplay, xWindow);
  }
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk-3.6.2/org/eclipse/swt/printing/PrintDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/printing/PrintDialog.java	2011-03-21 11:34:23.715728423 +0000
-@@ -34,7 +34,7 @@ import org.eclipse.swt.widgets.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk-3.7//org/eclipse/swt/printing/PrintDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/printing/PrintDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/printing/PrintDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -33,7 +33,7 @@
  public class PrintDialog extends Dialog {
  	PrinterData printerData = new PrinterData();
  
@@ -36991,7 +37469,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  	int index;
  	byte [] settingsData;
  	
-@@ -293,7 +293,7 @@ public PrinterData open() {
+@@ -292,7 +292,7 @@
  		return Printer.getDefaultPrinterData();
  	} else {
  		byte [] titleBytes = Converter.wcsToMbcs (null, getText(), true);
@@ -37000,7 +37478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  		while (topHandle != 0 && !OS.GTK_IS_WINDOW(topHandle)) {
  			topHandle = OS.gtk_widget_get_parent(topHandle);
  		}
-@@ -306,8 +306,8 @@ public PrinterData open() {
+@@ -305,8 +305,8 @@
  			OS.GTK_PRINT_CAPABILITY_COLLATE | OS.GTK_PRINT_CAPABILITY_COPIES | OS.GTK_PRINT_CAPABILITY_PAGE_SET);
  		
  		/* Set state into print dialog settings. */
@@ -37011,16 +37489,25 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  		
  		if (printerData.otherData != null) {
  			Printer.restore(printerData.otherData, settings, page_setup);
-@@ -357,7 +357,7 @@ public PrinterData open() {
+@@ -316,7 +316,7 @@
+ 		String printerName = printerData.name;
+ 		if (printerName == null && printerData.printToFile) {
+ 			/* Find the printer name corresponding to the file backend. */
+-			int /*long*/ printer = Printer.gtkPrinterFromPrinterData(printerData);
++			long /*int*/ printer = Printer.gtkPrinterFromPrinterData(printerData);
+ 			if (printer != 0) {
+ 				PrinterData data = Printer.printerDataFromGtkPrinter(printer);
+ 				printerName = data.name;
+@@ -377,7 +377,7 @@
+ 		}
  		OS.g_object_unref(settings);
  		OS.g_object_unref(page_setup);
- 		if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
--			int /*long*/ group = OS.gtk_window_get_group(0);
-+			long /*int*/ group = OS.gtk_window_get_group(0);
- 			OS.gtk_window_group_add_window (group, handle);
- 		}
+-		int /*long*/ group = OS.gtk_window_get_group(0);
++		long /*int*/ group = OS.gtk_window_get_group(0);
+ 		OS.gtk_window_group_add_window (group, handle);
  		OS.gtk_window_set_modal(handle, true);
-@@ -366,7 +366,7 @@ public PrinterData open() {
+ 		PrinterData data = null;
+@@ -385,7 +385,7 @@
  		Display display = getParent() != null ? getParent().getDisplay (): Display.getCurrent ();
  		
  		int signalId = 0;
@@ -37029,7 +37516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  		if ((getStyle () & 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, ((LONG) display.getData (GET_EMISSION_PROC_KEY)).value, handle, 0);
-@@ -385,7 +385,7 @@ public PrinterData open() {
+@@ -411,7 +411,7 @@
  			OS.g_signal_remove_emission_hook (signalId, hookId);
  		}
  		if (response == OS.GTK_RESPONSE_OK) {
@@ -37038,7 +37525,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  			if (printer != 0) {
  				/* Get state from print dialog. */
  				settings = OS.gtk_print_unix_dialog_get_settings(handle); // must unref
-@@ -399,7 +399,7 @@ public PrinterData open() {
+@@ -425,7 +425,7 @@
  					case OS.GTK_PRINT_PAGES_RANGES:
  						data.scope = PrinterData.PAGE_RANGE;
  						int[] num_ranges = new int[1];
@@ -37047,16 +37534,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  						int [] pageRange = new int[2];
  						int length = num_ranges[0];
  						int min = Integer.MAX_VALUE, max = 0;
-@@ -421,7 +421,7 @@ public PrinterData open() {
+@@ -447,7 +447,7 @@
  				
- 				data.printToFile = data.name.equals("Print to File"); //$NON-NLS-1$
+ 				data.printToFile = Printer.GTK_FILE_BACKEND.equals(data.driver); // TODO: GTK_FILE_BACKEND is not GTK API (see gtk bug 345590)
  				if (data.printToFile) {
 -					int /*long*/ address = OS.gtk_print_settings_get(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI);
 +					long /*int*/ address = OS.gtk_print_settings_get(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI);
  					int length = OS.strlen (address);
  					byte [] buffer = new byte [length];
  					OS.memmove (buffer, address, length);
-@@ -434,7 +434,7 @@ public PrinterData open() {
+@@ -464,7 +464,7 @@
  
  				/* Save other print_settings data as key/value pairs in otherData. */
  				Callback printSettingsCallback = new Callback(this, "GtkPrintSettingsFunc", 3); //$NON-NLS-1$
@@ -37065,7 +37552,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  				if (GtkPrintSettingsFunc == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
  				index = 0;
  				settingsData = new byte[1024];
-@@ -450,7 +450,7 @@ public PrinterData open() {
+@@ -480,7 +480,7 @@
  				store("bottom_margin", OS.gtk_page_setup_get_bottom_margin(page_setup, OS.GTK_UNIT_MM)); //$NON-NLS-1$
  				store("left_margin", OS.gtk_page_setup_get_left_margin(page_setup, OS.GTK_UNIT_MM)); //$NON-NLS-1$
  				store("right_margin", OS.gtk_page_setup_get_right_margin(page_setup, OS.GTK_UNIT_MM)); //$NON-NLS-1$
@@ -37074,7 +37561,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  				storeBytes("paper_size_name", OS.gtk_paper_size_get_name(paper_size)); //$NON-NLS-1$
  				storeBytes("paper_size_display_name", OS.gtk_paper_size_get_display_name(paper_size)); //$NON-NLS-1$
  				storeBytes("paper_size_ppd_name", OS.gtk_paper_size_get_ppd_name(paper_size)); //$NON-NLS-1$
-@@ -468,7 +468,7 @@ public PrinterData open() {
+@@ -498,7 +498,7 @@
  	}
  }
  
@@ -37083,7 +37570,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  	int length = OS.strlen (key);
  	byte [] keyBuffer = new byte [length];
  	OS.memmove (keyBuffer, key, length);
-@@ -491,7 +491,7 @@ void store(String key, boolean value) {
+@@ -521,7 +521,7 @@
  	store(key, String.valueOf(value));
  }
  
@@ -37092,11 +37579,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/PrintDialog.java swt-gtk
  	int length = OS.strlen (value);
  	byte [] valueBuffer = new byte [length];
  	OS.memmove (valueBuffer, value, length);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6.2/org/eclipse/swt/printing/Printer.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/printing/Printer.java	2011-03-21 11:34:23.715728423 +0000
-@@ -46,12 +46,12 @@ public final class Printer extends Devic
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.7//org/eclipse/swt/printing/Printer.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/printing/Printer.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/printing/Printer.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,16 +44,16 @@
+  */
+ public final class Printer extends Device {
  	static PrinterData [] printerList;
+-	static int /*long*/ findPrinter;
++	static long /*int*/ findPrinter;
+ 	static PrinterData findData;
  	
  	PrinterData data;
 -	int /*long*/ printer;
@@ -37114,7 +37606,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	
  	/**
  	 * whether or not a GC was created for this printer
-@@ -82,18 +82,18 @@ public static PrinterData[] getPrinterLi
+@@ -74,7 +74,7 @@
  		OS.g_thread_init (0);
  	}
  	OS.gtk_set_locale();
@@ -37122,12 +37614,17 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
 +	if (!OS.gtk_init_check (new long /*int*/ [] {0}, null)) {
  		SWT.error (SWT.ERROR_NO_HANDLES, null, " [gtk_init_check() failed]");
  	}
+ }
+@@ -93,7 +93,7 @@
+ 	}
+ 	gtk_init();
  	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_List", 2); //$NON-NLS-1$
 -	int /*long*/ GtkPrinterFunc_List = printerCallback.getAddress();
 +	long /*int*/ GtkPrinterFunc_List = printerCallback.getAddress();
  	if (GtkPrinterFunc_List == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
  	OS.gtk_enumerate_printers(GtkPrinterFunc_List, 0, 0, true);
- 	printerCallback.dispose ();
+ 	/*
+@@ -107,7 +107,7 @@
  	return printerList;
  }
  
@@ -37136,50 +37633,47 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	int length = printerList.length;
  	PrinterData [] newList = new PrinterData [length + 1];
  	System.arraycopy (printerList, 0, newList, 0, length);
-@@ -129,18 +129,18 @@ public static PrinterData getDefaultPrin
- 		OS.g_thread_init (0);
- 	}
- 	OS.gtk_set_locale();
--	if (!OS.gtk_init_check (new int /*long*/ [] {0}, null)) {
-+	if (!OS.gtk_init_check (new long /*int*/ [] {0}, null)) {
- 		SWT.error (SWT.ERROR_NO_HANDLES, null, " [gtk_init_check() failed]");
+@@ -141,7 +141,7 @@
  	}
+ 	gtk_init();
  	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_Default", 2); //$NON-NLS-1$
 -	int /*long*/ GtkPrinterFunc_Default = printerCallback.getAddress();
 +	long /*int*/ GtkPrinterFunc_Default = printerCallback.getAddress();
  	if (GtkPrinterFunc_Default == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
  	OS.gtk_enumerate_printers(GtkPrinterFunc_Default, 0, 0, true);
- 	printerCallback.dispose ();
- 	return printerList[0];
+ 	/*
+@@ -155,7 +155,7 @@
+ 	return findData;
  }
  
 -static int /*long*/ GtkPrinterFunc_Default (int /*long*/ printer, int /*long*/ user_data) {
 +static long /*int*/ GtkPrinterFunc_Default (long /*int*/ printer, long /*int*/ user_data) {
  	if (OS.gtk_printer_is_default(printer)) {
- 		printerList[0] = printerDataFromGtkPrinter(printer);
+ 		findData = printerDataFromGtkPrinter(printer);
  		return 1;
-@@ -150,9 +150,9 @@ static int /*long*/ GtkPrinterFunc_Defau
+@@ -165,10 +165,10 @@
  	return 0;
  }
  
--int /*long*/ gtkPrinterFromPrinterData() {
-+long /*int*/ gtkPrinterFromPrinterData() {
- 	Callback printerCallback = new Callback(this, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$
+-static int /*long*/ gtkPrinterFromPrinterData(PrinterData data) {
++static long /*int*/ gtkPrinterFromPrinterData(PrinterData data) {
+ 	gtk_init();
+ 	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$
 -	int /*long*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress();
 +	long /*int*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress();
  	if (GtkPrinterFunc_FindNamedPrinter == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
- 	printer = 0;
- 	OS.gtk_enumerate_printers(GtkPrinterFunc_FindNamedPrinter, 0, 0, true);
-@@ -160,7 +160,7 @@ int /*long*/ gtkPrinterFromPrinterData()
- 	return printer;
+ 	findPrinter = 0;
+ 	findData = data;
+@@ -184,7 +184,7 @@
+ 	return findPrinter;
  }
  
--int /*long*/ GtkPrinterFunc_FindNamedPrinter (int /*long*/ printer, int /*long*/ user_data) {
-+long /*int*/ GtkPrinterFunc_FindNamedPrinter (long /*int*/ printer, long /*int*/ user_data) {
+-static int /*long*/ GtkPrinterFunc_FindNamedPrinter (int /*long*/ printer, int /*long*/ user_data) {
++static long /*int*/ GtkPrinterFunc_FindNamedPrinter (long /*int*/ printer, long /*int*/ user_data) {
  	PrinterData pd = printerDataFromGtkPrinter(printer);
- 	if (pd.driver.equals(data.driver) && pd.name.equals(data.name)) {
- 		this.printer = printer;
-@@ -172,9 +172,9 @@ int /*long*/ GtkPrinterFunc_FindNamedPri
+ 	if ((pd.driver.equals(findData.driver) && pd.name.equals(findData.name))
+ 			|| (pd.driver.equals(GTK_FILE_BACKEND)) && findData.printToFile && findData.driver == null && findData.name == null) {
+@@ -198,9 +198,9 @@
  	return 0;
  }
  
@@ -37192,7 +37686,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	int length = OS.strlen (address);
  	byte [] buffer = new byte [length];
  	OS.memmove (buffer, address, length);
-@@ -192,7 +192,7 @@ static PrinterData printerDataFromGtkPri
+@@ -218,7 +218,7 @@
  /* 
  * Restore printer settings and page_setup data from data.
  */
@@ -37201,7 +37695,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	settingsData = data;
  	start = end = 0;
  	while (end < settingsData.length && settingsData[end] != 0) {
-@@ -225,7 +225,7 @@ static void restore(byte [] data, int /*
+@@ -251,7 +251,7 @@
  	double width = restoreDouble("paper_size_width"); //$NON-NLS-1$
  	double height = restoreDouble("paper_size_height"); //$NON-NLS-1$
  	boolean custom = restoreBoolean("paper_size_is_custom"); //$NON-NLS-1$
@@ -37210,7 +37704,34 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	if (custom) {
  		if (ppd_name.length > 0) {
  			paper_size = OS.gtk_paper_size_new_from_ppd(ppd_name, display_name, width, height);
-@@ -350,8 +350,8 @@ static byte [] restoreBytes(String key,
+@@ -271,13 +271,13 @@
+ 	if (length == 0) return null;
+ 	char[] chars = new char[length];
+ 	filename.getChars(0, length, chars, 0);		
+-	int /*long*/[] error = new int /*long*/[1];
+-	int /*long*/ utf8Ptr = OS.g_utf16_to_utf8(chars, chars.length, null, null, error);
++	long /*int*/[] error = new long /*int*/[1];
++	long /*int*/ utf8Ptr = OS.g_utf16_to_utf8(chars, chars.length, null, null, error);
+ 	if (error[0] != 0 || utf8Ptr == 0) return null;
+-	int /*long*/ localePtr = OS.g_filename_from_utf8(utf8Ptr, -1, null, null, error);
++	long /*int*/ localePtr = OS.g_filename_from_utf8(utf8Ptr, -1, null, null, error);
+ 	OS.g_free(utf8Ptr);
+ 	if (error[0] != 0 || localePtr == 0) return null;
+-	int /*long*/ uriPtr = OS.g_filename_to_uri(localePtr, 0, error);
++	long /*int*/ uriPtr = OS.g_filename_to_uri(localePtr, 0, error);
+ 	OS.g_free(localePtr);
+ 	if (error[0] != 0 || uriPtr == 0) return null;
+ 	length = OS.strlen(uriPtr);
+@@ -292,7 +292,7 @@
+ 	if (data.driver == null || data.name == null) {
+ 		PrinterData defaultData = null;
+ 		if (data.printToFile) {
+-			int /*long*/ filePrinter = gtkPrinterFromPrinterData(data);
++			long /*int*/ filePrinter = gtkPrinterFromPrinterData(data);
+ 			if (filePrinter != 0) {
+ 				defaultData = printerDataFromGtkPrinter(filePrinter);
+ 				OS.g_object_unref(filePrinter);
+@@ -408,8 +408,8 @@
  public Font getSystemFont () {
  	checkDevice ();
  	if (systemFont != null) return systemFont;
@@ -37218,10 +37739,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
 -	int /*long*/ defaultFont = OS.pango_font_description_copy (OS.gtk_style_get_font_desc (style));
 +	long /*int*/ style = OS.gtk_widget_get_default_style();	
 +	long /*int*/ defaultFont = OS.pango_font_description_copy (OS.gtk_style_get_font_desc (style));
- 	return systemFont = Font.gtk_new (this, defaultFont);
- }
- 
-@@ -370,11 +370,11 @@ public Font getSystemFont () {
+ 	int size = OS.pango_font_description_get_size(defaultFont);
+ 	Point dpi = getDPI(), screenDPI = super.getDPI();
+ 	OS.pango_font_description_set_size(defaultFont, size * dpi.y / screenDPI.y);
+@@ -431,11 +431,11 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -37236,7 +37757,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	if (gdkGC == 0) SWT.error (SWT.ERROR_NO_HANDLES);
  	if (data != null) {
  		if (isGCCreated) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-@@ -412,7 +412,7 @@ public int /*long*/ internal_new_GC(GCDa
+@@ -478,7 +478,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -37245,10 +37766,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/printing/Printer.java swt-gtk-3.6
  	if (data != null) isGCCreated = false;
  	OS.g_object_unref (gdkGC);
  	if (data != null) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.2/org/eclipse/swt/program/Program.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/program/Program.java	2011-03-21 11:34:23.295734363 +0000
-@@ -42,10 +42,10 @@ public final class Program {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/program/Program.java swt-gtk-3.7//org/eclipse/swt/program/Program.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/program/Program.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/program/Program.java	2011-06-13 20:53:32.000000000 +0000
+@@ -42,10 +42,10 @@
  	 */
  	boolean gnomeExpectUri;
  	
@@ -37261,7 +37782,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  
  	static final String[] CDE_ICON_EXT = { ".m.pm",   ".l.pm",   ".s.pm",   ".t.pm" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
  	static final String[] CDE_MASK_EXT = { ".m_m.bm", ".l_m.bm", ".s_m.bm", ".t_m.bm" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-@@ -74,11 +74,11 @@ static int getDesktop(final Display disp
+@@ -74,11 +74,11 @@
  	int desktop = DESKTOP_UNKNOWN;
  
  	/* Get the list of properties on the root window. */
@@ -37277,20 +37798,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (propList != 0) {
  		OS.memmove(property, propList, (property.length * OS.PTR_SIZEOF));
  		OS.XFree(propList);
-@@ -97,10 +97,10 @@ static int getDesktop(final Display disp
+@@ -99,7 +99,7 @@
  	 */
  	if (desktop == DESKTOP_UNKNOWN) {
  		byte[] gnomeName = Converter.wcsToMbcs(null, "_NET_SUPPORTING_WM_CHECK", true);
 -		int /*long*/ gnome = OS.XInternAtom(xDisplay, gnomeName, true);
 +		long /*int*/ gnome = OS.XInternAtom(xDisplay, gnomeName, true);
- 		if (gnome != OS.None && (OS.GTK_VERSION >= OS.VERSION (2, 2, 0)) && gnome_init()) {
- 			desktop = DESKTOP_GNOME;
--			int /*long*/ icon_theme = GNOME.gnome_icon_theme_new();
-+			long /*int*/ icon_theme = GNOME.gnome_icon_theme_new();
- 			display.setData(ICON_THEME_DATA, new LONG(icon_theme));
- 			display.addListener(SWT.Dispose, new Listener() {
- 				public void handleEvent(Event event) {
-@@ -125,10 +125,10 @@ static int getDesktop(final Display disp
+ 		if (gnome != OS.None) {
+ 			/* Check for the existence of libgio libraries first */
+ 			byte[] buffer;
+@@ -112,10 +112,10 @@
  			} else {
  				buffer =  Converter.wcsToMbcs(null, "libgio-2.0.so.0", true);
  			}
@@ -37303,8 +37820,17 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  				if (g_app_info_launch_default_for_uri != 0) {
  					desktop = DESKTOP_GIO;
  				}
-@@ -136,10 +136,10 @@ static int getDesktop(final Display disp
- 			} else {
+@@ -124,7 +124,7 @@
+ 			
+ 			if (desktop == DESKTOP_UNKNOWN && (OS.GTK_VERSION >= OS.VERSION (2, 2, 0)) && gnome_init()) {
+ 				desktop = DESKTOP_GNOME;
+-				int /*long*/ icon_theme = GNOME.gnome_icon_theme_new();
++				long /*int*/ icon_theme = GNOME.gnome_icon_theme_new();
+ 				display.setData(ICON_THEME_DATA, new LONG(icon_theme));
+ 				display.addListener(SWT.Dispose, new Listener() {
+ 					public void handleEvent(Event event) {
+@@ -140,10 +140,10 @@
+ 				});
  				/* Check for libgnomevfs-2 version 2.4 */
  				buffer = Converter.wcsToMbcs(null, "libgnomevfs-2.so.0", true);
 -				int /*long*/ libgnomevfs = OS.dlopen(buffer, OS.RTLD_LAZY);
@@ -37316,7 +37842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  					if (gnome_vfs_url_show != 0) {
  						desktop = DESKTOP_GNOME_24;
  					}
-@@ -156,7 +156,7 @@ static int getDesktop(final Display disp
+@@ -160,7 +160,7 @@
  	*/
  	if (desktop == DESKTOP_UNKNOWN) {
  		byte[] cdeName = Converter.wcsToMbcs(null, "_DT_SM_PREFERENCES", true);
@@ -37325,7 +37851,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		for (int index = 0; desktop == DESKTOP_UNKNOWN && index < property.length; index++) {
  			if (property[index] == OS.None) continue; /* do not match atoms that do not exist */
  			if (property[index] == cde && cde_init(display)) desktop = DESKTOP_CDE;
-@@ -171,7 +171,7 @@ boolean cde_execute(String fileName) {
+@@ -175,7 +175,7 @@
  	/* Use the character encoding for the default locale */
  	byte[] action = Converter.wcsToMbcs(null, command, true);
  	byte[] fileArg = Converter.wcsToMbcs(null, fileName, true);
@@ -37334,7 +37860,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	OS.memmove(ptr, fileArg, fileArg.length);
  	DtActionArg args = new DtActionArg();
  	args.argClass = CDE.DtACTION_FILE;
-@@ -201,7 +201,7 @@ static String cde_getAttribute(String da
+@@ -205,7 +205,7 @@
  	byte[] dataTypeBuf = Converter.wcsToMbcs(null, dataType, true);
  	byte[] attrNameBuf = Converter.wcsToMbcs(null, attrName, true);
  	byte[] optNameBuf = null;
@@ -37343,7 +37869,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (attrValue == 0) return null;
  	int length = OS.strlen(attrValue);
  	byte[] attrValueBuf = new byte[length];
-@@ -214,11 +214,11 @@ static String cde_getAttribute(String da
+@@ -218,11 +218,11 @@
  static Hashtable cde_getDataTypeInfo() {
  	Hashtable dataTypeInfo = new Hashtable();
  	int index;
@@ -37357,7 +37883,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		OS.memmove(dataType, dataTypeList + (index++ * 4), 4);
  		while (dataType[0] != 0) {
  			int length = OS.strlen(dataType[0]);
-@@ -302,13 +302,13 @@ static boolean cde_init(Display display)
+@@ -306,13 +306,13 @@
  
  	/* Use the character encoding for the default locale */
  	CDE.XtToolkitInitialize();
@@ -37375,7 +37901,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	cdeShell = CDE.XtAppCreateShell (appName, appClass, widgetClass, xDisplay, null, 0);
  	CDE.XtSetMappedWhenManaged (cdeShell, false);
  	CDE.XtResizeWidget (cdeShell, 10, 10, 0);
-@@ -374,10 +374,10 @@ static String[] parseCommand(String cmd)
+@@ -378,10 +378,10 @@
   */
  boolean gnome_24_execute(String fileName) {
  	byte[] mimeTypeBuffer = Converter.wcsToMbcs(null, name, true);
@@ -37389,7 +37915,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	int result = GNOME.gnome_vfs_mime_application_launch(ptr, list);
  	GNOME.gnome_vfs_mime_application_free(ptr);
  	GNOME.g_free(uri);
-@@ -390,7 +390,7 @@ boolean gnome_24_execute(String fileName
+@@ -394,7 +394,7 @@
   */
  static boolean gnome_24_launch(String fileName) {
  	byte[] fileNameBuffer = Converter.wcsToMbcs(null, fileName, true);
@@ -37398,7 +37924,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	int result = GNOME.gnome_vfs_url_show(uri);
  	GNOME.g_free(uri);
  	return (result == GNOME.GNOME_VFS_OK);
-@@ -403,7 +403,7 @@ boolean gnome_execute(String fileName) {
+@@ -407,7 +407,7 @@
  	if (gnomeExpectUri) {
  		/* Convert the given path into a URL */
  		byte[] fileNameBuffer = Converter.wcsToMbcs(null, fileName, true);
@@ -37407,7 +37933,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		if (uri != 0) {
  			int length = OS.strlen(uri);
  			if (length > 0) {
-@@ -467,24 +467,24 @@ ImageData gnome_getImageData() {
+@@ -471,24 +471,24 @@
   */
  static Hashtable gnome_getMimeInfo() {
  	Hashtable mimeInfo = new Hashtable();
@@ -37440,7 +37966,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  				int extensionLength = OS.strlen(extensionPtr);
  				byte[] extensionBuffer = new byte[extensionLength];
  				OS.memmove(extensionBuffer, extensionPtr, extensionLength);
-@@ -506,7 +506,7 @@ static String gnome_getMimeType(String e
+@@ -510,7 +510,7 @@
  	String mimeType = null;
  	String fileName = "swt" + extension;
  	byte[] extensionBuffer = Converter.wcsToMbcs(null, fileName, true);
@@ -37449,7 +37975,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (typeName != 0) {
  		int length = OS.strlen(typeName);
  		if (length > 0) {
-@@ -521,7 +521,7 @@ static String gnome_getMimeType(String e
+@@ -525,7 +525,7 @@
  static Program gnome_getProgram(Display display, String mimeType) {
  	Program program = null;
  	byte[] mimeTypeBuffer = Converter.wcsToMbcs(null, mimeType, true);
@@ -37458,7 +37984,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (ptr != 0) {
  		program = new Program();
  		program.display = display;
-@@ -538,9 +538,9 @@ static Program gnome_getProgram(Display
+@@ -542,9 +542,9 @@
  		buffer = new byte[length + 1];
  		OS.memmove(buffer, application.id, length);
  		LONG gnomeIconTheme = (LONG)display.getData(ICON_THEME_DATA);
@@ -37470,7 +37996,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		if (icon_name != 0) path = GNOME.gnome_icon_theme_lookup_icon(gnomeIconTheme.value, icon_name, PREFERRED_ICON_SIZE, null, null);
  		if (path != 0) {
  			length = OS.strlen(path);
-@@ -571,8 +571,8 @@ static boolean gnome_isExecutable(String
+@@ -575,8 +575,8 @@
  	if (!GNOME.gnome_vfs_is_executable_command_string(fileNameBuffer)) return false;
  	
  	/* check if the mime type is executable */
@@ -37481,7 +38007,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	GNOME.g_free(uri);
  	
  	byte[] exeType = Converter.wcsToMbcs (null, "application/x-executable", true); //$NON-NLS-1$
-@@ -721,16 +721,16 @@ static Program[] getPrograms(Display dis
+@@ -725,16 +725,16 @@
  ImageData gio_getImageData() {
  	if (iconPath == null) return null;
  	ImageData data = null;
@@ -37503,7 +38029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  				int height = OS.gdk_pixbuf_get_height(pixbuf);
  				int width = OS.gdk_pixbuf_get_width(pixbuf);
  				boolean hasAlpha = OS.gdk_pixbuf_get_has_alpha(pixbuf);
-@@ -765,7 +765,7 @@ ImageData gio_getImageData() {
+@@ -769,7 +769,7 @@
  }
  
  static Hashtable gio_getMimeInfo() {
@@ -37512,7 +38038,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	/*
  	* The file 'globs' contain the file extensions  
  	* associated to the mime-types. Each line that has 
-@@ -775,10 +775,10 @@ static Hashtable gio_getMimeInfo() {
+@@ -779,10 +779,10 @@
  	*/
  	byte[] buffer = Converter.wcsToMbcs (null, "/usr/share/mime/globs", true);
  	mimeDatabase = OS.g_file_new_for_path (buffer);
@@ -37525,7 +38051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  			buffer = Converter.wcsToMbcs (null, "*", true);
  			fileInfo = OS.g_file_query_info(mimeDatabase, buffer, 0, 0, 0);
  			OS.g_file_info_get_modification_time(fileInfo, modTimestamp);
-@@ -787,11 +787,11 @@ static Hashtable gio_getMimeInfo() {
+@@ -791,11 +791,11 @@
  			} else {
  				mimeTable = new Hashtable();
  				modTime = modTimestamp[0];
@@ -37539,7 +38065,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  					while (linePtr != 0) {
  						byte[] lineBytes = new byte[length[0]];
  						OS.memmove(lineBytes, linePtr, length[0]);
-@@ -846,19 +846,19 @@ static String gio_getMimeType(String ext
+@@ -850,19 +850,19 @@
  static Program gio_getProgram(Display display, String mimeType) {
  	Program program = null;
  	byte[] mimeTypeBuffer = Converter.wcsToMbcs (null, mimeType, true);
@@ -37562,7 +38088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (applicationName != 0) {
  		length = OS.strlen (applicationName);
  		if (length > 0) {
-@@ -867,7 +867,7 @@ static Program gio_getProgram (Display d
+@@ -871,7 +871,7 @@
  			program.name = new String (Converter.mbcsToWcs (null, buffer));
  		}
  	}
@@ -37571,7 +38097,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  	if (applicationCommand != 0) {
  		length = OS.strlen (applicationCommand);
  		if (length > 0) {
-@@ -877,9 +877,9 @@ static Program gio_getProgram (Display d
+@@ -881,9 +881,9 @@
  		}
  	}
  	program.gnomeExpectUri = OS.g_app_info_supports_uris(application);
@@ -37583,7 +38109,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		if (icon_name != 0) {
  			length = OS.strlen(icon_name);
  			if (length > 0) {
-@@ -895,12 +895,12 @@ static Program gio_getProgram (Display d
+@@ -899,12 +899,12 @@
  }
  
  static Program[] gio_getPrograms(Display display) {
@@ -37599,7 +38125,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		if (application != 0) {
  			//TODO: Should the list be filtered or not?
  //			if (OS.g_app_info_should_show(application)) {
-@@ -922,13 +922,13 @@ static boolean gio_isExecutable(String f
+@@ -926,13 +926,13 @@
  	byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
  	if (OS.g_file_test(fileNameBuffer, OS.G_FILE_TEST_IS_DIR)) return false;
  	if (!OS.g_file_test(fileNameBuffer, OS.G_FILE_TEST_IS_EXECUTABLE)) return false;
@@ -37616,7 +38142,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  			if (contentType != 0) {
  				byte[] exeType = Converter.wcsToMbcs (null, "application/x-executable", true); //$NON-NLS-1$
  				result = OS.g_content_type_is_a(contentType, exeType);
-@@ -950,9 +950,9 @@ static boolean gio_isExecutable(String f
+@@ -954,9 +954,9 @@
  static boolean gio_launch(String fileName) {
  	boolean result = false;
  	byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
@@ -37628,7 +38154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		if (uri != 0) {
  			result = OS.g_app_info_launch_default_for_uri (uri, 0, 0);
  			OS.g_free(uri);
-@@ -969,18 +969,18 @@ boolean gio_execute(String fileName) {
+@@ -973,11 +973,11 @@
  	boolean result = false;
  	byte[] commandBuffer = Converter.wcsToMbcs (null, command, true);
  	byte[] nameBuffer = Converter.wcsToMbcs (null, name, true);
@@ -37639,21 +38165,22 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/program/Program.java swt-gtk-3.6.
  		byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
 -		int /*long*/ file = 0;
 +		long /*int*/ file = 0;
- 		if (OS.g_app_info_supports_uris (application)) {
- 			file = OS.g_file_new_for_uri (fileNameBuffer);
- 		} else {
- 			file = OS.g_file_new_for_path (fileNameBuffer);
+ 		if (fileName.length() > 0) {
+ 			if (OS.g_app_info_supports_uris (application)) {
+ 				file = OS.g_file_new_for_uri (fileNameBuffer);
+@@ -985,7 +985,7 @@
+ 				file = OS.g_file_new_for_path (fileNameBuffer);
+ 			}
  		}
- 		if (file != 0) {
--			int /*long*/ list = OS.g_list_append (0, file);
-+			long /*int*/ list = OS.g_list_append (0, file);
- 			result = OS.g_app_info_launch (application, list, 0, 0);
- 			OS.g_list_free (list);
- 			OS.g_object_unref (file);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Button.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Button.java	2011-03-21 11:34:23.825726858 +0000
-@@ -46,7 +46,7 @@ import org.eclipse.swt.events.*;
+-		int /*long*/ list = 0;
++		long /*int*/ list = 0;
+ 		if (file != 0) list = OS.g_list_append (0, file);
+ 		result = OS.g_app_info_launch (application, list, 0, 0);
+ 		if (list != 0) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.7//org/eclipse/swt/widgets/Button.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Button.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Button.java	2011-06-13 20:53:32.000000000 +0000
+@@ -45,7 +45,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Button extends Control {
@@ -37662,16 +38189,37 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	boolean selected, grayed;
  	ImageList imageList;
  	Image image;
-@@ -171,7 +171,7 @@ public Point computeSize (int wHint, int
- 	}
- 	if (wHint != SWT.DEFAULT || hHint != SWT.DEFAULT) {
- 		if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_CAN_DEFAULT) != 0) {
--			int /*long*/ [] buffer = new int /*long*/ [1];
-+			long /*int*/ [] buffer = new long /*int*/ [1];
- 			GtkBorder border = new GtkBorder ();
- 			OS.gtk_widget_style_get (handle, OS.default_border, buffer, 0);
- 			if (buffer[0] != 0) {
-@@ -272,7 +272,7 @@ void deregister () {
+@@ -111,9 +111,9 @@
+ 	return style;
+ }
+ 
+-static GtkBorder getBorder (byte[] border, int /*long*/ handle, int defaultBorder) {
++static GtkBorder getBorder (byte[] border, long /*int*/ handle, int defaultBorder) {
+     GtkBorder gtkBorder = new GtkBorder();
+-    int /*long*/ []  borderPtr = new int /*long*/ [1];
++    long /*int*/ []  borderPtr = new long /*int*/ [1];
+     OS.gtk_widget_style_get (handle, border, borderPtr,0);
+     if (borderPtr[0] != 0) {
+         OS.memmove (gtkBorder, borderPtr[0], GtkBorder.sizeof);
+@@ -201,7 +201,7 @@
+ 			indicatorHeight = indicatorSize [0] + 2 * indicatorSpacing [0];
+ 			trimWidth += indicatorHeight + indicatorSpacing [0];
+ 		} else {
+-			int /*long*/ style = OS.gtk_widget_get_style (handle);
++			long /*int*/ style = OS.gtk_widget_get_style (handle);
+ 			trimWidth += OS.gtk_style_get_xthickness (style) * 2;
+ 			trimHeight += OS.gtk_style_get_ythickness (style) * 2;
+ 			GtkBorder innerBorder = getBorder (OS.inner_border, handle, INNER_BORDER);
+@@ -223,7 +223,7 @@
+ 			OS.g_object_get (boxHandle, OS.spacing, spacing, 0);
+ 			imageWidth += spacing [0];
+ 		}
+-		int /*long*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
++		long /*int*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
+ 		int pangoWidth = OS.pango_layout_get_width (labelLayout);
+ 		if (wHint != SWT.DEFAULT) {
+ 			OS.pango_layout_set_width (labelLayout, Math.max (1, (wHint - imageWidth - trimWidth)) * OS.PANGO_SCALE);
+@@ -343,7 +343,7 @@
  	if (arrowHandle != 0) display.removeWidget (arrowHandle);
  }
  
@@ -37680,7 +38228,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	if (labelHandle != 0) return labelHandle;
  	return super.fontHandle ();
  }
-@@ -388,14 +388,14 @@ public String getText () {
+@@ -459,14 +459,14 @@
  	return text;
  }
  
@@ -37698,7 +38246,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	if ((style & SWT.RADIO) != 0) {
  		if ((parent.getStyle () & SWT.NO_RADIO_GROUP) != 0) {
  			setSelection (!selected);
-@@ -417,8 +417,8 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -488,8 +488,8 @@
  	return 0;
  }
  
@@ -37709,7 +38257,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	// widget could be disposed at this point
  	if (handle == 0) return 0;
  	if ((style & SWT.PUSH) != 0 && OS.GTK_WIDGET_HAS_DEFAULT (handle)) {
-@@ -428,8 +428,8 @@ int /*long*/ gtk_focus_in_event (int /*l
+@@ -499,8 +499,8 @@
  	return result;
  }
  
@@ -37720,7 +38268,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	// widget could be disposed at this point
  	if (handle == 0) return 0;
  	if ((style & SWT.PUSH) != 0 && !OS.GTK_WIDGET_HAS_DEFAULT (handle)) {
-@@ -441,8 +441,8 @@ int /*long*/ gtk_focus_out_event (int /*
+@@ -512,8 +512,8 @@
  	return result;
  }
  
@@ -37731,8 +38279,17 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	if (result != 0) return result;
  	if ((style & SWT.RADIO) != 0) selected  = getSelection ();
  	return result;
-@@ -646,7 +646,7 @@ void setBackgroundColor (GdkColor color)
- 	if (imageHandle != 0) setBackgroundColor(imageHandle, color);
+@@ -747,7 +747,7 @@
+ 	if (wrap) {
+ 		int boxWidth = OS.GTK_WIDGET_WIDTH (boxHandle);
+ 		int boxHeight = OS.GTK_WIDGET_HEIGHT (boxHandle);
+-		int /*long*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
++		long /*int*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
+ 		int pangoWidth = OS.pango_layout_get_width (labelLayout);
+ 		OS.pango_layout_set_width (labelLayout, -1);
+ 		int [] w = new int [1], h = new int [1];
+@@ -779,7 +779,7 @@
+ 	return result;
  }
  
 -void setFontDescription (int /*long*/ font) {
@@ -37740,7 +38297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  	super.setFontDescription (font);
  	if (labelHandle != 0) OS.gtk_widget_modify_font (labelHandle, font);
  	if (imageHandle != 0) OS.gtk_widget_modify_font (imageHandle, font);
-@@ -721,7 +721,7 @@ public void setImage (Image image) {
+@@ -854,7 +854,7 @@
  		if (image.isDisposed()) error (SWT.ERROR_INVALID_ARGUMENT);
  		imageList = new ImageList ();
  		int imageIndex = imageList.add (image);
@@ -37749,10 +38306,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Button.java swt-gtk-3.6.2
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		if (text.length () == 0) OS.gtk_widget_hide (labelHandle);
  		OS.gtk_widget_show (imageHandle);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Canvas.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Canvas.java	2011-03-21 11:34:23.735728129 +0000
-@@ -144,46 +144,46 @@ public IME getIME () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.7//org/eclipse/swt/widgets/Canvas.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Canvas.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Canvas.java	2011-06-13 20:53:32.000000000 +0000
+@@ -144,46 +144,46 @@
  	return ime;
  }
  
@@ -37811,7 +38368,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.6.2
  		if (result != 0) return result;
  	}
  	return super.gtk_preedit_changed (imcontext);
-@@ -249,16 +249,16 @@ public void scroll (int destX, int destY
+@@ -249,16 +249,16 @@
  	if (!isVisible ()) return;
  	boolean isFocus = caret != null && caret.isFocusCaret ();
  	if (isFocus) caret.killFocus ();
@@ -37832,7 +38389,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.6.2
  	OS.gdk_region_subtract (invalidateRegion, visibleRegion);
  	OS.gdk_region_offset (invalidateRegion, deltaX, deltaY);
  	GdkRectangle copyRect = new GdkRectangle();
-@@ -275,7 +275,7 @@ public void scroll (int destX, int destY
+@@ -275,7 +275,7 @@
  //		GC gc = new GC (this);
  //		gc.copyArea (x, y, width, height, destX, destY);
  //		gc.dispose ();
@@ -37841,7 +38398,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.6.2
  		OS.gdk_gc_set_exposures (gdkGC, true);
  		OS.gdk_draw_drawable (window, gdkGC, window, copyRect.x, copyRect.y, copyRect.x + deltaX, copyRect.y + deltaY, copyRect.width, copyRect.height);
  		OS.g_object_unref (gdkGC);
-@@ -397,7 +397,7 @@ public void setIME (IME ime) {
+@@ -397,7 +397,7 @@
  }
  	
  void updateCaret () {
@@ -37850,10 +38407,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Canvas.java swt-gtk-3.6.2
  	if (imHandle == 0) return;
  	GdkRectangle rect = new GdkRectangle ();
  	rect.x = caret.x;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Caret.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Caret.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Caret.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Caret.java	2011-03-21 11:34:23.815727004 +0000
-@@ -97,13 +97,13 @@ void createWidget (int index) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Caret.java swt-gtk-3.7//org/eclipse/swt/widgets/Caret.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Caret.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Caret.java	2011-06-13 20:53:32.000000000 +0000
+@@ -96,13 +96,13 @@
  boolean drawCaret () {
  	if (parent == null) return false;
  	if (parent.isDisposed ()) return false;
@@ -37870,10 +38427,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Caret.java swt-gtk-3.6.2/
  	OS.gdk_colormap_alloc_color (colormap, color, true, true);
  	OS.gdk_gc_set_foreground (gc, color);
  	OS.gdk_gc_set_function (gc, OS.GDK_XOR);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ColorDialog.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ColorDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ColorDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ColorDialog.java	2011-03-21 11:34:23.755727838 +0000
-@@ -114,19 +114,19 @@ public RGB getRGB () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ColorDialog.java swt-gtk-3.7//org/eclipse/swt/widgets/ColorDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ColorDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ColorDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -113,19 +113,19 @@
   */
  public RGB open () {
  	byte [] buffer = Converter.wcsToMbcs (null, title, true);
@@ -37897,7 +38454,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ColorDialog.java swt-gtk-
  		OS.gtk_window_group_add_window (group, handle);
  	}
  	OS.gtk_window_set_modal (handle, true);
-@@ -147,7 +147,7 @@ public RGB open () {
+@@ -146,7 +146,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -37906,10 +38463,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ColorDialog.java swt-gtk-
  	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.emissionProc, handle, 0);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Combo.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Combo.java	2011-03-21 11:34:23.745727976 +0000
-@@ -57,9 +57,9 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.7//org/eclipse/swt/widgets/Combo.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Combo.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Combo.java	2011-06-13 20:53:32.000000000 +0000
+@@ -57,9 +57,9 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Combo extends Composite {
@@ -37921,7 +38478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	int fixStart = -1, fixEnd = -1;
  	String [] items = new String [0];
  	boolean ignoreSelect, lockText, selectionAdded;
-@@ -182,13 +182,13 @@ public void add (String string, int inde
+@@ -182,13 +182,13 @@
  		* stopping the "delete" and "insert_text" signal emission. 
  		*/
  		ignoreSelect = lockText = true;
@@ -37938,7 +38495,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		OS.gtk_list_insert_items (listHandle, items, index);
  		ignoreSelect = lockText = false;
  	}
-@@ -343,9 +343,9 @@ void clearText () {
+@@ -343,9 +343,9 @@
  		if ((style & SWT.READ_ONLY) != 0) {
  			int index = OS.gtk_combo_box_get_active (handle);
  			if (index != -1) {
@@ -37951,7 +38508,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  				OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  				OS.gtk_tree_model_get (modelHandle, iter, 0, ptr, -1);
  				OS.g_free (iter);
-@@ -369,10 +369,10 @@ public Point computeSize (int wHint, int
+@@ -369,10 +369,10 @@
  	if (hHint != SWT.DEFAULT && hHint < 0) hHint = 0;
  	int[] w = new int [1], h = new int [1];
  	OS.gtk_widget_realize (entryHandle);
@@ -37964,7 +38521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	xborder += OS.gtk_style_get_xthickness (style);
  	yborder += OS.gtk_style_get_ythickness (style);
  	int [] property = new int [1];
-@@ -388,7 +388,7 @@ public Point computeSize (int wHint, int
+@@ -388,7 +388,7 @@
  	GtkRequisition arrowRequesition = new GtkRequisition ();
  	OS.gtk_widget_size_request (buttonHandle, arrowRequesition);
  	GtkRequisition listRequesition = new GtkRequisition ();
@@ -37973,7 +38530,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	OS.gtk_widget_size_request (listParent != 0 ? listParent : listHandle, listRequesition);
  	
  	width = Math.max (listRequesition.width, width) + arrowRequesition.width + 4;
-@@ -421,7 +421,7 @@ void createHandle (int index) {
+@@ -421,7 +421,7 @@
  	if (fixedHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
@@ -37982,7 +38539,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if ((style & SWT.READ_ONLY) != 0) {
  			handle = OS.gtk_combo_box_new_text ();
  			if (handle == 0) error (SWT.ERROR_NO_HANDLES);
-@@ -486,14 +486,14 @@ void createHandle (int index) {
+@@ -486,14 +486,14 @@
  		listHandle = combo.list;
  		
  		if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) {
@@ -38000,7 +38557,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  				if (modalGroup != 0) {
  					OS.gtk_window_group_add_window (modalGroup, popupHandle);
  				}
-@@ -506,11 +506,11 @@ void createHandle (int index) {
+@@ -506,11 +506,11 @@
  		* to hook events.  The fix is to find the first child that is
  		* not the entry or list and assume this is the arrow handle.
  		*/
@@ -38014,7 +38571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  				if (childHandle != entryHandle && childHandle != listHandle) {
  					buttonHandle = childHandle;
  					break;
-@@ -553,15 +553,15 @@ void deregister () {
+@@ -553,15 +553,15 @@
  	if (listHandle != 0) display.removeWidget (listHandle);
  	if (popupHandle != 0) display.removeWidget (popupHandle);
  	if (menuHandle != 0) display.removeWidget (menuHandle);
@@ -38033,20 +38590,20 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (imContext != 0) {
  			return OS.gtk_im_context_filter_keypress (imContext, event);
  		}
-@@ -570,18 +570,18 @@ boolean filterKey (int keyval, int /*lon
+@@ -570,18 +570,18 @@
  	return false;
  }
  
 -int /*long*/ findPopupHandle (int /*long*/ oldList) {
--	int /*long*/ hdl = 0;
+-	int /*long*/ result = 0;
 -	int /*long*/ currentList = OS.gtk_window_list_toplevels();
 -	int /*long*/ oldFromList = oldList;
--	int /*long*/ newFromList = currentList;
+-	int /*long*/ newFromList = OS.g_list_last(currentList);
 +long /*int*/ findPopupHandle (long /*int*/ oldList) {
-+	long /*int*/ hdl = 0;
++	long /*int*/ result = 0;
 +	long /*int*/ currentList = OS.gtk_window_list_toplevels();
 +	long /*int*/ oldFromList = oldList;
-+	long /*int*/ newFromList = currentList;
++	long /*int*/ newFromList = OS.g_list_last(currentList);
  	boolean isFound;
  	while (newFromList != 0) {
 -		int /*long*/ newToplevel = OS.g_list_data(newFromList);
@@ -38059,7 +38616,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  			if (newToplevel == oldToplevel) {
  				isFound = true;
  				break;
-@@ -610,9 +610,9 @@ void findButtonHandle() {
+@@ -610,9 +610,9 @@
  	*/
  	OS.gtk_container_forall (handle, display.allChildrenProc, 0);
  	if (display.allChildren != 0) {
@@ -38071,7 +38628,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  			if (OS.GTK_IS_BUTTON (widget)) {
  				buttonHandle = widget;
  				break;
-@@ -627,9 +627,9 @@ void findButtonHandle() {
+@@ -627,9 +627,9 @@
  void findMenuHandle() {
  	OS.gtk_container_forall (popupHandle, display.allChildrenProc, 0);
  	if (display.allChildren != 0) {
@@ -38083,7 +38640,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (OS.G_OBJECT_TYPE (widget) == OS.GTK_TYPE_MENU ()) {
  			menuHandle = widget;
  			break;
-@@ -641,7 +641,7 @@ void findMenuHandle() {
+@@ -641,7 +641,7 @@
  	}
  }
  	
@@ -38092,7 +38649,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (popupHandle != 0) {
  		if (group != 0) {
  			OS.gtk_window_group_add_window (group, popupHandle);
-@@ -663,7 +663,7 @@ void fixIM () {
+@@ -663,7 +663,7 @@
  	*  filter has to be called by SWT.
  	*/	
  	if (gdkEventKey != 0 && gdkEventKey != -1) {
@@ -38101,7 +38658,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (imContext != 0) {
  			OS.gtk_im_context_filter_keypress (imContext, gdkEventKey);
  			gdkEventKey = -1;
-@@ -673,12 +673,12 @@ void fixIM () {
+@@ -673,12 +673,12 @@
  	gdkEventKey = 0;
  }
  
@@ -38116,7 +38673,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  		if ((style & SWT.READ_ONLY) != 0 && buttonHandle != 0) return buttonHandle;
  	}
-@@ -708,9 +708,9 @@ void hookEvents () {
+@@ -708,9 +708,9 @@
  	}
  	int eventMask =	OS.GDK_POINTER_MOTION_MASK | OS.GDK_BUTTON_PRESS_MASK | 
  		OS.GDK_BUTTON_RELEASE_MASK;
@@ -38128,7 +38685,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (eventHandle != 0) {
  			/* Connect the mouse signals */
  			OS.gtk_widget_add_events (eventHandle, eventMask);
-@@ -734,7 +734,7 @@ void hookEvents () {
+@@ -734,7 +734,7 @@
  			}
  		}
  	}
@@ -38137,7 +38694,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (imContext != 0) {
  		OS.g_signal_connect_closure (imContext, OS.commit, display.closures [COMMIT], false);
  		int id = OS.g_signal_lookup (OS.commit, OS.gtk_im_context_get_type ());
-@@ -745,7 +745,7 @@ void hookEvents () {
+@@ -745,7 +745,7 @@
  	if (menuHandle != 0) OS.g_signal_connect_closure(menuHandle, OS.selection_done, display.closures[SELECTION_DONE], true);
  }
  
@@ -38146,7 +38703,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	return entryHandle != 0 ? OS.GTK_ENTRY_IM_CONTEXT (entryHandle) : 0;
  }
  
-@@ -770,8 +770,8 @@ public void deselect (int index) {
+@@ -770,8 +770,8 @@
  		}
  	} else {
  		ignoreSelect = true;
@@ -38157,7 +38714,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		boolean selected = OS.GTK_WIDGET_STATE (item) == OS.GTK_STATE_SELECTED;
  		if (selected) {
  			OS.gtk_list_unselect_all (listHandle);
-@@ -812,9 +812,9 @@ boolean dragDetect(int x, int y, boolean
+@@ -812,9 +812,9 @@
  	if (filter && entryHandle != 0) {
  		int [] index = new int [1];
  		int [] trailing = new int [1];
@@ -38167,10 +38724,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
 -		int /*long*/ ptr = OS.pango_layout_get_text (layout);
 +		long /*int*/ ptr = OS.pango_layout_get_text (layout);
  		int position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
- 		Point selection = getSelection ();
- 		if (selection.x <= position && position < selection.y) {
-@@ -828,11 +828,11 @@ boolean dragDetect(int x, int y, boolean
- 	return super.dragDetect (x, y, filter, consume);
+ 		int [] start = new int [1];
+ 		int [] end = new int [1];
+@@ -830,11 +830,11 @@
+ 	return super.dragDetect (x, y, filter, dragOnTimeout, consume);
  }
  
 -int /*long*/ enterExitHandle () {
@@ -38183,16 +38740,25 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	return paintWindow ();
  }
  
-@@ -997,7 +997,7 @@ public Point getSelection () {
+@@ -998,7 +998,7 @@
  			int index = OS.gtk_combo_box_get_active (handle);
  			if (index != -1) length = getItem (index).length ();
  		} else {
 -			int /*long*/ str = OS.gtk_entry_get_text (entryHandle);
 +			long /*int*/ str = OS.gtk_entry_get_text (entryHandle);
- 			if (str != 0) length = (int)/*64*/OS.g_utf8_strlen (str, -1);
+ 			if (str != 0) length = (int)/*64*/OS.g_utf16_strlen (str, -1);
  		}
  		return new Point (0, length);
-@@ -1027,10 +1027,10 @@ public int getSelectionIndex () {
+@@ -1007,7 +1007,7 @@
+ 	int [] end = new int [1];
+ 	if (entryHandle != 0) {
+ 		OS.gtk_editable_get_selection_bounds (entryHandle, start, end);
+-		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
+ 		start[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start[0]);
+ 		end[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end[0]);
+ 	}
+@@ -1031,10 +1031,10 @@
  		return OS.gtk_combo_box_get_active (handle);
  	}
  	int index = 0, result = -1;
@@ -38206,7 +38772,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (OS.GTK_WIDGET_STATE (item) == OS.GTK_STATE_SELECTED) {
  			result = index;
  			break;
-@@ -1057,7 +1057,7 @@ public int getSelectionIndex () {
+@@ -1061,7 +1061,7 @@
  public String getText () {
  	checkWidget();
  	if (entryHandle != 0) {
@@ -38215,7 +38781,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		if (str == 0) return "";
  		int length = OS.strlen (str);
  		byte [] buffer = new byte [length];
-@@ -1138,12 +1138,12 @@ public int getVisibleItemCount () {
+@@ -1142,12 +1142,12 @@
  	return visibleCount;
  }
  
@@ -38230,7 +38796,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	/*
  	* Feature in GTK. Depending on where the user clicks, GTK prevents 
  	* the left mouse button event from being propagated. The fix is to
-@@ -1159,7 +1159,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -1163,7 +1163,7 @@
  	return super.gtk_button_press_event (widget, event);
  }
  
@@ -38239,7 +38805,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  		if (widget == handle) {
  			if (entryHandle == 0) {
-@@ -1184,7 +1184,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1188,7 +1188,7 @@
  		}
  	} else {
  		if (!ignoreSelect) {
@@ -38248,7 +38814,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  			int length = OS.strlen (ptr);
  			byte [] buffer = new byte [length];
  			OS.memmove (buffer, ptr, length);
-@@ -1205,7 +1205,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1209,7 +1209,7 @@
  	* is to post the modify event when the user is typing.
  	*/
  	boolean keyPress = false;
@@ -38257,7 +38823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-@@ -1224,7 +1224,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1228,7 +1228,7 @@
  	return 0;
  }
  
@@ -38266,7 +38832,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (text == 0) return 0;
  	if (!OS.gtk_editable_get_editable (entryHandle)) return 0;
  	int length = OS.strlen (text);
-@@ -1262,7 +1262,7 @@ int /*long*/ gtk_commit (int /*long*/ im
+@@ -1266,14 +1266,14 @@
  	return 0;
  }
  
@@ -38275,7 +38841,15 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (lockText) {
  		OS.gtk_list_unselect_item (listHandle, 0);
  		OS.g_signal_stop_emission_by_name (entryHandle, OS.delete_text);
-@@ -1289,7 +1289,7 @@ int /*long*/ gtk_delete_text (int /*long
+ 		return 0;
+ 	}
+ 	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
+-	int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
+ 	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+ 	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+ 	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+@@ -1296,7 +1296,7 @@
  	return 0;
  }
  
@@ -38284,7 +38858,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	/*
  	* Feature in GTK. Depending on where the user clicks, GTK prevents 
  	* the left mouse button event from being propagated. The fix is to
-@@ -1309,7 +1309,7 @@ int /*long*/ gtk_event_after (int /*long
+@@ -1316,7 +1316,7 @@
  		switch (event.type) {
  			case OS.GDK_BUTTON_PRESS: {
  				if (OS.GTK_VERSION < OS.VERSION (2, 8, 0) && !selectionAdded) {
@@ -38293,7 +38867,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  					if (grabHandle != 0) {
  						if (OS.G_OBJECT_TYPE (grabHandle) == OS.GTK_TYPE_MENU ()) {
  							menuHandle = grabHandle;
-@@ -1354,12 +1354,12 @@ int /*long*/ gtk_event_after (int /*long
+@@ -1361,12 +1361,12 @@
  	return super.gtk_event_after(widget, gdkEvent);
  }
  
@@ -38308,16 +38882,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (lockText) {
  		OS.gtk_list_unselect_item (listHandle, 0);
  		OS.g_signal_stop_emission_by_name (entryHandle, OS.insert_text);
-@@ -1373,7 +1373,7 @@ int /*long*/ gtk_insert_text (int /*long
+@@ -1379,7 +1379,7 @@
+ 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
  	int [] pos = new int [1];
  	OS.memmove (pos, position, 4);
- 	if (pos [0] == -1) {
--		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
-+		long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
- 		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
- 	}
- 	String newText = verifyText (oldText, pos [0], pos [0]);
-@@ -1405,8 +1405,8 @@ int /*long*/ gtk_insert_text (int /*long
+-	int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
+ 	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
+ 	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, pos [0]);
+ 	String newText = verifyText (oldText, start, start);
+@@ -1411,8 +1411,8 @@
  	return 0;
  }
  
@@ -38328,7 +38902,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (result != 0) {
  	    gdkEventKey = 0;
  	    fixIM ();
-@@ -1456,7 +1456,7 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -1462,7 +1462,7 @@
  	return result;
  }
  
@@ -38337,7 +38911,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
  		OS.gtk_widget_set_direction (menu, OS.GTK_TEXT_DIR_RTL);
  		OS.gtk_container_forall (menu, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);
-@@ -1464,7 +1464,7 @@ int /*long*/ gtk_populate_popup (int /*l
+@@ -1470,7 +1470,7 @@
  	return 0;
  }
  
@@ -38346,7 +38920,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	int index = OS.gtk_combo_box_get_active (handle);
  	if (indexSelected == -1){
  		indexSelected = index;
-@@ -1533,14 +1533,14 @@ boolean isFocusHandle(int widget) {
+@@ -1539,14 +1539,14 @@
  	return super.isFocusHandle (widget);
  }
  
@@ -38365,7 +38939,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (children != 0) window = OS.g_list_data (children);
  	OS.g_list_free (children);
  	return window;
-@@ -1565,7 +1565,7 @@ public void paste () {
+@@ -1571,7 +1571,7 @@
  	if (entryHandle != 0) OS.gtk_editable_paste_clipboard (entryHandle);
  }
  
@@ -38374,7 +38948,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	return fixedHandle;
  }
  
-@@ -1576,7 +1576,7 @@ void register () {
+@@ -1582,7 +1582,7 @@
  	if (listHandle != 0) display.addWidget (listHandle, this);
  	if (popupHandle != 0) display.addWidget (popupHandle, this);
  	if (menuHandle != 0) display.addWidget (menuHandle, this);
@@ -38383,7 +38957,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (imContext != 0) display.addWidget (imContext, this);
  }
  
-@@ -1620,10 +1620,10 @@ public void remove (int index) {
+@@ -1626,10 +1626,10 @@
  		OS.gtk_combo_box_remove_text (handle, index);
  	} else {
  		ignoreSelect = true;
@@ -38397,7 +38971,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		OS.gtk_list_remove_items (listHandle, items);
  		OS.g_list_free (items);
  		OS.g_list_free (children);
-@@ -1670,10 +1670,10 @@ public void remove (int start, int end)
+@@ -1676,10 +1676,10 @@
  	} else {
  		boolean selected = false;
  		ignoreSelect = true;
@@ -38411,7 +38985,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  			selected |= OS.GTK_WIDGET_STATE (item) == OS.GTK_STATE_SELECTED;
  			items = OS.g_list_append (items, item);
  		}
-@@ -1864,7 +1864,7 @@ int setBounds (int x, int y, int width,
+@@ -1870,7 +1870,7 @@
  	return super.setBounds (x, y, width, newHeight, move, resize);
  }
  
@@ -38420,7 +38994,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	super.setFontDescription (font);
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  		if (entryHandle != 0) OS.gtk_widget_modify_font (entryHandle, font);
-@@ -1885,11 +1885,11 @@ void setFontDescription (int /*long*/ fo
+@@ -1891,11 +1891,11 @@
  		OS.gtk_widget_modify_font (entryHandle, font);
  		if (listHandle != 0) {
  			OS.gtk_widget_modify_font (listHandle, font);
@@ -38434,7 +39008,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  					OS.gtk_widget_modify_font (widget, font);
  				}
  				OS.g_list_free (itemsList);
-@@ -1907,11 +1907,11 @@ void setForegroundColor (GdkColor color)
+@@ -1913,11 +1913,11 @@
  		setForegroundColor (entryHandle, color);
  		if (listHandle != 0) {
  			setForegroundColor (listHandle, color);
@@ -38448,7 +39022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  					setForegroundColor (widget, color);
  				}
  				OS.g_list_free (itemsList);
-@@ -1952,9 +1952,9 @@ public void setItem (int index, String s
+@@ -1958,9 +1958,9 @@
  		}
  	} else {
  		ignoreSelect = true;
@@ -38461,7 +39035,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  		OS.gtk_label_set_text (label, buffer);
  		OS.g_list_free (children);
  		ignoreSelect = false;
-@@ -2000,15 +2000,15 @@ public void setItems (String [] items) {
+@@ -2006,15 +2006,15 @@
  	} else {
  		lockText = ignoreSelect = true;
  		OS.gtk_list_clear_items (listHandle, 0, -1);
@@ -38480,30 +39054,39 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  			setForegroundColor (label, color);
  			OS.gtk_widget_modify_font (label, font);
  			OS.gtk_widget_set_direction (label, direction);
-@@ -2086,11 +2086,11 @@ public void setOrientation (int orientat
- 		if (entryHandle != 0) OS.gtk_widget_set_direction (entryHandle, dir);
- 		if (listHandle != 0) {
- 			OS.gtk_widget_set_direction (listHandle, dir);
--			int /*long*/ itemsList = OS.gtk_container_get_children (listHandle);
-+			long /*int*/ itemsList = OS.gtk_container_get_children (listHandle);
- 			if (itemsList != 0) {
- 				int count = OS.g_list_length (itemsList);
- 				for (int i=count - 1; i>=0; i--) {
--					int /*long*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
-+					long /*int*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
- 					OS.gtk_widget_set_direction (widget, dir);
- 				}
- 				OS.g_list_free (itemsList);
-@@ -2177,7 +2177,7 @@ public void setText (String string) {
+@@ -2066,11 +2066,11 @@
+ 		if (!create) {
+ 			if (listHandle != 0) {
+ 				OS.gtk_widget_set_direction (listHandle, dir);
+-				int /*long*/ itemsList = OS.gtk_container_get_children (listHandle);
++				long /*int*/ itemsList = OS.gtk_container_get_children (listHandle);
+ 				if (itemsList != 0) {
+ 					int count = OS.g_list_length (itemsList);
+ 					for (int i=count - 1; i>=0; i--) {
+-						int /*long*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
++						long /*int*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
+ 						OS.gtk_widget_set_direction (widget, dir);
+ 					}
+ 					OS.g_list_free (itemsList);
+@@ -2120,7 +2120,7 @@
+ 	if (selection == null) error (SWT.ERROR_NULL_ARGUMENT);
+ 	if ((style & SWT.READ_ONLY) != 0) return;
+ 	if (entryHandle != 0) {
+-		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
+ 		int start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, selection.x);
+ 		int end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, selection.y);
+ 		OS.gtk_editable_set_position (entryHandle, start);
+@@ -2178,7 +2178,7 @@
  	* fix is to block the firing of these events and fire them ourselves in a consistent manner. 
  	*/
  	if (hooks (SWT.Verify) || filters (SWT.Verify)) {
 -		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
 +		long /*int*/ ptr = OS.gtk_entry_get_text (entryHandle);
- 		string = verifyText (string, 0, (int)/*64*/OS.g_utf8_strlen (ptr, -1));
+ 		string = verifyText (string, 0, (int)/*64*/OS.g_utf16_strlen (ptr, -1));
  		if (string == null) return;
  	}
-@@ -2261,9 +2261,9 @@ boolean translateTraversal (GdkEventKey
+@@ -2262,9 +2262,9 @@
  	switch (key) {
  		case OS.GDK_KP_Enter:
  		case OS.GDK_Return: {
@@ -38515,7 +39098,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  				OS.gtk_im_context_get_preedit_string (imContext, preeditString, null, null);
  				if (preeditString [0] != 0) {
  					int length = OS.strlen (preeditString [0]);
-@@ -2282,7 +2282,7 @@ String verifyText (String string, int st
+@@ -2283,7 +2283,7 @@
  	event.text = string;
  	event.start = start;
  	event.end = end;
@@ -38524,10 +39107,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Combo.java swt-gtk-3.6.2/
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Composite.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Composite.java	2011-03-21 11:34:23.895725860 +0000
-@@ -47,8 +47,8 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.7//org/eclipse/swt/widgets/Composite.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Composite.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Composite.java	2011-06-13 20:53:32.000000000 +0000
+@@ -47,8 +47,8 @@
   * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
   */
  public class Composite extends Scrollable {
@@ -38538,7 +39121,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	Layout layout;
  	Control[] tabList;
  	int layoutCount, backgroundMode;
-@@ -101,15 +101,15 @@ static int checkStyle (int style) {
+@@ -101,15 +101,15 @@
  }
  
  Control [] _getChildren () {
@@ -38558,7 +39141,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		if (handle != 0) {
  			Widget widget = display.getWidget (handle);
  			if (widget != null && widget != this) {
-@@ -203,7 +203,7 @@ protected void checkSubclass () {
+@@ -203,7 +203,7 @@
  	/* Do nothing - Subclassing is allowed */
  }
  
@@ -38567,7 +39150,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if (scrolledHandle != 0) return 0;
  	return super.childStyle ();
  }
-@@ -264,9 +264,9 @@ void createHandle (int index, boolean fi
+@@ -264,9 +264,9 @@
  			if (fixedHandle == 0) error (SWT.ERROR_NO_HANDLES);
  			OS.gtk_fixed_set_has_window (fixedHandle, true);
  		}
@@ -38579,7 +39162,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		if (hadj == 0) error (SWT.ERROR_NO_HANDLES);
  		scrolledHandle = OS.gtk_scrolled_window_new (hadj, vadj);
  		if (scrolledHandle == 0) SWT.error (SWT.ERROR_NO_HANDLES);
-@@ -364,7 +364,7 @@ public void drawBackground (GC gc, int x
+@@ -364,7 +364,7 @@
  	Control control = findBackgroundControl ();
  	if (control != null) {
  		GCData data = gc.getGCData ();
@@ -38588,7 +39171,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		if (cairo != 0) {
  			Cairo.cairo_save (cairo);
  			if (control.backgroundImage != null) {
-@@ -372,15 +372,15 @@ public void drawBackground (GC gc, int x
+@@ -372,15 +372,15 @@
  				Cairo.cairo_translate (cairo, -pt.x - offsetX, -pt.y - offsetY);
  				x += pt.x + offsetX;
  				y += pt.y + offsetY;
@@ -38610,7 +39193,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  				if (pattern == 0) error (SWT.ERROR_NO_HANDLES);
  				Cairo.cairo_pattern_set_extend (pattern, Cairo.CAIRO_EXTEND_REPEAT);
  				if ((data.style & SWT.MIRRORED) != 0) {
-@@ -398,7 +398,7 @@ public void drawBackground (GC gc, int x
+@@ -398,7 +398,7 @@
  			Cairo.cairo_fill (cairo);
  			Cairo.cairo_restore (cairo);
  		} else {
@@ -38619,7 +39202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  			GdkGCValues values = new GdkGCValues ();
  			OS.gdk_gc_get_values (gdkGC, values);
  			if (control.backgroundImage != null) {
-@@ -456,7 +456,7 @@ void fixChildren (Shell newShell, Shell
+@@ -456,7 +456,7 @@
  	}
  }
  
@@ -38628,7 +39211,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	Control[] controls = _getChildren ();
  	for (int i = 0; i < controls.length; i++) {
  		controls[i].fixModal (group, modalGroup);
-@@ -495,15 +495,15 @@ void fixTabList (Control control) {
+@@ -495,15 +495,15 @@
  
  void fixZOrder () {
  	if ((state & CANVAS) != 0) return;
@@ -38650,7 +39233,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  			if (window != redrawWindow) {
  				OS.gdk_window_get_user_data (window, userData);
  				if (userData [0] == 0 || OS.G_OBJECT_TYPE (userData [0]) != display.gtk_fixed_get_type ()) {
-@@ -516,12 +516,12 @@ void fixZOrder () {
+@@ -516,12 +516,12 @@
  	}
  }
  
@@ -38665,7 +39248,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if (socketHandle != 0) OS.GTK_WIDGET_SET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
  	boolean result = super.forceFocus (focusHandle);
  	if (socketHandle != 0) OS.GTK_WIDGET_UNSET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
-@@ -582,7 +582,7 @@ int getChildrenCount () {
+@@ -582,7 +582,7 @@
  	* NOTE: The current implementation will count
  	* non-registered children.
  	*/
@@ -38674,7 +39257,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if (list == 0) return 0;
  	int count = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -596,7 +596,7 @@ public Rectangle getClientArea () {
+@@ -596,7 +596,7 @@
  			return new Rectangle (0, 0, 0, 0);
  		}
  		forceResize ();
@@ -38683,7 +39266,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (clientHandle);
  		int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (clientHandle);
  		return new Rectangle (0, 0, width, height);
-@@ -677,8 +677,8 @@ public Control [] getTabList () {
+@@ -677,8 +677,8 @@
  	return tabList;
  }
  
@@ -38694,7 +39277,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if (result != 0) return result;
  	if ((state & CANVAS) != 0) {
  		if ((style & SWT.NO_FOCUS) == 0 && hooksKeys ()) {
-@@ -692,7 +692,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -692,7 +692,7 @@
  	return result;
  }
  
@@ -38703,7 +39286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if ((state & OBSCURED) != 0) return 0;
  	if ((state & CANVAS) == 0) {
  		return super.gtk_expose_event (widget, eventPtr);
-@@ -703,7 +703,7 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -703,7 +703,7 @@
  	if (!hooks (SWT.Paint) && !filters (SWT.Paint)) return 0;
  	GdkEventExpose gdkEvent = new GdkEventExpose ();
  	OS.memmove(gdkEvent, eventPtr, GdkEventExpose.sizeof);
@@ -38712,7 +39295,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	int [] n_rectangles = new int [1];
  	OS.gdk_region_get_rectangles (gdkEvent.region, rectangles, n_rectangles);
  	GdkRectangle rect = new GdkRectangle ();
-@@ -715,7 +715,7 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -715,7 +715,7 @@
  		event.width = rect.width;
  		event.height = rect.height;
  		if ((style & SWT.MIRRORED) != 0) event.x = getClientWidth () - event.width - event.x;
@@ -38721,7 +39304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		OS.gdk_region_union_with_rect (damageRgn, rect);
  		GCData data = new GCData ();
  		data.damageRgn = damageRgn;
-@@ -730,8 +730,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -730,8 +730,8 @@
  	return 0;
  }
  
@@ -38732,7 +39315,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	if (result != 0) return result;
  	/*
  	* Feature in GTK.  The default behavior when the return key
-@@ -751,30 +751,30 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -751,30 +751,30 @@
  	return result;
  }
  
@@ -38772,7 +39355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		if (window != 0) OS.gdk_window_set_back_pixmap (window, 0, false);
  	}
  	if (socketHandle != 0) {
-@@ -783,16 +783,16 @@ int /*long*/ gtk_realize (int /*long*/ w
+@@ -783,16 +783,16 @@
  	return result;
  }
  
@@ -38793,7 +39376,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		if (window != 0) OS.gdk_window_set_back_pixmap (window, 0, false);
  	}
  	return result;
-@@ -816,7 +816,7 @@ boolean hooksKeys () {
+@@ -816,7 +816,7 @@
  	return hooks (SWT.KeyDown) || hooks (SWT.KeyUp);
  }
  
@@ -38802,7 +39385,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	return imHandle;
  }
  
-@@ -1111,16 +1111,16 @@ void markLayout (boolean changed, boolea
+@@ -1111,16 +1111,16 @@
  	}
  }
  
@@ -38825,7 +39408,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	while (temp != 0) {
  		OS.memmove (data, temp, OS.PTR_SIZEOF);
  		OS.memmove (widget, data [0], OS.PTR_SIZEOF);
-@@ -1148,20 +1148,20 @@ void moveAbove (int /*long*/ child, int
+@@ -1148,20 +1148,20 @@
  	OS.memmove (parentHandle, fixed);
  }
  
@@ -38852,7 +39435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	while (temp != 0) {
  		OS.memmove (data, temp, OS.PTR_SIZEOF);
  		OS.memmove (widget, data [0], OS.PTR_SIZEOF);
-@@ -1193,7 +1193,7 @@ void moveChildren(int oldWidth) {
+@@ -1193,7 +1193,7 @@
  	Control[] children = _getChildren ();
  	for (int i = 0; i < children.length; i++) {
  		Control child = children[i];
@@ -38861,7 +39444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  		int x = OS.GTK_WIDGET_X (topHandle);
  		int y = OS.GTK_WIDGET_Y (topHandle);
  		int controlWidth = (child.state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle);
-@@ -1235,12 +1235,12 @@ Point minimumSize (int wHint, int hHint,
+@@ -1236,12 +1236,12 @@
  	return new Point (width, height);
  }
  
@@ -38876,10 +39459,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Composite.java swt-gtk-3.
  	Region oldClip = new Region (gc.getDevice ());
  	Region newClip = new Region (gc.getDevice ());
  	gc.getClipping (oldClip);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Control.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Control.java	2011-03-21 11:34:23.795727276 +0000
-@@ -44,8 +44,8 @@ import org.eclipse.swt.internal.gtk.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.7//org/eclipse/swt/widgets/Control.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Control.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Control.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,8 +44,8 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public abstract class Control extends Widget implements Drawable {
@@ -38890,7 +39473,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int drawCount;
  	Composite parent;
  	Cursor cursor;
-@@ -104,12 +104,12 @@ Font defaultFont () {
+@@ -104,12 +104,12 @@
  void deregister () {
  	super.deregister ();
  	if (fixedHandle != 0) display.removeWidget (fixedHandle);
@@ -38906,7 +39489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (region != 0) OS.gdk_gc_set_clip_region (gdkGC, region);
  	if (control.backgroundImage != null) {
  		Point pt = display.map (this, control, 0, 0);
-@@ -126,8 +126,8 @@ void drawBackground (Control control, in
+@@ -126,8 +126,8 @@
  }
  
  boolean drawGripper (int x, int y, int width, int height, boolean vertical) {
@@ -38917,7 +39500,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (window == 0) return false;
  	int orientation = vertical ? OS.GTK_ORIENTATION_HORIZONTAL : OS.GTK_ORIENTATION_VERTICAL;
  	if ((style & SWT.MIRRORED) != 0) x = getClientWidth () - width - x;
-@@ -139,16 +139,16 @@ void enableWidget (boolean enabled) {
+@@ -139,16 +139,16 @@
  	OS.gtk_widget_set_sensitive (handle, enabled);
  }
  
@@ -38938,7 +39521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (eventHandle);
  	return OS.GTK_WIDGET_WINDOW (eventHandle);
  }
-@@ -160,7 +160,7 @@ void fixFocus (Control focusControl) {
+@@ -160,7 +160,7 @@
  		if (control.setFocus ()) return;
  	}
  	shell.setSavedFocus (focusControl);
@@ -38946,8 +39529,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
 +	long /*int*/ focusHandle = shell.vboxHandle;
  	OS.GTK_WIDGET_SET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
  	OS.gtk_widget_grab_focus (focusHandle);
- 	OS.GTK_WIDGET_UNSET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
-@@ -170,7 +170,7 @@ void fixStyle () {
+ 	// widget could be disposed at this point
+@@ -172,7 +172,7 @@
  	if (fixedHandle != 0) fixStyle (fixedHandle);
  }
  
@@ -38956,7 +39539,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	/*
  	* Feature in GTK.  Some GTK themes apply a different background to
  	* the contents of a GtkNotebook.  However, in an SWT TabFolder, the
-@@ -184,7 +184,7 @@ void fixStyle (int /*long*/ handle) {
+@@ -186,7 +186,7 @@
  	*/
  	if ((state & BACKGROUND) != 0) return;
  	if ((state & THEME_BACKGROUND) == 0) return;
@@ -38965,7 +39548,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (childStyle != 0) {
  		GdkColor color = new GdkColor();
  		OS.gtk_style_get_bg (childStyle, 0, color);
-@@ -192,11 +192,11 @@ void fixStyle (int /*long*/ handle) {
+@@ -194,11 +194,11 @@
  	}
  }
  
@@ -38979,7 +39562,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	return handle;
  }
  
-@@ -206,7 +206,7 @@ boolean hasFocus () {
+@@ -226,7 +226,7 @@
  
  void hookEvents () {
  	/* Connect the keyboard signals */
@@ -38988,7 +39571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int focusMask = OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK | OS.GDK_FOCUS_CHANGE_MASK;
  	OS.gtk_widget_add_events (focusHandle, focusMask);
  	OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [POPUP_MENU], 0, display.closures [POPUP_MENU], false);
-@@ -218,7 +218,7 @@ void hookEvents () {
+@@ -238,7 +238,7 @@
  	OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_OUT_EVENT], 0, display.closures [FOCUS_OUT_EVENT], false);
  
  	/* Connect the mouse signals */
@@ -38997,7 +39580,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int eventMask = OS.GDK_POINTER_MOTION_MASK | OS.GDK_BUTTON_PRESS_MASK | OS.GDK_BUTTON_RELEASE_MASK;
  	OS.gtk_widget_add_events (eventHandle, eventMask);
  	OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, display.closures [BUTTON_PRESS_EVENT], false);
-@@ -227,7 +227,7 @@ void hookEvents () {
+@@ -247,7 +247,7 @@
  	OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [SCROLL_EVENT], 0, display.closures [SCROLL_EVENT], false);
  	
  	/* Connect enter/exit signals */
@@ -39006,7 +39589,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int enterExitMask = OS.GDK_ENTER_NOTIFY_MASK | OS.GDK_LEAVE_NOTIFY_MASK;
  	OS.gtk_widget_add_events (enterExitHandle, enterExitMask);
  	OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, display.closures [ENTER_NOTIFY_EVENT], false);
-@@ -243,7 +243,7 @@ void hookEvents () {
+@@ -263,7 +263,7 @@
  	* The signal is hooked to the fixedHandle to catch events sent to
  	* lightweight widgets.
  	*/
@@ -39015,7 +39598,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, display.closures [BUTTON_PRESS_EVENT_INVERSE], true);
  	OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, display.closures [BUTTON_RELEASE_EVENT_INVERSE], true);
  	OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, display.closures [MOTION_NOTIFY_EVENT_INVERSE], true);
-@@ -255,7 +255,7 @@ void hookEvents () {
+@@ -275,7 +275,7 @@
  	}
  	
  	/* Connect the paint signal */
@@ -39024,7 +39607,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int paintMask = OS.GDK_EXPOSURE_MASK | OS.GDK_VISIBILITY_NOTIFY_MASK;
  	OS.gtk_widget_add_events (paintHandle, paintMask);
  	OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, display.closures [EXPOSE_EVENT_INVERSE], false);
-@@ -265,7 +265,7 @@ void hookEvents () {
+@@ -292,7 +292,7 @@
  	/* Connect the Input Method signals */
  	OS.g_signal_connect_closure_by_id (handle, display.signalIds [REALIZE], 0, display.closures [REALIZE], true);
  	OS.g_signal_connect_closure_by_id (handle, display.signalIds [UNREALIZE], 0, display.closures [UNREALIZE], false);
@@ -39033,7 +39616,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (imHandle != 0) {
  		OS.g_signal_connect_closure (imHandle, OS.commit, display.closures [COMMIT], false);
  		OS.g_signal_connect_closure (imHandle, OS.preedit_changed, display.closures [PREEDIT_CHANGED], false);
-@@ -273,11 +273,11 @@ void hookEvents () {
+@@ -300,11 +300,11 @@
  	
  	OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [STYLE_SET], 0, display.closures [STYLE_SET], false);
     
@@ -39047,7 +39630,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int [] x = new int [1], y = new int [1], mask = new int [1];
  	OS.gdk_window_get_pointer (0, x, y, mask);
  	sendMouseEvent (SWT.MouseHover, 0, /*time*/0, x [0], y [0], false, mask [0]);
-@@ -285,14 +285,14 @@ int /*long*/ hoverProc (int /*long*/ wid
+@@ -312,14 +312,14 @@
  	return 0;
  }
  
@@ -39066,7 +39649,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	while (paintHandle != topHandle) {
  		if ((OS.GTK_WIDGET_FLAGS (paintHandle) & OS.GTK_NO_WINDOW) == 0) break;
  		paintHandle = OS.gtk_widget_get_parent (paintHandle);
-@@ -300,8 +300,8 @@ int /*long*/ paintHandle () {
+@@ -327,8 +327,8 @@
  	return paintHandle;
  }
  
@@ -39077,7 +39660,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (paintHandle);
  	return OS.GTK_WIDGET_WINDOW (paintHandle);
  }
-@@ -327,25 +327,25 @@ public boolean print (GC gc) {
+@@ -354,25 +354,25 @@
  	checkWidget ();
  	if (gc == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (gc.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
@@ -39109,7 +39692,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (OS.gdk_drawable_get_depth (window) != depth) return;
  	GdkRectangle rect = new GdkRectangle ();
  	int [] width = new int [1], height = new int [1];
-@@ -353,13 +353,13 @@ void printWindow (boolean first, Control
+@@ -380,13 +380,13 @@
  	rect.width = width [0];
  	rect.height = height [0];
  	OS.gdk_window_begin_paint_rect (window, rect);
@@ -39126,7 +39709,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		GdkEventExpose event = new GdkEventExpose ();
  		event.type = OS.GDK_EXPOSE;
  		event.window = OS.g_object_ref (window);
-@@ -375,7 +375,7 @@ void printWindow (boolean first, Control
+@@ -402,7 +402,7 @@
  	if (!first) {
  		int [] cX = new int [1], cY = new int [1];
  		OS.gdk_window_get_position (window, cX, cY);
@@ -39135,7 +39718,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		int [] pW = new int [1], pH = new int [1];
  		OS.gdk_drawable_get_size (parentWindow, pW, pH);
  		srcX = x_offset [0] - cX [0];
-@@ -386,18 +386,18 @@ void printWindow (boolean first, Control
+@@ -413,18 +413,18 @@
  		destHeight = Math.min (cY [0] + height [0], pH [0]);
  	}
  	GCData gcData = gc.getGCData();
@@ -39160,7 +39743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if (pattern == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  		Cairo.cairo_pattern_set_filter(pattern, Cairo.CAIRO_FILTER_BEST);
  		Cairo.cairo_set_source(cairo, pattern);
-@@ -413,13 +413,13 @@ void printWindow (boolean first, Control
+@@ -440,13 +440,13 @@
  		OS.gdk_draw_drawable (drawable, gc.handle, real_drawable [0], srcX, srcY, destX, destY, destWidth, destHeight);
  	}
  	OS.gdk_window_end_paint (window);
@@ -39178,7 +39761,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  				OS.gdk_window_get_user_data (child, data);
  				if (data [0] != 0) {
  					Widget widget = display.findWidget (data [0]);
-@@ -533,7 +533,7 @@ void checkMirrored () {
+@@ -560,7 +560,7 @@
  	if ((style & SWT.RIGHT_TO_LEFT) != 0) style |= SWT.MIRRORED;
  }
  
@@ -39187,7 +39770,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	return parent.childStyle ();
  }
  
-@@ -593,7 +593,7 @@ public Point computeSize (int wHint, int
+@@ -620,7 +620,7 @@
  	return computeNativeSize (handle, wHint, hHint, changed);	
  }
  
@@ -39196,7 +39779,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int width = wHint, height = hHint;
  	if (wHint == SWT.DEFAULT && hHint == SWT.DEFAULT) {
  		GtkRequisition requisition = new GtkRequisition ();
-@@ -619,7 +619,7 @@ void forceResize () {
+@@ -646,7 +646,7 @@
  	* topHandle.  Note that all calls to gtk_widget_size_allocate()
  	* must be preceded by a call to gtk_widget_size_request().
  	*/
@@ -39205,7 +39788,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GtkRequisition requisition = new GtkRequisition ();
  	gtk_widget_size_request (topHandle, requisition);
  	GtkAllocation allocation = new GtkAllocation ();
-@@ -674,7 +674,7 @@ Accessible _getAccessible () {
+@@ -704,7 +704,7 @@
   */
  public Rectangle getBounds () {
  	checkWidget();
@@ -39214,7 +39797,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int x = OS.GTK_WIDGET_X (topHandle);
  	int y = OS.GTK_WIDGET_Y (topHandle);
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle);
-@@ -739,7 +739,7 @@ void markLayout (boolean changed, boolea
+@@ -769,7 +769,7 @@
  	/* Do nothing */
  }
  
@@ -39223,7 +39806,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	super.modifyStyle(handle, style);
  	/*
  	* Bug in GTK.  When changing the style of a control that  
-@@ -750,8 +750,8 @@ void modifyStyle (int /*long*/ handle, i
+@@ -780,8 +780,8 @@
  }
  
  void moveHandle (int x, int y) {
@@ -39234,7 +39817,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	/*
  	* Feature in GTK.  Calling gtk_fixed_move() to move a child causes
  	* the whole parent to redraw.  This is a performance problem. The
-@@ -769,13 +769,13 @@ void moveHandle (int x, int y) {
+@@ -799,13 +799,13 @@
  }
  
  void resizeHandle (int width, int height) {
@@ -39250,7 +39833,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	boolean sendMove = move;
  	if ((parent.style & SWT.MIRRORED) != 0) {
  		int clientWidth = parent.getClientWidth ();
-@@ -899,7 +899,7 @@ int setBounds (int x, int y, int width,
+@@ -929,7 +929,7 @@
   */
  public Point getLocation () {
  	checkWidget();
@@ -39259,7 +39842,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int x = OS.GTK_WIDGET_X (topHandle);
  	int y = OS.GTK_WIDGET_Y (topHandle);
  	if ((parent.style & SWT.MIRRORED) != 0) {
-@@ -964,7 +964,7 @@ public void setLocation(int x, int y) {
+@@ -994,7 +994,7 @@
   */
  public Point getSize () {
  	checkWidget();
@@ -39268,7 +39851,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle);
  	int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle);
  	return new Point (width, height);
-@@ -1014,15 +1014,15 @@ public void setSize (Point size) {
+@@ -1044,15 +1044,15 @@
  public void setRegion (Region region) {
  	checkWidget ();
  	if (region != null && region.isDisposed()) error (SWT.ERROR_INVALID_ARGUMENT);
@@ -39288,7 +39871,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (list == 0) return;
  	int count = OS.g_list_length (list);
  	if (count > 1) {
-@@ -1030,7 +1030,7 @@ void setRelations () {
+@@ -1060,7 +1060,7 @@
  		 * the receiver is the last item in the list, so its predecessor will
  		 * be the second-last item in the list
  		 */
@@ -39297,7 +39880,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if (handle != 0) {
  			Widget widget = display.getWidget (handle);
  			if (widget != null && widget != this) {
-@@ -1078,7 +1078,7 @@ boolean isDescribedByLabel () {
+@@ -1108,7 +1108,7 @@
  	return true;
  }
  
@@ -39306,7 +39889,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	return widget == focusHandle (); 
  }
  
-@@ -1219,7 +1219,7 @@ public void setLayoutData (Object layout
+@@ -1249,7 +1249,7 @@
   */
  public Point toControl (int x, int y) {
  	checkWidget ();
@@ -39315,7 +39898,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int [] origin_x = new int [1], origin_y = new int [1];
  	OS.gdk_window_get_origin (window, origin_x, origin_y);
  	x -= origin_x [0];
-@@ -1268,7 +1268,7 @@ public Point toControl (Point point) {
+@@ -1298,7 +1298,7 @@
   */
  public Point toDisplay (int x, int y) {
  	checkWidget();
@@ -39324,8 +39907,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int [] origin_x = new int [1], origin_y = new int [1];
  	OS.gdk_window_get_origin (window, origin_x, origin_y);
  	if ((style & SWT.MIRRORED) != 0) x = getClientWidth () - x;
-@@ -2039,7 +2039,7 @@ boolean dragDetect (int button, int coun
- boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+@@ -2189,7 +2189,7 @@
+ boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
  	boolean quit = false, dragging = false;
  	while (!quit) {
 -		int /*long*/ eventPtr = 0;
@@ -39333,7 +39916,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		/*
  		* There should be an event on the queue already, but
  		* in cases where there isn't one, stop trying after
-@@ -2094,8 +2094,8 @@ boolean dragDetect (int x, int y, boolea
+@@ -2244,8 +2244,8 @@
  	return dragging;
  }
  
@@ -39344,7 +39927,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (imHandle != 0) {
  		return OS.gtk_im_context_filter_keypress (imHandle, event);
  	}
-@@ -2117,13 +2117,13 @@ void fixChildren (Shell newShell, Shell
+@@ -2267,13 +2267,13 @@
  	oldDecorations.fixDecorations (newDecorations, this, menus);
  }
  
@@ -39362,7 +39945,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			if (OS.GTK_WIDGET_VISIBLE (child) && OS.gtk_widget_get_child_visible (child) && !OS.GTK_WIDGET_MAPPED (child)) {
  				OS.gtk_widget_map (child);
  			}
-@@ -2137,7 +2137,7 @@ int /*long*/ fixedMapProc (int /*long*/
+@@ -2287,7 +2287,7 @@
  	return 0;
  }
  
@@ -39371,7 +39954,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  }
  
  /**
-@@ -2163,14 +2163,14 @@ public boolean forceFocus () {
+@@ -2313,7 +2313,7 @@
  	return forceFocus (focusHandle ());
  }
  
@@ -39380,7 +39963,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (OS.GTK_WIDGET_HAS_FOCUS (focusHandle)) return true;
  	/* When the control is zero sized it must be realized */
  	OS.gtk_widget_realize (focusHandle);
- 	OS.gtk_widget_grab_focus (focusHandle);
+@@ -2321,8 +2321,8 @@
+ 	// widget could be disposed at this point
+ 	if (isDisposed ()) return false;
  	Shell shell = getShell ();
 -	int /*long*/ shellHandle = shell.shellHandle;
 -	int /*long*/ handle = OS.gtk_window_get_focus (shellHandle);
@@ -39389,7 +39974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	while (handle != 0) {
  		if (handle == focusHandle) {
  			/* Cancel any previous ignoreFocus requests */
-@@ -2231,7 +2231,7 @@ public Image getBackgroundImage () {
+@@ -2383,7 +2383,7 @@
  }
  
  GdkColor getBgColor () {
@@ -39398,7 +39983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (fontHandle);
  	GdkColor color = new GdkColor ();
  	OS.gtk_style_get_bg (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color);
-@@ -2239,7 +2239,7 @@ GdkColor getBgColor () {
+@@ -2391,7 +2391,7 @@
  }
  
  GdkColor getBaseColor () {
@@ -39407,7 +39992,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (fontHandle);
  	GdkColor color = new GdkColor ();
  	OS.gtk_style_get_base (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color);
-@@ -2339,8 +2339,8 @@ public Font getFont () {
+@@ -2491,8 +2491,8 @@
  	return font != null ? font : defaultFont ();
  }
  	
@@ -39418,7 +40003,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (fontHandle);
  	return OS.gtk_style_get_font_desc (OS.gtk_widget_get_style (fontHandle));
  }
-@@ -2365,7 +2365,7 @@ GdkColor getForegroundColor () {
+@@ -2517,7 +2517,7 @@
  }
  
  GdkColor getFgColor () {
@@ -39427,7 +40012,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (fontHandle);
  	GdkColor color = new GdkColor ();
  	OS.gtk_style_get_fg (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color);
-@@ -2377,7 +2377,7 @@ Point getIMCaretPos () {
+@@ -2529,7 +2529,7 @@
  }
  
  GdkColor getTextColor () {
@@ -39436,7 +40021,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_realize (fontHandle);
  	GdkColor color = new GdkColor ();
  	OS.gtk_style_get_text (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color);
-@@ -2434,7 +2434,7 @@ public Menu getMenu () {
+@@ -2586,7 +2586,7 @@
  public Monitor getMonitor () {
  	checkWidget();
  	Monitor monitor = null;
@@ -39445,7 +40030,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (screen != 0) {
  		int monitorNumber = OS.gdk_screen_get_monitor_at_window (screen, paintWindow ());
  		GdkRectangle dest = new GdkRectangle ();
-@@ -2577,11 +2577,11 @@ public boolean getVisible () {
+@@ -2755,11 +2755,11 @@
  	return (state & HIDDEN) == 0;
  }
  
@@ -39459,7 +40044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
  	if (gdkEvent.type == OS.GDK_3BUTTON_PRESS) return 0;
-@@ -2596,10 +2596,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -2774,10 +2774,10 @@
  	if (((shell.style & SWT.ON_TOP) != 0) && (((shell.style & SWT.NO_FOCUS) == 0) || ((style & SWT.NO_FOCUS) == 0))) {
  		shell.forceActive();
  	}
@@ -39472,7 +40057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if (nextEvent != 0) {
  			int eventType = OS.GDK_EVENT_TYPE (nextEvent);
  			if (eventType == OS.GDK_2BUTTON_PRESS) display.clickCount = 2;
-@@ -2646,13 +2646,13 @@ int /*long*/ gtk_button_press_event (int
+@@ -2824,13 +2824,13 @@
  	return result;
  }
  
@@ -39488,7 +40073,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (text == 0) return 0;
  	int length = OS.strlen (text);
  	if (length == 0) return 0;
-@@ -2663,7 +2663,7 @@ int /*long*/ gtk_commit (int /*long*/ im
+@@ -2841,7 +2841,7 @@
  	return 0;
  }
  
@@ -39497,7 +40082,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (OS.GTK_VERSION >= OS.VERSION (2, 12, 0)) {
  		/*
  		 * Feature in GTK. Children of a shell will inherit and display the shell's
-@@ -2676,7 +2676,7 @@ int /*long*/ gtk_enter_notify_event (int
+@@ -2854,7 +2854,7 @@
  			char [] chars = fixMnemonic (toolTipText, false);
  			buffer = Converter.wcsToMbcs (null, chars, true);
  		}
@@ -39506,7 +40091,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		OS.gtk_widget_set_tooltip_text (toolHandle, buffer);
  	}
  	if (display.currentControl == this) return 0;
-@@ -2706,7 +2706,7 @@ boolean checkSubwindow () {
+@@ -2884,7 +2884,7 @@
  	return false;
  }
  
@@ -39515,7 +40100,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	switch (event.type) {
-@@ -2748,7 +2748,7 @@ int /*long*/ gtk_event_after (int /*long
+@@ -2926,7 +2926,7 @@
  				}
  			} else {
  				display.ignoreFocus = false;
@@ -39524,7 +40109,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  				if (grabHandle != 0) {
  					if (OS.G_OBJECT_TYPE (grabHandle) == OS.GTK_TYPE_MENU ()) {
  						display.ignoreFocus = true;
-@@ -2764,7 +2764,7 @@ int /*long*/ gtk_event_after (int /*long
+@@ -2942,7 +2942,7 @@
  	return 0;
  }
  
@@ -39533,7 +40118,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if ((state & OBSCURED) != 0) return 0;
  	if (!hooks (SWT.Paint) && !filters (SWT.Paint)) return 0;
  	GdkEventExpose gdkEvent = new GdkEventExpose ();
-@@ -2786,34 +2786,34 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -2964,34 +2964,34 @@
  	return 0;
  }
  
@@ -39574,7 +40159,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			if (imHandle != 0) {
  				OS.gtk_im_context_focus_out (imHandle);
  			}
-@@ -2822,7 +2822,7 @@ int /*long*/ gtk_focus_out_event (int /*
+@@ -3000,7 +3000,7 @@
  	return 0;
  }
  
@@ -39583,7 +40168,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (!hasFocus ()) return 0;
  	GdkEventKey gdkEvent = new GdkEventKey ();
  	OS.memmove (gdkEvent, event, GdkEventKey.sizeof);
-@@ -2841,16 +2841,16 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -3019,16 +3019,16 @@
  	return super.gtk_key_press_event (widget, event);
  }
  
@@ -39603,7 +40188,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (display.currentControl != this) return 0;
  	display.removeMouseHoverTimeout (handle);
  	int result = 0;
-@@ -2865,15 +2865,15 @@ int /*long*/ gtk_leave_notify_event (int
+@@ -3043,15 +3043,15 @@
  	return result;
  }
  
@@ -39622,7 +40207,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			if (focusHandle != 0) {
  				display.mnemonicControl = this;
  				OS.gtk_widget_event (focusHandle, eventPtr);
-@@ -2886,7 +2886,7 @@ int /*long*/ gtk_mnemonic_activate (int
+@@ -3064,7 +3064,7 @@
  	return result;
  }
  
@@ -39631,7 +40216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GdkEventMotion gdkEvent = new GdkEventMotion ();
  	OS.memmove (gdkEvent, event, GdkEventMotion.sizeof);
  	if (this == display.currentControl && (hooks (SWT.MouseHover) || filters (SWT.MouseHover))) {
-@@ -2896,7 +2896,7 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -3074,7 +3074,7 @@
  	int state = gdkEvent.state;
  	if (gdkEvent.is_hint != 0) {
  		int [] pointer_x = new int [1], pointer_y = new int [1], mask = new int [1];
@@ -39640,7 +40225,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		OS.gdk_window_get_pointer (window, pointer_x, pointer_y, mask);
  		x = pointer_x [0];
  		y = pointer_y [0];
-@@ -2906,22 +2906,22 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -3084,22 +3084,22 @@
  	return result;
  }
  
@@ -39668,7 +40253,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		OS.gtk_im_context_set_client_window (imHandle, window);
  	}
  	if (backgroundImage != null) {
-@@ -2930,7 +2930,7 @@ int /*long*/ gtk_realize (int /*long*/ w
+@@ -3108,7 +3108,7 @@
  	return 0;
  }
  
@@ -39677,7 +40262,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GdkEventScroll gdkEvent = new GdkEventScroll ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof);
  	switch (gdkEvent.direction) {
-@@ -2946,29 +2946,29 @@ int /*long*/ gtk_scroll_event (int /*lon
+@@ -3124,25 +3124,25 @@
  	return 0;
  }
  
@@ -39705,6 +40290,11 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  
 -int /*long*/ gtk_visibility_notify_event (int /*long*/ widget, int /*long*/ event) {
 +long /*int*/ gtk_visibility_notify_event (long /*int*/ widget, long /*int*/ event) {
+ 	/*
+ 	* As of GTK 2.17.11, obscured controls no longer send expose 
+ 	* events. It is no longer necessary to track visiblity notify
+@@ -3151,8 +3151,8 @@
+ 	if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) return 0;
  	GdkEventVisibility gdkEvent = new GdkEventVisibility ();
  	OS.memmove (gdkEvent, event, GdkEventVisibility.sizeof);
 -	int /*long*/ paintWindow = paintWindow();
@@ -39714,7 +40304,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (window == paintWindow) {
  		if (gdkEvent.state == OS.GDK_VISIBILITY_FULLY_OBSCURED) {
  			state |= OBSCURED;
-@@ -2987,7 +2987,7 @@ int /*long*/ gtk_visibility_notify_event
+@@ -3171,7 +3171,7 @@
  	return 0;
  }
  
@@ -39723,7 +40313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_size_request (widget, requisition);	
  }
  
-@@ -3006,11 +3006,11 @@ void gtk_widget_size_request (int /*long
+@@ -3190,11 +3190,11 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -39738,7 +40328,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (gdkGC == 0) error (SWT.ERROR_NO_HANDLES);	
  	if (data != null) {
  		int mask = SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-@@ -3032,7 +3032,7 @@ public int /*long*/ internal_new_GC (GCD
+@@ -3216,7 +3216,7 @@
  	return gdkGC;
  }
  
@@ -39747,7 +40337,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	return 0;
  }
  
-@@ -3051,7 +3051,7 @@ int /*long*/ imHandle () {
+@@ -3235,7 +3235,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -39756,7 +40346,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	checkWidget ();
  	OS.g_object_unref (gdkGC);
  }
-@@ -3191,7 +3191,7 @@ boolean mnemonicMatch (char key) {
+@@ -3375,7 +3375,7 @@
  void register () {
  	super.register ();
  	if (fixedHandle != 0) display.addWidget (fixedHandle, this);
@@ -39765,7 +40355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (imHandle != 0) display.addWidget (imHandle, this);
  }
  
-@@ -3267,7 +3267,7 @@ void redrawChildren () {
+@@ -3451,7 +3451,7 @@
  
  void redrawWidget (int x, int y, int width, int height, boolean redrawAll, boolean all, boolean trim) {
  	if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return;
@@ -39774,7 +40364,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	GdkRectangle rect = new GdkRectangle ();
  	if (redrawAll) {
  		int [] w = new int [1], h = new int [1];
-@@ -3321,7 +3321,7 @@ void releaseWidget () {
+@@ -3505,7 +3505,7 @@
  	super.releaseWidget ();
  	if (display.currentControl == this) display.currentControl = null;
  	display.removeMouseHoverTimeout (handle);
@@ -39783,7 +40373,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (imHandle != 0) {
  		OS.gtk_im_context_reset (imHandle);
  		OS.gtk_im_context_set_client_window (imHandle, 0);
-@@ -3343,7 +3343,7 @@ void releaseWidget () {
+@@ -3527,7 +3527,7 @@
  	region = null;
  }
  
@@ -39792,7 +40382,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	    if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) {
  	    	OS.gdk_window_restack (window, sibling, above);
  	    } else {
-@@ -3356,8 +3356,8 @@ void restackWindow (int /*long*/ window,
+@@ -3540,8 +3540,8 @@
  			* When the receiver is not a top level shell, XReconfigureWMWindow ()
  			* behaves the same as XConfigureWindow ().
  			*/
@@ -39803,7 +40393,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			int xScreen = OS.XDefaultScreen (xDisplay);
  			int flags = OS.CWStackMode | OS.CWSibling;			
  			XWindowChanges changes = new XWindowChanges ();
-@@ -3411,7 +3411,7 @@ void sendFocusEvent (int type) {
+@@ -3595,7 +3595,7 @@
  	}
  }
  
@@ -39812,7 +40402,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	Control control = this;
  	while (control != null) {
  		if (control.hooks (SWT.Help)) {
-@@ -3442,7 +3442,7 @@ boolean sendMouseEvent (int type, int bu
+@@ -3626,7 +3626,7 @@
  		event.x = (int)x;
  		event.y = (int)y;
  	} else {
@@ -39821,7 +40411,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		int [] origin_x = new int [1], origin_y = new int [1];
  		OS.gdk_window_get_origin (window, origin_x, origin_y);
  		event.x = (int)x - origin_x [0];
-@@ -3498,7 +3498,7 @@ public void setBackground (Color color)
+@@ -3682,7 +3682,7 @@
  	}
  	boolean set = false;
  	if (gdkColor == null) {
@@ -39830,7 +40420,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_BG) != 0;
  	} else {
  		GdkColor oldColor = getBackgroundColor ();
-@@ -3515,10 +3515,10 @@ public void setBackground (Color color)
+@@ -3699,10 +3699,10 @@
  	}
  }
  
@@ -39844,7 +40434,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (ptr != 0) OS.g_free (ptr);
  	ptr = 0;
  	
-@@ -3585,8 +3585,8 @@ public void setBackgroundImage (Image im
+@@ -3769,8 +3769,8 @@
  	redrawChildren ();
  }
  
@@ -39855,7 +40445,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (window != 0) OS.gdk_window_set_back_pixmap (window, pixmap, false);
  }
  
-@@ -3640,14 +3640,14 @@ public void setCursor (Cursor cursor) {
+@@ -3824,14 +3824,14 @@
  	setCursor (cursor != null ? cursor.handle : 0);
  }
  
@@ -39873,7 +40463,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			OS.XFlush (xDisplay);
  		}
  	}
-@@ -3715,9 +3715,9 @@ public void setEnabled (boolean enabled)
+@@ -3899,9 +3899,9 @@
  		}
  	} else {
  		OS.gtk_widget_realize (handle);
@@ -39886,7 +40476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		GdkWindowAttr attributes = new GdkWindowAttr ();
  		attributes.x = OS.GTK_WIDGET_X (topHandle);
  		attributes.y = OS.GTK_WIDGET_Y (topHandle);
-@@ -3779,7 +3779,7 @@ public void setFont (Font font) {
+@@ -3963,7 +3963,7 @@
  	checkWidget();
  	if (((state & FONT) == 0) && font == null) return;
  	this.font = font;
@@ -39895,7 +40485,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (font == null) {
  		fontDesc = defaultFont ().handle;
  	} else {
-@@ -3794,7 +3794,7 @@ public void setFont (Font font) {
+@@ -3978,7 +3978,7 @@
  	setFontDescription (fontDesc);
  }
  	
@@ -39904,7 +40494,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_modify_font (handle, font);
  }
  
-@@ -3825,7 +3825,7 @@ public void setForeground (Color color)
+@@ -4009,7 +4009,7 @@
  	}
  	boolean set = false;
  	if (gdkColor == null) {
@@ -39913,7 +40503,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_FG) != 0;
  	} else {
  		GdkColor oldColor = getForegroundColor ();
-@@ -3853,7 +3853,7 @@ void setInitialBounds () {
+@@ -4037,7 +4037,7 @@
  		* first sized.  The fix is to set the value to (0, 0) as
  		* expected by SWT.
  		*/
@@ -39922,7 +40512,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if ((parent.style & SWT.MIRRORED) != 0) {
  			OS.GTK_WIDGET_SET_X (topHandle, parent.getClientWidth ());
  		} else {
-@@ -3935,7 +3935,7 @@ public boolean setParent (Composite pare
+@@ -4146,7 +4146,7 @@
  	if (this.parent == parent) return true;
  	if (!isReparentable ()) return false;
  	OS.gtk_widget_realize (parent.handle);
@@ -39931,7 +40521,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	int x = OS.GTK_WIDGET_X (topHandle);
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle);
  	if ((this.parent.style & SWT.MIRRORED) != 0) {
-@@ -3954,7 +3954,7 @@ public boolean setParent (Composite pare
+@@ -4165,7 +4165,7 @@
  		newDecorations.fixAccelGroup ();
  		oldDecorations.fixAccelGroup ();
  	}
@@ -39940,7 +40530,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	OS.gtk_widget_reparent (topHandle, newParent);
  	OS.gtk_fixed_move (newParent, topHandle, x, y);
  	this.parent = parent;
-@@ -3968,7 +3968,7 @@ void setParentBackground () {
+@@ -4179,7 +4179,7 @@
  	if (fixedHandle != 0) setBackgroundColor (fixedHandle, null);
  }
  
@@ -39949,16 +40539,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  }
  
  boolean setRadioSelection (boolean value) {
-@@ -4003,7 +4003,7 @@ public void setRedraw (boolean redraw) {
+@@ -4214,7 +4214,7 @@
  	if (redraw) {
  		if (--drawCount == 0) {
  			if (redrawWindow != 0) {
 -				int /*long*/ window = paintWindow ();
 +				long /*int*/ window = paintWindow ();
- 				/*
- 				* Bug in GTK. For some reason, the window does not
- 				* redraw in versions of GTK greater than 2.18. The fix
-@@ -4022,7 +4022,7 @@ public void setRedraw (boolean redraw) {
+ 				/* Explicitly hiding the window avoids flicker on GTK+ >= 2.6 */
+ 				OS.gdk_window_hide (redrawWindow);
+ 				OS.gdk_window_destroy (redrawWindow);
+@@ -4225,7 +4225,7 @@
  	} else {
  		if (drawCount++ == 0) {
  			if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) != 0) {
@@ -39967,7 +40557,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  				Rectangle rect = getBounds ();
  				GdkWindowAttr attributes = new GdkWindowAttr ();
  				attributes.width = rect.width;
-@@ -4120,7 +4120,7 @@ void setToolTipText (Shell shell, String
+@@ -4340,7 +4340,7 @@
  public void setVisible (boolean visible) {
  	checkWidget();
  	if (((state & HIDDEN) == 0) == visible) return;
@@ -39976,7 +40566,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (visible) {
  		/*
  		* It is possible (but unlikely), that application
-@@ -4201,11 +4201,11 @@ void setZOrder (Control sibling, boolean
+@@ -4421,11 +4421,11 @@
  		}
  	}
  
@@ -39992,7 +40582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if (sibling != null) {
  			if (above && sibling.enableWindow != 0) {
  				siblingWindow = enableWindow;
-@@ -4213,7 +4213,7 @@ void setZOrder (Control sibling, boolean
+@@ -4433,7 +4433,7 @@
  				siblingWindow = OS.GTK_WIDGET_WINDOW (siblingHandle);
  			}
  		}
@@ -40001,7 +40591,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  		if (!OS.GDK_WINDOWING_X11 () || (siblingWindow == 0 && (!above || redrawWindow == 0))) {
  			if (above) {
  				OS.gdk_window_raise (window);
-@@ -4224,7 +4224,7 @@ void setZOrder (Control sibling, boolean
+@@ -4444,7 +4444,7 @@
  				OS.gdk_window_lower (window);
  			}
  		} else {
@@ -40010,7 +40600,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  			boolean stack_mode = above;
  			if (redrawWindow != 0 && siblingWindow == 0) stack_mode = false;
  			restackWindow (window, siblingW, stack_mode);
-@@ -4307,8 +4307,8 @@ boolean showMenu (int x, int y) {
+@@ -4527,8 +4527,8 @@
  void showWidget () {
  	// Comment this line to disable zero-sized widgets
  	state |= ZERO_WIDTH | ZERO_HEIGHT;
@@ -40021,7 +40611,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	parent.setParentWindow (topHandle);
  	OS.gtk_container_add (parentHandle, topHandle);
  	if (handle != 0 && handle != topHandle) OS.gtk_widget_show (handle);
-@@ -4750,7 +4750,7 @@ void update (boolean all, boolean flush)
+@@ -4970,7 +4970,7 @@
  //	checkWidget();
  	if (!OS.GTK_WIDGET_VISIBLE (topHandle ())) return; 
  	if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return;
@@ -40030,7 +40620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	if (flush) display.flushExposes (window, all);
  	OS.gdk_window_process_updates (window, all);
  	OS.gdk_flush ();
-@@ -4768,7 +4768,7 @@ void updateLayout (boolean all) {
+@@ -4988,7 +4988,7 @@
  	/* Do nothing */
  }
  
@@ -40039,7 +40629,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  	switch ((int)/*64*/user_data) {
  		case EXPOSE_EVENT_INVERSE: {
  			if ((OS.GTK_VERSION <  OS.VERSION (2, 8, 0)) && ((state & OBSCURED) == 0)) {
-@@ -4776,10 +4776,10 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -4996,10 +4996,10 @@
  				if (control != null && control.backgroundImage != null) {
  					GdkEventExpose gdkEvent = new GdkEventExpose ();
  					OS.memmove (gdkEvent, arg0, GdkEventExpose.sizeof);
@@ -40053,10 +40643,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Control.java swt-gtk-3.6.
  					OS.gdk_gc_set_clip_region (gdkGC, gdkEvent.region);
  					int[] dest_x = new int[1], dest_y = new int[1];
  					OS.gtk_widget_translate_coordinates (paintHandle (), control.paintHandle (), 0, 0, dest_x, dest_y);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DateTime.java swt-gtk-3.6.2/org/eclipse/swt/widgets/DateTime.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DateTime.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/DateTime.java	2011-03-21 11:34:23.765727712 +0000
-@@ -483,17 +483,17 @@ public int getYear () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/DateTime.java swt-gtk-3.7//org/eclipse/swt/widgets/DateTime.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/DateTime.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/DateTime.java	2011-06-13 20:53:32.000000000 +0000
+@@ -439,7 +439,7 @@
+ 	display.addFilter(SWT.MouseDown, clickListener);
+ }
+ 	
+-int /*long*/ focusHandle () {
++long /*int*/ focusHandle () {
+ 	if (text != null) return text.handle;
+ 	return super.focusHandle ();
+ }
+@@ -683,17 +683,17 @@
  	}
  }
  
@@ -40074,13 +40673,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DateTime.java swt-gtk-3.6
  
 -int /*long*/ gtk_month_changed (int /*long*/ widget) {
 +long /*int*/ gtk_month_changed (long /*int*/ widget) {
- 	sendSelectionEvent ();
- 	return 0;
- }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Decorations.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Decorations.java	2011-03-21 11:34:23.835726712 +0000
-@@ -102,7 +102,7 @@ public class Decorations extends Canvas
+ 	/*
+ 	* Feature in GTK. "month-changed" signal is emitted when the
+ 	* calendar is displayed though the day/month is not changed.
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-3.7//org/eclipse/swt/widgets/Decorations.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Decorations.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Decorations.java	2011-06-13 20:53:32.000000000 +0000
+@@ -102,7 +102,7 @@
  	Menu [] menus;
  	Control savedFocus;
  	Button defaultButton, saveDefault;
@@ -40089,7 +40688,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	
  Decorations () {
  	/* Do nothing */
-@@ -171,17 +171,17 @@ void _setImages (Image [] images) {
+@@ -171,17 +171,17 @@
  		sort (bestImages);
  		images = bestImages;
  	}
@@ -40111,7 +40710,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	while (temp != 0) {
  		OS.memmove (data, temp, OS.PTR_SIZEOF);
  		OS.g_object_unref (data [0]);
-@@ -232,7 +232,7 @@ void createAccelGroup () {
+@@ -232,7 +232,7 @@
  	accelGroup = OS.gtk_accel_group_new ();
  	if (accelGroup == 0) SWT.error (SWT.ERROR_NO_HANDLES);
  	//FIXME - what should we do for Decorations
@@ -40120,7 +40719,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	OS.gtk_window_add_accel_group (shellHandle, accelGroup);
  }
  
-@@ -243,7 +243,7 @@ void createWidget (int index) {
+@@ -243,7 +243,7 @@
  
  void destroyAccelGroup () {
  	if (accelGroup == 0) return;
@@ -40129,7 +40728,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	OS.gtk_window_remove_accel_group (shellHandle, accelGroup);
  	//TEMPORARY CODE
  //	OS.g_object_unref (accelGroup);
-@@ -546,7 +546,7 @@ boolean restoreFocus () {
+@@ -546,7 +546,7 @@
   */
  public void setDefaultButton (Button button) {
  	checkWidget();
@@ -40138,7 +40737,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	if (button != null) {
  		if (button.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
  		if (button.menuShell () != this) error (SWT.ERROR_INVALID_PARENT);
-@@ -758,7 +758,7 @@ boolean traverseReturn () {
+@@ -765,7 +765,7 @@
  	* key.
  	*/
  	if (!button.isVisible () || !button.isEnabled ()) return true;
@@ -40147,10 +40746,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Decorations.java swt-gtk-
  	return OS.gtk_window_activate_default (shellHandle);
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-gtk-3.6.2/org/eclipse/swt/widgets/DirectoryDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/DirectoryDialog.java	2011-03-21 11:34:23.755727838 +0000
-@@ -125,20 +125,20 @@ public String open () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-gtk-3.7//org/eclipse/swt/widgets/DirectoryDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/DirectoryDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/DirectoryDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -124,9 +124,9 @@
  }
  String openChooserDialog () {
  	byte [] titleBytes = Converter.wcsToMbcs (null, title, true);
@@ -40162,8 +40761,9 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  	if (display.getDismissalAlignment() == SWT.RIGHT) {
  		handle = OS.gtk_file_chooser_dialog_new (titleBytes, shellHandle, OS.GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, OS.GTK_STOCK_CANCEL (), OS.GTK_RESPONSE_CANCEL, OS.GTK_STOCK_OK (), OS.GTK_RESPONSE_OK, 0);
  	} else {
- 		handle = OS.gtk_file_chooser_dialog_new (titleBytes, shellHandle, OS.GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, OS.GTK_STOCK_OK (), OS.GTK_RESPONSE_OK, OS.GTK_STOCK_CANCEL (), OS.GTK_RESPONSE_CANCEL, 0);
+@@ -134,11 +134,11 @@
  	}
+ 	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
  	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
 -		int /*long*/ group = OS.gtk_window_get_group(0);
 +		long /*int*/ group = OS.gtk_window_get_group(0);
@@ -40175,7 +40775,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  	if (pixbufs != 0) {
  		OS.gtk_window_set_icon_list (handle, pixbufs);
  		OS.g_list_free (pixbufs);
-@@ -156,7 +156,7 @@ String openChooserDialog () {
+@@ -156,7 +156,7 @@
  		* when setting a file name that is not a true canonical path. 
  		* The fix is to use the canonical path.
  		*/
@@ -40184,7 +40784,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  		if (ptr != 0) {
  			OS.gtk_file_chooser_set_current_folder (handle, ptr);
  			OS.g_free (ptr);
-@@ -164,9 +164,9 @@ String openChooserDialog () {
+@@ -164,9 +164,9 @@
  	}
  	if (message.length () > 0) {
  		byte [] buffer = Converter.wcsToMbcs (null, message, true);
@@ -40196,7 +40796,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  		if (label == 0) error (SWT.ERROR_NO_HANDLES);
  		OS.gtk_container_add (box, label);
  		OS.gtk_widget_show (label);
-@@ -182,7 +182,7 @@ String openChooserDialog () {
+@@ -182,7 +182,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -40205,7 +40805,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  	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.emissionProc, handle, 0);
-@@ -195,13 +195,13 @@ String openChooserDialog () {
+@@ -202,13 +202,13 @@
  		display.setModalDialog (oldModal);
  	}
  	if (response == OS.GTK_RESPONSE_OK) {
@@ -40223,7 +40823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  				OS.g_free (utf8Ptr);
  				if (utf16Ptr != 0) {
  					int clength = (int)/*64*/items_written [0];
-@@ -220,11 +220,11 @@ String openChooserDialog () {
+@@ -227,11 +227,11 @@
  }
  String openClassicDialog () {
  	byte [] titleBytes = Converter.wcsToMbcs (null, title, true);
@@ -40238,7 +40838,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  		if (pixbufs != 0) {
  			OS.gtk_window_set_icon_list (handle, pixbufs);
  			OS.g_list_free (pixbufs);
-@@ -240,8 +240,8 @@ String openClassicDialog () {
+@@ -247,8 +247,8 @@
  		int length = path.length ();
  		char [] buffer = new char [length + 1];
  		path.getChars (0, length, buffer, 0);
@@ -40249,7 +40849,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  		OS.gtk_file_selection_set_filename (handle, fileNamePtr);
  		OS.g_free (utf8Ptr);
  		OS.g_free (fileNamePtr);		
-@@ -249,12 +249,12 @@ String openClassicDialog () {
+@@ -256,12 +256,12 @@
  	GtkFileSelection selection = new GtkFileSelection ();
  	OS.memmove (selection, handle);
  	OS.gtk_file_selection_hide_fileop_buttons (handle);
@@ -40264,7 +40864,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  		OS.gtk_label_set_line_wrap (labelHandle, true);		
  		OS.gtk_misc_set_alignment (labelHandle, 0.0f, 0.0f);
  		OS.gtk_container_add (selection.main_vbox, labelHandle);
-@@ -270,7 +270,7 @@ String openClassicDialog () {
+@@ -277,7 +277,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -40273,7 +40873,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  	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.emissionProc, handle, 0);
-@@ -283,11 +283,11 @@ String openClassicDialog () {
+@@ -297,11 +297,11 @@
  		display.setModalDialog (oldModal);
  	}
  	if (response == OS.GTK_RESPONSE_OK) {
@@ -40289,10 +40889,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/DirectoryDialog.java swt-
  			if (utf16Ptr != 0) {
  				int length = (int)/*64*/items_written [0];
  				char [] buffer = new char [length];
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Display.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Display.java	2011-03-21 11:34:23.735728129 +0000
-@@ -98,30 +98,30 @@ public class Display extends Device {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.7//org/eclipse/swt/widgets/Display.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Display.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Display.java	2011-06-13 20:53:32.000000000 +0000
+@@ -98,30 +98,30 @@
  
  	/* Events Dispatching and Callback */
  	int gdkEventCount;
@@ -40329,7 +40929,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget lastWidget;
  	Widget [] widgetTable;
  	final static int GROW_SIZE = 1024;
-@@ -152,7 +152,7 @@ public class Display extends Device {
+@@ -152,7 +152,7 @@
  	
  	/* Input method resources */
  	Control imControl;
@@ -40338,7 +40938,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  
  	/* Sync/Async Widget Communication */
  	Synchronizer synchronizer = new Synchronizer (this);
-@@ -172,40 +172,40 @@ public class Display extends Device {
+@@ -173,40 +173,40 @@
  	int [] timerIds;
  	Runnable [] timerList;
  	Callback timerCallback;
@@ -40388,7 +40988,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	int idleHandle;
  	Callback idleCallback;
  	static final String ADD_IDLE_PROC_KEY = "org.eclipse.swt.internal.gtk.addIdleProc"; //$NON-NLS-1$
-@@ -216,29 +216,29 @@ public class Display extends Device {
+@@ -217,29 +217,29 @@
  	/* GtkTreeView callbacks */
  	int[] treeSelection;
  	int treeSelectionLength;
@@ -40425,7 +41025,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	boolean settingsChanged, runSettings;
  	static final int STYLE_SET = 1;
  	static final int PROPERTY_NOTIFY = 2;
-@@ -250,14 +250,14 @@ public class Display extends Device {
+@@ -251,14 +251,14 @@
  	Control currentControl;
  	
  	/* Flush exposes */
@@ -40443,7 +41043,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  
  	/* System Resources */
  	Font systemFont;
-@@ -287,7 +287,7 @@ public class Display extends Device {
+@@ -288,7 +288,7 @@
  	int lastEventTime, lastUserEventTime;
  	
  	/* Pango layout constructor */
@@ -40452,7 +41052,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	
  	/* Custom Resize */
  	double resizeLocationX, resizeLocationY;
-@@ -295,16 +295,16 @@ public class Display extends Device {
+@@ -296,16 +296,16 @@
  	int resizeMode;
  	
  	/* Fixed Subclass */
@@ -40475,7 +41075,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  
  	/* Key Mappings */
  	static final int [] [] KeyTable = {
-@@ -552,16 +552,16 @@ void addLayoutDeferred (Composite comp)
+@@ -553,16 +553,16 @@
  	layoutDeferred[layoutDeferredCount++] = comp;
  }
  
@@ -40495,7 +41095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		System.arraycopy (gdkEvents, 0, newEvents, 0, gdkEventCount);
  		gdkEvents = newEvents;
  		Widget [] newWidgets = new Widget [length];
-@@ -569,7 +569,7 @@ void addGdkEvent (int /*long*/ event) {
+@@ -570,7 +570,7 @@
  		gdkEventWidgets = newWidgets;
  	}
  	Widget widget = null;
@@ -40504,7 +41104,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (handle != 0) {
  		do {
  			widget = getWidget (handle);
-@@ -620,7 +620,7 @@ public void addListener (int eventType,
+@@ -621,7 +621,7 @@
  	eventTable.hook (eventType, listener);
  }
  
@@ -40513,7 +41113,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	allChildren = OS.g_list_append (allChildren, widget);
  	if (recurse != 0 && OS.GTK_IS_CONTAINER (widget)) {
  		OS.gtk_container_forall (widget, allChildrenProc, recurse);
-@@ -628,7 +628,7 @@ int /*long*/ allChildrenProc (int /*long
+@@ -629,7 +629,7 @@
  	return 0;
  }
  
@@ -40522,7 +41122,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (mouseHoverId != 0) OS.gtk_timeout_remove (mouseHoverId);
  	mouseHoverId = OS.gtk_timeout_add (400, mouseHoverProc, handle);
  	mouseHoverHandle = handle;
-@@ -662,7 +662,7 @@ void addSkinnableWidget (Widget widget)
+@@ -663,7 +663,7 @@
  	skinList [skinCount++] = widget;
  }
  
@@ -40531,7 +41131,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (handle == 0) return;
  	if (freeSlot == -1) {
  		int length = (freeSlot = indexTable.length) + GROW_SIZE;
-@@ -735,12 +735,12 @@ public void beep () {
+@@ -736,12 +736,12 @@
  	if (!OS.GDK_WINDOWING_X11 ()) {
  		OS.gdk_flush ();
  	} else {
@@ -40546,7 +41146,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (data);
  	if (widget == null) return 0;
  	return widget.cellDataProc (tree_column, cell, tree_model, iter, data);
-@@ -763,7 +763,7 @@ static void checkDisplay (Thread thread,
+@@ -764,7 +764,7 @@
  	}
  }
  
@@ -40555,7 +41155,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	int type = OS.X_EVENT_TYPE (xEvent);
  	switch (type) {
  		case OS.VisibilityNotify:
-@@ -773,11 +773,11 @@ int /*long*/ checkIfEventProc (int /*lon
+@@ -780,11 +780,11 @@
  		default:
  			return 0;
  	}
@@ -40569,7 +41169,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			do {
  				if (tempWindow == flushWindow) break;
  			} while ((tempWindow = OS.gdk_window_get_parent (tempWindow)) != 0);
-@@ -802,7 +802,7 @@ int /*long*/ checkIfEventProc (int /*lon
+@@ -809,7 +809,7 @@
  		case OS.VisibilityNotify: {
  			OS.memmove (visibilityEvent, xEvent, XVisibilityEvent.sizeof);
  			OS.gdk_window_get_user_data (window, flushData);
@@ -40578,7 +41178,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			Widget widget = handle != 0 ? getWidget (handle) : null;
  			if (widget != null && widget instanceof Control) {
  				Control control = (Control) widget;
-@@ -898,11 +898,11 @@ void createDisplay (DeviceData data) {
+@@ -905,11 +905,11 @@
  		OS.g_thread_init (0);
  	}
  	OS.gtk_set_locale();
@@ -40592,7 +41192,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (ptr != 0) {
  		int length = OS.strlen (ptr);
  		byte [] buffer = new byte [length];
-@@ -1001,9 +1001,9 @@ void createDisplay (DeviceData data) {
+@@ -1008,9 +1008,9 @@
  	OS.gdk_window_add_filter  (0, filterProc, 0);
  
  	if (OS.GDK_WINDOWING_X11 ()) {
@@ -40604,7 +41204,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.XSetSelectionOwner (OS.GDK_DISPLAY (), atom, xWindow, OS.CurrentTime);
  		OS.XGetSelectionOwner (OS.GDK_DISPLAY (), atom);
  	}
-@@ -1016,9 +1016,9 @@ void createDisplay (DeviceData data) {
+@@ -1023,9 +1023,9 @@
  }
  
  Image createImage (String name) {
@@ -40616,7 +41216,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.gtk_icon_factory_lookup_default (buffer), style,
  		OS.GTK_TEXT_DIR_NONE, OS.GTK_STATE_NORMAL, OS.GTK_ICON_SIZE_DIALOG, 0, 0);
  	if (pixbuf == 0) return null;
-@@ -1026,7 +1026,7 @@ Image createImage (String name) {
+@@ -1033,7 +1033,7 @@
  	int height = OS.gdk_pixbuf_get_height (pixbuf);
  	int stride = OS.gdk_pixbuf_get_rowstride (pixbuf);
  	boolean hasAlpha = OS.gdk_pixbuf_get_has_alpha (pixbuf);
@@ -40625,7 +41225,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	byte [] data = new byte [stride * height];
  	OS.memmove (data, pixels, data.length);
  	OS.g_object_unref (pixbuf);
-@@ -1051,29 +1051,29 @@ Image createImage (String name) {
+@@ -1058,29 +1058,29 @@
  	return new Image (this, imageData);
  }
  
@@ -40663,7 +41263,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			OS.memmove(maskLine, maskOffset, maskStride);
  			for (int x=0; x<w[0]; x++) {
  				if (maskLine[x * 3] == 0) {
-@@ -1092,10 +1092,10 @@ static int /*long*/ createPixbuf(Image i
+@@ -1099,10 +1099,10 @@
  		if (hasAlpha) {
  			byte [] alpha = data.alphaData;
  			int stride = OS.gdk_pixbuf_get_rowstride (pixbuf);
@@ -40676,7 +41276,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  				OS.memmove (line, offset, stride);
  				for (int x = 0; x < w [0]; x++) {
  					line [x*4+3] = alpha [y*w [0]+x];
-@@ -1134,7 +1134,7 @@ protected void destroy () {
+@@ -1141,7 +1141,7 @@
  void destroyDisplay () {
  }
  
@@ -40685,7 +41285,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (OS.gtk_widget_get_toplevel (OS.g_value_peek_pointer(param_values)) == data) {
  		OS.gtk_widget_set_direction (OS.g_value_peek_pointer(param_values), OS.GTK_TEXT_DIR_RTL);
  	}
-@@ -1203,7 +1203,7 @@ void error (int code) {
+@@ -1210,7 +1210,7 @@
  	SWT.error (code);
  }
  
@@ -40694,7 +41294,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	/*
  	* Use gdk_event_get_time() rather than event.time or
  	* gtk_get_current_event_time().  If the event does not
-@@ -1260,7 +1260,7 @@ int /*long*/ eventProc (int /*long*/ eve
+@@ -1267,7 +1267,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -40703,7 +41303,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	checkDevice ();
  	return getWidget (handle);
  }
-@@ -1289,7 +1289,7 @@ public Widget findWidget (int /*long*/ h
+@@ -1296,7 +1296,7 @@
   * 
   * @since 3.1
   */
@@ -40712,7 +41312,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	checkDevice ();
  	return null;
  }
-@@ -1311,12 +1311,12 @@ public Widget findWidget (int /*long*/ h
+@@ -1318,12 +1318,12 @@
   * 
   * @since 3.3
   */
@@ -40727,7 +41327,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	GtkWidgetClass klass = new GtkWidgetClass ();
  	OS.memmove (klass, g_class);
  	klass.map = fixedMapProc;
-@@ -1326,21 +1326,21 @@ static int /*long*/ fixedClassInitProc (
+@@ -1333,21 +1333,21 @@
  	return 0;
  }
  
@@ -40752,7 +41352,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	GtkCellRendererClass klass = new GtkCellRendererClass ();
  	OS.memmove (klass, g_class);
  	klass.render = rendererRenderProc;
-@@ -1349,28 +1349,28 @@ static int /*long*/ rendererClassInitPro
+@@ -1356,28 +1356,28 @@
  	return 0;
  }
  
@@ -40786,7 +41386,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.XCheckIfEvent (xDisplay, xEvent, checkIfEventProc, 0);
  		OS.g_free (xEvent);
  		this.flushWindow = 0;
-@@ -1423,7 +1423,7 @@ public static Display getCurrent () {
+@@ -1430,7 +1430,7 @@
  
  int getCaretBlinkTime () {
  //	checkDevice ();
@@ -40795,7 +41395,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (settings == 0) return 500;
  	int [] buffer = new int [1];
  	OS.g_object_get (settings, OS.gtk_cursor_blink, buffer, 0);
-@@ -1453,9 +1453,9 @@ int getCaretBlinkTime () {
+@@ -1460,9 +1460,9 @@
  public Control getCursorControl () {
  	checkDevice();
  	int[] x = new int[1], y = new int[1];
@@ -40808,7 +41408,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (window != 0) {
  		OS.gdk_window_get_user_data (window, user_data);
  		handle = user_data [0];
-@@ -1468,8 +1468,8 @@ public Control getCursorControl () {
+@@ -1475,8 +1475,8 @@
  		if (!OS.GDK_WINDOWING_X11 ()) return null;
  		OS.gdk_error_trap_push ();
  		int[] unusedInt = new int[1];
@@ -40819,7 +41419,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		do {
  			if (OS.XQueryPointer (xDisplay, xParent, unusedPtr, buffer, unusedInt, unusedInt, unusedInt, unusedInt, unusedInt) == 0) {
  				handle = 0;
-@@ -1477,7 +1477,7 @@ public Control getCursorControl () {
+@@ -1484,7 +1484,7 @@
  			}
  			if ((xWindow = buffer [0]) != 0) {
  				xParent = xWindow;
@@ -40828,7 +41428,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  				if (gdkWindow != 0)	{
  					OS.gdk_window_get_user_data (gdkWindow, user_data);
  					if (user_data[0] != 0) handle = user_data[0];	
-@@ -1497,15 +1497,15 @@ public Control getCursorControl () {
+@@ -1504,15 +1504,15 @@
  	return null;
  }
  
@@ -40847,7 +41447,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	    OS.gtk_widget_style_get (handle, OS.inner_border, borderPtr,0);
  	    if (borderPtr[0] != 0) {
  	        OS.memmove (gtkBorder, borderPtr[0], GtkBorder.sizeof);
-@@ -1530,7 +1530,7 @@ boolean filters (int eventType) {
+@@ -1537,7 +1537,7 @@
  	return filterTable.hooks (eventType);
  }
  
@@ -40856,8 +41456,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (data);
  	if (widget == null) return 0;
  	return widget.filterProc (xEvent, gdkEvent, data);
-@@ -1665,19 +1665,19 @@ public Point getDPI () {
- 	return new Point (dpi, dpi);
+@@ -1653,19 +1653,19 @@
+ 	return data;
  }
  
 -int /*long*/ gtk_fixed_get_type () {
@@ -40880,7 +41480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	return toggle_renderer_type;
  }
  
-@@ -1722,7 +1722,7 @@ public int getDismissalAlignment () {
+@@ -1727,7 +1727,7 @@
  	checkDevice ();
  	int [] buffer = new int [1];
  	if (OS.GTK_VERSION >= OS.VERSION (2, 6, 0)) {
@@ -40889,7 +41489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.g_object_get (settings, OS.gtk_alternative_button_order, buffer, 0);
  	}
  	return buffer [0] == 1 ? SWT.LEFT : SWT.RIGHT;
-@@ -1742,7 +1742,7 @@ public int getDismissalAlignment () {
+@@ -1747,7 +1747,7 @@
   */
  public int getDoubleClickTime () {
  	checkDevice ();
@@ -40898,7 +41498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	int [] buffer = new int [1];
  	OS.g_object_get (settings, OS.gtk_double_click_time, buffer, 0);
  	return buffer [0];
-@@ -1767,8 +1767,8 @@ public Control getFocusControl () {
+@@ -1772,8 +1772,8 @@
  		return focusControl;
  	}
  	if (activeShell == null) return null;
@@ -40909,7 +41509,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (handle == 0) return null;
  	do {
  		Widget widget = getWidget (handle);
-@@ -1865,12 +1865,12 @@ Dialog getModalDialog () {
+@@ -1870,12 +1870,12 @@
   */
  Rectangle getWorkArea() {
  	byte[] name = Converter.wcsToMbcs (null, "_NET_WORKAREA", true); //$NON-NLS-1$
@@ -40925,7 +41525,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (!OS.gdk_property_get (OS.GDK_ROOT_PARENT (), atom, OS.GDK_NONE, 0, 16, 0, actualType, actualFormat, actualLength, data)) {
  		return null;
  	}
-@@ -1901,7 +1901,7 @@ public Monitor [] getMonitors () {
+@@ -1906,7 +1906,7 @@
  	checkDevice ();
  	Monitor [] monitors = null;
  	Rectangle workArea = getWorkArea();
@@ -40934,7 +41534,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (screen != 0) {
  		int monitorCount = OS.gdk_screen_get_n_monitors (screen);
  		if (monitorCount > 0) {
-@@ -2203,12 +2203,12 @@ void initializeSystemColors () {
+@@ -2226,12 +2226,12 @@
  	GdkColor gdkColor;
  	
  	/* Get Tooltip resources */
@@ -40949,7 +41549,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	gdkColor = new GdkColor();
  	OS.gtk_style_get_fg (tooltipStyle, OS.GTK_STATE_NORMAL, gdkColor);
  	COLOR_INFO_FOREGROUND = gdkColor;
-@@ -2218,7 +2218,7 @@ void initializeSystemColors () {
+@@ -2241,7 +2241,7 @@
  	OS.gtk_widget_destroy (tooltipShellHandle);	
  
  	/* Get Shell resources */
@@ -40958,7 +41558,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	gdkColor = new GdkColor();
  	OS.gtk_style_get_black (style, gdkColor);
  	COLOR_WIDGET_DARK_SHADOW = gdkColor;
-@@ -2299,8 +2299,8 @@ void initializeSystemColors () {
+@@ -2322,8 +2322,8 @@
  public Font getSystemFont () {
  	checkDevice ();
  	if (systemFont != null) return systemFont;
@@ -40969,8 +41569,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	return systemFont = Font.gtk_new (this, defaultFont);
  }
  
-@@ -2355,10 +2355,10 @@ public Thread getThread () {
- 	}
+@@ -2396,10 +2396,10 @@
+ 	return false;
  }
  
 -Widget getWidget (int /*long*/ handle) {
@@ -40982,7 +41582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (0 <= index && index < widgetTable.length) {
  		lastHandle = handle;
  		return lastWidget = widgetTable [(int)/*64*/index];
-@@ -2366,7 +2366,7 @@ Widget getWidget (int /*long*/ handle) {
+@@ -2407,7 +2407,7 @@
  	return null;	
  }
  
@@ -40991,7 +41591,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	boolean result = runAsyncMessages (false);
  	if (!result) {
  		synchronized (idleLock) {
-@@ -2396,7 +2396,7 @@ protected void init () {
+@@ -2437,7 +2437,7 @@
  }
  
  void initializeCallbacks () {
@@ -41000,7 +41600,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	signalIds = new int [Widget.LAST_SIGNAL];
  
  	/* Cache signals for GtkWidget */
-@@ -2592,8 +2592,8 @@ void initializeCallbacks () {
+@@ -2633,8 +2633,8 @@
  
  void initializeSubclasses () {
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
@@ -41011,7 +41611,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		pangoLayoutNewProc = OS.G_OBJECT_CLASS_CONSTRUCTOR (pangoLayoutClass);
  		OS.G_OBJECT_CLASS_SET_CONSTRUCTOR (pangoLayoutClass, OS.pangoLayoutNewProc_CALLBACK(pangoLayoutNewProc));
  		OS.g_type_class_unref (pangoLayoutClass);
-@@ -2612,10 +2612,10 @@ void initializeSystemSettings () {
+@@ -2653,10 +2653,10 @@
  	* fix is to for the initializaion by creating
  	* a temporary GtkEntry.
  	*/
@@ -41024,7 +41624,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	OS.g_object_get (settings, OS.gtk_entry_select_on_focus, buffer2, 0);
  	entrySelectOnFocus = buffer2 [0] != 0;
  }
-@@ -2631,9 +2631,9 @@ void initializeWindowManager () {
+@@ -2672,9 +2672,9 @@
  	/* Get the window manager name */
  	windowManager = ""; //$NON-NLS-1$
  	if (OS.GTK_VERSION >= OS.VERSION (2, 2, 0)) {
@@ -41036,7 +41636,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			if (ptr2 != 0) {
  				int length = OS.strlen (ptr2);
  				if (length > 0) {
-@@ -2661,7 +2661,7 @@ void initializeWindowManager () {
+@@ -2702,7 +2702,7 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -41045,7 +41645,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	OS.g_object_unref (gdkGC);
  }
  
-@@ -2687,10 +2687,10 @@ public void internal_dispose_GC (int /*l
+@@ -2728,10 +2728,10 @@
   * 
   * @noreference This method is not intended to be referenced by clients.
   */
@@ -41059,7 +41659,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (gdkGC == 0) SWT.error (SWT.ERROR_NO_HANDLES);
  	OS.gdk_gc_set_subwindow (gdkGC, OS.GDK_INCLUDE_INFERIORS);
  	if (data != null) {
-@@ -2796,7 +2796,7 @@ public Point map (Control from, Control
+@@ -2837,7 +2837,7 @@
  	Point point = new Point (x, y);
  	if (from == to) return point;
  	if (from != null) {
@@ -41068,7 +41668,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		int [] origin_x = new int [1], origin_y = new int [1];
  		OS.gdk_window_get_origin (window, origin_x, origin_y);
  		if ((from.style & SWT.MIRRORED) != 0) point.x = from.getClientWidth () - point.x;
-@@ -2804,7 +2804,7 @@ public Point map (Control from, Control
+@@ -2845,7 +2845,7 @@
  		point.y += origin_y [0];
  	}
  	if (to != null) {
@@ -41077,7 +41677,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		int [] origin_x = new int [1], origin_y = new int [1];
  		OS.gdk_window_get_origin (window, origin_x, origin_y);
  		point.x -= origin_x [0];
-@@ -2873,7 +2873,7 @@ static char mbcsToWcs (char ch) {
+@@ -2914,7 +2914,7 @@
  	return result [0];
  }
  
@@ -41086,7 +41686,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (menu);
  	if (widget == null) return 0;
  	return widget.menuPositionProc (menu, x, y, push_in, user_data);	
-@@ -2925,7 +2925,7 @@ public Rectangle map (Control from, Cont
+@@ -2966,7 +2966,7 @@
  	if (from == to) return rect;
  	boolean fromRTL = false, toRTL = false;
  	if (from != null) {
@@ -41095,7 +41695,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		int [] origin_x = new int [1], origin_y = new int [1];
  		OS.gdk_window_get_origin (window, origin_x, origin_y);
  		if (fromRTL = (from.style & SWT.MIRRORED) != 0) rect.x = from.getClientWidth() - rect.x;
-@@ -2933,7 +2933,7 @@ public Rectangle map (Control from, Cont
+@@ -2974,7 +2974,7 @@
  		rect.y += origin_y [0];
  	}
  	if (to != null) {
@@ -41104,7 +41704,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		int [] origin_x = new int [1], origin_y = new int [1];
  		OS.gdk_window_get_origin (window, origin_x, origin_y);
  		rect.x -= origin_x [0];
-@@ -2944,7 +2944,7 @@ public Rectangle map (Control from, Cont
+@@ -2985,7 +2985,7 @@
  	return rect;
  }
  
@@ -41113,7 +41713,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (handle);
  	if (widget == null) return 0;
  	return widget.hoverProc (handle);
-@@ -3024,13 +3024,13 @@ public boolean post (Event event) {
+@@ -3065,13 +3065,13 @@
  			if (isDisposed ()) error (SWT.ERROR_DEVICE_DISPOSED);
  			if (event == null) error (SWT.ERROR_NULL_ARGUMENT);
  			if (!OS.GDK_WINDOWING_X11()) return false;
@@ -41129,7 +41729,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  					if (keysym != 0) keyCode = OS.XKeysymToKeycode (xDisplay, keysym);
  					if (keyCode == 0) {
  						char key = event.character;
-@@ -3112,7 +3112,7 @@ void postEvent (Event event) {
+@@ -3153,7 +3153,7 @@
  void putGdkEvents () {
  	if (gdkEventCount != 0) {
  		for (int i = 0; i < gdkEventCount; i++) {
@@ -41138,7 +41738,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			Widget widget = gdkEventWidgets [i];
  			if (widget == null || !widget.isDisposed ()) {
  				OS.gdk_event_put (event);
-@@ -3367,8 +3367,8 @@ void releaseDisplay () {
+@@ -3415,8 +3415,8 @@
  
  	/* Dispose subclass */
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
@@ -41149,7 +41749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.G_OBJECT_CLASS_SET_CONSTRUCTOR (pangoLayoutClass, pangoLayoutNewProc);
  		OS.g_type_class_unref (pangoLayoutClass);
  		pangoLayoutNewProc = 0;
-@@ -3428,9 +3428,9 @@ public void removeFilter (int eventType,
+@@ -3476,9 +3476,9 @@
  	if (filterTable.size () == 0) filterTable = null;
  }
  
@@ -41161,7 +41761,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	--gdkEventCount;
  	System.arraycopy (gdkEvents, 1, gdkEvents, 0, gdkEventCount);
  	System.arraycopy (gdkEventWidgets, 1, gdkEventWidgets, 0, gdkEventCount);
-@@ -3479,7 +3479,7 @@ public void removeListener (int eventTyp
+@@ -3527,7 +3527,7 @@
  	eventTable.unhook (eventType, listener);
  }
  
@@ -41170,7 +41770,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (handle != mouseHoverHandle) return;
  	if (mouseHoverId != 0) OS.gtk_timeout_remove (mouseHoverId);
  	mouseHoverId = 0;
-@@ -3496,7 +3496,7 @@ void removePopup (Menu menu) {
+@@ -3544,7 +3544,7 @@
  	}
  }
  
@@ -41179,7 +41779,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (handle == 0) return null;
  	lastWidget = null;
  	Widget widget = null;
-@@ -3699,8 +3699,8 @@ public static void setAppVersion (String
+@@ -3747,8 +3747,8 @@
  public void setCursorLocation (int x, int y) {
  	checkDevice ();
  	if (OS.GDK_WINDOWING_X11 ()) {
@@ -41190,7 +41790,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		OS.XWarpPointer (xDisplay, OS.None, xWindow, 0, 0, 0, 0, x, y);
  	}
  }
-@@ -3768,7 +3768,7 @@ public void setData (String key, Object
+@@ -3816,7 +3816,7 @@
  	}
  	if (key.equals (ADD_WIDGET_KEY)) {
  		Object [] data = (Object []) value;
@@ -41199,7 +41799,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		Widget widget = (Widget) data [1];
  		if (widget != null) {
  			addWidget (handle, widget);
-@@ -3857,10 +3857,10 @@ public void setData (Object data) {
+@@ -3905,10 +3905,10 @@
  	this.data = data;
  }
  
@@ -41212,7 +41812,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  		if (submenu != 0) {
  			OS.gtk_widget_set_direction (submenu, (int)/*64*/ direction);
  			OS.gtk_container_forall (submenu, setDirectionProc, direction);
-@@ -3935,9 +3935,9 @@ void showIMWindow (Control control) {
+@@ -3983,9 +3983,9 @@
  		OS.gtk_container_add (preeditWindow, preeditLabel);
  		OS.gtk_widget_show (preeditLabel);
  	}
@@ -41225,7 +41825,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	OS.gtk_im_context_get_preedit_string (imHandle, preeditString, pangoAttrs, null);
  	if (preeditString [0] != 0 && OS.strlen (preeditString [0]) > 0) {
  		Control widget = control.findBackgroundControl ();
-@@ -3991,7 +3991,7 @@ public boolean sleep () {
+@@ -4039,7 +4039,7 @@
  		fds = OS.g_malloc (OS.GPollFD_sizeof () * allocated_nfds);
  	}
  	max_priority [0] = timeout [0] = 0;
@@ -41234,7 +41834,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	boolean result = false;
  	do {
  		if (OS.g_main_context_acquire (context)) {
-@@ -4002,7 +4002,7 @@ public boolean sleep () {
+@@ -4050,7 +4050,7 @@
  				allocated_nfds = nfds;
  				fds = OS.g_malloc (OS.GPollFD_sizeof() * allocated_nfds);
  			}
@@ -41243,7 +41843,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  			if (poll != 0) {
  				if (nfds > 0 || timeout [0] != 0) {
  					/*
-@@ -4096,7 +4096,7 @@ public void timerExec (int milliseconds,
+@@ -4144,7 +4144,7 @@
  	}
  }
  
@@ -41252,7 +41852,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	if (timerList == null) return 0;
  	int index = (int)/*64*/i;
  	if (0 <= index && index < timerList.length) {
-@@ -4108,7 +4108,7 @@ int /*long*/ timerProc (int /*long*/ i)
+@@ -4156,7 +4156,7 @@
  	return 0;
  }
  
@@ -41261,7 +41861,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	caretId = 0;
  	if (currentCaret == null) {
  		return 0;
-@@ -4123,19 +4123,19 @@ int /*long*/ caretProc (int /*long*/ cli
+@@ -4171,19 +4171,19 @@
  	return 0;
  }
  
@@ -41284,7 +41884,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (data);
  	if (widget == null) return 0;
  	return widget.treeSelectionProc (model, path, iter, treeSelection, treeSelectionLength++);
-@@ -4193,13 +4193,13 @@ void setCurrentCaret (Caret caret) {
+@@ -4241,13 +4241,13 @@
  	caretId = OS.gtk_timeout_add (blinkRate, caretProc, 0); 
  }
  
@@ -41300,7 +41900,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	switch((int)/*64*/user_data) {
  		case STYLE_SET:
  			settingsChanged = true;
-@@ -4209,14 +4209,14 @@ int /*long*/ signalProc (int /*long*/ go
+@@ -4257,14 +4257,14 @@
  			OS.memmove (gdkEvent, arg1);
  			if (gdkEvent.type == OS.GDK_PROPERTY_NOTIFY) {
  				byte[] name = Converter.wcsToMbcs (null, "org.eclipse.swt.filePath.message", true); //$NON-NLS-1$
@@ -41319,7 +41919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  					OS.XGetWindowProperty (OS.GDK_DISPLAY (), xWindow, atom, 0, -1, true, OS.AnyPropertyType,
  							type, format, nitems, bytes_after, data);
  					
-@@ -4348,31 +4348,31 @@ static char wcsToMbcs (char ch) {
+@@ -4396,31 +4396,31 @@
  	return 0;
  }
  
@@ -41356,10 +41956,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Display.java swt-gtk-3.6.
  	Widget widget = getWidget (handle);
  	if (widget == null) return 0;
  	return widget.timerProc (handle);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ExpandBar.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ExpandBar.java	2011-03-21 11:34:23.905725730 +0000
-@@ -160,14 +160,14 @@ void createHandle (int index) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.7//org/eclipse/swt/widgets/ExpandBar.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ExpandBar.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ExpandBar.java	2011-06-13 20:53:32.000000000 +0000
+@@ -160,14 +160,14 @@
  			OS.gtk_scrolled_window_set_policy (scrolledHandle, OS.GTK_POLICY_NEVER, OS.GTK_POLICY_AUTOMATIC);
  			OS.gtk_container_add (fixedHandle, scrolledHandle);
  			OS.gtk_scrolled_window_add_with_viewport (scrolledHandle, handle);
@@ -41376,7 +41976,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  		if (topHandle == 0) error (SWT.ERROR_NO_HANDLES);
  		OS.gtk_fixed_set_has_window (topHandle, true);
  		if ((style & SWT.V_SCROLL) != 0) {
-@@ -241,11 +241,11 @@ void destroyItem (ExpandItem item) {
+@@ -241,11 +241,11 @@
  	layoutItems (index, true);
  }
  
@@ -41390,7 +41990,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  		if (lastFocus != null && lastFocus.setFocus ()) return true;
  		for (int i = 0; i < itemCount; i++) {
-@@ -366,7 +366,7 @@ public int getSpacing () {
+@@ -366,7 +366,7 @@
  	return spacing;
  }
  
@@ -41399,7 +41999,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) {
  		GdkEventButton gdkEvent = new GdkEventButton ();
  		OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
-@@ -387,7 +387,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -387,7 +387,7 @@
  	return super.gtk_button_press_event (widget, event);
  }
  
@@ -41408,7 +42008,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) {
  		if (lastFocus != null) {
  			GdkEventButton gdkEvent = new GdkEventButton ();
-@@ -407,7 +407,7 @@ int /*long*/ gtk_button_release_event (i
+@@ -407,7 +407,7 @@
  	return super.gtk_button_release_event (widget, event);
  }
  
@@ -41417,7 +42017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	if ((state & OBSCURED) != 0) return 0;
  	if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) {
  		GdkEventExpose gdkEvent = new GdkEventExpose ();
-@@ -426,24 +426,24 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -426,24 +426,24 @@
  	return super.gtk_expose_event (widget, eventPtr);
  }
  
@@ -41446,7 +42046,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  		if (result != 0) return result;
  		int index = 0;
  		while (index < itemCount) {
-@@ -557,13 +557,13 @@ void layoutItems (int index, boolean set
+@@ -557,13 +557,13 @@
  	}
  }
  
@@ -41463,7 +42063,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	return OS.GTK_VERSION >= OS.VERSION (2, 4, 0) ? fixedHandle : handle;
  }
  
-@@ -632,7 +632,7 @@ int setBounds (int x, int y, int width,
+@@ -632,7 +632,7 @@
  	return result;
  }
  
@@ -41472,7 +42072,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	super.setFontDescription (font);
  	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  		for (int i = 0; i < itemCount; i++) {
-@@ -658,7 +658,7 @@ void setScrollbar () {
+@@ -667,7 +667,7 @@
  	ExpandItem item = items [itemCount - 1];
  	int maxHeight = item.y + getBandHeight () + spacing;
  	if (item.expanded) maxHeight += item.height;
@@ -41481,7 +42081,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, adjustmentHandle);
  	yCurrentScroll = (int)adjustment.value;
-@@ -678,7 +678,7 @@ void setScrollbar () {
+@@ -687,7 +687,7 @@
  	OS.gtk_scrolled_window_set_policy (scrolledHandle, OS.GTK_POLICY_NEVER, policy);
  	int width = OS.GTK_WIDGET_WIDTH (fixedHandle) - spacing * 2;
  	if (policy == OS.GTK_POLICY_ALWAYS) {
@@ -41490,10 +42090,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandBar.java swt-gtk-3.
  		GtkRequisition requisition = new GtkRequisition ();
  		OS.gtk_widget_size_request (vHandle, requisition);
  		width -= requisition.width;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ExpandItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ExpandItem.java	2011-03-21 11:34:23.835726712 +0000
-@@ -39,7 +39,7 @@ public class ExpandItem extends Item {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3.7//org/eclipse/swt/widgets/ExpandItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ExpandItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ExpandItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -39,7 +39,7 @@
  	ExpandBar parent;
  	Control control;
  	ImageList imageList;
@@ -41502,7 +42102,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  	boolean expanded;
  	int x, y, width, height;
  	int imageHeight, imageWidth;
-@@ -316,7 +316,7 @@ int getPreferredWidth (GC gc) {
+@@ -316,7 +316,7 @@
  	return width;
  }
  
@@ -41511,7 +42111,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  	Event event = new Event ();
  	event.item = this;
  	int type = OS.gtk_expander_get_expanded (handle) ? SWT.Collapse : SWT.Expand;
-@@ -324,23 +324,23 @@ int /*long*/ gtk_activate (int /*long*/
+@@ -324,23 +324,23 @@
  	return 0;
  }
  
@@ -41539,7 +42139,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  	parent.gtk_enter_notify_event(widget, event);
  	return 0;
  }
-@@ -518,7 +518,7 @@ boolean setFocus () {
+@@ -520,7 +520,7 @@
  	return result;
  }
  
@@ -41548,7 +42148,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  	OS.gtk_widget_modify_font (handle, font);
  	if (labelHandle != 0) OS.gtk_widget_modify_font (labelHandle, font);
  	if (imageHandle != 0) OS.gtk_widget_modify_font (imageHandle, font);
-@@ -563,7 +563,7 @@ public void setImage (Image image) {
+@@ -565,7 +565,7 @@
  			if (image.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
  			imageList = new ImageList ();
  			int imageIndex = imageList.add (image);
@@ -41557,7 +42157,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  			OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  			if (text.length () == 0) OS.gtk_widget_hide (labelHandle);
  			OS.gtk_widget_show (imageHandle);
-@@ -618,7 +618,7 @@ void showWidget (int index) {
+@@ -621,7 +621,7 @@
  	}
  }
  
@@ -41566,10 +42166,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ExpandItem.java swt-gtk-3
  	switch ((int)/*64*/user_data) {
  		case ACTIVATE_INVERSE: {
  			expanded = OS.gtk_expander_get_expanded (handle);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3.6.2/org/eclipse/swt/widgets/FileDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/FileDialog.java	2011-03-21 11:34:23.875726151 +0000
-@@ -46,7 +46,7 @@ public class FileDialog extends Dialog {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3.7//org/eclipse/swt/widgets/FileDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/FileDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/FileDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -45,7 +45,7 @@
  	int filterIndex = -1;
  	boolean overwrite = false;
  	boolean uriMode;
@@ -41578,7 +42178,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	static final char SEPARATOR = System.getProperty ("file.separator").charAt (0);
  	static final char EXTENSION_SEPARATOR = ';';
  	static final char FILE_EXTENSION_SEPARATOR = '.';
-@@ -103,7 +103,7 @@ String computeResultChooserDialog () {
+@@ -102,7 +102,7 @@
  	/* MULTI is only valid if the native dialog's action is Open */
  	fullPath = null;
  	if ((style & SWT.MULTI) != 0) {
@@ -41587,7 +42187,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  		if (uriMode) {
  			list = OS.gtk_file_chooser_get_uris (handle);
  		} else {
-@@ -111,11 +111,11 @@ String computeResultChooserDialog () {
+@@ -110,11 +110,11 @@
  		}
  		int listLength = OS.g_slist_length (list);
  		fileNames = new String [listLength];
@@ -41602,7 +42202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  			if (uriMode) {
  				utf8Ptr = name;
  			} else {
-@@ -123,8 +123,8 @@ String computeResultChooserDialog () {
+@@ -122,8 +122,8 @@
  				OS.g_free (name);
  			}
  			if (utf8Ptr != 0) {
@@ -41613,7 +42213,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  				OS.g_free (utf8Ptr);
  				if (utf16Ptr != 0) {
  					int clength = (int)/*64*/items_written [0];
-@@ -144,19 +144,19 @@ String computeResultChooserDialog () {
+@@ -143,19 +143,19 @@
  		}
  		OS.g_slist_free (list);
  	} else {
@@ -41637,7 +42237,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  			OS.g_free (utf8Ptr);
  			if (utf16Ptr != 0) {
  				int clength = (int)/*64*/items_written [0];
-@@ -170,9 +170,9 @@ String computeResultChooserDialog () {
+@@ -169,9 +169,9 @@
  		}
  	}
  	filterIndex = -1;
@@ -41649,7 +42249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  		if (filterNamePtr != 0) {
  			int length = OS.strlen (filterNamePtr);
  			byte[] buffer = new byte [length];
-@@ -220,23 +220,23 @@ String computeResultClassicDialog () {
+@@ -219,23 +219,23 @@
  	filterIndex = -1;
  	GtkFileSelection selection = new GtkFileSelection ();
  	OS.memmove (selection, handle);
@@ -41682,7 +42282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  		if (OS.gtk_tree_model_get_iter (model [0], iter, path)) {
  			OS.gtk_tree_model_get (model [0], iter, 0, ptr, -1);
  		}
-@@ -253,10 +253,10 @@ String computeResultClassicDialog () {
+@@ -252,10 +252,10 @@
  		OS.gtk_entry_set_text (entry, buffer);
  	}
  
@@ -41697,7 +42297,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	entryLength = (int)/*64*/items_written [0];
  	char [] buffer = new char [entryLength];
  	OS.memmove (buffer, utf16Ptr, entryLength * 2);
-@@ -273,9 +273,9 @@ String computeResultClassicDialog () {
+@@ -272,9 +272,9 @@
  	if ((style & SWT.MULTI) == 0) {
  		fileNames = new String[] {fileName};
  	} else {
@@ -41710,7 +42310,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  		OS.memmove (namePtr, namesPtr1, OS.PTR_SIZEOF);
  		int length = 0;
  		while (namePtr[0] != 0) {
-@@ -284,11 +284,11 @@ String computeResultClassicDialog () {
+@@ -283,11 +283,11 @@
  			OS.memmove(namePtr, namesPtr1, OS.PTR_SIZEOF);
  		}
  		fileNames = new String [length];
@@ -41724,7 +42324,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  			utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null);
  			buffer = new char [(int)/*64*/items_written [0]];
  			OS.memmove (buffer, utf16Ptr, items_written [0] * 2);
-@@ -406,7 +406,7 @@ String openChooserDialog () {
+@@ -405,7 +405,7 @@
  	int action = (style & SWT.SAVE) != 0 ?
  		OS.GTK_FILE_CHOOSER_ACTION_SAVE :
  		OS.GTK_FILE_CHOOSER_ACTION_OPEN;
@@ -41733,8 +42333,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	Display display = parent != null ? parent.getDisplay (): Display.getCurrent ();
  	if (display.getDismissalAlignment() == SWT.RIGHT) {
  		handle = OS.gtk_file_chooser_dialog_new (titleBytes, shellHandle, action, OS.GTK_STOCK_CANCEL (), OS.GTK_RESPONSE_CANCEL, OS.GTK_STOCK_OK (), OS.GTK_RESPONSE_OK, 0);
-@@ -415,10 +415,10 @@ String openChooserDialog () {
- 	}
+@@ -415,10 +415,10 @@
+ 	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_window_set_modal (handle, true);
  	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
 -		int /*long*/ group = OS.gtk_window_get_group(0);
@@ -41746,7 +42346,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	if (pixbufs != 0) {
  		OS.gtk_window_set_icon_list (handle, pixbufs);
  		OS.g_list_free (pixbufs);
-@@ -435,7 +435,7 @@ String openChooserDialog () {
+@@ -435,7 +435,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -41755,7 +42355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	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.emissionProc, handle, 0);
-@@ -458,9 +458,9 @@ String openClassicDialog () {
+@@ -465,9 +465,9 @@
  	byte [] titleBytes = Converter.wcsToMbcs (null, title, true);
  	handle = OS.gtk_file_selection_new (titleBytes);
  	if (parent != null) {
@@ -41767,7 +42367,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  		if (pixbufs != 0) {
  			OS.gtk_window_set_icon_list (handle, pixbufs);
  			OS.g_list_free (pixbufs);
-@@ -477,7 +477,7 @@ String openClassicDialog () {
+@@ -484,7 +484,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -41776,7 +42376,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	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.emissionProc, handle, 0);
-@@ -517,7 +517,7 @@ void presetChooserDialog () {
+@@ -531,7 +531,7 @@
  				* when setting a file name that is not a true canonical path. 
  				* The fix is to use the canonical path.
  				*/
@@ -41785,7 +42385,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  				OS.gtk_file_chooser_set_current_folder (handle, ptr);
  				OS.g_free (ptr);
  			}
-@@ -548,7 +548,7 @@ void presetChooserDialog () {
+@@ -562,7 +562,7 @@
  			* when setting a file name that is not a true canonical path. 
  			* The fix is to use the canonical path.
  			*/
@@ -41794,7 +42394,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  			if (ptr != 0) {
  				if (fileName.length() > 0) {
  					OS.gtk_file_chooser_set_filename (handle, ptr);
-@@ -570,10 +570,10 @@ void presetChooserDialog () {
+@@ -584,10 +584,10 @@
  	/* Set the extension filters */
  	if (filterNames == null) filterNames = new String [0];
  	if (filterExtensions == null) filterExtensions = new String [0];
@@ -41807,7 +42407,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  			if (filterNames.length > i && filterNames [i] != null) {
  				byte [] name = Converter.wcsToMbcs (null, filterNames [i], true);
  				OS.gtk_file_filter_set_name (filter, name);
-@@ -629,8 +629,8 @@ void presetClassicDialog () {
+@@ -643,8 +643,8 @@
  	int length = fullPath.length ();
  	char [] buffer = new char [length + 1];
  	fullPath.getChars (0, length, buffer, 0);
@@ -41818,10 +42418,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FileDialog.java swt-gtk-3
  	OS.gtk_file_selection_set_filename (handle, fileNamePtr);
  	OS.g_free (utf8Ptr);
  	OS.g_free (fileNamePtr);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FontDialog.java swt-gtk-3.6.2/org/eclipse/swt/widgets/FontDialog.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FontDialog.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/FontDialog.java	2011-03-21 11:34:23.805727132 +0000
-@@ -134,28 +134,28 @@ public RGB getRGB () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/FontDialog.java swt-gtk-3.7//org/eclipse/swt/widgets/FontDialog.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/FontDialog.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/FontDialog.java	2011-06-13 20:53:32.000000000 +0000
+@@ -133,28 +133,28 @@
   * </ul>
   */
  public FontData open () {
@@ -41855,7 +42455,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FontDialog.java swt-gtk-3
  		int length = OS.strlen (fontName);
  		byte [] buffer = new byte [length + 1];
  		OS.memmove (buffer, fontName, length);
-@@ -170,7 +170,7 @@ public FontData open () {
+@@ -169,7 +169,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -41864,7 +42464,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FontDialog.java swt-gtk-3
  	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.emissionProc, handle, 0);
-@@ -184,12 +184,12 @@ public FontData open () {
+@@ -190,12 +190,12 @@
  	}
  	boolean success = response == OS.GTK_RESPONSE_OK; 
  	if (success) {
@@ -41879,10 +42479,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/FontDialog.java swt-gtk-3
  		Font font = Font.gtk_new (display, fontDesc);
  		fontData = font.getFontData () [0];
  		OS.pango_font_description_free (fontDesc);		
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Group.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Group.java	2011-03-21 11:34:23.915725579 +0000
-@@ -41,7 +41,7 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.7//org/eclipse/swt/widgets/Group.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Group.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Group.java	2011-06-13 20:53:32.000000000 +0000
+@@ -41,7 +41,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Group extends Composite {
@@ -41891,7 +42491,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/
  	String text = "";
  
  /**
-@@ -96,7 +96,7 @@ protected void checkSubclass () {
+@@ -96,7 +96,7 @@
  	if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS);
  }
  
@@ -41900,7 +42500,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/
  	return clientHandle;
  }
  
-@@ -157,7 +157,7 @@ void enableWidget (boolean enabled) {
+@@ -157,7 +157,7 @@
  	OS.gtk_widget_set_sensitive (labelHandle, enabled);
  }
  
@@ -41909,7 +42509,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/
  	return fixedHandle;
  }
  
-@@ -201,7 +201,7 @@ boolean mnemonicMatch (char key) {
+@@ -201,7 +201,7 @@
  	return mnemonicMatch (labelHandle, key);
  }
  
@@ -41918,7 +42518,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/
  	return fixedHandle;
  }
  
-@@ -227,7 +227,7 @@ void setBackgroundColor (GdkColor color)
+@@ -227,7 +227,7 @@
  	setBackgroundColor(fixedHandle, color);
  }
  
@@ -41927,10 +42527,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Group.java swt-gtk-3.6.2/
  	super.setFontDescription (font);
  	OS.gtk_widget_modify_font (labelHandle, font);
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ImageList.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ImageList.java	2011-03-21 11:34:23.815727004 +0000
-@@ -15,13 +15,13 @@ import org.eclipse.swt.internal.gtk.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.7//org/eclipse/swt/widgets/ImageList.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ImageList.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ImageList.java	2011-06-13 20:53:32.000000000 +0000
+@@ -15,13 +15,13 @@
  import org.eclipse.swt.graphics.*;
  
  class ImageList {
@@ -41946,7 +42546,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.
  }
  
  public int add (Image image) {
-@@ -41,7 +41,7 @@ public int add (Image image) {
+@@ -41,7 +41,7 @@
  		Image [] newImages = new Image [images.length + 4];
  		System.arraycopy (images, 0, newImages, 0, images.length);
  		images = newImages;
@@ -41955,7 +42555,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.
  		System.arraycopy (pixbufs, 0, newPixbufs, 0, pixbufs.length);
  		pixbufs = newPixbufs;
  	}
-@@ -62,7 +62,7 @@ public Image get (int index) {
+@@ -62,7 +62,7 @@
  	return images [index];
  }
  
@@ -41964,7 +42564,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.
  	return pixbufs [index];
  }
  
-@@ -74,7 +74,7 @@ public int indexOf (Image image) {
+@@ -74,7 +74,7 @@
  	return -1;
  }
  
@@ -41973,7 +42573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.
  	if (pixbuf == 0) return -1;
  	for (int index=0; index<images.length; index++) {
  		if (pixbuf == pixbufs [index]) return index;
-@@ -112,17 +112,17 @@ public void remove (Image image) {
+@@ -112,17 +112,17 @@
  void set (int index, Image image) {
  	int [] w = new int [1], h = new int [1];
   	OS.gdk_drawable_get_size (image.pixmap, w, h);
@@ -41994,10 +42594,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ImageList.java swt-gtk-3.
  	if (oldPixbuf != 0) {
  		if (images [index] == image) {
  			OS.gdk_pixbuf_copy_area (pixbuf, 0, 0, width, height, oldPixbuf, 0, 0);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.6.2/org/eclipse/swt/widgets/IME.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/IME.java	2011-03-21 11:34:23.785727425 +0000
-@@ -242,14 +242,14 @@ public boolean getWideCaret () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.7//org/eclipse/swt/widgets/IME.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/IME.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/IME.java	2011-06-13 20:53:32.000000000 +0000
+@@ -242,14 +242,14 @@
  	return false; 
  }
  
@@ -42015,7 +42615,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.6.2/or
  	if (!isInlineEnabled ()) return 0;
  	boolean doit = true;
  	ranges = null;
-@@ -278,14 +278,14 @@ int /*long*/ gtk_commit (int /*long*/ im
+@@ -278,14 +278,14 @@
  	return doit ? 0 : 1;
  }
  
@@ -42034,7 +42634,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.6.2/or
  	int [] cursorPos = new int [1];
  	OS.gtk_im_context_get_preedit_string (imHandle, preeditString, pangoAttrs, cursorPos);
  	caretOffset = cursorPos [0];
-@@ -297,7 +297,7 @@ int /*long*/ gtk_preedit_changed (int /*
+@@ -297,7 +297,7 @@
  		chars = Converter.mbcsToWcs (null, buffer);
  		if (pangoAttrs [0] != 0) {
  			int count = 0;
@@ -42043,16 +42643,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.6.2/or
  			while (OS.pango_attr_iterator_next (iterator)) count++;
  			OS.pango_attr_iterator_destroy (iterator);
  			ranges = new int [count * 2];
-@@ -312,7 +312,7 @@ int /*long*/ gtk_preedit_changed (int /*
- 				ranges [i * 2] = (int)/*64*/OS.g_utf8_pointer_to_offset (preeditString [0], preeditString [0] + start [0]);
- 				ranges [i * 2 + 1] = (int)/*64*/OS.g_utf8_pointer_to_offset (preeditString [0], preeditString [0] + end [0]) - 1;
+@@ -312,7 +312,7 @@
+ 				ranges [i * 2] = (int)/*64*/OS.g_utf16_pointer_to_offset (preeditString [0], preeditString [0] + start [0]);
+ 				ranges [i * 2 + 1] = (int)/*64*/OS.g_utf16_pointer_to_offset (preeditString [0], preeditString [0] + end [0]) - 1;
  				styles [i] = new TextStyle (null, null, null);
 -				int /*long*/ attr = OS.pango_attr_iterator_get (iterator, OS.PANGO_ATTR_FOREGROUND);
 +				long /*int*/ attr = OS.pango_attr_iterator_get (iterator, OS.PANGO_ATTR_FOREGROUND);
  				if (attr != 0) {
  					OS.memmove (attrColor, attr, PangoAttrColor.sizeof);
  					GdkColor color = new GdkColor ();
-@@ -395,7 +395,7 @@ int /*long*/ gtk_preedit_changed (int /*
+@@ -395,7 +395,7 @@
  	return 1;
  }
  
@@ -42061,10 +42661,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/IME.java swt-gtk-3.6.2/or
  	return parent.imHandle ();
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Label.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Label.java	2011-03-21 11:34:23.745727976 +0000
-@@ -51,7 +51,7 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.7//org/eclipse/swt/widgets/Label.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Label.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Label.java	2011-06-13 20:53:32.000000000 +0000
+@@ -50,7 +50,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Label extends Control {
@@ -42073,7 +42673,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  	ImageList imageList;
  	Image image;
  	String text;
-@@ -133,7 +133,7 @@ public Point computeSize (int wHint, int
+@@ -132,7 +132,7 @@
  	boolean fixWrap = labelHandle != 0 && (style & SWT.WRAP) != 0 && (OS.GTK_WIDGET_FLAGS (labelHandle) & OS.GTK_VISIBLE) != 0;
  	if (fixWrap || frameHandle != 0) forceResize ();
  	if (fixWrap) {
@@ -42082,7 +42682,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  		int pangoWidth = OS.pango_layout_get_width (labelLayout);
  		if (wHint != SWT.DEFAULT) {
  			OS.pango_layout_set_width (labelLayout, wHint * OS.PANGO_SCALE);
-@@ -177,11 +177,11 @@ public Point computeSize (int wHint, int
+@@ -176,11 +176,11 @@
  	* muliple lines of text.
  	*/
  	if (hHint == SWT.DEFAULT && labelHandle != 0) {
@@ -42099,7 +42699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  		int ascent = OS.PANGO_PIXELS (OS.pango_font_metrics_get_ascent (metrics));
  		int descent = OS.PANGO_PIXELS (OS.pango_font_metrics_get_descent (metrics));
  		OS.pango_font_metrics_unref (metrics);
-@@ -190,7 +190,7 @@ public Point computeSize (int wHint, int
+@@ -189,7 +189,7 @@
  		OS.g_object_get (labelHandle, OS.ypad, buffer, 0);
  		fontHeight += 2 * buffer [0];
  		if (frameHandle != 0) {
@@ -42108,7 +42708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  			fontHeight += 2 * OS.gtk_style_get_ythickness (style);
  			fontHeight += 2 * OS.gtk_container_get_border_width (frameHandle);
  		}
-@@ -252,7 +252,7 @@ void deregister () {
+@@ -251,7 +251,7 @@
  	if (imageHandle != 0) display.removeWidget (imageHandle);
  }
  
@@ -42117,7 +42717,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  	return fixedHandle;
  }
  
-@@ -485,7 +485,7 @@ int setBounds (int x, int y, int width,
+@@ -484,7 +484,7 @@
  	return result;
  }
  
@@ -42126,7 +42726,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  	super.setFontDescription (font);
  	if (labelHandle != 0) OS.gtk_widget_modify_font (labelHandle, font);
  	if (imageHandle != 0) OS.gtk_widget_modify_font (imageHandle, font);
-@@ -529,7 +529,7 @@ public void setImage (Image image) {
+@@ -529,7 +529,7 @@
  	if (image != null) {
  		imageList = new ImageList ();
  		int imageIndex = imageList.add (image);
@@ -42135,10 +42735,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Label.java swt-gtk-3.6.2/
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		OS.gtk_widget_hide (labelHandle);
  		OS.gtk_widget_show (imageHandle);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Link.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Link.java	2011-03-21 11:34:23.755727838 +0000
-@@ -282,8 +282,8 @@ public String getText () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.7//org/eclipse/swt/widgets/Link.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Link.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Link.java	2011-06-13 20:53:32.000000000 +0000
+@@ -281,8 +281,8 @@
  	return text;
  }
  
@@ -42149,7 +42749,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
-@@ -321,8 +321,8 @@ int /*long*/ gtk_button_press_event (int
+@@ -320,8 +320,8 @@
  	return result;
  }
  
@@ -42160,7 +42760,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	if (focusIndex == -1) return result;
  	GdkEventButton gdkEvent = new GdkEventButton ();
-@@ -345,8 +345,8 @@ int /*long*/ gtk_button_release_event (i
+@@ -344,8 +344,8 @@
  	return result;
  }
  
@@ -42171,7 +42771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	switch (event.type) {
-@@ -357,7 +357,7 @@ int /*long*/ gtk_event_after (int /*long
+@@ -356,7 +356,7 @@
  	return result;
  }
  
@@ -42180,7 +42780,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	if ((state & OBSCURED) != 0) return 0;
  	GdkEventExpose gdkEvent = new GdkEventExpose ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventExpose.sizeof);
-@@ -398,8 +398,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -397,8 +397,8 @@
  	return 0;
  }
  
@@ -42191,7 +42791,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	if (focusIndex == -1) return result;
  	GdkEventKey gdkEvent = new GdkEventKey ();
-@@ -428,8 +428,8 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -427,8 +427,8 @@
  	return result;
  }
  
@@ -42202,7 +42802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventMotion gdkEvent = new GdkEventMotion ();
  	OS.memmove (gdkEvent, event, GdkEventMotion.sizeof);
-@@ -694,7 +694,7 @@ int setBounds(int x, int y, int width, i
+@@ -693,7 +693,7 @@
  	return result;
  }
  
@@ -42211,10 +42811,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Link.java swt-gtk-3.6.2/o
  	super.setFontDescription (font);
  	layout.setFont (Font.gtk_new (display, font));
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/org/eclipse/swt/widgets/List.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/List.java	2011-03-21 11:34:23.805727132 +0000
-@@ -40,7 +40,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.7//org/eclipse/swt/widgets/List.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/List.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/List.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,7 +40,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class List extends Scrollable {
@@ -42223,7 +42823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  
  	static final int TEXT_COLUMN = 0;
  
-@@ -96,7 +96,7 @@ public void add (String string) {
+@@ -96,7 +96,7 @@
  	checkWidget();
  	if (string == null) error (SWT.ERROR_NULL_ARGUMENT);
  	byte [] buffer = Converter.wcsToMbcs (null, string, true);
@@ -42232,7 +42832,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (iter == 0) error (SWT.ERROR_ITEM_NOT_ADDED);
  	OS.gtk_list_store_append (modelHandle, iter);
  	OS.gtk_list_store_set (modelHandle, iter, TEXT_COLUMN, buffer, -1);
-@@ -134,7 +134,7 @@ public void add (String string, int inde
+@@ -134,7 +134,7 @@
  		error (SWT.ERROR_INVALID_RANGE);
  	}
  	byte [] buffer = Converter.wcsToMbcs (null, string, true);
@@ -42241,7 +42841,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (iter == 0) error (SWT.ERROR_ITEM_NOT_ADDED);
  	/*
  	* Feature in GTK.  It is much faster to append to a list store
-@@ -196,14 +196,14 @@ void createHandle (int index) {
+@@ -196,14 +196,14 @@
  	* Columns:
  	* 0 - text
  	*/
@@ -42259,7 +42859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (columnHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_tree_view_column_pack_start (columnHandle, textRenderer, true);
  	OS.gtk_tree_view_column_add_attribute (columnHandle, textRenderer, OS.text, TEXT_COLUMN);
-@@ -212,7 +212,7 @@ void createHandle (int index) {
+@@ -212,7 +212,7 @@
  	OS.gtk_container_add (scrolledHandle, handle);
  	
  	int mode = (style & SWT.MULTI) != 0 ? OS.GTK_SELECTION_MULTIPLE : OS.GTK_SELECTION_BROWSE;
@@ -42268,7 +42868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.gtk_tree_selection_set_mode (selectionHandle, mode);
  	OS.gtk_tree_view_set_headers_visible (handle, false);	
  	int hsp = (style & SWT.H_SCROLL) != 0 ? OS.GTK_POLICY_AUTOMATIC : OS.GTK_POLICY_NEVER;
-@@ -276,8 +276,8 @@ void deregister() {
+@@ -276,8 +276,8 @@
  public void deselect (int index) {
  	checkWidget();
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0)))  return;
@@ -42279,7 +42879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index); 
  	OS.gtk_tree_selection_unselect_iter (selection, iter);
-@@ -307,8 +307,8 @@ public void deselect (int start, int end
+@@ -307,8 +307,8 @@
  	if (start >= count && end >= count) return;
  	start = Math.min (count - 1, Math.max (0, start));
  	end = Math.min (count - 1, Math.max (0, end));
@@ -42290,7 +42890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int index=start; index<=end; index++) {
  		OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index); 
-@@ -338,9 +338,9 @@ public void deselect (int start, int end
+@@ -338,9 +338,9 @@
  public void deselect (int [] indices) {
  	checkWidget();
  	if (indices == null) error (SWT.ERROR_NULL_ARGUMENT);
@@ -42302,7 +42902,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int i=0; i<indices.length; i++) {
  		int index = indices [i];
-@@ -362,7 +362,7 @@ public void deselect (int [] indices) {
+@@ -362,7 +362,7 @@
   */
  public void deselectAll () {
  	checkWidget();
@@ -42311,8 +42911,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_unselect_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -371,10 +371,10 @@ public void deselectAll () {
- boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+@@ -371,10 +371,10 @@
+ boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
  	boolean selected = false;
  	if (filter) {
 -		int /*long*/ [] path = new int /*long*/ [1];
@@ -42324,7 +42924,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -387,7 +387,7 @@ boolean dragDetect (int x, int y, boolea
+@@ -387,7 +387,7 @@
  	return dragDetect;
  }
  
@@ -42333,7 +42933,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	return paintWindow ();
  }
  
-@@ -408,10 +408,10 @@ GdkColor getBackgroundColor () {
+@@ -408,10 +408,10 @@
   */
  public int getFocusIndex () {
  	checkWidget();
@@ -42346,7 +42946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	int [] index = new int []{-1};
  	if (indices != 0) OS.memmove (index, indices, 4);
  	OS.gtk_tree_path_free (path [0]);
-@@ -442,8 +442,8 @@ public String getItem (int index) {
+@@ -442,8 +442,8 @@
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0)))  {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -42357,7 +42957,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  	OS.gtk_tree_model_get (modelHandle, iter, 0, ptr, -1);
  	OS.g_free (iter);
-@@ -484,13 +484,13 @@ public int getItemCount () {
+@@ -484,13 +484,13 @@
  public int getItemHeight () {
  	checkWidget();
  	int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
@@ -42373,7 +42973,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  		OS.gtk_tree_model_get_iter_first (modelHandle, iter);
  		OS.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false);
  		int [] w = new int [1], h = new int [1];
-@@ -519,9 +519,9 @@ public int getItemHeight () {
+@@ -519,9 +519,9 @@
  public String [] getItems () {
  	checkWidget();
  	int count = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
@@ -42385,7 +42985,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	for (int index=0; index<count; index++) {
  		OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  		OS.gtk_tree_model_get (modelHandle, iter, 0, ptr, -1);
-@@ -575,7 +575,7 @@ public String [] getSelection () {
+@@ -575,7 +575,7 @@
   */
  public int getSelectionCount () {
  	checkWidget();
@@ -42394,7 +42994,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength = 0;
  		display.treeSelection = null;
-@@ -598,7 +598,7 @@ public int getSelectionCount () {
+@@ -598,7 +598,7 @@
   */
  public int getSelectionIndex () {
  	checkWidget();
@@ -42403,7 +43003,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
  		display.treeSelectionLength  = 0;
-@@ -612,14 +612,14 @@ public int getSelectionIndex () {
+@@ -612,14 +612,14 @@
  	* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  	* to give a valid pointer instead.
  	*/
@@ -42422,7 +43022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  			if (indices != 0) {
  				OS.memmove (index, indices, 4);
  				break;
-@@ -649,7 +649,7 @@ public int getSelectionIndex () {
+@@ -649,7 +649,7 @@
   */
  public int [] getSelectionIndices () {
  	checkWidget();
@@ -42431,7 +43031,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
  		display.treeSelectionLength  = 0;
-@@ -665,15 +665,15 @@ public int [] getSelectionIndices () {
+@@ -665,15 +665,15 @@
  	* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  	* to give a valid pointer instead.
  	*/
@@ -42451,7 +43051,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  			if (indices != 0) {
  				int [] index = new int [1];
  				OS.memmove (index, indices, 4);
-@@ -703,24 +703,24 @@ public int [] getSelectionIndices () {
+@@ -703,23 +703,23 @@
   */
  public int getTopIndex () {
  	checkWidget();
@@ -42474,6 +43074,15 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	return 0;
  }
  
+-int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
++long /*int*/ gtk_event_after (long /*int*/ widget, long /*int*/ gdkEvent) {
+ 	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+ 		case OS.GDK_EXPOSE: {
+ 			/*
+@@ -738,8 +738,8 @@
+ 	return super.gtk_event_after (widget, gdkEvent);
+ }
+ 
 -int /*long*/ gtk_button_press_event (int /*long*/ widget, int /*long*/ event) {
 -	int /*long*/ result = super.gtk_button_press_event (widget, event);
 +long /*int*/ gtk_button_press_event (long /*int*/ widget, long /*int*/ event) {
@@ -42481,7 +43090,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	/*
  	* Feature in GTK.  In a multi-select list view, when multiple items are already
-@@ -734,10 +734,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -753,10 +753,10 @@
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
  	int button = gdkEvent.button;
  	if (button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) {
@@ -42494,7 +43103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) result = 1;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -752,10 +752,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -771,10 +771,10 @@
  	* widget from automatically selecting the first item.
  	*/
  	if ((style & SWT.SINGLE) != 0 && getSelectionCount () == 0) {
@@ -42507,7 +43116,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  				OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  				OS.gtk_tree_view_set_cursor (handle, path [0], 0, false);
  				OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -775,8 +775,8 @@ int /*long*/ gtk_button_press_event (int
+@@ -794,8 +794,8 @@
  	return result;
  }
  
@@ -42518,7 +43127,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	if (OS.GTK_VERSION < OS.VERSION (2, 2 ,0)) {
  		/*
-@@ -798,8 +798,8 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -817,8 +817,8 @@
  	return result;
  }
  
@@ -42529,7 +43138,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	/*
  	* Bug in GTK.  The context menu for the typeahead in GtkTreeViewer
  	* opens in the bottom right corner of the screen when Shift+F10
-@@ -812,14 +812,14 @@ int /*long*/ gtk_popup_menu (int /*long*
+@@ -831,14 +831,14 @@
  	return OS.GTK_VERSION < OS.VERSION (2, 6, 5) ? 1 : result;
  }
  
@@ -42546,7 +43155,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_connect_closure (selection, OS.changed, display.closures [CHANGED], false);
  	OS.g_signal_connect_closure (handle, OS.row_activated, display.closures [ROW_ACTIVATED], false);
  }
-@@ -892,15 +892,15 @@ public int indexOf (String string, int s
+@@ -911,15 +911,15 @@
   */
  public boolean isSelected (int index) {
  	checkWidget();
@@ -42565,7 +43174,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.gtk_widget_realize (handle);
  	return OS.gtk_tree_view_get_bin_window (handle);
  }
-@@ -935,9 +935,9 @@ public void remove (int index) {
+@@ -954,9 +954,9 @@
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0)))  {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -42577,7 +43186,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_list_store_remove (modelHandle, iter);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -967,8 +967,8 @@ public void remove (int start, int end)
+@@ -986,8 +986,8 @@
  	if (!(0 <= start && start <= end && end < count)) {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -42588,7 +43197,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int index=end; index>=start; index--) {
  		OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
-@@ -1029,8 +1029,8 @@ public void remove (int [] indices) {
+@@ -1048,8 +1048,8 @@
  	if (!(0 <= start && start <= end && end < count)) {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -42599,7 +43208,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	int last = -1;
  	for (int i=0; i<newIndices.length; i++) {
-@@ -1055,7 +1055,7 @@ public void remove (int [] indices) {
+@@ -1074,7 +1074,7 @@
   */
  public void removeAll () {
  	checkWidget();
@@ -42608,7 +43217,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_list_store_clear (modelHandle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1101,13 +1101,13 @@ public void removeSelectionListener(Sele
+@@ -1120,13 +1120,13 @@
  public void select (int index) {
  	checkWidget();
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0)))  return;
@@ -42625,7 +43234,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  		OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  		OS.gtk_tree_path_free (path);
  	}
-@@ -1144,14 +1144,14 @@ public void select (int start, int end)
+@@ -1163,14 +1163,14 @@
  	if (count == 0 || start >= count) return;
  	start = Math.max (0, start);
  	end = Math.min (end, count - 1);
@@ -42643,7 +43252,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  			OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  			OS.gtk_tree_path_free (path);
  		}
-@@ -1187,9 +1187,9 @@ public void select (int [] indices) {
+@@ -1206,9 +1206,9 @@
  	if (indices == null) error (SWT.ERROR_NULL_ARGUMENT);
  	int length = indices.length;
  	if (length == 0 || ((style & SWT.SINGLE) != 0 && length > 1)) return;
@@ -42655,7 +43264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int i=0; i<length; i++) {
  		int index = indices [i];
-@@ -1197,7 +1197,7 @@ public void select (int [] indices) {
+@@ -1216,7 +1216,7 @@
  		OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  		OS.gtk_tree_selection_select_iter (selection, iter); 
  		if ((style & SWT.SINGLE) != 0) {
@@ -42664,7 +43273,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  			OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  			OS.gtk_tree_path_free (path);
  		}
-@@ -1219,7 +1219,7 @@ public void select (int [] indices) {
+@@ -1238,7 +1238,7 @@
  public void selectAll () {
  	checkWidget();
  	if ((style & SWT.SINGLE) != 0) return;
@@ -42673,7 +43282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_select_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1233,10 +1233,10 @@ void selectFocusIndex (int index) {
+@@ -1252,10 +1252,10 @@
  	*/
  	int count = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
  	if (!(0 <= index && index < count))  return;
@@ -42687,7 +43296,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  	/*
-@@ -1303,7 +1303,7 @@ public void setItem (int index, String s
+@@ -1322,7 +1322,7 @@
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0)))  {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -42696,7 +43305,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  	byte [] buffer = Converter.wcsToMbcs (null, string, true);
  	OS.gtk_list_store_set (modelHandle, iter, TEXT_COLUMN, buffer, -1);
-@@ -1330,11 +1330,11 @@ public void setItems (String [] items) {
+@@ -1349,11 +1349,11 @@
  	for (int i=0; i<items.length; i++) {
  		if (items [i] == null) error (SWT.ERROR_INVALID_ARGUMENT);
  	}
@@ -42710,7 +43319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	if (iter == 0) error (SWT.ERROR_ITEM_NOT_ADDED);
  	for (int i=0; i<items.length; i++) {
  		String string = items [i];
-@@ -1504,9 +1504,9 @@ public void setSelection (String [] item
+@@ -1523,9 +1523,9 @@
  public void setTopIndex (int index) {
  	checkWidget();
  	if (!(0 <= index && index < OS.gtk_tree_model_iter_n_children (modelHandle, 0))) return;
@@ -42722,7 +43331,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	OS.gtk_tree_view_scroll_to_cell (handle, path, 0, true, 0, 0);
  	if (OS.GTK_VERSION < OS.VERSION (2, 8, 0)) {
  		/*
-@@ -1543,9 +1543,9 @@ public void showSelection () {
+@@ -1562,9 +1562,9 @@
  	checkWidget();
  	int index = getSelectionIndex ();
  	if (index == -1) return;
@@ -42734,7 +43343,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  	/*
  	* This code intentionally commented.
  	* Bug in GTK.  According to the documentation, gtk_tree_view_scroll_to_cell
-@@ -1579,9 +1579,9 @@ public void showSelection () {
+@@ -1598,9 +1598,9 @@
  	OS.g_free (iter);
  }
  
@@ -42746,19 +43355,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/List.java swt-gtk-3.6.2/o
  		if (indices != 0) {
  			int [] index = new int [1];
  			OS.memmove (index, indices, 4);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/MenuItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/MenuItem.java	2011-03-21 11:34:23.805727132 +0000
-@@ -38,7 +38,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.7//org/eclipse/swt/widgets/MenuItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/MenuItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/MenuItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,7 +38,7 @@
   */
  public class MenuItem extends Item {
  	Menu parent, menu;
 -	int /*long*/ groupHandle;
 +	long /*int*/ groupHandle;
- 	int accelerator;
+ 	int accelerator, userId;
  	
  /**
-@@ -127,11 +127,11 @@ public MenuItem (Menu parent, int style,
+@@ -127,11 +127,11 @@
  	createWidget (index);
  }
  
@@ -42772,7 +43381,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	addAccelerator (accelGroup);
  	if (menu != null) menu.addAccelerators (accelGroup);
  }
-@@ -258,7 +258,7 @@ void createHandle (int index) {
+@@ -258,7 +258,7 @@
  			if (groupHandle == 0) error (SWT.ERROR_NO_HANDLES);
  			OS.g_object_ref (groupHandle);
  			OS.gtk_object_sink (groupHandle);
@@ -42781,7 +43390,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  			handle = OS.gtk_radio_menu_item_new_with_label (group, buffer);
  			break;
  		case SWT.CHECK:
-@@ -271,10 +271,10 @@ void createHandle (int index) {
+@@ -271,10 +271,10 @@
  	}
  	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
  	if ((style & SWT.SEPARATOR) == 0) {
@@ -42794,7 +43403,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	boolean enabled = OS.GTK_WIDGET_SENSITIVE (parentHandle);     
  	if (!enabled) OS.GTK_WIDGET_SET_FLAGS (parentHandle, OS.GTK_SENSITIVE);
  	OS.gtk_menu_shell_insert (parentHandle, handle, index);
-@@ -306,7 +306,7 @@ public int getAccelerator () {
+@@ -306,7 +306,7 @@
  	return accelerator;
  }
  
@@ -42803,7 +43412,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	Menu menu = parent;
  	while (menu != null && menu.cascade != null) {
  		menu = menu.cascade.parent;
-@@ -407,7 +407,7 @@ public boolean getSelection () {
+@@ -424,7 +424,7 @@
  	return OS.gtk_check_menu_item_get_active(handle);
  }
  
@@ -42812,7 +43421,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if ((style & SWT.CASCADE) != 0 && menu != null) return 0;
  	/*
  	* Bug in GTK.  When an ancestor menu is disabled and
-@@ -426,13 +426,13 @@ int /*long*/ gtk_activate (int /*long*/
+@@ -443,13 +443,13 @@
  	return 0;
  }
  
@@ -42828,7 +43437,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	boolean handled = hooks (SWT.Help);
  	if (handled) {
  		postEvent (SWT.Help);
-@@ -491,7 +491,7 @@ void releaseParent () {
+@@ -508,7 +508,7 @@
  
  void releaseWidget () {
  	super.releaseWidget ();
@@ -42837,7 +43446,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if (accelGroup != 0) removeAccelerator (accelGroup);
  	if (groupHandle != 0) OS.g_object_unref (groupHandle);
  	groupHandle = 0;
-@@ -499,11 +499,11 @@ void releaseWidget () {
+@@ -516,11 +516,11 @@
  	parent = null;
  }
  
@@ -42851,7 +43460,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	removeAccelerator (accelGroup);
  	if (menu != null) menu.removeAccelerators (accelGroup);
  }
-@@ -615,7 +615,7 @@ void selectRadio () {
+@@ -632,7 +632,7 @@
  public void setAccelerator (int accelerator) {
  	checkWidget();
  	if (this.accelerator == accelerator) return;
@@ -42860,7 +43469,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if (accelGroup != 0) removeAccelerator (accelGroup);
  	this.accelerator = accelerator;
  	if (accelGroup != 0) addAccelerator (accelGroup);
-@@ -637,7 +637,7 @@ public void setAccelerator (int accelera
+@@ -654,7 +654,7 @@
  public void setEnabled (boolean enabled) {
  	checkWidget();
  	if (OS.GTK_WIDGET_SENSITIVE (handle) == enabled) return;
@@ -42869,7 +43478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if (accelGroup != 0) removeAccelerator (accelGroup);
  	OS.gtk_widget_set_sensitive (handle, enabled);
  	if (accelGroup != 0) addAccelerator (accelGroup);
-@@ -674,8 +674,8 @@ public void setImage (Image image) {
+@@ -710,8 +710,8 @@
  		} else {
  			imageList.put (imageIndex, image);
  		}
@@ -42880,7 +43489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  		OS.gtk_image_menu_item_set_image (handle, imageHandle);
  		OS.gtk_widget_show (imageHandle);
  	} else {
-@@ -727,7 +727,7 @@ public void setMenu (Menu menu) {
+@@ -763,7 +763,7 @@
  	/* Assign the new menu */
  	Menu oldMenu = this.menu;
  	if (oldMenu == menu) return;
@@ -42889,7 +43498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if (accelGroup != 0) removeAccelerators (accelGroup);
  	if (oldMenu != null) {
  		oldMenu.cascade = null;
-@@ -837,17 +837,17 @@ public void setText (String string) {
+@@ -874,17 +874,17 @@
  	}
  	char [] chars = fixMnemonic (string);
  	byte [] buffer = Converter.wcsToMbcs (null, chars, true);
@@ -42911,10 +43520,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MenuItem.java swt-gtk-3.6
  	if (accelerator == 0 || !getEnabled ()) return;
  	if ((accelerator & SWT.COMMAND) != 0) return;
  	int mask = 0;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Menu.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Menu.java	2011-03-21 11:34:23.845726568 +0000
-@@ -44,7 +44,7 @@ public class Menu extends Widget {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.7//org/eclipse/swt/widgets/Menu.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Menu.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Menu.java	2011-06-13 20:53:32.000000000 +0000
+@@ -44,7 +44,7 @@
  	boolean hasLocation;
  	MenuItem cascade, selectedItem;
  	Decorations parent;
@@ -42923,16 +43532,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	ImageList imageList;
  
  /**
-@@ -209,7 +209,7 @@ void _setVisible (boolean visible) {
+@@ -209,8 +209,8 @@
  					OS.gtk_menu_shell_set_take_focus (handle, false);
  				}
  			}
 -			int /*long*/ address = hasLocation ? display.menuPositionProc: 0;
+-			int /*long*/ data = 0;
 +			long /*int*/ address = hasLocation ? display.menuPositionProc: 0;
- 			/*
- 			* Bug in GTK.  The timestamp passed into gtk_menu_popup is used
- 			* to perform an X pointer grab.  It cannot be zero, else the grab
-@@ -225,7 +225,7 @@ void _setVisible (boolean visible) {
++			long /*int*/ data = 0;
+ 			if ((OS.GTK_VERSION >=  OS.VERSION (2, 10, 0))) {
+ 				/*
+ 				* Popup-menu to the status icon should be aligned to  
+@@ -240,7 +240,7 @@
  	}
  }
  
@@ -42941,7 +43552,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	MenuItem [] items = getItems ();
  	for (int i = 0; i < items.length; i++) {
  		MenuItem item = items[i];
-@@ -291,7 +291,7 @@ void createHandle (int index) {
+@@ -306,7 +306,7 @@
  	if ((style & SWT.BAR) != 0) {
  		handle = OS.gtk_menu_bar_new ();
  		if (handle == 0) error (SWT.ERROR_NO_HANDLES);
@@ -42950,16 +43561,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  		OS.gtk_container_add (vboxHandle, handle);
  		OS.gtk_box_set_child_packing (vboxHandle, handle, false, true, 0, OS.GTK_PACK_START);
  	} else {
-@@ -300,7 +300,7 @@ void createHandle (int index) {
+@@ -315,9 +315,9 @@
  	}
  }
  
 -void createIMMenu (int /*long*/ imHandle) {
 +void createIMMenu (long /*int*/ imHandle) {
- 	if (this.imHandle == imHandle) return;
- 	this.imHandle = imHandle;
- 	if (imHandle == 0) {
-@@ -325,7 +325,7 @@ void createIMMenu (int /*long*/ imHandle
+ 	boolean showInputMethod = false;
+-	int /*long*/ settings = OS.gtk_settings_get_default ();
++	long /*int*/ settings = OS.gtk_settings_get_default ();
+ 	if (settings != 0) {
+ 		int [] buffer = new int [1];
+ 		OS.g_object_get (settings, OS.gtk_show_input_method_menu, buffer, 0);
+@@ -349,7 +349,7 @@
  		OS.gtk_widget_show (imItem);
  		OS.gtk_menu_shell_insert (handle, imItem, -1);
  	}
@@ -42968,7 +43582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	OS.gtk_im_multicontext_append_menuitems (imHandle, imSubmenu);
  	OS.gtk_menu_item_set_submenu (imItem, imSubmenu);
  }
-@@ -351,7 +351,7 @@ void fixMenus (Decorations newParent) {
+@@ -375,7 +375,7 @@
  	if (!OS.GTK_WIDGET_MAPPED (handle)) {
  		return new Rectangle (0, 0, 0, 0);
  	}
@@ -42977,7 +43591,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	int [] origin_x = new int [1], origin_y = new int [1];
  	OS.gdk_window_get_origin (window, origin_x, origin_y);
  	int x = origin_x [0] + OS.GTK_WIDGET_X (handle);
-@@ -415,13 +415,13 @@ public boolean getEnabled () {
+@@ -439,13 +439,13 @@
   */
  public MenuItem getItem (int index) {
  	checkWidget();
@@ -42993,7 +43607,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	OS.g_list_free (list);
  	if (data == 0) error (SWT.ERROR_CANNOT_GET_ITEM);
  	return (MenuItem) display.getWidget (data);
-@@ -439,7 +439,7 @@ public MenuItem getItem (int index) {
+@@ -463,7 +463,7 @@
   */
  public int getItemCount () {
  	checkWidget();
@@ -43002,7 +43616,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if (list == 0) return 0;
  	int count = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -466,7 +466,7 @@ public int getItemCount () {
+@@ -490,7 +490,7 @@
   */
  public MenuItem [] getItems () {
  	checkWidget();
@@ -43011,7 +43625,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if (list == 0) return new MenuItem [0];
  	int count = OS.g_list_length (list);
  	if (imSeparator != 0) count--;
-@@ -474,7 +474,7 @@ public MenuItem [] getItems () {
+@@ -498,7 +498,7 @@
  	MenuItem [] items = new MenuItem [count];
  	int index = 0;
  	for (int i=0; i<count; i++) {
@@ -43020,7 +43634,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  		MenuItem item = (MenuItem) display.getWidget (data);
  		if (item != null) items [index++] = item; 
  	}
-@@ -600,7 +600,7 @@ public boolean getVisible () {
+@@ -642,7 +642,7 @@
  	return OS.GTK_WIDGET_MAPPED (handle);
  }
  
@@ -43029,7 +43643,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if ((style & SWT.POP_UP) != 0) {
  		if (display.activeShell != null) display.activeShell = getShell ();
  	}
-@@ -619,7 +619,7 @@ int /*long*/ gtk_hide (int /*long*/ widg
+@@ -661,7 +661,7 @@
  	return 0;
  }
  
@@ -43038,7 +43652,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if ((style & SWT.POP_UP) != 0) {
  		if (display.activeShell != null) display.activeShell = getShell ();
  		return 0;
-@@ -629,7 +629,7 @@ int /*long*/ gtk_show (int /*long*/ widg
+@@ -671,7 +671,7 @@
  }
  
  
@@ -43047,7 +43661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if (sendHelpEvent (helpType)) {
  		OS.gtk_menu_shell_deactivate (handle);
  		return 1;
-@@ -714,7 +714,7 @@ public boolean isVisible () {
+@@ -756,7 +756,7 @@
  	return getVisible ();
  }
  
@@ -43056,7 +43670,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	/*
  	* Feature in GTK.  The menu position function sets the position of the
  	* top-left pixel of the menu.  If the menu would be off-screen, GTK will
-@@ -802,7 +802,7 @@ public void removeMenuListener (MenuList
+@@ -844,7 +844,7 @@
  	eventTable.unhook (SWT.Show, listener);
  }
  
@@ -43065,7 +43679,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	MenuItem [] items = getItems ();
  	for (int i = 0; i < items.length; i++) {
  		MenuItem item = items[i];
-@@ -843,7 +843,7 @@ void reskinChildren (int flags) {
+@@ -885,7 +885,7 @@
  	super.reskinChildren (flags);
  }
  
@@ -43074,10 +43688,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Menu.java swt-gtk-3.6.2/o
  	if (selectedItem != null && !selectedItem.isDisposed()) {
  		if (selectedItem.hooks (SWT.Help)) {
  			selectedItem.postEvent (SWT.Help);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3.6.2/org/eclipse/swt/widgets/MessageBox.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/MessageBox.java	2011-03-21 11:34:23.815727004 +0000
-@@ -42,7 +42,7 @@ import org.eclipse.swt.internal.gtk.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3.7//org/eclipse/swt/widgets/MessageBox.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/MessageBox.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/MessageBox.java	2011-06-13 20:53:32.000000000 +0000
+@@ -41,7 +41,7 @@
  public class MessageBox extends Dialog {
  
  	String message = "";
@@ -43086,7 +43700,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3
  /**
   * Constructs a new instance of this class given only its parent.
   *
-@@ -141,7 +141,7 @@ public void setMessage (String string) {
+@@ -140,7 +140,7 @@
   * </ul>
   */
  public int open () {
@@ -43095,7 +43709,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3
  	int dialogFlags = OS.GTK_DIALOG_DESTROY_WITH_PARENT;
  	if ((style & (SWT.PRIMARY_MODAL | SWT.APPLICATION_MODAL | SWT.SYSTEM_MODAL)) != 0) {
  		dialogFlags |= OS.GTK_DIALOG_MODAL;
-@@ -155,7 +155,7 @@ public int open () {
+@@ -154,7 +154,7 @@
  	handle = OS.gtk_message_dialog_new(parentHandle, dialogFlags, messageType, 0, buffer);
  	if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  	if (parentHandle != 0) {
@@ -43104,7 +43718,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3
  		if (pixbufs != 0) {
  			OS.gtk_window_set_icon_list (handle, pixbufs);
  			OS.g_list_free (pixbufs);
-@@ -173,7 +173,7 @@ public int open () {
+@@ -172,7 +172,7 @@
  	* dialog to the same window group as of the shells.
  	*/
  	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
@@ -43113,7 +43727,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3
  		OS.gtk_window_group_add_window (group, handle);
  	}
  	
-@@ -182,7 +182,7 @@ public int open () {
+@@ -181,7 +181,7 @@
  		display.setModalDialog (this);
  	}
  	int signalId = 0;
@@ -43122,10 +43736,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/MessageBox.java swt-gtk-3
  	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.emissionProc, handle, 0);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Monitor.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Monitor.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Monitor.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Monitor.java	2011-03-21 11:34:23.835726712 +0000
-@@ -22,7 +22,7 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Monitor.java swt-gtk-3.7//org/eclipse/swt/widgets/Monitor.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Monitor.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Monitor.java	2011-06-13 20:53:32.000000000 +0000
+@@ -22,7 +22,7 @@
   * @since 3.0
   */
  public final class Monitor {
@@ -43134,10 +43748,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Monitor.java swt-gtk-3.6.
  	int x, y, width, height;
  	int clientX, clientY, clientWidth, clientHeight;
  	
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ProgressBar.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ProgressBar.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ProgressBar.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ProgressBar.java	2011-03-21 11:34:23.735728129 +0000
-@@ -162,8 +162,8 @@ public int getState () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ProgressBar.java swt-gtk-3.7//org/eclipse/swt/widgets/ProgressBar.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ProgressBar.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ProgressBar.java	2011-06-13 20:53:32.000000000 +0000
+@@ -161,8 +161,8 @@
  	return SWT.NORMAL;
  }
  
@@ -43148,7 +43762,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ProgressBar.java swt-gtk-
  	if (result != 0) return result;
  	/*
  	* Bug in GTK.  When a progress bar has been unrealized after being
-@@ -272,7 +272,7 @@ public void setState (int state) {
+@@ -271,7 +271,7 @@
  	//NOT IMPLEMENTED
  }
  
@@ -43157,7 +43771,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ProgressBar.java swt-gtk-
  	if (isVisible ()) OS.gtk_progress_bar_pulse (handle);
  	return 1;
  }
-@@ -295,7 +295,7 @@ void updateBar (int selection, int minim
+@@ -294,7 +294,7 @@
  	* but unexpected.  The fix is to force all
  	* outstanding redraws to be delivered.
  	*/
@@ -43166,10 +43780,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ProgressBar.java swt-gtk-
  	OS.gdk_window_process_updates (window, false);
  	OS.gdk_flush ();
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Sash.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Sash.java	2011-03-21 11:34:23.825726858 +0000
-@@ -41,7 +41,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.7//org/eclipse/swt/widgets/Sash.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Sash.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Sash.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,7 +40,7 @@
  public class Sash extends Control {
  	boolean dragging;
  	int startX, startY, lastX, lastY;
@@ -43178,7 +43792,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  
  	private final static int INCREMENT = 1;
  	private final static int PAGE_INCREMENT = 9;
-@@ -145,12 +145,12 @@ void createHandle (int index) {
+@@ -144,12 +144,12 @@
  
  void drawBand (int x, int y, int width, int height) {
  	if ((style & SWT.SMOOTH) != 0) return;
@@ -43195,7 +43809,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	GdkColor color = new GdkColor ();
  	OS.gdk_color_white (colormap, color);
  	OS.gdk_gc_set_foreground (gc, color);	
-@@ -163,8 +163,8 @@ void drawBand (int x, int y, int width,
+@@ -162,8 +162,8 @@
  	OS.g_object_unref (gc);
  }
  
@@ -43206,7 +43820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventButton.sizeof);
-@@ -172,7 +172,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -171,7 +171,7 @@
  	if (button != 1) return 0;
  	if (gdkEvent.type == OS.GDK_2BUTTON_PRESS) return 0;
  	if (gdkEvent.type == OS.GDK_3BUTTON_PRESS) return 0;
@@ -43215,7 +43829,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	int [] origin_x = new int [1], origin_y = new int [1];
  	OS.gdk_window_get_origin (window, origin_x, origin_y);
  	startX = (int) (gdkEvent.x_root - origin_x [0]);
-@@ -210,8 +210,8 @@ int /*long*/ gtk_button_press_event (int
+@@ -209,8 +209,8 @@
  	return result;	
  }
  
@@ -43226,7 +43840,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventButton.sizeof);
-@@ -240,8 +240,8 @@ int /*long*/ gtk_button_release_event (i
+@@ -239,8 +239,8 @@
  	return result;
  }
  
@@ -43237,7 +43851,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	// widget could be disposed at this point
  	if (handle != 0) {
-@@ -251,8 +251,8 @@ int /*long*/ gtk_focus_in_event (int /*l
+@@ -250,8 +250,8 @@
  	return 0;
  }
  
@@ -43248,7 +43862,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventKey gdkEvent = new GdkEventKey ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-@@ -287,9 +287,9 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -286,9 +286,9 @@
  			if (newX == lastX && newY == lastY) return result;
  			
  			/* Ensure that the pointer image does not change */
@@ -43260,7 +43874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  			int ptrGrabResult = OS.gdk_pointer_grab (window, false, grabMask, window, gdkCursor, OS.GDK_CURRENT_TIME);
  
  			/* The event must be sent because its doit flag is used. */
-@@ -326,8 +326,8 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -325,8 +325,8 @@
  	return result;
  }
  
@@ -43271,7 +43885,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	if (!dragging) return 0;
  	GdkEventMotion gdkEvent = new GdkEventMotion ();
-@@ -389,7 +389,7 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -388,7 +388,7 @@
  	return result;
  }
  
@@ -43280,7 +43894,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	setCursor (cursor != null ? cursor.handle : 0);
  	return super.gtk_realize (widget);
  }
-@@ -430,7 +430,7 @@ public void removeSelectionListener(Sele
+@@ -429,7 +429,7 @@
  	eventTable.unhook (SWT.DefaultSelection,listener);	
  }
  
@@ -43289,10 +43903,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Sash.java swt-gtk-3.6.2/o
  	super.setCursor (cursor != 0 ? cursor : defaultCursor);
  }
  
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Scale.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Scale.java	2011-03-21 11:34:23.735728129 +0000
-@@ -127,7 +127,7 @@ void createHandle (int index) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.7//org/eclipse/swt/widgets/Scale.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Scale.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Scale.java	2011-06-13 20:53:32.000000000 +0000
+@@ -126,7 +126,7 @@
  	fixedHandle = OS.g_object_new (display.gtk_fixed_get_type (), 0);
  	if (fixedHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
@@ -43301,7 +43915,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	if (hAdjustment == 0) error (SWT.ERROR_NO_HANDLES);	
  	if ((style & SWT.HORIZONTAL) != 0) {
  		handle = OS.gtk_hscale_new (hAdjustment);
-@@ -159,7 +159,7 @@ void hookEvents () {
+@@ -158,7 +158,7 @@
   */
  public int getIncrement () {
  	checkWidget ();
@@ -43310,7 +43924,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.step_increment;
-@@ -177,7 +177,7 @@ public int getIncrement () {
+@@ -176,7 +176,7 @@
   */
  public int getMaximum () {
  	checkWidget ();
@@ -43319,7 +43933,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.upper;
-@@ -195,7 +195,7 @@ public int getMaximum () {
+@@ -194,7 +194,7 @@
   */
  public int getMinimum () {
  	checkWidget ();
@@ -43328,7 +43942,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.lower;
-@@ -215,7 +215,7 @@ public int getMinimum () {
+@@ -214,7 +214,7 @@
   */
  public int getPageIncrement () {
  	checkWidget ();
@@ -43337,7 +43951,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.page_increment;
-@@ -233,13 +233,13 @@ public int getPageIncrement () {
+@@ -232,13 +232,13 @@
   */
  public int getSelection () {
  	checkWidget ();
@@ -43353,10 +43967,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scale.java swt-gtk-3.6.2/
  	sendSelectionEvent  (SWT.Selection);
  	return 0;
  }
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Scrollable.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Scrollable.java	2011-03-21 11:34:23.815727004 +0000
-@@ -33,7 +33,7 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3.7//org/eclipse/swt/widgets/Scrollable.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Scrollable.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Scrollable.java	2011-06-13 20:53:32.000000000 +0000
+@@ -33,7 +33,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public abstract class Scrollable extends Control {
@@ -43365,7 +43979,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	ScrollBar horizontalBar, verticalBar;
  
  /**
-@@ -74,7 +74,7 @@ public Scrollable (Composite parent, int
+@@ -74,7 +74,7 @@
  	super (parent, style);
  }
  
@@ -43374,7 +43988,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	return handle;
  }
  
-@@ -116,7 +116,7 @@ public Rectangle computeTrim (int x, int
+@@ -116,7 +116,7 @@
  	trimWidth  += vScrollBarWidth ();
  	if (scrolledHandle != 0) {
  		if (OS.gtk_scrolled_window_get_shadow_type (scrolledHandle) != OS.GTK_SHADOW_NONE) {
@@ -43383,7 +43997,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  			int xthickness = OS.gtk_style_get_xthickness (style);
  			int ythickness = OS.gtk_style_get_ythickness (style);
  			trimX -= xthickness;
-@@ -195,7 +195,7 @@ public int getBorderWidth () {
+@@ -195,7 +195,7 @@
  public Rectangle getClientArea () {
  	checkWidget ();
  	forceResize ();
@@ -43392,7 +44006,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	int x = OS.GTK_WIDGET_X (clientHandle);
  	int y = OS.GTK_WIDGET_Y (clientHandle);
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (clientHandle);
-@@ -233,8 +233,8 @@ public ScrollBar getVerticalBar () {
+@@ -233,8 +233,8 @@
  	return verticalBar;
  }
  
@@ -43403,7 +44017,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	
  	/*
  	* Feature in GTK.  Scrolled windows do not scroll if the scrollbars
-@@ -268,7 +268,7 @@ int /*long*/ gtk_scroll_event (int /*lon
+@@ -268,7 +268,7 @@
  
  int hScrollBarWidth() {
  	if (horizontalBar==null) return 0;
@@ -43412,7 +44026,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	if (hBarHandle==0) return 0;
  	GtkRequisition requisition = new GtkRequisition();
  	OS.gtk_widget_size_request(hBarHandle, requisition);
-@@ -318,9 +318,9 @@ void redrawWidget (int x, int y, int wid
+@@ -321,9 +321,9 @@
  	super.redrawWidget (x, y, width, height, redrawAll, all, trim);
  	if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return;
  	if (!trim) return;
@@ -43424,7 +44038,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	GdkRectangle rect = new GdkRectangle ();
  	if (redrawAll) {
  		rect.width = OS.GTK_WIDGET_WIDTH (topHandle);
-@@ -368,7 +368,7 @@ void showWidget () {
+@@ -371,7 +371,7 @@
  	if (scrolledHandle != 0) OS.gtk_widget_show (scrolledHandle);
  }
  
@@ -43433,7 +44047,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	if (fixedHandle != 0) return fixedHandle;
  	if (scrolledHandle != 0) return scrolledHandle;
  	return super.topHandle ();
-@@ -380,7 +380,7 @@ void updateScrollBarValue (ScrollBar bar
+@@ -383,7 +383,7 @@
  
  int vScrollBarWidth() {
  	if (verticalBar == null) return 0;
@@ -43442,10 +44056,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Scrollable.java swt-gtk-3
  	if (vBarHandle == 0) return 0;
  	GtkRequisition requisition = new GtkRequisition();
  	OS.gtk_widget_size_request (vBarHandle, requisition);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ScrollBar.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ScrollBar.java	2011-03-21 11:34:23.815727004 +0000
-@@ -84,7 +84,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.7//org/eclipse/swt/widgets/ScrollBar.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ScrollBar.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ScrollBar.java	2011-06-13 20:53:32.000000000 +0000
+@@ -84,7 +84,7 @@
   */
  public class ScrollBar extends Widget {
  	Scrollable parent;
@@ -43454,7 +44068,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	int detail;
  	boolean dragSent;
  	
-@@ -355,7 +355,7 @@ public Rectangle getThumbBounds () {
+@@ -355,7 +355,7 @@
  	}
  	Rectangle rect = new Rectangle(x, y, width, height);
  	int [] origin_x = new int [1], origin_y = new int [1];
@@ -43463,7 +44077,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	if (window != 0) OS.gdk_window_get_origin (window, origin_x, origin_y);
  	rect.x += origin_x [0];
  	rect.y += origin_y [0];
-@@ -416,7 +416,7 @@ public Rectangle getThumbTrackBounds ()
+@@ -416,7 +416,7 @@
  	}
  	Rectangle rect = new Rectangle(x, y, width, height);
  	int [] origin_x = new int [1], origin_y = new int [1];
@@ -43472,7 +44086,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	if (window != 0) OS.gdk_window_get_origin (window, origin_x, origin_y);
  	rect.x += origin_x [0];
  	rect.y += origin_y [0];
-@@ -446,7 +446,7 @@ public Rectangle getThumbTrackBounds ()
+@@ -446,7 +446,7 @@
   */
  public boolean getVisible () {
  	checkWidget ();
@@ -43481,7 +44095,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	int [] hsp = new int [1], vsp = new int [1];
  	OS.gtk_scrolled_window_get_policy (scrolledHandle, hsp, vsp);
  	if ((style & SWT.HORIZONTAL) != 0) {
-@@ -456,20 +456,20 @@ public boolean getVisible () {
+@@ -456,20 +456,20 @@
  	}
  }
  
@@ -43506,7 +44120,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	Event event = new Event ();
  	dragSent = detail == OS.GTK_SCROLL_JUMP;
  	switch (detail) {
-@@ -497,7 +497,7 @@ int /*long*/ gtk_value_changed (int /*lo
+@@ -496,7 +496,7 @@
  	return 0;
  }
  
@@ -43515,11 +44129,11 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ScrollBar.java swt-gtk-3.
  	GdkEvent gtkEvent = new GdkEvent ();
  	OS.memmove (gtkEvent, gdkEvent, GdkEvent.sizeof);
  	switch (gtkEvent.type) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Shell.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Shell.java	2011-03-21 11:34:23.885726002 +0000
-@@ -117,7 +117,7 @@ import org.eclipse.swt.events.*;
-  * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.7//org/eclipse/swt/widgets/Shell.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Shell.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Shell.java	2011-06-13 20:53:32.000000000 +0000
+@@ -118,7 +118,7 @@
+  * @noextend This class is not intended to be subclassed by clients.
   */
  public class Shell extends Decorations {
 -	int /*long*/ shellHandle, tooltipsHandle, tooltipWindow, group, modalGroup;
@@ -43527,7 +44141,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	boolean mapped, moved, resized, opened, fullScreen, showWithParent, modified, center;
  	int oldX, oldY, oldWidth, oldHeight;
  	int minWidth, minHeight;
-@@ -253,7 +253,7 @@ public Shell (Display display, int style
+@@ -254,7 +254,7 @@
  	this (display, null, style, 0, false);
  }
  
@@ -43536,7 +44150,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	super ();
  	checkSubclass ();
  	if (display == null) display = Display.getCurrent ();
-@@ -358,7 +358,7 @@ public Shell (Shell parent, int style) {
+@@ -359,7 +359,7 @@
  	this (parent != null ? parent.display : null, parent, style, 0, false);
  }
  
@@ -43545,7 +44159,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	return new Shell (display, null, SWT.NO_TRIM, handle, true);
  }
  
-@@ -381,7 +381,7 @@ public static Shell gtk_new (Display dis
+@@ -382,7 +382,7 @@
   * 
   * @since 3.3
   */
@@ -43554,7 +44168,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	return new Shell (display, null, SWT.NO_TRIM, handle, false);
  }
  
-@@ -452,7 +452,7 @@ void adjustTrim () {
+@@ -453,7 +453,7 @@
  	if (display.ignoreTrim) return;
  	int width = OS.GTK_WIDGET_WIDTH (shellHandle);
  	int height = OS.GTK_WIDGET_HEIGHT (shellHandle);
@@ -43563,7 +44177,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	GdkRectangle rect = new GdkRectangle ();
  	OS.gdk_window_get_frame_extents (window, rect);
  	int trimWidth = Math.max (0, rect.width - width);
-@@ -507,7 +507,7 @@ void bringToTop (boolean force) {
+@@ -508,7 +508,7 @@
  	if (!force) {
  		if (activeShell == null) return;
  		if (!display.activePending) {
@@ -43572,7 +44186,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  			if (focusHandle != 0 && !OS.GTK_WIDGET_HAS_FOCUS (focusHandle)) return;
  		}
  	}
-@@ -535,10 +535,10 @@ void bringToTop (boolean force) {
+@@ -536,10 +536,10 @@
  	* window.  The fix is to use XSetInputFocus() to force
  	* the focus.
  	*/
@@ -43586,7 +44200,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  		OS.gdk_error_trap_push ();
  		/* Use CurrentTime instead of the last event time to ensure that the shell becomes active */
  		OS.XSetInputFocus (xDisplay, xWindow, OS.RevertToParent, OS.CurrentTime);
-@@ -588,7 +588,7 @@ void checkOpen () {
+@@ -589,7 +589,7 @@
  	if (!opened) resized = false;
  }
  
@@ -43595,7 +44209,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	return 0;
  }
  
-@@ -692,7 +692,7 @@ void createHandle (int index) {
+@@ -693,7 +693,7 @@
  	} else {
  		vboxHandle = OS.gtk_bin_get_child (shellHandle);
  		if (vboxHandle == 0) error (SWT.ERROR_NO_HANDLES);
@@ -43604,7 +44218,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  		if (OS.g_list_length (children) > 0) {
  			scrolledHandle = OS.g_list_data (children);
  		}
-@@ -712,7 +712,7 @@ void createHandle (int index) {
+@@ -713,7 +713,7 @@
  	OS.gtk_widget_realize (shellHandle);
  }
  
@@ -43613,7 +44227,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	int eventType = OS.X_EVENT_TYPE (xEvent);
  	if (eventType != OS.FocusOut && eventType != OS.FocusIn) return 0;
  	XFocusChangeEvent xFocusEvent = new XFocusChangeEvent();
-@@ -784,7 +784,7 @@ void hookEvents () {
+@@ -806,7 +806,7 @@
  	OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [MAP_EVENT], 0, display.shellMapProcClosure, false);
  	OS.g_signal_connect_closure_by_id (shellHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, display.closures [ENTER_NOTIFY_EVENT], false);
  	OS.g_signal_connect_closure (shellHandle, OS.move_focus, display.closures [MOVE_FOCUS], false);
@@ -43622,7 +44236,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	OS.gdk_window_add_filter  (window, display.filterProc, shellHandle);
  	if (isCustomResize ()) {
  		int mask = OS.GDK_POINTER_MOTION_MASK | OS.GDK_BUTTON_RELEASE_MASK | OS.GDK_BUTTON_PRESS_MASK |  OS.GDK_ENTER_NOTIFY_MASK | OS.GDK_LEAVE_NOTIFY_MASK;
-@@ -825,7 +825,7 @@ void releaseParent () {
+@@ -847,7 +847,7 @@
  	/* Do nothing */
  }
  
@@ -43631,7 +44245,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	return shellHandle;
  }
  
-@@ -856,15 +856,15 @@ void fixShell (Shell newShell, Control c
+@@ -878,15 +878,15 @@
  	}
  }
  
@@ -43650,7 +44264,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  }
  
  void forceResize () {
-@@ -1125,7 +1125,7 @@ public Shell [] getShells () {
+@@ -1148,7 +1148,7 @@
  	return result;
  }
  
@@ -43659,7 +44273,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if (widget == shellHandle) {
  		if (isCustomResize ()) {
  			if ((style & SWT.ON_TOP) != 0 && (style & SWT.NO_FOCUS) == 0) {
-@@ -1149,7 +1149,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -1172,7 +1172,7 @@
  	return super.gtk_button_press_event (widget, event);
  }
  
@@ -43668,7 +44282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	int [] x = new int [1], y = new int [1];
  	OS.gtk_window_get_position (shellHandle, x, y);
  	if (!moved || oldX != x [0] || oldY != y [0]) {
-@@ -1162,25 +1162,25 @@ int /*long*/ gtk_configure_event (int /*
+@@ -1185,25 +1185,25 @@
  	return 0;
  }
  
@@ -43699,7 +44313,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  			int [] width = new int [1];
  			int [] height = new int [1];
  			OS.gdk_drawable_get_size (window, width, height);
-@@ -1204,7 +1204,7 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -1227,7 +1227,7 @@
  	return super.gtk_expose_event (widget, event);
  }
  
@@ -43708,7 +44322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	switch ((int)/*64*/directionType) {
  		case OS.GTK_DIR_TAB_FORWARD:
  		case OS.GTK_DIR_TAB_BACKWARD:
-@@ -1221,13 +1221,13 @@ int /*long*/ gtk_focus (int /*long*/ wid
+@@ -1244,13 +1244,13 @@
  	return super.gtk_focus (widget, directionType);
  }
  
@@ -43724,7 +44338,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  				OS.gdk_window_set_cursor (window, 0);
  				display.resizeMode = 0;
  			}
-@@ -1237,17 +1237,17 @@ int /*long*/ gtk_leave_notify_event (int
+@@ -1260,17 +1260,17 @@
  	return super.gtk_leave_notify_event (widget, event);
  }
  
@@ -43745,7 +44359,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if (widget == shellHandle) {
  		if (isCustomResize ()) {
  			GdkEventMotion gdkEvent = new GdkEventMotion ();
-@@ -1306,8 +1306,8 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -1329,8 +1329,8 @@
  			} else {
  				int mode = getResizeMode (gdkEvent.x, gdkEvent.y);
  				if (mode != display.resizeMode) {
@@ -43756,16 +44370,27 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  					OS.gdk_window_set_cursor (window, cursor);
  					OS.gdk_cursor_destroy (cursor);
  					display.resizeMode = mode;
-@@ -1319,7 +1319,7 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -1342,7 +1342,7 @@
  	return super.gtk_motion_notify_event (widget, event);
  }
  
 -int /*long*/ gtk_key_press_event (int /*long*/ widget, int /*long*/ event) {
 +long /*int*/ gtk_key_press_event (long /*int*/ widget, long /*int*/ event) {
- 	/* Stop menu mnemonics when the shell is disabled */
  	if (widget == shellHandle) {
- 		return (state & DISABLED) != 0 ? 1 : 0;
-@@ -1327,7 +1327,7 @@ int /*long*/ gtk_key_press_event (int /*
+ 		/* Stop menu mnemonics when the shell is disabled */
+ 		if ((state & DISABLED) != 0) return 1;
+@@ -1350,8 +1350,8 @@
+ 		if (menuBar != null && !menuBar.isDisposed ()) {
+ 			Control focusControl = display.getFocusControl ();
+ 			if (focusControl != null && (focusControl.hooks (SWT.KeyDown) || focusControl.filters (SWT.KeyDown))) {
+-				int /*long*/ [] accel = new int /*long*/ [1];
+-				int /*long*/ setting = OS.gtk_settings_get_default ();
++				long /*int*/ [] accel = new long /*int*/ [1];
++				long /*int*/ setting = OS.gtk_settings_get_default ();
+ 				OS.g_object_get (setting, OS.gtk_menu_bar_accel, accel, 0);
+ 				if (accel [0] != 0) {
+ 					int [] keyval = new int [1];
+@@ -1374,7 +1374,7 @@
  	return super.gtk_key_press_event (widget, event);
  }
  
@@ -43774,7 +44399,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	int width = OS.GTK_WIDGET_WIDTH (shellHandle);
  	int height = OS.GTK_WIDGET_HEIGHT (shellHandle);
  	if (!resized || oldWidth != width || oldHeight != height) {
-@@ -1338,9 +1338,9 @@ int /*long*/ gtk_size_allocate (int /*lo
+@@ -1385,9 +1385,9 @@
  	return 0;
  }
  
@@ -43787,7 +44412,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if ((style & SWT.SHELL_TRIM) != SWT.SHELL_TRIM) {
  		int decorations = 0;
  		if ((style & SWT.NO_TRIM) == 0) {
-@@ -1366,7 +1366,7 @@ int /*long*/ gtk_realize (int /*long*/ w
+@@ -1413,7 +1413,7 @@
  	return result;
  }
  
@@ -43796,7 +44421,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	GdkEventWindowState gdkEvent = new GdkEventWindowState ();
  	OS.memmove (gdkEvent, event, GdkEventWindowState.sizeof);
  	minimized = (gdkEvent.new_window_state & OS.GDK_WINDOW_STATE_ICONIFIED) != 0;
-@@ -1634,13 +1634,13 @@ int setBounds (int x, int y, int width,
+@@ -1681,13 +1681,13 @@
  	return result;
  }
  
@@ -43812,7 +44437,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  			OS.XFlush (xDisplay);
  		}
  	}
-@@ -1673,9 +1673,9 @@ public void setEnabled (boolean enabled)
+@@ -1720,9 +1720,9 @@
  			enableWindow = 0;
  		}
  	} else {
@@ -43824,7 +44449,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  		Rectangle rect = getBounds ();
  		GdkWindowAttr attributes = new GdkWindowAttr ();
  		attributes.width = rect.width;
-@@ -1690,7 +1690,7 @@ public void setEnabled (boolean enabled)
+@@ -1737,7 +1737,7 @@
  				if (!OS.GDK_WINDOWING_X11 ()) {
  					OS.gdk_flush ();
  				} else {
@@ -43833,7 +44458,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  					OS.XFlush (xDisplay);
  				}
  			}
-@@ -1764,7 +1764,7 @@ void setInitialBounds () {
+@@ -1811,7 +1811,7 @@
  	if ((state & FOREIGN_HANDLE) != 0) return;
  	int width = OS.gdk_screen_width () * 5 / 8;
  	int height = OS.gdk_screen_height () * 5 / 8;
@@ -43842,7 +44467,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if (screen != 0) {
  		if (OS.gdk_screen_get_n_monitors (screen) > 1) {
  			int monitorNumber = OS.gdk_screen_get_monitor_at_window (screen, paintWindow ());
-@@ -1799,13 +1799,13 @@ public void setMenuBar (Menu menu) {
+@@ -1846,13 +1846,13 @@
  		if (menu.parent != this) error (SWT.ERROR_INVALID_PARENT);
  	}
  	if (menuBar != null) {
@@ -43858,7 +44483,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  		OS.gtk_widget_show (menuHandle);
  		createAccelGroup ();
  		menuBar.addAccelerators (accelGroup);
-@@ -2051,7 +2051,7 @@ void setZOrder (Control sibling, boolean
+@@ -2105,7 +2105,7 @@
  	if (mapped) setZOrder (sibling, above, false, false);
  }
  
@@ -43867,7 +44492,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	mapped = true;
  	display.dispatchEvents = null;
  	return 0;
-@@ -2076,12 +2076,12 @@ void showWidget () {
+@@ -2130,12 +2130,12 @@
  	if (vboxHandle != 0) OS.gtk_widget_show (vboxHandle);
  }
  
@@ -43882,7 +44507,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if (screen != 0) {
  		int monitorNumber = OS.gdk_screen_get_monitor_at_point (screen, x[0], y[0]);
  		GdkRectangle dest = new GdkRectangle ();
-@@ -2099,7 +2099,7 @@ int /*long*/ sizeAllocateProc (int /*lon
+@@ -2153,7 +2153,7 @@
  	return 0;
  }
  
@@ -43891,7 +44516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	OS.gtk_widget_hide (handle);
  	return 0;
  }
-@@ -2146,7 +2146,7 @@ int trimWidth () {
+@@ -2200,7 +2200,7 @@
  
  void updateModal () {
  	if (OS.GTK_IS_PLUG (shellHandle)) return;
@@ -43900,7 +44525,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	boolean isModalShell = false;
  	if (display.getModalDialog () == null) {
  		Shell modal = getModalShell ();
-@@ -2314,16 +2314,16 @@ void releaseWidget () {
+@@ -2379,16 +2379,16 @@
  	tooltipsHandle = 0;
  	if (group != 0) OS.g_object_unref (group);
  	group = modalGroup = 0;
@@ -43920,7 +44545,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION >= OS.VERSION (2, 12, 0)) {
  		byte [] buffer = null;
  		if (string != null && string.length () > 0) {
-@@ -2339,12 +2339,12 @@ void setToolTipText (int /*long*/ rootWi
+@@ -2404,12 +2404,12 @@
  		* 2 fake GDK_MOTION_NOTIFY events (to mimic the GTK call) which 
  		* contain the proper x and y coordinates.
  		*/
@@ -43937,7 +44562,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  			if (window != 0) OS.gdk_window_get_user_data (window, user_data);
  			if (tipWidget == user_data [0]) {
  				eventPtr = OS.gdk_event_new (OS.GDK_MOTION_NOTIFY);
-@@ -2390,7 +2390,7 @@ void setToolTipText (int /*long*/ rootWi
+@@ -2455,7 +2455,7 @@
  		if (OS.GTK_VERSION >= OS.VERSION (2, 2, 1)) {
  			OS.gtk_tooltips_force_window (tooltipsHandle);
  		}
@@ -43946,7 +44571,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  		if (tipWindow != 0 && tipWindow != tooltipWindow) {
  			OS.g_signal_connect (tipWindow, OS.size_allocate, display.sizeAllocateProc, shellHandle);
  			tooltipWindow = tipWindow;
-@@ -2406,9 +2406,9 @@ void setToolTipText (int /*long*/ rootWi
+@@ -2471,9 +2471,9 @@
  		if (tipWindow != 0) {
  			if ((OS.GTK_WIDGET_FLAGS (tipWidget) & (OS.GTK_REALIZED | OS.GTK_VISIBLE)) != 0) {
  				int [] x = new int [1], y = new int [1];
@@ -43958,7 +44583,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  					OS.gdk_window_get_user_data (window, user_data);
  					if (tipWidget == user_data [0]) {
  						/* 
-@@ -2422,7 +2422,7 @@ void setToolTipText (int /*long*/ rootWi
+@@ -2487,7 +2487,7 @@
  						int handler_id = OS.g_signal_connect (tipWindow, OS.size_request, display.sizeRequestProc, shellHandle);
  						OS.gtk_tooltips_set_tip (tooltipsHandle, tipWidget, buffer, null);
  						OS.gtk_widget_hide (tipWindow);
@@ -43967,10 +44592,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Shell.java swt-gtk-3.6.2/
  						OS.GTK_TOOLTIPS_SET_ACTIVE (tooltipsHandle, data);
  						OS.gtk_tooltips_set_tip (tooltipsHandle, tipWidget, buffer, null);
  						if (handler_id != 0) OS.g_signal_handler_disconnect (tipWindow, handler_id);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Slider.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Slider.java	2011-03-21 11:34:23.925725432 +0000
-@@ -153,7 +153,7 @@ void createHandle (int index) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.7//org/eclipse/swt/widgets/Slider.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Slider.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Slider.java	2011-06-13 20:53:32.000000000 +0000
+@@ -153,7 +153,7 @@
  	fixedHandle = OS.g_object_new (display.gtk_fixed_get_type (), 0);
  	if (fixedHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
@@ -43979,7 +44604,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	if (hAdjustment == 0) error (SWT.ERROR_NO_HANDLES);
  	if ((style & SWT.HORIZONTAL) != 0) {
  		handle = OS.gtk_hscrollbar_new (hAdjustment);
-@@ -175,20 +175,20 @@ void createHandle (int index) {
+@@ -175,20 +175,20 @@
  	OS.gtk_container_add (fixedHandle, handle);
  }
  
@@ -44004,7 +44629,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	Event event = new Event ();
  	dragSent = detail == OS.GTK_SCROLL_JUMP;
  	switch (detail) {
-@@ -214,7 +214,7 @@ int /*long*/ gtk_value_changed (int /*lo
+@@ -214,7 +214,7 @@
  	return 0;
  }
  
@@ -44013,7 +44638,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GdkEvent gtkEvent = new GdkEvent ();
  	OS.memmove (gtkEvent, gdkEvent, GdkEvent.sizeof);
  	switch (gtkEvent.type) {
-@@ -247,13 +247,13 @@ void hookEvents () {
+@@ -247,13 +247,13 @@
  
  void register () {
  	super.register ();
@@ -44029,7 +44654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	display.removeWidget (hAdjustment);
  }
  
-@@ -284,7 +284,7 @@ public Point computeSize (int wHint, int
+@@ -284,7 +284,7 @@
   */
  public int getIncrement () {
  	checkWidget ();
@@ -44038,7 +44663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.step_increment;
-@@ -302,7 +302,7 @@ public int getIncrement () {
+@@ -302,7 +302,7 @@
   */
  public int getMaximum () {
  	checkWidget ();
@@ -44047,7 +44672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.upper;
-@@ -320,7 +320,7 @@ public int getMaximum () {
+@@ -320,7 +320,7 @@
   */
  public int getMinimum () {
  	checkWidget ();
@@ -44056,7 +44681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.lower;
-@@ -340,7 +340,7 @@ public int getMinimum () {
+@@ -340,7 +340,7 @@
   */
  public int getPageIncrement () {
  	checkWidget ();
@@ -44065,7 +44690,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.page_increment;
-@@ -358,7 +358,7 @@ public int getPageIncrement () {
+@@ -358,7 +358,7 @@
   */
  public int getSelection () {
  	checkWidget ();
@@ -44074,7 +44699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.value;
-@@ -376,7 +376,7 @@ public int getSelection () {
+@@ -376,7 +376,7 @@
   */
  public int getThumb () {
  	checkWidget ();
@@ -44083,7 +44708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	return (int) adjustment.page_size;
-@@ -443,7 +443,7 @@ public void setIncrement (int value) {
+@@ -443,7 +443,7 @@
   */
  public void setMaximum (int value) {
  	checkWidget ();
@@ -44092,7 +44717,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int minimum = (int) adjustment.lower;
-@@ -473,7 +473,7 @@ public void setMaximum (int value) {
+@@ -473,7 +473,7 @@
  public void setMinimum (int value) {
  	checkWidget ();
  	if (value < 0) return;
@@ -44101,7 +44726,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int maximum = (int) adjustment.upper;
-@@ -556,7 +556,7 @@ public void setSelection (int value) {
+@@ -556,7 +556,7 @@
  public void setThumb (int value) {
  	checkWidget ();
  	if (value < 1) return;
@@ -44110,7 +44735,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	value = (int) Math.min (value, (int)(adjustment.upper - adjustment.lower));
-@@ -597,7 +597,7 @@ public void setValues (int selection, in
+@@ -597,7 +597,7 @@
  	if (increment < 1) return;
  	if (pageIncrement < 1) return;
  	thumb = Math.min (thumb, maximum - minimum);
@@ -44119,10 +44744,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Slider.java swt-gtk-3.6.2
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	adjustment.value = Math.min (Math.max (selection, minimum), maximum - thumb);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Spinner.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Spinner.java	2011-03-21 11:34:23.765727712 +0000
-@@ -45,7 +45,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.7//org/eclipse/swt/widgets/Spinner.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Spinner.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Spinner.java	2011-06-13 20:53:32.000000000 +0000
+@@ -45,7 +45,7 @@
  public class Spinner extends Composite {
  	static final int MIN_ARROW_WIDTH = 6;
  	int lastEventTime = 0;
@@ -44131,7 +44756,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	int fixStart = -1, fixEnd = -1;
  	double climbRate = 1;
  	
-@@ -203,8 +203,8 @@ public Point computeSize (int wHint, int
+@@ -203,8 +203,8 @@
  	if (hHint != SWT.DEFAULT && hHint < 0) hHint = 0;
  	int[] w = new int [1], h = new int [1];
  	OS.gtk_widget_realize (handle);
@@ -44142,7 +44767,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -222,7 +222,7 @@ public Point computeSize (int wHint, int
+@@ -222,7 +222,7 @@
  		string = buffer.toString ();
  	}
  	byte [] buffer1 = Converter.wcsToMbcs (null, string, false);
@@ -44151,7 +44776,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	int length = OS.strlen (ptr);
  	byte [] buffer2 = new byte [length];
  	OS.memmove (buffer2, ptr, length);	
-@@ -240,7 +240,7 @@ public Point computeSize (int wHint, int
+@@ -240,7 +240,7 @@
  public Rectangle computeTrim (int x, int y, int width, int height) {
  	checkWidget ();
  	int xborder = 0, yborder = 0;
@@ -44160,7 +44785,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if ((this.style & SWT.BORDER) != 0) {
  		xborder += OS.gtk_style_get_xthickness (style);
  		yborder += OS.gtk_style_get_ythickness (style);
-@@ -252,7 +252,7 @@ public Rectangle computeTrim (int x, int
+@@ -252,7 +252,7 @@
  		xborder += property [0];
  		yborder += property [0];
  	}
@@ -44169,7 +44794,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	int fontSize = OS.pango_font_description_get_size (fontDesc);
  	int arrowSize = Math.max (OS.PANGO_PIXELS (fontSize), MIN_ARROW_WIDTH);
  	arrowSize = arrowSize - arrowSize % 2;	
-@@ -291,7 +291,7 @@ void createHandle (int index) {
+@@ -291,7 +291,7 @@
  	fixedHandle = OS.g_object_new (display.gtk_fixed_get_type (), 0);
  	if (fixedHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
@@ -44178,7 +44803,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (adjustment == 0) error (SWT.ERROR_NO_HANDLES);
  	handle = OS.gtk_spin_button_new (adjustment, climbRate, 0);
  	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
-@@ -320,23 +320,23 @@ public void cut () {
+@@ -320,23 +320,23 @@
  
  void deregister () {
  	super.deregister ();
@@ -44207,7 +44832,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  		if (imContext != 0) {
  			return OS.gtk_im_context_filter_keypress (imContext, event);
  		}
-@@ -355,7 +355,7 @@ void fixIM () {
+@@ -355,7 +355,7 @@
  	*  filter has to be called by SWT.
  	*/	
  	if (gdkEventKey != 0 && gdkEventKey != -1) {
@@ -44216,7 +44841,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  		if (imContext != 0) {
  			OS.gtk_im_context_filter_keypress (imContext, gdkEventKey);
  			gdkEventKey = -1;
-@@ -371,7 +371,7 @@ GdkColor getBackgroundColor () {
+@@ -371,7 +371,7 @@
  
  public int getBorderWidth () {
  	checkWidget();
@@ -44225,7 +44850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if ((this.style & SWT.BORDER) != 0) {
  		 return OS.gtk_style_get_xthickness (style);
  	}
-@@ -395,7 +395,7 @@ GdkColor getForegroundColor () {
+@@ -395,7 +395,7 @@
   */
  public int getIncrement () {
  	checkWidget ();
@@ -44234,7 +44859,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -416,7 +416,7 @@ public int getIncrement () {
+@@ -416,7 +416,7 @@
   */
  public int getMaximum () {
  	checkWidget ();
@@ -44243,7 +44868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -437,7 +437,7 @@ public int getMaximum () {
+@@ -437,7 +437,7 @@
   */
  public int getMinimum () {
  	checkWidget ();
@@ -44252,7 +44877,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -459,7 +459,7 @@ public int getMinimum () {
+@@ -459,7 +459,7 @@
   */
  public int getPageIncrement () {
  	checkWidget ();
@@ -44261,7 +44886,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -480,7 +480,7 @@ public int getPageIncrement () {
+@@ -480,7 +480,7 @@
   */
  public int getSelection () {
  	checkWidget ();	
@@ -44270,7 +44895,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int digits = OS.gtk_spin_button_get_digits (handle);
-@@ -505,7 +505,7 @@ public int getSelection () {
+@@ -505,7 +505,7 @@
   */
  public String getText () {
  	checkWidget ();
@@ -44279,7 +44904,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (str == 0) return "";
  	int length = OS.strlen (str);
  	byte [] buffer = new byte [length];
-@@ -552,26 +552,26 @@ public int getDigits () {
+@@ -552,26 +552,26 @@
  }
  
  String getDecimalSeparator () {
@@ -44312,7 +44937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  			GtkAdjustment adjustment = new GtkAdjustment ();
  			OS.memmove (adjustment, hAdjustment);
  			if (value != adjustment.value && adjustment.lower <= value && value <= adjustment.upper) {
-@@ -588,7 +588,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -588,7 +588,7 @@
  	* is to post the modify event when the user is typing.
  	*/
  	boolean keyPress = false;
@@ -44321,7 +44946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-@@ -607,7 +607,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -607,7 +607,7 @@
  	return 0;
  }
  
@@ -44330,16 +44955,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (text == 0) return 0;
  	if (!OS.gtk_editable_get_editable (handle)) return 0;
  	int length = OS.strlen (text);
-@@ -645,7 +645,7 @@ int /*long*/ gtk_commit (int /*long*/ im
+@@ -645,9 +645,9 @@
  	return 0;
  }
  
 -int /*long*/ gtk_delete_text (int /*long*/ widget, int /*long*/ start_pos, int /*long*/ end_pos) {
 +long /*int*/ gtk_delete_text (long /*int*/ widget, long /*int*/ start_pos, long /*int*/ end_pos) {
  	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
- 	if (end_pos == -1) end_pos = OS.g_utf8_strlen (OS.gtk_entry_get_text (handle), -1);
- 	String newText = verifyText ("", (int)/*64*/start_pos, (int)/*64*/end_pos);
-@@ -667,17 +667,17 @@ int /*long*/ gtk_delete_text (int /*long
+-	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+ 	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+ 	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+@@ -670,17 +670,17 @@
  	return 0;
  }
  
@@ -44360,16 +44988,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  //	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
  	if (new_text == 0 || new_text_length == 0) return 0;
  	byte [] buffer = new byte [(int)/*64*/new_text_length];
-@@ -686,7 +686,7 @@ int /*long*/ gtk_insert_text (int /*long
+@@ -688,7 +688,7 @@
+ 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
  	int [] pos = new int [1];
  	OS.memmove (pos, position, 4);
- 	if (pos [0] == -1) {
--		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-+		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
- 		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
- 	}
- 	String newText = verifyText (oldText, pos [0], pos [0]);
-@@ -718,15 +718,15 @@ int /*long*/ gtk_insert_text (int /*long
+-	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
+ 	int start = (int)/*64*/OS.g_utf16_pointer_to_offset (ptr, pos [0]);
+ 	String newText = verifyText (oldText, start, start);
+@@ -720,15 +720,15 @@
  	return 0;
  }
  
@@ -44388,7 +45016,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
  		OS.gtk_widget_set_direction (menu, OS.GTK_TEXT_DIR_RTL);
  		OS.gtk_container_forall (menu, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);
-@@ -734,7 +734,7 @@ int /*long*/ gtk_populate_popup (int /*l
+@@ -736,7 +736,7 @@
  	return 0;
  }
  
@@ -44397,7 +45025,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	sendSelectionEvent (SWT.Selection);
  	return 0;
  }
-@@ -747,7 +747,7 @@ void hookEvents () {
+@@ -749,7 +749,7 @@
  	OS.g_signal_connect_closure (handle, OS.value_changed, display.closures [VALUE_CHANGED], false);
  	OS.g_signal_connect_closure (handle, OS.activate, display.closures [ACTIVATE], false);
  	OS.g_signal_connect_closure (handle, OS.populate_popup, display.closures [POPULATE_POPUP], false);
@@ -44406,7 +45034,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (imContext != 0) {
  		OS.g_signal_connect_closure (imContext, OS.commit, display.closures [COMMIT], false);
  		int id = OS.g_signal_lookup (OS.commit, OS.gtk_im_context_get_type ());
-@@ -756,13 +756,13 @@ void hookEvents () {
+@@ -758,13 +758,13 @@
  	}
  }
  
@@ -44424,7 +45052,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (children != 0) window = OS.g_list_data (children);
  	OS.g_list_free (children);
  	return window;
-@@ -787,7 +787,7 @@ public void paste () {
+@@ -789,7 +789,7 @@
  
  void register () {
  	super.register ();
@@ -44433,7 +45061,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (imContext != 0) display.addWidget (imContext, this);
  }
  
-@@ -874,14 +874,14 @@ void setBackgroundColor (GdkColor color)
+@@ -876,14 +876,14 @@
  	OS.gtk_widget_modify_base (handle, 0, color);
  }
  
@@ -44451,7 +45079,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	super.setFontDescription (font);
  }
  
-@@ -900,7 +900,7 @@ void setFontDescription (int /*long*/ fo
+@@ -902,7 +902,7 @@
  public void setIncrement (int value) {
  	checkWidget ();
  	if (value < 1) return;
@@ -44460,7 +45088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	double newValue = value;
-@@ -926,7 +926,7 @@ public void setIncrement (int value) {
+@@ -928,7 +928,7 @@
   */
  public void setMaximum (int value) {
  	checkWidget ();
@@ -44469,7 +45097,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	double newValue = value;
-@@ -953,7 +953,7 @@ public void setMaximum (int value) {
+@@ -955,7 +955,7 @@
   */
  public void setMinimum (int value) {
  	checkWidget ();
@@ -44478,7 +45106,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	double newValue = value;
-@@ -980,7 +980,7 @@ public void setMinimum (int value) {
+@@ -982,7 +982,7 @@
  public void setPageIncrement (int value) {
  	checkWidget ();
  	if (value < 1) return;
@@ -44487,7 +45115,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	double newValue = value;
-@@ -1067,7 +1067,7 @@ public void setDigits (int value) {
+@@ -1069,7 +1069,7 @@
  	if (value < 0) error (SWT.ERROR_INVALID_ARGUMENT);
  	int digits = OS.gtk_spin_button_get_digits (handle);
  	if (value == digits) return;
@@ -44496,7 +45124,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	GtkAdjustment adjustment = new GtkAdjustment ();
  	OS.memmove (adjustment, hAdjustment);
  	int diff = Math.abs (value - digits);
-@@ -1135,7 +1135,7 @@ public void setValues (int selection, in
+@@ -1139,7 +1139,7 @@
  	* depending upon the value of digits.
  	*/
  	climbRate = 1.0 / factor;
@@ -44505,7 +45133,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	OS.gtk_spin_button_configure (handle, adjustment, climbRate, digits);
  	OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
  }
-@@ -1149,9 +1149,9 @@ boolean translateTraversal (GdkEventKey
+@@ -1153,9 +1153,9 @@
  	switch (key) {
  		case OS.GDK_KP_Enter:
  		case OS.GDK_Return: {
@@ -44517,7 +45145,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  				OS.gtk_im_context_get_preedit_string (imContext, preeditString, null, null);
  				if (preeditString [0] != 0) {
  					int length = OS.strlen (preeditString [0]);
-@@ -1170,7 +1170,7 @@ String verifyText (String string, int st
+@@ -1174,7 +1174,7 @@
  	event.text = string;
  	event.start = start;
  	event.end = end;
@@ -44526,7 +45154,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-@@ -1191,7 +1191,7 @@ String verifyText (String string, int st
+@@ -1195,7 +1195,7 @@
  		index = 0;
  	}
  	if (string.length () > 0) {
@@ -44535,10 +45163,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Spinner.java swt-gtk-3.6.
  		GtkAdjustment adjustment = new GtkAdjustment ();
  		OS.memmove (adjustment, hAdjustment);
  		if (adjustment.lower < 0 && string.charAt (0) == '-') index++;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TabFolder.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TabFolder.java	2011-03-21 11:34:23.915725579 +0000
-@@ -100,8 +100,8 @@ protected void checkSubclass () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.7//org/eclipse/swt/widgets/TabFolder.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TabFolder.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TabFolder.java	2011-06-13 20:53:32.000000000 +0000
+@@ -100,8 +100,8 @@
  	if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS);
  }
  
@@ -44549,7 +45177,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if ((OS.gtk_rc_style_get_color_flags (rcStyle, 0) & OS.GTK_RC_BG) != 0) return 0;
  	OS.gtk_widget_realize (handle);
  	return OS.gtk_widget_get_style (handle);
-@@ -139,7 +139,7 @@ public void addSelectionListener(Selecti
+@@ -139,7 +139,7 @@
  	addListener(SWT.DefaultSelection,typedListener);
  }
  
@@ -44558,7 +45186,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	int index = OS.gtk_notebook_get_current_page (handle);
  	if (index != -1 && items [index] != null) {
  		return items [index].pageHandle;
-@@ -164,7 +164,7 @@ public Point computeSize (int wHint, int
+@@ -164,7 +164,7 @@
  public Rectangle computeTrim (int x, int y, int width, int height) {
  	checkWidget();
  	forceResize ();
@@ -44567,7 +45195,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	int clientX = OS.GTK_WIDGET_X (clientHandle);
  	int clientY = OS.GTK_WIDGET_Y (clientHandle);
  	x -= clientX;
-@@ -201,7 +201,7 @@ void createWidget (int index) {
+@@ -201,7 +201,7 @@
  }
  
  void createItem (TabItem item, int index) {
@@ -44576,7 +45204,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	int itemCount = 0;
  	if (list != 0) {
  		itemCount = OS.g_list_length (list);
-@@ -213,15 +213,15 @@ void createItem (TabItem item, int index
+@@ -213,15 +213,15 @@
  		System.arraycopy (items, 0, newItems, 0, items.length);
  		items = newItems;
  	}
@@ -44596,7 +45224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if (pageHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, SWITCH_PAGE);
  	OS.gtk_notebook_insert_page (handle, pageHandle, boxHandle, index);
-@@ -283,7 +283,7 @@ void destroyItem (TabItem item) {
+@@ -283,7 +283,7 @@
  	}
  }
  
@@ -44605,7 +45233,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	return handle;
  }
  		
-@@ -305,7 +305,7 @@ int /*long*/ eventHandle () {
+@@ -305,7 +305,7 @@
  public TabItem getItem (int index) {
  	checkWidget();
  	if (!(0 <= index && index < getItemCount())) error (SWT.ERROR_INVALID_RANGE);	
@@ -44614,7 +45242,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if (list == 0) error (SWT.ERROR_CANNOT_GET_ITEM);
  	int itemCount = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -334,7 +334,7 @@ public TabItem getItem (int index) {
+@@ -334,7 +334,7 @@
  public TabItem getItem(Point point) {
  	checkWidget();
  	if (point == null) error (SWT.ERROR_NULL_ARGUMENT);
@@ -44623,7 +45251,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if (list == 0) return null;
  	int itemCount = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -358,7 +358,7 @@ public TabItem getItem(Point point) {
+@@ -358,7 +358,7 @@
   */
  public int getItemCount () {
  	checkWidget();
@@ -44632,7 +45260,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if (list == 0) return 0;
  	int itemCount = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -428,11 +428,11 @@ public int getSelectionIndex () {
+@@ -428,11 +428,11 @@
  	return OS.gtk_notebook_get_current_page (handle);
  }
  
@@ -44646,7 +45274,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	int index = OS.gtk_notebook_get_current_page (handle);
  	if (index != -1) {
  		Control control = items [index].getControl ();
-@@ -477,7 +477,7 @@ void hookEvents () {
+@@ -477,7 +477,7 @@
  public int indexOf (TabItem item) {
  	checkWidget();
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
@@ -44655,7 +45283,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	if (list == 0) return -1;
  	int count = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -494,7 +494,7 @@ Point minimumSize (int wHint, int hHint,
+@@ -494,7 +494,7 @@
  		Control child = children [i];
  		int index = 0;
  		int count = 0;
@@ -44664,7 +45292,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  		if (list != 0) {
  			count = OS.g_list_length (list);
  			OS.g_list_free (list);
-@@ -519,7 +519,7 @@ Point minimumSize (int wHint, int hHint,
+@@ -519,7 +519,7 @@
  boolean mnemonicHit (char key) {
  	int itemCount = getItemCount ();
  	for (int i=0; i<itemCount; i++) {
@@ -44673,7 +45301,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  		if (labelHandle != 0 && mnemonicHit (labelHandle, key)) return true;
  	}
  	return false;
-@@ -528,7 +528,7 @@ boolean mnemonicHit (char key) {
+@@ -528,7 +528,7 @@
  boolean mnemonicMatch (char key) {
  	int itemCount = getItemCount ();
  	for (int i=0; i<itemCount; i++) {
@@ -44682,7 +45310,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  		if (labelHandle != 0 && mnemonicHit (labelHandle, key)) return true;
  	}
  	return false;
-@@ -589,7 +589,7 @@ public void removeSelectionListener (Sel
+@@ -589,7 +589,7 @@
  
  void reskinChildren (int flags) {
  	if (items != null) {
@@ -44691,7 +45319,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  		if (list != 0){
  			int count = OS.g_list_length (list);
  			OS.g_list_free (list);
-@@ -617,7 +617,7 @@ int setBounds (int x, int y, int width,
+@@ -617,7 +617,7 @@
  	return result;
  }
  
@@ -44700,10 +45328,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabFolder.java swt-gtk-3.
  	super.setFontDescription (font);
  	TabItem [] items = getItems ();
  	for (int i = 0; i < items.length; i++) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TabItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TabItem.java	2011-03-21 11:34:23.865726298 +0000
-@@ -34,7 +34,7 @@ import org.eclipse.swt.graphics.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.7//org/eclipse/swt/widgets/TabItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TabItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TabItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -34,7 +34,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class TabItem extends Item {
@@ -44712,7 +45340,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.6.
  	Control control;
  	TabFolder parent;
  	String toolTipText;
-@@ -206,12 +206,12 @@ public String getToolTipText () {
+@@ -206,12 +206,12 @@
  	return toolTipText;
  }
  
@@ -44727,7 +45355,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.6.
  	return parent.gtk_mnemonic_activate (widget, arg1);
  }
  
-@@ -281,7 +281,7 @@ public void setControl (Control control)
+@@ -281,7 +281,7 @@
  	if (oldControl != null) oldControl.setVisible (false);
  }
  
@@ -44736,7 +45364,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.6.
  	OS.gtk_widget_modify_font (labelHandle, font);
  	OS.gtk_widget_modify_font (imageHandle, font);
  }
-@@ -304,7 +304,7 @@ public void setImage (Image image) {
+@@ -304,7 +304,7 @@
  		} else {
  			imageList.put (imageIndex, image);
  		}
@@ -44745,10 +45373,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TabItem.java swt-gtk-3.6.
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		OS.gtk_widget_show (imageHandle);
  	} else {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TableColumn.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TableColumn.java	2011-03-21 11:34:23.885726002 +0000
-@@ -36,7 +36,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-3.7//org/eclipse/swt/widgets/TableColumn.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TableColumn.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TableColumn.java	2011-06-13 20:53:32.000000000 +0000
+@@ -36,7 +36,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class TableColumn extends Item {
@@ -44757,7 +45385,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	Table parent;
  	int modelIndex, lastButton, lastTime, lastX, lastWidth;
  	boolean customDraw, useFixedWidth;
-@@ -324,7 +324,7 @@ public int getWidth () {
+@@ -324,7 +324,7 @@
  	return OS.gtk_tree_view_column_get_width (handle);
  }
  
@@ -44766,7 +45394,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	/*
  	* There is no API to get a double click on a table column.  Normally, when
  	* the mouse is double clicked, this is indicated by GDK_2BUTTON_PRESS
-@@ -334,7 +334,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -334,7 +334,7 @@
  	*/
  	boolean doubleClick = false;
  	boolean postEvent = true;
@@ -44775,7 +45403,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	if (eventPtr != 0) {
  		GdkEventButton gdkEvent = new GdkEventButton ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventButton.sizeof);
-@@ -366,7 +366,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -366,7 +366,7 @@
  	return 0;
  }
  
@@ -44784,7 +45412,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	switch (event.type) {
-@@ -382,11 +382,11 @@ int /*long*/ gtk_event_after (int /*long
+@@ -382,11 +382,11 @@
  	return 0;
  }
  
@@ -44798,7 +45426,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	useFixedWidth = false;
  	int x = OS.GTK_WIDGET_X (widget);
  	int width = OS.GTK_WIDGET_WIDTH (widget);
-@@ -438,7 +438,7 @@ public void pack () {
+@@ -438,7 +438,7 @@
  			}
  		}
  	} else {
@@ -44807,7 +45435,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  		if (OS.gtk_tree_model_get_iter_first (parent.modelHandle, iter)) {
  			do {
  				width = Math.max (width, parent.calculateWidth (handle, iter));
-@@ -545,7 +545,7 @@ public void setAlignment (int alignment)
+@@ -545,7 +545,7 @@
  	parent.createRenderers (handle, modelIndex, index == 0, style);
  }
  
@@ -44816,7 +45444,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  	OS.gtk_widget_modify_font (labelHandle, font);
  	OS.gtk_widget_modify_font (imageHandle, font);
  }
-@@ -560,7 +560,7 @@ public void setImage (Image image) {
+@@ -560,7 +560,7 @@
  		}
  		int imageIndex = headerImageList.indexOf (image);
  		if (imageIndex == -1) imageIndex = headerImageList.add (image);
@@ -44825,7 +45453,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		OS.gtk_widget_show (imageHandle);
  	} else {
-@@ -705,14 +705,14 @@ public void setWidth (int width) {
+@@ -706,14 +706,14 @@
  	 */
  	if (width != 0) {
  		if (buttonHandle != 0) {
@@ -44845,10 +45473,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableColumn.java swt-gtk-
  						OS.gdk_window_get_user_data (child, userData);
  						if (userData[0] == buttonHandle) {
  							OS.gdk_window_lower (child);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TableItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TableItem.java	2011-03-21 11:34:23.905725730 +0000
-@@ -127,7 +127,7 @@ static Table checkNull (Table control) {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.7//org/eclipse/swt/widgets/TableItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TableItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TableItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -127,7 +127,7 @@
  }
  
  Color _getBackground () {
@@ -44857,7 +45485,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Table.BACKGROUND_COLUMN, ptr, -1);
  	if (ptr [0] == 0) return parent.getBackground ();
  	GdkColor gdkColor = new GdkColor ();
-@@ -138,7 +138,7 @@ Color _getBackground () {
+@@ -138,7 +138,7 @@
  Color _getBackground (int index) {
  	int count = Math.max (1, parent.columnCount);
  	if (0 > index || index > count - 1) return _getBackground ();
@@ -44866,7 +45494,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	int modelIndex = parent.columnCount == 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Table.CELL_BACKGROUND, ptr, -1);
  	if (ptr [0] == 0) return _getBackground ();
-@@ -148,13 +148,13 @@ Color _getBackground (int index) {
+@@ -148,13 +148,13 @@
  }
  
  boolean _getChecked () {
@@ -44882,7 +45510,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Table.FOREGROUND_COLUMN, ptr, -1);
  	if (ptr [0] == 0) return parent.getForeground ();
  	GdkColor gdkColor = new GdkColor ();
-@@ -165,7 +165,7 @@ Color _getForeground () {
+@@ -165,7 +165,7 @@
  Color _getForeground (int index) {
  	int count = Math.max (1, parent.columnCount);
  	if (0 > index || index > count - 1) return _getForeground ();
@@ -44891,7 +45519,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	int modelIndex =  parent.columnCount == 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Table.CELL_FOREGROUND, ptr, -1);
  	if (ptr [0] == 0) return _getForeground ();
-@@ -177,7 +177,7 @@ Color _getForeground (int index) {
+@@ -177,7 +177,7 @@
  Image _getImage (int index) {
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return null;
@@ -44900,7 +45528,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	int modelIndex = parent.columnCount == 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Table.CELL_PIXBUF, ptr, -1);
  	if (ptr [0] == 0) return null;
-@@ -190,7 +190,7 @@ Image _getImage (int index) {
+@@ -190,7 +190,7 @@
  String _getText (int index) {
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return "";
@@ -44909,7 +45537,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	int modelIndex = parent.columnCount == 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Table.CELL_TEXT, ptr, -1);
  	if (ptr [0] == 0) return "";
-@@ -269,14 +269,14 @@ public Rectangle getBounds () {
+@@ -269,14 +269,14 @@
  	// shifted a bit too far right on later versions of GTK - however, old Tree also had this problem
  	checkWidget ();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -44929,7 +45557,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_widget_realize (parentHandle);
  	
  	boolean isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0;
-@@ -357,15 +357,15 @@ public Color getBackground (int index) {
+@@ -357,15 +357,15 @@
  public Rectangle getBounds (int index) {
  	checkWidget();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -44948,7 +45576,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_widget_realize (parentHandle);
  	GdkRectangle rect = new GdkRectangle ();
  	OS.gtk_tree_view_get_cell_area (parentHandle, path, column, rect);
-@@ -549,18 +549,18 @@ public Image getImage (int index) {
+@@ -549,18 +549,18 @@
  public Rectangle getImageBounds (int index) {
  	checkWidget ();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -44971,7 +45599,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_widget_realize (parentHandle);
  	OS.gtk_tree_view_get_cell_area (parentHandle, path, column, rect);
  	OS.gtk_tree_path_free (path);
-@@ -675,19 +675,19 @@ public Rectangle getTextBounds (int inde
+@@ -675,19 +675,19 @@
  	if (0 > index || index > count - 1) return new Rectangle (0, 0, 0, 0);
  	// TODO fully test on early and later versions of GTK
  	// shifted a bit too far right on later versions of GTK - however, old Tree also had this problem
@@ -44996,7 +45624,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_widget_realize (parentHandle);
  	
  	boolean isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0;
-@@ -735,12 +735,12 @@ public Rectangle getTextBounds (int inde
+@@ -735,12 +735,12 @@
  
  void redraw () {
  	if ((OS.GTK_WIDGET_FLAGS (parent.handle) & OS.GTK_REALIZED) != 0) {
@@ -45012,7 +45640,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  		rect.x = 0;
  		int [] w = new int [1], h = new int [1];
  		OS.gdk_drawable_get_size (window, w, h);
-@@ -845,16 +845,16 @@ public void setBackground (int index, Co
+@@ -845,16 +845,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -45033,7 +45661,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -918,7 +918,7 @@ public void setFont (Font font){
+@@ -918,7 +918,7 @@
  	if (oldFont == font) return;
  	this.font = font;
  	if (oldFont != null && oldFont.equals (font)) return;
@@ -45042,7 +45670,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_list_store_set (parent.modelHandle, handle, Table.FONT_COLUMN, fontHandle, -1);
  	/*
  	* Bug in GTK.  When using fixed-height-mode,
-@@ -969,7 +969,7 @@ public void setFont (int index, Font fon
+@@ -969,7 +969,7 @@
  	if (oldFont != null && oldFont.equals (font)) return;
  
  	int modelIndex = parent.columnCount == 0 ? Table.FIRST_COLUMN : parent.columns [index].modelIndex;
@@ -45051,7 +45679,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_list_store_set (parent.modelHandle, handle, modelIndex + Table.CELL_FONT, fontHandle, -1);
  	/*
  	* Bug in GTK.  When using fixed-height-mode,
-@@ -987,16 +987,16 @@ public void setFont (int index, Font fon
+@@ -987,16 +987,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -45072,7 +45700,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -1092,16 +1092,16 @@ public void setForeground (int index, Co
+@@ -1092,16 +1092,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -45093,7 +45721,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -1134,7 +1134,7 @@ public void setGrayed (boolean grayed) {
+@@ -1134,7 +1134,7 @@
  	* GTK+'s "inconsistent" state does not match SWT's concept of grayed.
  	* Render checked+grayed as "inconsistent", unchecked+grayed as blank.
  	*/
@@ -45102,7 +45730,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Table.CHECKED_COLUMN, ptr, -1);
  	OS.gtk_list_store_set (parent.modelHandle, handle, Table.GRAYED_COLUMN, ptr [0] == 0 ? false : grayed, -1);
  	cached = true;
-@@ -1164,7 +1164,7 @@ public void setImage (int index, Image i
+@@ -1164,7 +1164,7 @@
  	}
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return;
@@ -45111,7 +45739,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  	if (image != null) {
  		ImageList imageList = parent.imageList;
  		if (imageList == null) imageList = parent.imageList = new ImageList ();
-@@ -1192,10 +1192,10 @@ public void setImage (int index, Image i
+@@ -1192,10 +1192,10 @@
  	if ((parent.style & SWT.VIRTUAL) != 0 && parent.currentItem == null) {
  		if (OS.GTK_VERSION >= OS.VERSION (2, 3, 2)) {
  			if (image != null) {
@@ -45125,7 +45753,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  				OS.gtk_tree_view_column_cell_get_position (column, pixbufRenderer, null, w);
  				if (w[0] < image.getBounds().width) {
  					/*
-@@ -1203,7 +1203,7 @@ public void setImage (int index, Image i
+@@ -1203,7 +1203,7 @@
  					* are relying on the fact that it is done as part of modifying
  					* the style.
  					*/
@@ -45134,10 +45762,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TableItem.java swt-gtk-3.
  					parent.modifyStyle (parentHandle, style);
  				}
  			} 
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Table.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Table.java	2011-03-21 11:34:23.785727425 +0000
-@@ -68,9 +68,9 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.7//org/eclipse/swt/widgets/Table.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Table.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Table.java	2011-06-13 20:53:32.000000000 +0000
+@@ -68,9 +68,9 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Table extends Composite {
@@ -45149,7 +45777,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	TableItem [] items;
  	TableColumn [] columns;
  	TableItem currentItem;
-@@ -170,9 +170,9 @@ static int checkStyle (int style) {
+@@ -170,9 +170,9 @@
  	return checkBits (style, SWT.SINGLE, SWT.MULTI, 0, 0, 0, 0);
  }
  
@@ -45161,7 +45789,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	int [] index = new int [1];
  	OS.memmove (index, OS.gtk_tree_path_get_indices (path), 4);
  	TableItem item = _getItem (index[0]);
-@@ -223,7 +223,7 @@ int /*long*/ cellDataProc (int /*long*/
+@@ -223,7 +223,7 @@
  			setData = checkData (item);
  		}
  	}
@@ -45170,7 +45798,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (setData) {
  		ptr [0] = 0;
  		if (isPixbuf) {
-@@ -332,7 +332,7 @@ public void addSelectionListener (Select
+@@ -332,7 +332,7 @@
  	addListener (SWT.DefaultSelection, typedListener);
  }
  
@@ -45179,7 +45807,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false);
  	/*
  	* Bug in GTK.  The width calculated by gtk_tree_view_column_cell_get_size()
-@@ -348,11 +348,11 @@ int calculateWidth (int /*long*/ column,
+@@ -348,11 +348,11 @@
  	int [] w = new int [1];
  	OS.gtk_widget_style_get(handle, OS.focus_line_width, w, 0);
  	width += 2 * w [0];
@@ -45194,7 +45822,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		if (renderer != 0) {
  			OS.gtk_cell_renderer_get_size (renderer, handle, null, null, null, w, null);
  			width += w [0];
-@@ -524,18 +524,18 @@ void createColumn (TableColumn column, i
+@@ -524,18 +524,18 @@
  			modelIndex++;
  		}
  		if (modelIndex == modelLength) {
@@ -45219,7 +45847,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  					for (int j=0; j<modelLength; j++) {
  						OS.gtk_tree_model_get (oldModel, oldItem, j, ptr, -1);
  						OS.gtk_list_store_set (newModel, newItem, j, ptr [0], -1);
-@@ -553,7 +553,7 @@ void createColumn (TableColumn column, i
+@@ -553,7 +553,7 @@
  			modelHandle = newModel;
  		}
  	}
@@ -45228,7 +45856,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (columnHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	if (index == 0 && columnCount > 0) {
  		TableColumn checkColumn = columns [0];
-@@ -609,7 +609,7 @@ void createHandle (int index) {
+@@ -609,7 +609,7 @@
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
  	scrolledHandle = OS.gtk_scrolled_window_new (0, 0);
  	if (scrolledHandle == 0) error (SWT.ERROR_NO_HANDLES);
@@ -45237,7 +45865,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	modelHandle = OS.gtk_list_store_newv (types.length, types);
  	if (modelHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	handle = OS.gtk_tree_view_new_with_model (modelHandle);
-@@ -624,7 +624,7 @@ void createHandle (int index) {
+@@ -624,7 +624,7 @@
  	OS.gtk_container_add (scrolledHandle, handle);
  	
  	int mode = (style & SWT.MULTI) != 0 ? OS.GTK_SELECTION_MULTIPLE : OS.GTK_SELECTION_BROWSE;
@@ -45246,7 +45874,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_tree_selection_set_mode (selectionHandle, mode);
  	OS.gtk_tree_view_set_headers_visible (handle, false);	
  	int hsp = (style & SWT.H_SCROLL) != 0 ? OS.GTK_POLICY_AUTOMATIC : OS.GTK_POLICY_NEVER;
-@@ -669,11 +669,11 @@ void createItem (TableColumn column, int
+@@ -669,11 +669,11 @@
  	} else {
  		createColumn (column, index);
  	}
@@ -45261,7 +45889,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (imageHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_container_add (boxHandle, imageHandle);
  	OS.gtk_container_add (boxHandle, labelHandle);
-@@ -682,7 +682,7 @@ void createItem (TableColumn column, int
+@@ -682,7 +682,7 @@
  	column.labelHandle = labelHandle;
  	column.imageHandle = imageHandle;	
  	OS.gtk_tree_view_column_set_widget (column.handle, boxHandle);
@@ -45270,7 +45898,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	while (widget != handle) {
  		if (OS.GTK_IS_BUTTON (widget)) {
  			column.buttonHandle = widget;
-@@ -748,7 +748,7 @@ void createItem (TableItem item, int ind
+@@ -748,7 +748,7 @@
  	items [index] = item;
  }
  
@@ -45279,7 +45907,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_tree_view_column_clear (columnHandle);
  	if ((style & SWT.CHECK) != 0 && check) {
  		OS.gtk_tree_view_column_pack_start (columnHandle, checkRenderer, false);
-@@ -771,9 +771,9 @@ void createRenderers (int /*long*/ colum
+@@ -771,9 +771,9 @@
  			OS.g_object_set_qdata (checkRenderer, Display.SWT_OBJECT_INDEX1, columnHandle);
  		}
  	}
@@ -45291,7 +45919,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (textRenderer == 0) error (SWT.ERROR_NO_HANDLES);
  	
  	if (ownerDraw) {
-@@ -877,7 +877,7 @@ public void deselect (int index) {
+@@ -877,7 +877,7 @@
  	checkWidget();
  	if (index < 0 || index >= itemCount) return;
  	boolean fixColumn = showFirstColumn ();
@@ -45300,7 +45928,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_unselect_iter (selection, _getItem (index).handle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -902,7 +902,7 @@ public void deselect (int index) {
+@@ -902,7 +902,7 @@
  public void deselect (int start, int end) {
  	checkWidget();
  	boolean fixColumn = showFirstColumn ();
@@ -45309,7 +45937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int index=start; index<=end; index++) {
  		if (index < 0 || index >= itemCount) continue;
-@@ -933,7 +933,7 @@ public void deselect (int [] indices) {
+@@ -933,7 +933,7 @@
  	checkWidget();
  	if (indices == null) error (SWT.ERROR_NULL_ARGUMENT);
  	boolean fixColumn = showFirstColumn ();
@@ -45318,7 +45946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int i=0; i<indices.length; i++) {
  		int index = indices[i];
-@@ -955,7 +955,7 @@ public void deselect (int [] indices) {
+@@ -955,7 +955,7 @@
  public void deselectAll () {
  	checkWidget();
  	boolean fixColumn = showFirstColumn ();
@@ -45327,7 +45955,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_unselect_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -969,7 +969,7 @@ void destroyItem (TableColumn column) {
+@@ -969,7 +969,7 @@
  		index++;
  	}
  	if (index == columnCount) return;
@@ -45336,7 +45964,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (columnCount == 1) {
  		firstCustomDraw = column.customDraw;
  	}
-@@ -977,18 +977,18 @@ void destroyItem (TableColumn column) {
+@@ -977,18 +977,18 @@
  	columns [columnCount] = null;
  	OS.gtk_tree_view_remove_column (handle, columnHandle);
  	if (columnCount == 0) {
@@ -45361,7 +45989,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				for (int j=0; j<FIRST_COLUMN; j++) {
  					OS.gtk_tree_model_get (oldModel, oldItem, j, ptr, -1);
  					OS.gtk_list_store_set (newModel, newItem, j, ptr [0], -1);
-@@ -1019,7 +1019,7 @@ void destroyItem (TableColumn column) {
+@@ -1019,7 +1019,7 @@
  		for (int i=0; i<itemCount; i++) {
  			TableItem item = items [i];
  			if (item != null) {
@@ -45370,7 +45998,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				int modelIndex = column.modelIndex;
  				OS.gtk_list_store_set (modelHandle, iter, modelIndex + CELL_PIXBUF, 0, -1);
  				OS.gtk_list_store_set (modelHandle, iter, modelIndex + CELL_TEXT, 0, -1);
-@@ -1075,7 +1075,7 @@ void destroyItem (TableItem item) {
+@@ -1075,7 +1075,7 @@
  		index++;
  	}
  	if (index == itemCount) return;
@@ -45379,8 +46007,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_list_store_remove (modelHandle, item.handle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1087,10 +1087,10 @@ void destroyItem (TableItem item) {
- boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+@@ -1087,10 +1087,10 @@
+ boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
  	boolean selected = false;
  	if (filter) {
 -		int /*long*/ [] path = new int /*long*/ [1];
@@ -45392,7 +46020,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -1103,7 +1103,7 @@ boolean dragDetect (int x, int y, boolea
+@@ -1103,7 +1103,7 @@
  	return dragDetect;
  }
  
@@ -45401,7 +46029,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	return paintWindow ();
  }
  
-@@ -1141,13 +1141,13 @@ public Rectangle getClientArea () {
+@@ -1141,13 +1141,13 @@
  	checkWidget ();
  	forceResize ();
  	OS.gtk_widget_realize (handle);
@@ -45418,7 +46046,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (clientHandle);
  	int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (clientHandle);
  	return new Rectangle (fixedX [0] - binX [0], fixedY [0] - binY [0], width, height);
-@@ -1212,8 +1212,8 @@ public int getColumnCount () {
+@@ -1212,8 +1212,8 @@
  	return columnCount;
  }
  
@@ -45429,7 +46057,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	// per row data
  	types [CHECKED_COLUMN] = OS.G_TYPE_BOOLEAN ();
  	types [GRAYED_COLUMN] = OS.G_TYPE_BOOLEAN ();
-@@ -1262,13 +1262,13 @@ int /*long*/[] getColumnTypes (int colum
+@@ -1262,13 +1262,13 @@
  public int [] getColumnOrder () {
  	checkWidget ();
  	if (columnCount == 0) return new int [0];
@@ -45446,7 +46074,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		if (column != 0) {
  			for (int j=0; j<columnCount; j++) {
  				if (columns [j].handle == column) {
-@@ -1318,11 +1318,11 @@ public TableColumn [] getColumns () {
+@@ -1318,11 +1318,11 @@
  }
  
  TableItem getFocusItem () {
@@ -45460,7 +46088,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (indices != 0) {
  		int [] index = new int []{-1};
  		OS.memmove (index, indices, 4);
-@@ -1370,7 +1370,7 @@ public int getHeaderHeight () {
+@@ -1370,7 +1370,7 @@
  		GtkRequisition requisition = new GtkRequisition ();
  		int height = 0;
  		for (int i=0; i<columnCount; i++) {
@@ -45469,7 +46097,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			if (buttonHandle != 0) {
  				OS.gtk_widget_size_request (buttonHandle, requisition);
  				height = Math.max (height, requisition.height);
-@@ -1379,8 +1379,8 @@ public int getHeaderHeight () {
+@@ -1379,8 +1379,8 @@
  		return height;
  	}
  	OS.gtk_widget_realize (handle);
@@ -45480,7 +46108,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	int [] binY = new int [1];
  	OS.gdk_window_get_origin (binWindow, null, binY);
  	int [] fixedY = new int [1];
-@@ -1457,11 +1457,11 @@ public TableItem getItem (int index) {
+@@ -1457,11 +1457,11 @@
  public TableItem getItem (Point point) {
  	checkWidget();
  	if (point == null) error (SWT.ERROR_NULL_ARGUMENT);
@@ -45494,7 +46122,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	TableItem item = null;
  	if (indices != 0) {
  		int [] index = new int [1];
-@@ -1501,7 +1501,7 @@ public int getItemCount () {
+@@ -1501,7 +1501,7 @@
  public int getItemHeight () {
  	checkWidget();
  	if (itemCount == 0) {
@@ -45503,7 +46131,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		int [] w = new int [1], h = new int [1];
  		ignoreSize = true;
  		OS.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h);
-@@ -1509,11 +1509,11 @@ public int getItemHeight () {
+@@ -1509,11 +1509,11 @@
  		return h [0];
  	} else {
  		int height = 0;
@@ -45517,7 +46145,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false);
  			int [] w = new int [1], h = new int [1];
  			OS.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h);
-@@ -1576,14 +1576,14 @@ public boolean getLinesVisible() {
+@@ -1576,14 +1576,14 @@
  	return OS.gtk_tree_view_get_rules_hint (handle);
  }
  
@@ -45536,7 +46164,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		 if (OS.GTK_IS_CELL_RENDERER_PIXBUF (renderer)) {
  			pixbufRenderer = renderer;
  			break;
-@@ -1612,7 +1612,7 @@ int /*long*/ getPixbufRenderer (int /*lo
+@@ -1612,7 +1612,7 @@
   */
  public TableItem [] getSelection () {
  	checkWidget();
@@ -45545,7 +46173,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength  = 0;
  		display.treeSelection = new int [itemCount];
-@@ -1626,15 +1626,15 @@ public TableItem [] getSelection () {
+@@ -1626,15 +1626,15 @@
  	* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  	* to give a valid pointer instead.
  	*/
@@ -45565,7 +46193,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			if (indices != 0) {
  				int [] index = new int [1];
  				OS.memmove (index, indices, 4);
-@@ -1662,7 +1662,7 @@ public TableItem [] getSelection () {
+@@ -1662,7 +1662,7 @@
   */
  public int getSelectionCount () {
  	checkWidget();
@@ -45574,7 +46202,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength = 0;
  		display.treeSelection = null;
-@@ -1688,25 +1688,25 @@ public int getSelectionIndex () {
+@@ -1688,25 +1688,25 @@
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength  = 0;
  		display.treeSelection = new int [itemCount];
@@ -45606,7 +46234,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			if (indices != 0) {
  				OS.memmove (index, indices, 4);
  				break;
-@@ -1736,7 +1736,7 @@ public int getSelectionIndex () {
+@@ -1736,7 +1736,7 @@
   */
  public int [] getSelectionIndices () {
  	checkWidget();
@@ -45615,7 +46243,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength  = 0;
  		display.treeSelection = new int [itemCount];
-@@ -1751,15 +1751,15 @@ public int [] getSelectionIndices () {
+@@ -1751,15 +1751,15 @@
  	* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  	* to give a valid pointer instead.
  	*/
@@ -45635,7 +46263,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			if (indices != 0) {
  				int [] index = new int [1];
  				OS.memmove (index, indices, 4);
-@@ -1817,14 +1817,14 @@ public int getSortDirection () {
+@@ -1817,14 +1817,14 @@
  	return sortDirection;
  }
  
@@ -45654,7 +46282,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		 if (OS.GTK_IS_CELL_RENDERER_TEXT (renderer)) {
  			textRenderer = renderer;
  			break;
-@@ -1849,22 +1849,22 @@ int /*long*/ getTextRenderer (int /*long
+@@ -1849,22 +1849,22 @@
   */
  public int getTopIndex () {
  	checkWidget();
@@ -45681,7 +46309,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (result != 0) return result;
  	/*
  	* Feature in GTK.  In a multi-select table view, when multiple items are already
-@@ -1876,10 +1876,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -1876,10 +1876,10 @@
  	*/
  	int button = gdkEvent.button;
  	if (button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) {
@@ -45694,7 +46322,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) result = 1;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -1894,10 +1894,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -1894,10 +1894,10 @@
  	* widget from automatically selecting the first item.
  	*/
  	if ((style & SWT.SINGLE) != 0 && getSelectionCount () == 0) {
@@ -45707,7 +46335,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  				OS.gtk_tree_view_set_cursor (handle, path [0], 0, false);
  				OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1917,13 +1917,13 @@ int /*long*/ gtk_button_press_event (int
+@@ -1917,13 +1917,13 @@
  	return result;
  }
  
@@ -45724,10 +46352,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	TableItem item = getFocusItem ();
  	if (item != null) {
  		Event event = new Event ();
-@@ -1933,22 +1933,22 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1933,7 +1933,7 @@
  	return 0;
  }
  
+-int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
++long /*int*/ gtk_event_after (long /*int*/ widget, long /*int*/ gdkEvent) {
+ 	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+ 		case OS.GDK_EXPOSE: {
+ 			/*
+@@ -1952,22 +1952,22 @@
+ 	return super.gtk_event_after (widget, gdkEvent);
+ }
+ 
 -int /*long*/ gtk_expose_event (int /*long*/ widget, int /*long*/ eventPtr) {
 +long /*int*/ gtk_expose_event (long /*int*/ widget, long /*int*/ eventPtr) {
  	if ((state & OBSCURED) != 0) return 0;
@@ -45751,7 +46388,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  					GdkRectangle rect = new GdkRectangle ();
  					OS.gtk_tree_view_get_cell_area (handle, path, 0, rect);
  					bottom = rect.y + rect.height;
-@@ -1964,8 +1964,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -1983,8 +1983,8 @@
  	return super.gtk_expose_event (widget, eventPtr);
  }
  
@@ -45762,7 +46399,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (result != 0) return result;
  	if (OS.GTK_VERSION < OS.VERSION (2, 2 ,0)) {
  		/*
-@@ -1989,8 +1989,8 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -2008,8 +2008,8 @@
  	return result;
  }
  
@@ -45773,7 +46410,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	/*
  	* Bug in GTK.  The context menu for the typeahead in GtkTreeViewer
  	* opens in the bottom right corner of the screen when Shift+F10
-@@ -2003,15 +2003,15 @@ int /*long*/ gtk_popup_menu (int /*long*
+@@ -2022,15 +2022,15 @@
  	return OS.GTK_VERSION < OS.VERSION (2, 6, 5) ? 1 : result;
  }
  
@@ -45793,7 +46430,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (indices != 0) {
  		int [] index = new int []{-1};
  		OS.memmove (index, indices, 4);
-@@ -2036,17 +2036,17 @@ int gtk_row_inserted (int model, int pat
+@@ -2055,17 +2055,17 @@
  	}
  	return 0;
  }
@@ -45815,7 +46452,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (indices != 0) {
  		int [] index = new int [1];
  		OS.memmove (index, indices, 4);
-@@ -2061,7 +2061,7 @@ int /*long*/ gtk_toggled (int /*long*/ r
+@@ -2080,7 +2080,7 @@
  	return 0;
  }
  
@@ -45824,7 +46461,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	/*
  	 * Bug in GTK.  For some reason, gtk_widget_size_request() fails
  	 * to include the height of the tree view items when there are
-@@ -2072,17 +2072,17 @@ void gtk_widget_size_request (int /*long
+@@ -2091,17 +2091,17 @@
  		super.gtk_widget_size_request (widget, requisition);
  		return;
  	}
@@ -45845,7 +46482,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (fixVisible) {
  		columnHandle = OS.g_list_data (columns);
  		OS.gtk_tree_view_column_set_visible (columnHandle, true);
-@@ -2095,13 +2095,13 @@ void gtk_widget_size_request (int /*long
+@@ -2114,13 +2114,13 @@
  }
  
  void hideFirstColumn () {
@@ -45861,7 +46498,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_connect_closure (selection, OS.changed, display.closures [CHANGED], false);
  	OS.g_signal_connect_closure (handle, OS.row_activated, display.closures [ROW_ACTIVATED], false);
  	if (checkRenderer != 0) {
-@@ -2192,9 +2192,9 @@ public int indexOf (TableItem item) {
+@@ -2211,9 +2211,9 @@
   */
  public boolean isSelected (int index) {
  	checkWidget();
@@ -45873,7 +46510,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	boolean answer = OS.gtk_tree_selection_path_is_selected (selection, path);
  	OS.gtk_tree_path_free (path);
  	return answer;
-@@ -2202,7 +2202,7 @@ public boolean isSelected (int index) {
+@@ -2221,7 +2221,7 @@
  
  boolean mnemonicHit (char key) {
  	for (int i=0; i<columnCount; i++) {
@@ -45882,7 +46519,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		if (labelHandle != 0 && mnemonicHit (labelHandle, key)) return true;
  	}
  	return false;
-@@ -2210,13 +2210,13 @@ boolean mnemonicHit (char key) {
+@@ -2229,13 +2229,13 @@
  
  boolean mnemonicMatch (char key) {
  	for (int i=0; i<columnCount; i++) {
@@ -45898,7 +46535,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_widget_realize (handle);
  	return OS.gtk_tree_view_get_bin_window (handle);
  }
-@@ -2306,7 +2306,7 @@ void releaseWidget () {
+@@ -2325,7 +2325,7 @@
  public void remove (int index) {
  	checkWidget();
  	if (!(0 <= index && index < itemCount)) error (SWT.ERROR_ITEM_NOT_REMOVED);
@@ -45907,7 +46544,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	TableItem item = items [index];
  	boolean disposed = false;
  	if (item != null) {
-@@ -2319,7 +2319,7 @@ public void remove (int index) {
+@@ -2338,7 +2338,7 @@
  		OS.gtk_tree_model_iter_nth_child (modelHandle, iter, 0, index);
  	}
  	if (!disposed) {
@@ -45916,7 +46553,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  		OS.gtk_list_store_remove (modelHandle, iter);
  		OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -2351,8 +2351,8 @@ public void remove (int start, int end)
+@@ -2370,8 +2370,8 @@
  	if (!(0 <= start && start <= end && end < itemCount)) {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -45927,7 +46564,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (iter == 0) error (SWT.ERROR_NO_HANDLES);
  	if (fixAccessibility ()) {
  		ignoreAccessibility = true;
-@@ -2404,9 +2404,9 @@ public void remove (int [] indices) {
+@@ -2423,9 +2423,9 @@
  	if (!(0 <= start && start <= end && end < itemCount)) {
  		error (SWT.ERROR_INVALID_RANGE);
  	}
@@ -45939,7 +46576,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (iter == 0) error (SWT.ERROR_NO_HANDLES);
  	if (fixAccessibility ()) {
  		ignoreAccessibility = true;
-@@ -2460,7 +2460,7 @@ public void removeAll () {
+@@ -2479,7 +2479,7 @@
  	}
  	items = new TableItem [4];
  	itemCount = 0;
@@ -45948,7 +46585,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	if (fixAccessibility ()) {
  		ignoreAccessibility = true;
-@@ -2521,16 +2521,16 @@ public void removeSelectionListener(Sele
+@@ -2540,29 +2540,29 @@
  	eventTable.unhook (SWT.DefaultSelection,listener);	
  }
  
@@ -45964,13 +46601,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
 -		int /*long*/ iter = OS.g_object_get_qdata (cell, Display.SWT_OBJECT_INDEX2);
 +		long /*int*/ iter = OS.g_object_get_qdata (cell, Display.SWT_OBJECT_INDEX2);
  		TableItem item = null;
+ 		boolean isSelected = false;
  		if (iter != 0) {
 -			int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
 +			long /*int*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
  			int [] buffer = new int [1];
  			OS.memmove (buffer, OS.gtk_tree_path_get_indices (path), 4);
  			int index = buffer [0];
-@@ -2540,7 +2540,7 @@ int /*long*/ rendererGetSizeProc (int /*
+ 			item = _getItem (index);
+-			int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
++			long /*int*/ selection = OS.gtk_tree_view_get_selection (handle);
+ 			isSelected = OS.gtk_tree_selection_path_is_selected (selection, path);
+ 			OS.gtk_tree_path_free (path);
+ 		}
  		if (item != null) {
  			int columnIndex = 0;
  			if (columnCount > 0) {
@@ -45979,7 +46622,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				for (int i = 0; i < columnCount; i++) {
  					if (columns [i].handle == columnHandle) {
  						columnIndex = i;
-@@ -2579,18 +2579,18 @@ int /*long*/ rendererGetSizeProc (int /*
+@@ -2602,18 +2602,18 @@
  	return result;
  }
  
@@ -46002,7 +46645,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	int columnIndex = 0;
  	if (columnCount > 0) {
  		for (int i = 0; i < columnCount; i++) {
-@@ -2604,7 +2604,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2627,7 +2627,7 @@
  		if (OS.GTK_IS_CELL_RENDERER_TOGGLE (cell) || (OS.GTK_IS_CELL_RENDERER_PIXBUF (cell) && (columnIndex != 0 || (style & SWT.CHECK) == 0))) {
  			drawFlags = (int)/*64*/flags;
  			drawState = SWT.FOREGROUND;
@@ -46011,7 +46654,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_model_get (modelHandle, item.handle, Table.BACKGROUND_COLUMN, ptr, -1);
  			if (ptr [0] == 0) {
  				int modelIndex = columnCount == 0 ? Table.FIRST_COLUMN : columns [columnIndex].modelIndex;
-@@ -2615,7 +2615,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2638,7 +2638,7 @@
  			if ((flags & OS.GTK_CELL_RENDERER_FOCUSED) != 0) drawState |= SWT.FOCUSED;			
  			
  			GdkRectangle rect = new GdkRectangle ();
@@ -46020,7 +46663,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_view_get_background_area (handle, path, columnHandle, rect);
  			OS.gtk_tree_path_free (path);
  			
-@@ -2629,7 +2629,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2652,7 +2652,7 @@
  			}
  
  			//send out measure before erase
@@ -46029,7 +46672,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			if (textRenderer != 0) OS.gtk_cell_renderer_get_size (textRenderer, handle, null, null, null, null, null);
  			
  
-@@ -2667,7 +2667,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2690,7 +2690,7 @@
  				if ((drawState & SWT.SELECTED) != 0) drawFlags |= OS.GTK_CELL_RENDERER_SELECTED;
  				if ((drawState & SWT.FOCUSED) != 0) drawFlags |= OS.GTK_CELL_RENDERER_FOCUSED;
  				if ((drawState & SWT.SELECTED) != 0) {
@@ -46038,7 +46681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  					//TODO - parity and sorted
  					byte[] detail = Converter.wcsToMbcs (null, "cell_odd", true);
  					OS.gtk_paint_flat_box (style, window, OS.GTK_STATE_SELECTED, OS.GTK_SHADOW_NONE, rect, widget, detail, rect.x, rect.y, rect.width, rect.height);
-@@ -2678,7 +2678,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2701,7 +2701,7 @@
  			}
  		}
  	}
@@ -46047,7 +46690,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if ((drawState & SWT.BACKGROUND) != 0 && (drawState & SWT.SELECTED) == 0) {
  		GC gc = new GC (this);
  		gc.setBackground (item.getBackground (columnIndex));
-@@ -2688,7 +2688,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2711,7 +2711,7 @@
  		gc.dispose ();
  	}
  	if ((drawState & SWT.FOREGROUND) != 0 || OS.GTK_IS_CELL_RENDERER_TOGGLE (cell)) {
@@ -46056,7 +46699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		GtkCellRendererClass klass = new GtkCellRendererClass ();
  		OS.memmove (klass, g_class);
  		if (drawForeground != null && OS.GTK_IS_CELL_RENDERER_TEXT (cell)) {
-@@ -2700,7 +2700,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2723,7 +2723,7 @@
  		if (OS.GTK_IS_CELL_RENDERER_TEXT (cell)) {
  			if (hooks (SWT.PaintItem)) {
  				GdkRectangle rect = new GdkRectangle ();
@@ -46065,7 +46708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  				OS.gtk_tree_view_get_background_area (handle, path, columnHandle, rect);
  				OS.gtk_tree_path_free (path);
  				ignoreSize = true;
-@@ -2751,8 +2751,8 @@ void resetCustomDraw () {
+@@ -2774,8 +2774,8 @@
  	for (int i=0; i<end; i++) {
  		boolean customDraw = columnCount != 0 ? columns [i].customDraw : firstCustomDraw;
  		if (customDraw) {
@@ -46076,7 +46719,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, 0, 0, 0);
  			if (columnCount != 0) columns [i].customDraw = false;
  		}
-@@ -2805,12 +2805,12 @@ public void select (int index) {
+@@ -2828,12 +2828,12 @@
  	checkWidget();
  	if (!(0 <= index && index < itemCount))  return;
  	boolean fixColumn = showFirstColumn ();
@@ -46091,7 +46734,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  		OS.gtk_tree_path_free (path);
  	}
-@@ -2848,13 +2848,13 @@ public void select (int start, int end)
+@@ -2871,13 +2871,13 @@
  	start = Math.max (0, start);
  	end = Math.min (end, itemCount - 1);
  	boolean fixColumn = showFirstColumn ();
@@ -46107,7 +46750,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  			OS.gtk_tree_path_free (path);
  		}
-@@ -2892,7 +2892,7 @@ public void select (int [] indices) {
+@@ -2915,7 +2915,7 @@
  	int length = indices.length;
  	if (length == 0 || ((style & SWT.SINGLE) != 0 && length > 1)) return;
  	boolean fixColumn = showFirstColumn ();
@@ -46116,7 +46759,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	for (int i=0; i<length; i++) {
  		int index = indices [i];
-@@ -2900,7 +2900,7 @@ public void select (int [] indices) {
+@@ -2923,7 +2923,7 @@
  		TableItem item = _getItem (index);
  		OS.gtk_tree_selection_select_iter (selection, item.handle);
  		if ((style & SWT.SINGLE) != 0) {
@@ -46125,7 +46768,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  			OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  			OS.gtk_tree_path_free (path);
  		}
-@@ -2924,7 +2924,7 @@ public void selectAll () {
+@@ -2947,7 +2947,7 @@
  	checkWidget();
  	if ((style & SWT.SINGLE) != 0) return;
  	boolean fixColumn = showFirstColumn ();
@@ -46134,7 +46777,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_select_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -2939,8 +2939,8 @@ void selectFocusIndex (int index) {
+@@ -2962,8 +2962,8 @@
  	*/
  	if (!(0 <= index && index < itemCount))  return;
  	TableItem item = _getItem (index);
@@ -46145,7 +46788,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_view_set_cursor (handle, path, 0, false);
  	/*
-@@ -2962,7 +2962,7 @@ void setBackgroundColor (GdkColor color)
+@@ -2985,7 +2985,7 @@
  	OS.gtk_widget_modify_base (handle, 0, color);
  }
  
@@ -46154,7 +46797,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	ownerDraw = true;
  	recreateRenderers ();
  }
-@@ -3027,13 +3027,13 @@ public void setColumnOrder (int [] order
+@@ -3050,13 +3050,13 @@
  		seen [index] = true;
  	}
  	for (int i=0; i<order.length; i++) {
@@ -46171,7 +46814,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	super.setFontDescription (font);
  	TableColumn[] columns = getColumns ();
  	for (int i = 0; i < columns.length; i++) {
-@@ -3088,7 +3088,7 @@ public void setItemCount (int count) {
+@@ -3111,7 +3111,7 @@
  	System.arraycopy (items, 0, newItems, 0, itemCount);
  	items = newItems;
  	if (isVirtual) {
@@ -46180,7 +46823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		if (iter == 0) error (SWT.ERROR_NO_HANDLES);
  		if (fixAccessibility ()) {
  			ignoreAccessibility = true;
-@@ -3140,8 +3140,8 @@ void setParentBackground () {
+@@ -3173,8 +3173,8 @@
  	recreateRenderers ();
  }
  
@@ -46191,7 +46834,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_widget_set_parent_window (widget, window);
  }
  
-@@ -3159,7 +3159,7 @@ public void setRedraw (boolean redraw) {
+@@ -3192,7 +3192,7 @@
  	}
  }
  
@@ -46200,7 +46843,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	if (columnCount != 0 || currentItem == item) return;
  	/*
  	* Use GTK_TREE_VIEW_COLUMN_GROW_ONLY on GTK versions < 2.3.2
-@@ -3416,7 +3416,7 @@ public void setSelection (TableItem [] i
+@@ -3449,7 +3449,7 @@
  public void setTopIndex (int index) {
  	checkWidget();
  	if (!(0 <= index && index < itemCount)) return;
@@ -46209,7 +46852,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_tree_view_scroll_to_cell (handle, path, 0, true, 0f, 0f);
  	if (OS.GTK_VERSION < OS.VERSION (2, 8, 0)) {
  		/*
-@@ -3490,10 +3490,10 @@ boolean showFirstColumn () {
+@@ -3523,10 +3523,10 @@
  	*/
  	int columnCount = Math.max (1, this.columnCount);
  	for (int i=0; i<columnCount; i++) {
@@ -46222,7 +46865,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	OS.gtk_tree_view_column_set_visible (firstColumn, true);
  	return true;
  }
-@@ -3524,8 +3524,8 @@ public void showItem (TableItem item) {
+@@ -3557,8 +3557,8 @@
  	showItem (item.handle);
  }
  
@@ -46233,7 +46876,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	/*
  	* This code intentionally commented.
  	* Bug in GTK.  According to the documentation, gtk_tree_view_scroll_to_cell
-@@ -3578,9 +3578,9 @@ public void showSelection () {
+@@ -3611,9 +3611,9 @@
  	showItem (item.handle);
  }
  
@@ -46245,7 +46888,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  		if (indices != 0) {
  			int [] index = new int [1];
  			OS.memmove (index, indices, 4);
-@@ -3599,19 +3599,19 @@ void updateScrollBarValue (ScrollBar bar
+@@ -3632,19 +3632,19 @@
  	* The fix is to queue a resize event for each child to
  	* force the position to be corrected.
  	*/
@@ -46270,7 +46913,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  	switch ((int)/*64*/user_data) {
  		case EXPOSE_EVENT_INVERSE: {
  			/*
-@@ -3625,7 +3625,7 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -3658,7 +3658,7 @@
  					if (control != null) {
  						GdkEventExpose gdkEvent = new GdkEventExpose ();
  						OS.memmove (gdkEvent, arg0, GdkEventExpose.sizeof);
@@ -46279,10 +46922,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Table.java swt-gtk-3.6.2/
  						if (window == gdkEvent.window) {
  							drawBackground (control, window, gdkEvent.region, gdkEvent.area_x, gdkEvent.area_y, gdkEvent.area_width, gdkEvent.area_height);
  						}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Text.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Text.java	2011-03-21 11:34:23.925725432 +0000
-@@ -56,9 +56,9 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.7//org/eclipse/swt/widgets/Text.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Text.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Text.java	2011-06-13 20:53:32.000000000 +0000
+@@ -56,9 +56,9 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Text extends Scrollable {
@@ -46294,7 +46937,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	int fixStart = -1, fixEnd = -1;
  	boolean doubleClick;
  	String message = "";
-@@ -346,7 +346,7 @@ public void append (String string) {
+@@ -346,7 +346,7 @@
  		OS.gtk_text_buffer_get_end_iter (bufferHandle, position);
  		OS.gtk_text_buffer_insert (bufferHandle, position, buffer, buffer.length);
  		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
@@ -46303,7 +46946,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
  	}
  }
-@@ -366,8 +366,8 @@ public void clearSelection () {
+@@ -366,8 +366,8 @@
  		OS.gtk_editable_select_region (handle, position, position);
  	} else {
  		byte [] position = new byte [ITER_SIZEOF];
@@ -46314,7 +46957,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_get_iter_at_mark (bufferHandle, position, insertMark);
  		OS.gtk_text_buffer_move_mark (bufferHandle, selectionMark, position);
  		OS.gtk_text_buffer_move_mark (bufferHandle, insertMark, position);
-@@ -381,13 +381,13 @@ public Point computeSize (int wHint, int
+@@ -381,13 +381,13 @@
  	int[] w = new int [1], h = new int [1];
  	if ((style & SWT.SINGLE) != 0) {
  		OS.gtk_widget_realize (handle);
@@ -46331,7 +46974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.g_free (text);
  		OS.pango_layout_set_width (layout, wHint * OS.PANGO_SCALE);
  		OS.pango_layout_get_size (layout, w, h);
-@@ -397,7 +397,7 @@ public Point computeSize (int wHint, int
+@@ -397,7 +397,7 @@
  	int height = OS.PANGO_PIXELS (h [0]);
  	if ((style & SWT.SINGLE) != 0 && message.length () > 0) {
  		byte [] buffer = Converter.wcsToMbcs (null, message, true);
@@ -46340,7 +46983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.pango_layout_get_size (layout, w, h);
  		OS.g_object_unref (layout);
  		width = Math.max (width, OS.PANGO_PIXELS (w [0]));
-@@ -416,7 +416,7 @@ public Rectangle computeTrim (int x, int
+@@ -416,7 +416,7 @@
  	int xborder = 0, yborder = 0;
  	if ((style & SWT.SINGLE) != 0) {
  		if ((style & SWT.BORDER) != 0) {
@@ -46349,7 +46992,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  			xborder += OS.gtk_style_get_xthickness (style);
  			yborder += OS.gtk_style_get_ythickness (style);
  		}
-@@ -461,7 +461,7 @@ public void copy () {
+@@ -461,7 +461,7 @@
  	if ((style & SWT.SINGLE) != 0) {
  		OS.gtk_editable_copy_clipboard (handle);
  	} else {
@@ -46358,7 +47001,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_copy_clipboard (bufferHandle, clipboard);
  	}
  }
-@@ -483,7 +483,7 @@ public void cut () {
+@@ -483,7 +483,7 @@
  	if ((style & SWT.SINGLE) != 0) {
  		OS.gtk_editable_cut_clipboard (handle);
  	} else {
@@ -46367,7 +47010,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_cut_clipboard (bufferHandle, clipboard, OS.gtk_text_view_get_editable (handle));
  	}
  }
-@@ -491,7 +491,7 @@ public void cut () {
+@@ -491,7 +491,7 @@
  void deregister () {
  	super.deregister ();
  	if (bufferHandle != 0) display.removeWidget (bufferHandle);
@@ -46376,7 +47019,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (imContext != 0) display.removeWidget (imContext);
  }
  
-@@ -519,9 +519,9 @@ boolean dragDetect (int x, int y, boolea
+@@ -519,9 +519,9 @@
  			if ((style & SWT.SINGLE) != 0) {
  				int [] index = new int [1];
  				int [] trailing = new int [1];
@@ -46388,8 +47031,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  				position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
  			} else {
  				byte [] p = new byte [ITER_SIZEOF];
-@@ -540,15 +540,15 @@ boolean dragDetect (int x, int y, boolea
- 	return super.dragDetect (x, y, filter, consume);
+@@ -540,15 +540,15 @@
+ 	return super.dragDetect (x, y, filter, dragOnTimeout, consume);
  }
  
 -int /*long*/ eventWindow () {
@@ -46407,7 +47050,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		if (imContext != 0) {
  			return OS.gtk_im_context_filter_keypress (imContext, event);
  		}
-@@ -567,7 +567,7 @@ void fixIM () {
+@@ -567,7 +567,7 @@
  	*  filter has to be called by SWT.
  	*/
  	if (gdkEventKey != 0 && gdkEventKey != -1) {
@@ -46416,7 +47059,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		if (imContext != 0) {
  			OS.gtk_im_context_filter_keypress (imContext, gdkEventKey);
  			gdkEventKey = -1;
-@@ -584,7 +584,7 @@ GdkColor getBackgroundColor () {
+@@ -584,7 +584,7 @@
  public int getBorderWidth () {
  	checkWidget();
  	if ((style & SWT.MULTI) != 0) return super.getBorderWidth ();
@@ -46425,7 +47068,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if ((this.style & SWT.BORDER) != 0) {
  		 return OS.gtk_style_get_xthickness (style);
  	}
-@@ -608,7 +608,7 @@ public int getCaretLineNumber () {
+@@ -608,7 +608,7 @@
  	checkWidget ();
  	if ((style & SWT.SINGLE) != 0) return 0;
  	byte [] position = new byte [ITER_SIZEOF];
@@ -46434,7 +47077,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	OS.gtk_text_buffer_get_iter_at_mark (bufferHandle, position, mark);
  	return OS.gtk_text_iter_get_line (position);
  }
-@@ -636,7 +636,7 @@ public Point getCaretLocation () {
+@@ -636,7 +636,7 @@
  		}
  		int [] offset_x = new int [1], offset_y = new int [1];
  		OS.gtk_entry_get_layout_offsets (handle, offset_x, offset_y);
@@ -46443,7 +47086,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		PangoRectangle pos = new PangoRectangle ();
  		OS.pango_layout_index_to_pos (layout, index, pos);
  		int x = offset_x [0] + OS.PANGO_PIXELS (pos.x) - getBorderWidth ();
-@@ -644,7 +644,7 @@ public Point getCaretLocation () {
+@@ -644,7 +644,7 @@
  		return new Point (x, y);
  	}
  	byte [] position = new byte [ITER_SIZEOF];
@@ -46452,25 +47095,42 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	OS.gtk_text_buffer_get_iter_at_mark (bufferHandle, position, mark);
  	GdkRectangle rect = new GdkRectangle ();
  	OS.gtk_text_view_get_iter_location (handle, position, rect);
-@@ -673,7 +673,7 @@ public int getCaretPosition () {
- 		return OS.gtk_editable_get_position (handle);
+@@ -670,15 +670,15 @@
+ public int getCaretPosition () {
+ 	checkWidget ();
+ 	if ((style & SWT.SINGLE) != 0)  {
+-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 		return (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_editable_get_position (handle));
  	}
  	byte [] position = new byte [ITER_SIZEOF];
 -	int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
 +	long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
  	OS.gtk_text_buffer_get_iter_at_mark (bufferHandle, position, mark);
- 	return OS.gtk_text_iter_get_offset (position);
- }
-@@ -691,7 +691,7 @@ public int getCaretPosition () {
+ 	byte [] zero = new byte [ITER_SIZEOF];
+ 	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+-	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
++	long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
+ 	int result = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (position));
+ 	OS.g_free (ptr);
+ 	return result;
+@@ -697,13 +697,13 @@
  public int getCharCount () {
  	checkWidget ();
  	if ((style & SWT.SINGLE) != 0) {
 -		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
 +		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
- 		return (int)/*64*/OS.g_utf8_strlen (ptr, -1);
- 	}
- 	return OS.gtk_text_buffer_get_char_count (bufferHandle);
-@@ -860,9 +860,9 @@ public int getOrientation () {
+ 		return (int)/*64*/OS.g_utf16_strlen (ptr, -1);
+ 	}
+ 	byte [] startIter =  new byte [ITER_SIZEOF];
+ 	byte [] endIter =  new byte [ITER_SIZEOF];
+ 	OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+-	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
++	long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+ 	int result = (int)/*64*/OS.g_utf16_strlen(ptr, -1);
+ 	OS.g_free (ptr);
+ 	return result;
+@@ -871,16 +871,16 @@
  	if ((style & SWT.SINGLE) != 0) {
  		int [] index = new int [1];
  		int [] trailing = new int [1];
@@ -46479,10 +47139,36 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.pango_layout_xy_to_index (layout, point.x * OS.PANGO_SCALE, point.y * OS.PANGO_SCALE, index, trailing);
 -		int /*long*/ ptr = OS.pango_layout_get_text (layout);
 +		long /*int*/ ptr = OS.pango_layout_get_text (layout);
- 		position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
+ 		position = (int)/*64*/OS.g_utf16_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
  	} else {
  		byte [] p = new byte [ITER_SIZEOF];
-@@ -958,7 +958,7 @@ public int getTabs () {
+ 		OS.gtk_text_view_get_iter_at_location (handle, p, point.x, point.y);
+ 		byte [] zero = new byte [ITER_SIZEOF];
+ 		OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+-		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, p, true);
++		long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, p, true);
+ 		position = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (p));
+ 		OS.g_free (ptr);
+ 	}
+@@ -911,7 +911,7 @@
+ 		int [] start = new int [1];
+ 		int [] end = new int [1];
+ 		OS.gtk_editable_get_selection_bounds (handle, start, end);
+-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 		start[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start[0]);
+ 		end[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end[0]);
+ 		return new Point (start [0], end [0]);
+@@ -921,7 +921,7 @@
+ 	OS.gtk_text_buffer_get_selection_bounds (bufferHandle, startIter, endIter);
+ 	byte [] zero = new byte [ITER_SIZEOF];
+ 	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+-	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
++	long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
+ 	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (startIter));
+ 	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (endIter));
+ 	OS.g_free (ptr);
+@@ -982,7 +982,7 @@
  
  int getTabWidth (int tabs) {
  	byte[] buffer = Converter.wcsToMbcs(null, " ", true);
@@ -46491,25 +47177,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	int [] width = new int [1];
  	int [] height = new int [1];
  	OS.pango_layout_get_size (layout, width, height);
-@@ -982,7 +982,7 @@ int getTabWidth (int tabs) {
+@@ -1062,7 +1062,7 @@
   */
- public String getText () {
+ public char [] getTextChars () {
  	checkWidget ();
 -	int /*long*/ address;
 +	long /*int*/ address;
  	if ((style & SWT.SINGLE) != 0) {
  		address = OS.gtk_entry_get_text (handle);
  	} else {
-@@ -1020,7 +1020,7 @@ public String getText () {
- public String getText (int start, int end) {
- 	checkWidget ();
- 	if (!(start <= end && 0 <= end)) return "";
--	int /*long*/ address;
-+	long /*int*/ address;
- 	if ((style & SWT.SINGLE) != 0) {
- 		start = Math.max (0, start);
- 		address = OS.gtk_editable_get_chars (handle, start, end + 1);
-@@ -1121,13 +1121,13 @@ public int getTopPixel () {
+@@ -1157,13 +1157,13 @@
  	return lineTop [0];
  }
  
@@ -46526,7 +47203,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
-@@ -1142,7 +1142,7 @@ int /*long*/ gtk_button_press_event (int
+@@ -1178,7 +1178,7 @@
  }
  
  
@@ -46535,7 +47212,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	/*
  	* Feature in GTK.  When the user types, GTK positions
  	* the caret after sending the changed signal.  This
-@@ -1151,7 +1151,7 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1187,7 +1187,7 @@
  	* is to post the modify event when the user is typing.
  	*/
  	boolean keyPress = false;
@@ -46544,13 +47221,13 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-@@ -1169,14 +1169,14 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1205,14 +1205,14 @@
  	}
  	if ((style & SWT.SEARCH) != 0) {
  		if ((style & SWT.ICON_CANCEL) != 0) {
 -			int /*long*/ ptr = OS.gtk_entry_get_text (handle);
 +			long /*int*/ ptr = OS.gtk_entry_get_text (handle);
- 			OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, OS.g_utf8_strlen (ptr, -1) > 0);
+ 			OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, OS.g_utf16_strlen (ptr, -1) > 0);
  		}
  	}
  	return 0;
@@ -46561,7 +47238,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (text == 0) return 0;
  	if ((style & SWT.SINGLE) != 0) {
  		if (!OS.gtk_editable_get_editable (handle)) return 0;
-@@ -1218,7 +1218,7 @@ int /*long*/ gtk_commit (int /*long*/ im
+@@ -1254,7 +1254,7 @@
  	return 0;
  }
  
@@ -46570,16 +47247,28 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
  	byte [] startIter = new byte [ITER_SIZEOF];
  	byte [] endIter = new byte [ITER_SIZEOF];
-@@ -1254,7 +1254,7 @@ int /*long*/ gtk_delete_range (int /*lon
+@@ -1264,7 +1264,7 @@
+ 	int end = OS.gtk_text_iter_get_offset (endIter);
+ 	byte [] zero = new byte [ITER_SIZEOF];
+ 	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+-	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
++	long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
+ 	start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start);
+ 	end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end);
+ 	OS.g_free (ptr);
+@@ -1296,9 +1296,9 @@
  	return 0;
  }
  
 -int /*long*/ gtk_delete_text (int /*long*/ widget, int /*long*/ start_pos, int /*long*/ end_pos) {
 +long /*int*/ gtk_delete_text (long /*int*/ widget, long /*int*/ start_pos, long /*int*/ end_pos) {
  	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
- 	if (end_pos == -1) end_pos = OS.g_utf8_strlen (OS.gtk_entry_get_text (handle), -1);
- 	String newText = verifyText ("", (int)/*64*/start_pos, (int)/*64*/end_pos);
-@@ -1283,7 +1283,7 @@ int /*long*/ gtk_delete_text (int /*long
+-	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+ 	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+ 	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+@@ -1328,7 +1328,7 @@
  	return 0;
  }
  
@@ -46588,7 +47277,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (cursor != null) setCursor (cursor.handle);
  	/*
  	* Feature in GTK.  The gtk-entry-select-on-focus property is a global
-@@ -1299,7 +1299,7 @@ int /*long*/ gtk_event_after (int /*long
+@@ -1344,7 +1344,7 @@
  				GdkEventFocus gdkEventFocus = new GdkEventFocus ();
  				OS.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof);
  				if (gdkEventFocus.in == 0) {
@@ -46597,7 +47286,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  					OS.g_object_set (settings, OS.gtk_entry_select_on_focus, true, 0);
  				}
  				break;
-@@ -1308,29 +1308,29 @@ int /*long*/ gtk_event_after (int /*long
+@@ -1353,29 +1353,29 @@
  	return super.gtk_event_after (widget, gdkEvent);
  }
  
@@ -46636,7 +47325,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  			PangoRectangle rect = new PangoRectangle ();
  			OS.pango_layout_line_get_extents (line, null, rect);
  			rect.y = OS.PANGO_PIXELS (rect.y);
-@@ -1353,8 +1353,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -1398,8 +1398,8 @@
  				case SWT.CENTER: x = (width - rect.width) / 2; break;
  				case SWT.RIGHT: x = rtl ? innerBorder.left : width - rect.width; break;
  			}
@@ -46647,7 +47336,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  			GdkColor textColor = new GdkColor ();
  			OS.gtk_style_get_text (style, OS.GTK_STATE_INSENSITIVE, textColor);
  			GdkColor baseColor = new GdkColor ();
-@@ -1367,13 +1367,13 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -1412,13 +1412,13 @@
  	return result;
  }
  
@@ -46664,7 +47353,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	/*
  	* Feature in GTK.  GtkEntry widgets select their text on focus in,
  	* clearing the previous selection.  This behavior is controlled by
-@@ -1382,13 +1382,13 @@ int /*long*/ gtk_grab_focus (int /*long*
+@@ -1427,13 +1427,13 @@
  	* the entry has done focus in processing.
  	*/
  	if ((style & SWT.SINGLE) != 0 && display.entrySelectOnFocus) {
@@ -46680,7 +47369,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	Event e = new Event();
  	if (icon_pos == OS.GTK_ENTRY_ICON_PRIMARY) {
  		e.detail = SWT.ICON_SEARCH;
-@@ -1400,7 +1400,7 @@ int /*long*/ gtk_icon_release (int /*lon
+@@ -1445,7 +1445,7 @@
  	return 0;
  }
  
@@ -46689,16 +47378,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
  	if (new_text == 0 || new_text_length == 0) return 0;
  	byte [] buffer = new byte [(int)/*64*/new_text_length];
-@@ -1409,7 +1409,7 @@ int /*long*/ gtk_insert_text (int /*long
+@@ -1453,7 +1453,7 @@
+ 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
  	int [] pos = new int [1];
  	OS.memmove (pos, position, 4);
- 	if (pos [0] == -1) {
--		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-+		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
- 		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
- 	}
+-	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++	long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
  	/* Use the selection when the text was deleted */
-@@ -1448,15 +1448,15 @@ int /*long*/ gtk_insert_text (int /*long
+ 	int start = pos [0], end = pos [0];
+@@ -1493,15 +1493,15 @@
  	return 0;
  }
  
@@ -46717,7 +47406,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
  		OS.gtk_widget_set_direction (menu, OS.GTK_TEXT_DIR_RTL);
  		OS.gtk_container_forall (menu, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);
-@@ -1464,7 +1464,7 @@ int /*long*/ gtk_populate_popup (int /*l
+@@ -1509,7 +1509,7 @@
  	return 0;
  }
  
@@ -46726,7 +47415,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
  	byte [] position = new byte [ITER_SIZEOF];
  	OS.memmove (position, iter, position.length);
-@@ -1511,7 +1511,7 @@ void hookEvents () {
+@@ -1522,7 +1522,7 @@
+ 	}
+ 	byte [] zero = new byte [ITER_SIZEOF];
+ 	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+-	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
++	long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
+ 	start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start);
+ 	end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end);
+ 	OS.g_free(ptr);
+@@ -1562,7 +1562,7 @@
  		OS.g_signal_connect_closure (bufferHandle, OS.delete_range, display.closures [DELETE_RANGE], false);
  		OS.g_signal_connect_closure (handle, OS.populate_popup, display.closures [POPULATE_POPUP], false);
  	}
@@ -46735,7 +47433,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (imContext != 0) {
  		OS.g_signal_connect_closure (imContext, OS.commit, display.closures [COMMIT], false);
  		int id = OS.g_signal_lookup (OS.commit, OS.gtk_im_context_get_type ());
-@@ -1520,7 +1520,7 @@ void hookEvents () {
+@@ -1571,7 +1571,7 @@
  	}
  }
  
@@ -46744,7 +47442,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if ((style & SWT.SINGLE) != 0) {
  		return OS.gtk_editable_get_editable (handle) ? OS.GTK_ENTRY_IM_CONTEXT (handle) : 0;
  	} 
-@@ -1561,15 +1561,15 @@ public void insert (String string) {
+@@ -1612,15 +1612,15 @@
  		}
  		OS.gtk_text_buffer_insert (bufferHandle, start, buffer, buffer.length);
  		OS.gtk_text_buffer_place_cursor (bufferHandle, start);
@@ -46764,7 +47462,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		if (children != 0) {
  			/*
  			* When search or cancel icons are added to Text, those
-@@ -1605,7 +1605,7 @@ public void paste () {
+@@ -1656,7 +1656,7 @@
  	if ((style & SWT.SINGLE) != 0) {
  		OS.gtk_editable_paste_clipboard (handle);
  	} else {
@@ -46773,7 +47471,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_paste_clipboard (bufferHandle, clipboard, null, OS.gtk_text_view_get_editable (handle));
  	}
  }
-@@ -1613,7 +1613,7 @@ public void paste () {
+@@ -1664,7 +1664,7 @@
  void register () {
  	super.register ();
  	if (bufferHandle != 0) display.addWidget (bufferHandle, this);
@@ -46782,7 +47480,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (imContext != 0) display.addWidget (imContext, this);
  }
  
-@@ -1628,7 +1628,7 @@ void releaseWidget () {
+@@ -1679,7 +1679,7 @@
  		* it around until ownership of the clipboard is lost.
  		*/
  		if ((style & SWT.MULTI) != 0) {
@@ -46791,7 +47489,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  			OS.gtk_text_buffer_paste_clipboard (bufferHandle, clipboard, null, OS.gtk_text_view_get_editable (handle));
  		}
  	}
-@@ -1725,8 +1725,8 @@ public void selectAll () {
+@@ -1776,8 +1776,8 @@
  		byte [] end =  new byte [ITER_SIZEOF];
  		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, start, 0);
  		OS.gtk_text_buffer_get_end_iter (bufferHandle, end);
@@ -46802,7 +47500,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_move_mark (bufferHandle, selectionMark, start);
  		OS.gtk_text_buffer_move_mark (bufferHandle, insertMark, end);
  	}
-@@ -1737,8 +1737,8 @@ void setBackgroundColor (GdkColor color)
+@@ -1788,8 +1788,8 @@
  	OS.gtk_widget_modify_base (handle, 0, color);
  }
  
@@ -46813,7 +47511,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (cursor == 0) defaultCursor = OS.gdk_cursor_new (OS.GDK_XTERM);
  	super.setCursor (cursor != 0 ? cursor : defaultCursor);
  	if (cursor == 0) OS.gdk_cursor_destroy (defaultCursor);
-@@ -1817,7 +1817,7 @@ public void setEditable (boolean editabl
+@@ -1868,7 +1868,7 @@
  	}
  }
  
@@ -46822,17 +47520,47 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	super.setFontDescription (font);
  	setTabStops (tabs);
  }
-@@ -1900,7 +1900,7 @@ public void setSelection (int start) {
- 		byte [] position =  new byte [ITER_SIZEOF];
- 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, position, start);
- 		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
+@@ -1946,19 +1946,19 @@
+ public void setSelection (int start) {
+ 	checkWidget ();
+ 	if ((style & SWT.SINGLE) != 0) {
+-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+ 		OS.gtk_editable_set_position (handle, start);
+ 	} else {
+ 		byte [] startIter =  new byte [ITER_SIZEOF];
+ 		byte [] endIter =  new byte [ITER_SIZEOF];
+ 		OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+-		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
++		long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+ 		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+ 		OS.g_free (ptr);
+ 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
+ 		OS.gtk_text_buffer_place_cursor (bufferHandle, startIter);
 -		int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
 +		long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
  		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
  	}
  }
-@@ -1940,8 +1940,8 @@ public void setSelection (int start, int
+@@ -1991,7 +1991,7 @@
+ public void setSelection (int start, int end) {
+ 	checkWidget ();
+ 	if ((style & SWT.SINGLE) != 0) {
+-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
++		long /*int*/ ptr = OS.gtk_entry_get_text (handle);
+ 		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+ 		end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, end);
+ 		OS.gtk_editable_set_position (handle, start);
+@@ -2000,14 +2000,14 @@
+ 		byte [] startIter =  new byte [ITER_SIZEOF];
  		byte [] endIter =  new byte [ITER_SIZEOF];
+ 		OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+-		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
++		long /*int*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+ 		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+ 		end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, end);
+ 		OS.g_free (ptr);
  		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
  		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, endIter, end);
 -		int /*long*/ insertMark = OS.gtk_text_buffer_get_insert (bufferHandle);
@@ -46842,7 +47570,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_buffer_move_mark (bufferHandle, selectionMark, startIter);
  		OS.gtk_text_buffer_move_mark (bufferHandle, insertMark, endIter);
  	}
-@@ -2007,7 +2007,7 @@ public void setTabs (int tabs) {
+@@ -2073,7 +2073,7 @@
  void setTabStops (int tabs) {
  	if ((style & SWT.SINGLE) != 0) return;
  	int tabWidth = getTabWidth (tabs);
@@ -46851,7 +47579,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	OS.pango_tab_array_set_tab (tabArray, 0, OS.PANGO_TAB_LEFT, tabWidth);
  	OS.gtk_text_view_set_tabs (handle, tabArray);
  	OS.pango_tab_array_free (tabArray);
-@@ -2061,7 +2061,7 @@ public void setText (String string) {
+@@ -2169,7 +2169,7 @@
  		OS.g_signal_handlers_unblock_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, TEXT_BUFFER_INSERT_TEXT);
  		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, position, 0);
  		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
@@ -46860,7 +47588,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
  	}
  	sendEvent (SWT.Modify);
-@@ -2133,7 +2133,7 @@ public void setTopIndex (int index) {
+@@ -2246,7 +2246,7 @@
  public void showSelection () {
  	checkWidget ();
  	if ((style & SWT.SINGLE) != 0) return;
@@ -46869,7 +47597,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
  	mark = OS.gtk_text_buffer_get_insert (bufferHandle);
  	OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
-@@ -2144,9 +2144,9 @@ boolean translateTraversal (GdkEventKey
+@@ -2257,9 +2257,9 @@
  	switch (key) {
  		case OS.GDK_KP_Enter:
  		case OS.GDK_Return: {
@@ -46881,7 +47609,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  				OS.gtk_im_context_get_preedit_string (imContext, preeditString, null, null);
  				if (preeditString [0] != 0) {
  					int length = OS.strlen (preeditString [0]);
-@@ -2180,7 +2180,7 @@ String verifyText (String string, int st
+@@ -2293,7 +2293,7 @@
  	event.text = string;
  	event.start = start;
  	event.end = end;
@@ -46890,10 +47618,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Text.java swt-gtk-3.6.2/o
  	if (eventPtr != 0) {
  		GdkEventKey gdkEvent = new GdkEventKey ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolBar.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolBar.java	2011-03-21 11:34:23.915725579 +0000
-@@ -188,11 +188,11 @@ Widget [] computeTabList () {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.7//org/eclipse/swt/widgets/ToolBar.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolBar.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ToolBar.java	2011-06-13 20:53:32.000000000 +0000
+@@ -188,11 +188,11 @@
  	return result;
  }
  
@@ -46907,7 +47635,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  	return handle;
  }
  
-@@ -210,7 +210,7 @@ void fixChildren (Shell newShell, Shell
+@@ -210,7 +210,7 @@
  	}
  }
  
@@ -46916,7 +47644,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  	if (lastFocus != null && lastFocus.setFocus ()) return true;
  	ToolItem [] items = getItems ();
  	for (int i = 0; i < items.length; i++) {
-@@ -279,7 +279,7 @@ public ToolItem getItem (Point point) {
+@@ -279,7 +279,7 @@
   */
  public int getItemCount () {
  	checkWidget();
@@ -46925,7 +47653,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  	if (list == 0) return 0;
  	int itemCount = OS.g_list_length (list);
  	OS.g_list_free (list);
-@@ -308,13 +308,13 @@ public ToolItem [] getItems () {
+@@ -308,13 +308,13 @@
  }
  
  ToolItem [] _getItems () {
@@ -46941,7 +47669,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  		Widget widget = display.getWidget (data);
  		if (widget != null) items [index++] = (ToolItem) widget;
  	}
-@@ -364,9 +364,9 @@ ToolItem [] _getTabItemList () {
+@@ -364,9 +364,9 @@
  	return tabItemList;
  }
  
@@ -46953,7 +47681,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  	if (result != 0) return result;
  	ToolItem [] items = getItems ();
  	int length = items.length;
-@@ -387,7 +387,7 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -387,7 +387,7 @@
  				if ((item.style & SWT.DROP_DOWN) != 0) {
  					Event event = new Event ();
  					event.detail = SWT.ARROW;
@@ -46962,7 +47690,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  					event.x = OS.GTK_WIDGET_X (topHandle);
  					event.y = OS.GTK_WIDGET_Y (topHandle) + OS.GTK_WIDGET_HEIGHT (topHandle);
  					if ((style & SWT.MIRRORED) != 0) event.x = getClientWidth() - OS.GTK_WIDGET_WIDTH(topHandle) - event.x;
-@@ -449,7 +449,7 @@ public int indexOf (ToolItem item) {
+@@ -449,7 +449,7 @@
  boolean mnemonicHit (char key) {
  	ToolItem [] items = getItems ();
  	for (int i=0; i<items.length; i++) {
@@ -46971,7 +47699,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  		if (labelHandle != 0 && mnemonicHit (labelHandle, key)) return true;
  	}
  	return false;
-@@ -458,7 +458,7 @@ boolean mnemonicHit (char key) {
+@@ -458,7 +458,7 @@
  boolean mnemonicMatch (char key) {
  	ToolItem [] items = getItems ();
  	for (int i=0; i<items.length; i++) {
@@ -46980,7 +47708,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  		if (labelHandle != 0 && mnemonicMatch (labelHandle, key)) return true;
  	}
  	return false;
-@@ -515,7 +515,7 @@ int setBounds (int x, int y, int width,
+@@ -515,7 +515,7 @@
  	return result;
  }
  
@@ -46989,10 +47717,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolBar.java swt-gtk-3.6.
  	super.setFontDescription (font);
  	ToolItem [] items = getItems ();
  	for (int i = 0; i < items.length; i++) {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolItem.java	2011-03-21 11:34:23.845726568 +0000
-@@ -38,7 +38,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.7//org/eclipse/swt/widgets/ToolItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ToolItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,7 +38,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class ToolItem extends Item {
@@ -47001,7 +47729,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	ToolBar parent;
  	Control control;
  	Image hotImage, disabledImage;
-@@ -252,11 +252,11 @@ void createHandle (int index) {
+@@ -252,11 +252,11 @@
  	}
  	OS.GTK_WIDGET_UNSET_FLAGS (handle, OS.GTK_CAN_FOCUS);
  //	This code is intentionally commented.
@@ -47016,7 +47744,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  //	setForegroundColor (color);
  //	setFontDescription (font);
  	if ((parent.state & FOREGROUND) != 0) {
-@@ -312,7 +312,7 @@ public void dispose () {
+@@ -312,7 +312,7 @@
  public Rectangle getBounds () {
  	checkWidget();
  	parent.forceResize ();
@@ -47025,7 +47753,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	int x, y, width, height;
  	/*
  	* Bug in GTK.  Toolbar items are only allocated their minimum size
-@@ -401,7 +401,7 @@ public Image getDisabledImage () {
+@@ -401,7 +401,7 @@
   */
  public boolean getEnabled () {
  	checkWidget();
@@ -47034,7 +47762,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	return OS.GTK_WIDGET_SENSITIVE (topHandle);
  }
  
-@@ -491,11 +491,11 @@ public String getToolTipText () {
+@@ -491,11 +491,11 @@
  public int getWidth () {
  	checkWidget();
  	parent.forceResize ();
@@ -47048,7 +47776,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
  	double x = gdkEvent.x;
-@@ -503,14 +503,14 @@ int /*long*/ gtk_button_press_event (int
+@@ -503,14 +503,14 @@
  	double y = gdkEvent.y;
  	gdkEvent.y += OS.GTK_WIDGET_Y (handle);
  	OS.memmove (event, gdkEvent, GdkEventButton.sizeof);
@@ -47065,7 +47793,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, event, GdkEventButton.sizeof);
  	double x = gdkEvent.x;
-@@ -518,17 +518,17 @@ int /*long*/ gtk_button_release_event (i
+@@ -518,17 +518,17 @@
  	double y = gdkEvent.y;
  	gdkEvent.y += OS.GTK_WIDGET_Y (handle);
  	OS.memmove (event, gdkEvent, GdkEventButton.sizeof);
@@ -47086,7 +47814,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  		if (eventPtr != 0) {
  			GdkEvent gdkEvent = new GdkEvent ();
  			OS.memmove (gdkEvent, eventPtr, GdkEvent.sizeof);
-@@ -544,7 +544,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -544,7 +544,7 @@
  					if ((((parent.style & SWT.RIGHT_TO_LEFT) == 0) && x <= (int)x_win [0])
  						|| (((parent.style & SWT.RIGHT_TO_LEFT) != 0) && (int)x_win [0] <= x + width)) {
  						event.detail = SWT.ARROW;
@@ -47095,7 +47823,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  						event.x = OS.GTK_WIDGET_X (topHandle);
  						if ((parent.style & SWT.MIRRORED) != 0) event.x = parent.getClientWidth () - OS.GTK_WIDGET_WIDTH (topHandle) - event.x;
  						event.y = OS.GTK_WIDGET_Y (topHandle) + OS.GTK_WIDGET_HEIGHT (topHandle);
-@@ -564,7 +564,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -564,7 +564,7 @@
  	return 0;
  }
  
@@ -47104,7 +47832,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	parent.gtk_enter_notify_event (widget, event);
  	drawHotImage = (parent.style & SWT.FLAT) != 0 && hotImage != null;
  	if (drawHotImage && imageHandle != 0) {
-@@ -572,7 +572,7 @@ int /*long*/ gtk_enter_notify_event (int
+@@ -572,7 +572,7 @@
  		if (imageList != null) {
  			int index = imageList.indexOf (hotImage);
  			if (index != -1) {
@@ -47113,7 +47841,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  				OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  			}
  		}
-@@ -580,7 +580,7 @@ int /*long*/ gtk_enter_notify_event (int
+@@ -580,7 +580,7 @@
  	return 0;
  }
  
@@ -47122,7 +47850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	switch (event.type) {
-@@ -596,13 +596,13 @@ int /*long*/ gtk_event_after (int /*long
+@@ -596,13 +596,13 @@
  	return 0;
  }
  
@@ -47138,7 +47866,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	parent.gtk_leave_notify_event (widget, event);
  	if (drawHotImage) {
  		drawHotImage = false;
-@@ -611,7 +611,7 @@ int /*long*/ gtk_leave_notify_event (int
+@@ -611,7 +611,7 @@
  			if (imageList != null) {
  				int index = imageList.indexOf (image);
  				if (index != -1) {
@@ -47147,7 +47875,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  					OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  				}
  			}
-@@ -620,12 +620,12 @@ int /*long*/ gtk_leave_notify_event (int
+@@ -620,12 +620,12 @@
  	return 0;
  }
  
@@ -47162,7 +47890,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	return parent.gtk_mnemonic_activate (widget, arg1);
  }
  
-@@ -662,7 +662,7 @@ void hookEvents () {
+@@ -662,7 +662,7 @@
  	OS.g_signal_connect_closure_by_id (handle, display.signalIds [BUTTON_RELEASE_EVENT], 0, display.closures [BUTTON_RELEASE_EVENT], false);
  	OS.g_signal_connect_closure_by_id (handle, display.signalIds [EVENT_AFTER], 0, display.closures[EVENT_AFTER], false);
  
@@ -47171,7 +47899,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	OS.g_signal_connect_closure_by_id (topHandle, display.signalIds [MAP], 0, display.closures [MAP], true);
  }
  
-@@ -846,7 +846,7 @@ public void setDisabledImage (Image imag
+@@ -846,7 +846,7 @@
   */
  public void setEnabled (boolean enabled) {
  	checkWidget();
@@ -47180,7 +47908,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	OS.gtk_widget_set_sensitive (topHandle, enabled);
  	if (enabled) {
  		/*
-@@ -885,7 +885,7 @@ boolean setFocus () {
+@@ -887,7 +887,7 @@
  	return result;
  }
  
@@ -47189,7 +47917,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  	OS.gtk_widget_modify_font (handle, font);
  	if (labelHandle != 0) OS.gtk_widget_modify_font (labelHandle, font);
  	if (imageHandle != 0) OS.gtk_widget_modify_font (imageHandle, font);
-@@ -944,7 +944,7 @@ public void setImage (Image image) {
+@@ -946,7 +946,7 @@
  		} else {
  			imageList.put (imageIndex, image);
  		}
@@ -47198,10 +47926,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolItem.java swt-gtk-3.6
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		OS.gtk_widget_show (imageHandle);
  	} else {
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolTip.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/ToolTip.java	2011-03-21 11:34:23.865726298 +0000
-@@ -47,7 +47,7 @@ public class ToolTip extends Widget {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.7//org/eclipse/swt/widgets/ToolTip.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/ToolTip.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/ToolTip.java	2011-06-13 20:53:32.000000000 +0000
+@@ -46,7 +46,7 @@
  	String text, message;
  	TrayItem item;
  	int x, y, timerId;
@@ -47210,7 +47938,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	int [] borderPolygon;
  	boolean spikeAbove, autohide;
  	
-@@ -135,7 +135,7 @@ public void addSelectionListener (Select
+@@ -134,7 +134,7 @@
  }
  
  void configure () {
@@ -47219,7 +47947,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	OS.gtk_widget_realize (handle);
  	int monitorNumber = OS.gdk_screen_get_monitor_at_window (screen, OS.GTK_WIDGET_WINDOW (handle));
  	GdkRectangle dest = new GdkRectangle ();
-@@ -249,9 +249,9 @@ void configure () {
+@@ -248,9 +248,9 @@
  			OS.gtk_window_move (handle, Math.min(dest.width - w, x - w + 17), y - h - TIP_HEIGHT);
  		}
  	}
@@ -47231,7 +47959,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	OS.gdk_window_shape_combine_region (window, rgn, 0, 0);
  	OS.gdk_region_destroy (rgn);
  }
-@@ -291,13 +291,13 @@ void createWidget (int index) {
+@@ -290,13 +290,13 @@
  void deregister () {
  	super.deregister ();
  	if ((style & SWT.BALLOON) == 0) {
@@ -47247,7 +47975,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	if (parent != null) parent.removeTooTip (this);
  	releaseHandle ();
  	if (topHandle != 0 && (state & HANDLE) != 0) {
-@@ -330,7 +330,7 @@ Point getLocation () {
+@@ -329,7 +329,7 @@
  	int x = this.x;
  	int y = this.y;
  	if (item != null) {
@@ -47256,7 +47984,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		if(OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
  			GdkRectangle area = new GdkRectangle ();
  			OS.gtk_status_icon_get_geometry (itemHandle, 0, area, 0);
-@@ -338,7 +338,7 @@ Point getLocation () {
+@@ -337,7 +337,7 @@
  			y = area.y + area.height / 2;
  		} else {
  			OS.gtk_widget_realize (itemHandle);
@@ -47265,7 +47993,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  			int [] px = new int [1], py = new int [1];
  			OS.gdk_window_get_origin (window, px, py);
  			x = px [0] + OS.GTK_WIDGET_WIDTH (itemHandle) / 2;
-@@ -458,20 +458,20 @@ public String getText () {
+@@ -457,20 +457,20 @@
  public boolean getVisible () {
  	checkWidget ();
  	if ((style & SWT.BALLOON) != 0) return OS.GTK_WIDGET_VISIBLE (handle);
@@ -47291,7 +48019,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	OS.gdk_draw_polygon (window, gdkGC, 0, borderPolygon, borderPolygon.length / 2);
  	int x = BORDER + PADDING;
  	int y = BORDER + PADDING;
-@@ -485,8 +485,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -484,8 +484,8 @@
  			case SWT.ICON_WARNING: buffer = Converter.wcsToMbcs (null, "gtk-dialog-warning", true); break;
  		}
  		if (buffer != null) {
@@ -47302,7 +48030,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  				OS.gtk_icon_factory_lookup_default (buffer), 
  				style,
  				OS.GTK_TEXT_DIR_NONE, 
-@@ -516,11 +516,11 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -515,11 +515,11 @@
  	return 0;
  }
  
@@ -47316,7 +48044,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  	OS.gtk_widget_realize (widget);
  	int monitorNumber = OS.gdk_screen_get_monitor_at_window (screen, OS.GTK_WIDGET_WINDOW (widget));
  	GdkRectangle dest = new GdkRectangle ();
-@@ -539,7 +539,7 @@ void hookEvents () {
+@@ -538,7 +538,7 @@
  		OS.gtk_widget_add_events (handle, OS.GDK_BUTTON_PRESS_MASK);
  		OS.g_signal_connect_closure (handle, OS.button_press_event, display.closures [BUTTON_PRESS_EVENT], false);
  	} else {
@@ -47325,7 +48053,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		if (tipWindow != 0) {
  			OS.g_signal_connect_closure (tipWindow, OS.size_allocate, display.closures [SIZE_ALLOCATE], false);
  			OS.gtk_widget_add_events (tipWindow, OS.GDK_BUTTON_PRESS_MASK);
-@@ -570,7 +570,7 @@ public boolean isVisible () {
+@@ -569,7 +569,7 @@
  void register () {
  	super.register ();
  	if ((style & SWT.BALLOON) == 0) {
@@ -47334,7 +48062,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		if (tipWindow != 0) display.addWidget (tipWindow, this);
  	}
  }
-@@ -657,7 +657,7 @@ public void setLocation (int x, int y) {
+@@ -656,7 +656,7 @@
  	if ((style & SWT.BALLOON) != 0) {
  		if (OS.GTK_WIDGET_VISIBLE (handle)) configure ();
  	} else {
@@ -47343,7 +48071,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		if (OS.GTK_WIDGET_VISIBLE (tipWindow)) {
  			OS.gtk_window_move (tipWindow, x, y);
  		}
-@@ -749,13 +749,13 @@ public void setText (String string) {
+@@ -748,13 +748,13 @@
  		if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
  			OS.pango_layout_set_auto_dir (layoutText, false);
  		}
@@ -47359,7 +48087,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		OS.pango_attr_list_insert (attrList, boldAttr);
  		OS.pango_layout_set_attributes (layoutText, attrList);
  		OS.pango_attr_list_unref (attrList);
-@@ -789,13 +789,13 @@ public void setVisible (boolean visible)
+@@ -788,13 +788,13 @@
  			configure ();
  			OS.gtk_widget_show (handle);
  		} else {
@@ -47375,7 +48103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  			OS.GTK_TOOLTIPS_SET_ACTIVE (handle, data);
  			OS.gtk_tooltips_set_tip (handle, vboxHandle, buffer, null);
  		}		
-@@ -804,17 +804,17 @@ public void setVisible (boolean visible)
+@@ -803,17 +803,17 @@
  		if ((style & SWT.BALLOON) != 0) {
  			OS.gtk_widget_hide (handle);
  		} else {
@@ -47396,10 +48124,31 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/ToolTip.java swt-gtk-3.6.
  		OS.gtk_widget_hide (tipWindow);
  	}
  	return 0;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Tracker.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Tracker.java	2011-03-21 11:34:23.865726298 +0000
-@@ -42,7 +42,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TouchSource.java swt-gtk-3.7//org/eclipse/swt/widgets/TouchSource.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TouchSource.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TouchSource.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,7 +38,7 @@
+  * @since 3.7
+  */
+ public final class TouchSource {
+-	int /*long*/ handle;
++	long /*int*/ handle;
+ 	boolean direct;	
+ 	Rectangle bounds;
+ 
+@@ -49,7 +49,7 @@
+  * @param height height of the source in pixels.
+  * @param width width of the source in pixels.
+  */
+-TouchSource (int /*long*/ handle, boolean direct, Rectangle bounds) {
++TouchSource (long /*int*/ handle, boolean direct, Rectangle bounds) {
+ 	this.handle = handle;
+ 	this.direct = direct;
+ 	this.bounds = bounds;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.7//org/eclipse/swt/widgets/Tracker.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Tracker.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Tracker.java	2011-06-13 20:53:32.000000000 +0000
+@@ -42,7 +42,7 @@
  public class Tracker extends Widget {
  	Composite parent;
  	Cursor cursor;
@@ -47408,7 +48157,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  	boolean tracking, cancelled, grabbed, stippled;
  	Rectangle [] rectangles = new Rectangle [0], proportions = rectangles;
  	Rectangle bounds;
-@@ -306,14 +306,14 @@ Rectangle [] computeProportions (Rectang
+@@ -306,14 +306,14 @@
  }
  
  void drawRectangles (Rectangle [] rects) {
@@ -47426,7 +48175,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  	GdkColor color = new GdkColor ();
  	OS.gdk_color_white (colormap, color);
  	OS.gdk_gc_set_foreground (gc, color);
-@@ -366,17 +366,17 @@ public boolean getStippled () {
+@@ -366,17 +366,17 @@
  }
  
  boolean grab () {
@@ -47448,7 +48197,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  	if (result != 0) return result;
  	GdkEventKey keyEvent = new GdkEventKey ();
  	OS.memmove (keyEvent, eventPtr, GdkEventKey.sizeof);
-@@ -510,8 +510,8 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -510,8 +510,8 @@
  	return result;
  }
  
@@ -47459,7 +48208,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  	if (cursor != lastCursor) {
  		ungrab ();
  		grabbed = grab ();
-@@ -520,7 +520,7 @@ int /*long*/ gtk_motion_notify_event (in
+@@ -520,7 +520,7 @@
  	return gtk_mouse (OS.GDK_MOTION_NOTIFY, widget, eventPtr);
  }
  
@@ -47468,7 +48217,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  	int [] newX = new int [1], newY = new int [1];
  	OS.gdk_window_get_pointer (window, newX, newY, null);
  	if (oldX != newX [0] || oldY != newY [0]) {
-@@ -710,7 +710,7 @@ public boolean open () {
+@@ -710,7 +710,7 @@
  	GdkEvent gdkEvent = new GdkEvent();
  	while (tracking) {
  		if (parent != null && parent.isDisposed ()) break;
@@ -47477,7 +48226,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  		while (true) {
  			eventPtr = OS.gdk_event_get ();
  			if (eventPtr != 0) {
-@@ -720,7 +720,7 @@ public boolean open () {
+@@ -720,7 +720,7 @@
  			}
  		}
  		OS.memmove (gdkEvent, eventPtr, GdkEvent.sizeof);
@@ -47486,10 +48235,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tracker.java swt-gtk-3.6.
  		switch (gdkEvent.type) {
  			case OS.GDK_MOTION_NOTIFY: gtk_motion_notify_event (widget, eventPtr); break;
  			case OS.GDK_BUTTON_RELEASE: gtk_button_release_event (widget, eventPtr); break;
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TrayItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TrayItem.java	2011-03-21 11:34:23.835726712 +0000
-@@ -40,8 +40,8 @@ public class TrayItem extends Item {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.7//org/eclipse/swt/widgets/TrayItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TrayItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TrayItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -40,8 +40,8 @@
  	Tray parent;
  	ToolTip toolTip;
  	String toolTipText;
@@ -47500,7 +48249,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  	ImageList imageList;
  
  /**
-@@ -164,20 +164,20 @@ void createHandle (int index) {
+@@ -164,20 +164,20 @@
  		OS.gtk_container_add (handle, imageHandle);
  		OS.gtk_widget_show (handle);
  		OS.gtk_widget_show (imageHandle);
@@ -47529,7 +48278,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  		XClientMessageEvent event = new XClientMessageEvent ();
  		event.type = OS.ClientMessage;
  		event.window = trayWindow;
-@@ -186,7 +186,7 @@ void createHandle (int index) {
+@@ -186,7 +186,7 @@
  		event.data [0] = OS.GDK_CURRENT_TIME;
  		event.data [1] = OS.SYSTEM_TRAY_REQUEST_DOCK;
  		event.data [2] = id;
@@ -47538,7 +48287,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  		OS.memmove (clientEvent, event, XClientMessageEvent.sizeof);
  		OS.XSendEvent (xDisplay, trayWindow, false, OS.NoEventMask, clientEvent);
  		OS.g_free (clientEvent);
-@@ -254,7 +254,7 @@ public String getToolTipText () {
+@@ -254,7 +254,7 @@
  	return toolTipText;
  }
  
@@ -47547,7 +48296,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  	sendSelectionEvent (SWT.Selection);
  	/*
  	* Feature in GTK. GTK will generate a single-click event before sending 
-@@ -262,10 +262,10 @@ int /*long*/ gtk_activate (int /*long*/
+@@ -262,10 +262,10 @@
  	* the single-click as the current event and for the double-click in the
  	* event queue.
  	*/
@@ -47560,7 +48309,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  		int currEventType = 0;
  		if (currEvent != 0) {
  			currEventType = OS.GDK_EVENT_TYPE (currEvent);
-@@ -279,7 +279,7 @@ int /*long*/ gtk_activate (int /*long*/
+@@ -279,7 +279,7 @@
  	return 0;
  }
  
@@ -47569,7 +48318,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  	GdkEventButton gdkEvent = new GdkEventButton ();
  	OS.memmove (gdkEvent, eventPtr, GdkEventButton.sizeof);
  	if (gdkEvent.type == OS.GDK_3BUTTON_PRESS) return 0;
-@@ -295,13 +295,13 @@ int /*long*/ gtk_button_press_event (int
+@@ -295,13 +295,13 @@
  	return 0;
  }
  
@@ -47585,7 +48334,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  			if (gdkImagePtr == 0) SWT.error(SWT.ERROR_NO_HANDLES);
  			GdkImage gdkImage = new GdkImage();
  			OS.memmove (gdkImage, gdkImagePtr);
-@@ -320,7 +320,7 @@ int /*long*/ gtk_size_allocate (int /*lo
+@@ -320,7 +320,7 @@
  				}
  			}
  			OS.gtk_widget_realize (handle);
@@ -47594,16 +48343,16 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  			OS.gdk_window_shape_combine_region (window, region.handle, 0, 0);
  			region.dispose ();
  		}
-@@ -328,7 +328,7 @@ int /*long*/ gtk_size_allocate (int /*lo
+@@ -328,7 +328,7 @@
  	return 0;
  }
  
 -int /*long*/ gtk_status_icon_popup_menu (int /*long*/ widget, int /*long*/ button, int /*long*/ activate_time) {
 +long /*int*/ gtk_status_icon_popup_menu (long /*int*/ widget, long /*int*/ button, long /*int*/ activate_time) {
- 	sendEvent (SWT.MenuDetect);
- 	return 0;
- }
-@@ -468,7 +468,7 @@ public void setImage (Image image) {
+ 	/*
+ 	* GTK provides a MenuPositionFunc for GtkStatusIcon in order
+ 	* to set the popup-menu aligned to the tray.
+@@ -476,7 +476,7 @@
  		} else {
  			imageList.put (imageIndex, image);
  		}
@@ -47612,10 +48361,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TrayItem.java swt-gtk-3.6
  		if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
  			OS.gtk_status_icon_set_from_pixbuf (handle, pixbuf);
  			OS.gtk_status_icon_set_visible (handle, true);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TreeColumn.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TreeColumn.java	2011-03-21 11:34:23.915725579 +0000
-@@ -38,7 +38,7 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3.7//org/eclipse/swt/widgets/TreeColumn.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TreeColumn.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TreeColumn.java	2011-06-13 20:53:32.000000000 +0000
+@@ -38,7 +38,7 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class TreeColumn extends Item {
@@ -47624,7 +48373,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	Tree parent;
  	int modelIndex, lastButton, lastTime, lastX, lastWidth;
  	boolean customDraw, useFixedWidth;
-@@ -326,7 +326,7 @@ public int getWidth () {
+@@ -326,7 +326,7 @@
  	return OS.gtk_tree_view_column_get_width (handle);
  }
  
@@ -47633,7 +48382,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	/*
  	* There is no API to get a double click on a table column.  Normally, when
  	* the mouse is double clicked, this is indicated by GDK_2BUTTON_PRESS
-@@ -336,7 +336,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -336,7 +336,7 @@
  	*/
  	boolean doubleClick = false;
  	boolean postEvent = true;
@@ -47642,7 +48391,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	if (eventPtr != 0) {
  		GdkEventButton gdkEvent = new GdkEventButton ();
  		OS.memmove (gdkEvent, eventPtr, GdkEventButton.sizeof);
-@@ -368,7 +368,7 @@ int /*long*/ gtk_clicked (int /*long*/ w
+@@ -368,7 +368,7 @@
  	return 0;
  }
  
@@ -47651,7 +48400,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	GdkEvent event = new GdkEvent ();
  	OS.memmove (event, gdkEvent, GdkEvent.sizeof);
  	switch (event.type) {
-@@ -384,11 +384,11 @@ int /*long*/ gtk_event_after (int /*long
+@@ -384,11 +384,11 @@
  	return 0;
  }
  
@@ -47665,7 +48414,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	useFixedWidth = false;
  	int x = OS.GTK_WIDGET_X (widget);
  	int width = OS.GTK_WIDGET_WIDTH (widget);
-@@ -435,7 +435,7 @@ public void pack () {
+@@ -435,7 +435,7 @@
  	if ((parent.style & SWT.VIRTUAL) != 0) {
  		//NOT DONE
  	} else {
@@ -47674,7 +48423,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  		if (OS.gtk_tree_model_get_iter_first (parent.modelHandle, iter)) {
  			do {
  				width = Math.max (width, parent.calculateWidth (handle, iter, true));
-@@ -542,7 +542,7 @@ public void setAlignment (int alignment)
+@@ -542,7 +542,7 @@
  	parent.createRenderers (handle, modelIndex, index == 0, style);
  }
  
@@ -47683,7 +48432,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  	OS.gtk_widget_modify_font (labelHandle, font);
  	OS.gtk_widget_modify_font (imageHandle, font);
  }
-@@ -557,7 +557,7 @@ public void setImage (Image image) {
+@@ -557,7 +557,7 @@
  		}
  		int imageIndex = headerImageList.indexOf (image);
  		if (imageIndex == -1) imageIndex = headerImageList.add (image);
@@ -47692,7 +48441,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  		OS.gtk_image_set_from_pixbuf (imageHandle, pixbuf);
  		OS.gtk_widget_show (imageHandle);
  	} else {
-@@ -700,14 +700,14 @@ public void setWidth (int width) {
+@@ -701,14 +701,14 @@
  	 */
  	if (width != 0) {
  		if (buttonHandle != 0) {
@@ -47712,10 +48461,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeColumn.java swt-gtk-3
  						OS.gdk_window_get_user_data (child, userData);
  						if (userData[0] == buttonHandle) {
  							OS.gdk_window_lower (child);
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6.2/org/eclipse/swt/widgets/TreeItem.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/TreeItem.java	2011-03-21 11:34:23.875726151 +0000
-@@ -181,7 +181,7 @@ public TreeItem (TreeItem parentItem, in
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.7//org/eclipse/swt/widgets/TreeItem.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/TreeItem.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/TreeItem.java	2011-06-13 20:53:32.000000000 +0000
+@@ -181,7 +181,7 @@
  	this (checkNull (parentItem).parent, parentItem.handle, style, checkIndex (index), true);
  }
  
@@ -47724,7 +48473,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	super (parent, style);
  	this.parent = parent;
  	if (create) {
-@@ -212,7 +212,7 @@ protected void checkSubclass () {
+@@ -212,7 +212,7 @@
  }
  
  Color _getBackground () {
@@ -47733,7 +48482,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Tree.BACKGROUND_COLUMN, ptr, -1);
  	if (ptr [0] == 0) return parent.getBackground ();
  	GdkColor gdkColor = new GdkColor ();
-@@ -223,7 +223,7 @@ Color _getBackground () {
+@@ -223,7 +223,7 @@
  Color _getBackground (int index) {
  	int count = Math.max (1, parent.columnCount);
  	if (0 > index || index > count - 1) return _getBackground ();
@@ -47742,7 +48491,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Tree.CELL_BACKGROUND, ptr, -1);
  	if (ptr [0] == 0) return _getBackground ();
-@@ -233,13 +233,13 @@ Color _getBackground (int index) {
+@@ -233,13 +233,13 @@
  }
  
  boolean _getChecked () {
@@ -47758,7 +48507,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Tree.FOREGROUND_COLUMN, ptr, -1);
  	if (ptr [0] == 0) return parent.getForeground ();
  	GdkColor gdkColor = new GdkColor ();
-@@ -250,7 +250,7 @@ Color _getForeground () {
+@@ -250,7 +250,7 @@
  Color _getForeground (int index) {
  	int count = Math.max (1, parent.columnCount);
  	if (0 > index || index > count - 1) return _getForeground ();
@@ -47767,7 +48516,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int modelIndex =  parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Tree.CELL_FOREGROUND, ptr, -1);
  	if (ptr [0] == 0) return _getForeground ();
-@@ -262,7 +262,7 @@ Color _getForeground (int index) {
+@@ -262,7 +262,7 @@
  Image _getImage (int index) {
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return null;
@@ -47776,7 +48525,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Tree.CELL_PIXBUF, ptr, -1);
  	if (ptr [0] == 0) return null;
-@@ -275,7 +275,7 @@ Image _getImage (int index) {
+@@ -275,7 +275,7 @@
  String _getText (int index) {
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return "";
@@ -47785,7 +48534,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
  	OS.gtk_tree_model_get (parent.modelHandle, handle, modelIndex + Tree.CELL_TEXT, ptr, -1);
  	if (ptr [0] == 0) return ""; //$NON-NLS-1$
-@@ -423,15 +423,15 @@ public Rectangle getBounds (int index) {
+@@ -423,15 +423,15 @@
  	// TODO fully test on early and later versions of GTK
  	checkWidget();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -47804,7 +48553,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_widget_realize (parentHandle);
  	GdkRectangle rect = new GdkRectangle ();
  	OS.gtk_tree_view_get_cell_area (parentHandle, path, column, rect);
-@@ -494,14 +494,14 @@ public Rectangle getBounds () {
+@@ -494,14 +494,14 @@
  	// shifted a bit too far right on later versions of GTK - however, old Tree also had this problem
  	checkWidget ();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -47824,7 +48573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_widget_realize (parentHandle);
  	
  	boolean isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0;
-@@ -594,7 +594,7 @@ public boolean getChecked () {
+@@ -594,7 +594,7 @@
   */
  public boolean getExpanded () {
  	checkWidget();
@@ -47833,7 +48582,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	boolean answer = OS.gtk_tree_view_row_expanded (parent.handle, path);
  	OS.gtk_tree_path_free (path);
  	return answer;
-@@ -746,18 +746,18 @@ public Rectangle getImageBounds (int ind
+@@ -746,18 +746,18 @@
  	// TODO fully test on early and later versions of GTK
  	checkWidget ();
  	if (!parent.checkData (this)) error (SWT.ERROR_WIDGET_DISPOSED);
@@ -47856,7 +48605,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_widget_realize (parentHandle);
  	OS.gtk_tree_view_get_cell_area (parentHandle, path, column, rect);
  	if ((parent.getStyle () & SWT.MIRRORED) != 0) rect.x = parent.getClientWidth () - rect.width - rect.x;
-@@ -908,12 +908,12 @@ public Tree getParent () {
+@@ -908,12 +908,12 @@
   */
  public TreeItem getParentItem () {
  	checkWidget();
@@ -47871,7 +48620,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  		if (OS.gtk_tree_model_get_iter (parent.modelHandle, iter, path)) {
  			item = parent._getItem (iter);
  		}
-@@ -971,19 +971,19 @@ public Rectangle getTextBounds (int inde
+@@ -971,19 +971,19 @@
  	if (0 > index || index > count - 1) return new Rectangle (0, 0, 0, 0);
  	// TODO fully test on early and later versions of GTK
  	// shifted a bit too far right on later versions of GTK - however, old Tree also had this problem
@@ -47896,7 +48645,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_widget_realize (parentHandle);
  	
  	boolean isExpander = OS.gtk_tree_model_iter_n_children (parent.modelHandle, handle) > 0;
-@@ -1066,8 +1066,8 @@ public int indexOf (TreeItem item) {
+@@ -1066,8 +1066,8 @@
  	if (item.isDisposed()) error (SWT.ERROR_INVALID_ARGUMENT);
  	int index = -1;
  	boolean isParent = false;
@@ -47907,7 +48656,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int depth = OS.gtk_tree_path_get_depth (parentPath);
  	if (depth > 1 && OS.gtk_tree_path_up(parentPath)) {
  		if (OS.gtk_tree_path_compare(currentPath, parentPath) == 0) isParent = true;
-@@ -1075,9 +1075,9 @@ public int indexOf (TreeItem item) {
+@@ -1075,9 +1075,9 @@
  	OS.gtk_tree_path_free (currentPath);
  	OS.gtk_tree_path_free (parentPath);
  	if (!isParent) return index;
@@ -47919,7 +48668,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  		if (indices != 0) {	
  			int[] temp = new int[depth];
  			OS.memmove (temp, indices, 4 * temp.length);
-@@ -1089,13 +1089,13 @@ public int indexOf (TreeItem item) {
+@@ -1089,13 +1089,13 @@
  }
  
  void redraw () {
@@ -47936,7 +48685,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  		rect.x = 0;
  		int [] w = new int [1], h = new int [1];
  		OS.gdk_drawable_get_size (window, w, h);
-@@ -1136,15 +1136,15 @@ void releaseWidget () {
+@@ -1136,15 +1136,15 @@
   */
  public void removeAll () {
  	checkWidget ();
@@ -47955,7 +48704,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	int [] value = new int [1];
  	while (OS.gtk_tree_model_iter_children (modelHandle, iter, handle)) {
  		OS.gtk_tree_model_get (modelHandle, iter, Tree.ID_COLUMN, value, -1);
-@@ -1249,16 +1249,16 @@ public void setBackground (int index, Co
+@@ -1249,16 +1249,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -47976,7 +48725,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -1309,7 +1309,7 @@ public void setChecked (boolean checked)
+@@ -1309,7 +1309,7 @@
   */
  public void setExpanded (boolean expanded) {
  	checkWidget();
@@ -47985,7 +48734,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	if (expanded) {
  		OS.g_signal_handlers_block_matched (parent.handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, TEST_EXPAND_ROW);
  		OS.gtk_tree_view_expand_row (parent.handle, path, false);
-@@ -1351,7 +1351,7 @@ public void setFont (Font font){
+@@ -1351,7 +1351,7 @@
  	if (oldFont == font) return;
  	this.font = font;
  	if (oldFont != null && oldFont.equals (font)) return;
@@ -47994,7 +48743,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_tree_store_set (parent.modelHandle, handle, Tree.FONT_COLUMN, fontHandle, -1);
  	/*
  	* Bug in GTK.  When using fixed-height-mode,
-@@ -1402,7 +1402,7 @@ public void setFont (int index, Font fon
+@@ -1402,7 +1402,7 @@
  	if (oldFont != null && oldFont.equals (font)) return;
  	
  	int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
@@ -48003,7 +48752,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_tree_store_set (parent.modelHandle, handle, modelIndex + Tree.CELL_FONT, fontHandle, -1);
  	/*
  	* Bug in GTK.  When using fixed-height-mode,
-@@ -1420,16 +1420,16 @@ public void setFont (int index, Font fon
+@@ -1420,16 +1420,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -48024,7 +48773,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -1527,16 +1527,16 @@ public void setForeground (int index, Co
+@@ -1527,16 +1527,16 @@
  		boolean customDraw = (parent.columnCount == 0)  ? parent.firstCustomDraw : parent.columns [index].customDraw;
  		if (!customDraw) {
  			if ((parent.style & SWT.VIRTUAL) == 0) {
@@ -48045,7 +48794,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  				OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, display.cellDataProc, parentHandle, 0);
  				OS.gtk_tree_view_column_set_cell_data_func (column, imageRenderer, display.cellDataProc, parentHandle, 0);
  			}
-@@ -1569,7 +1569,7 @@ public void setGrayed (boolean grayed) {
+@@ -1569,7 +1569,7 @@
  	* GTK+'s "inconsistent" state does not match SWT's concept of grayed.
  	* Render checked+grayed as "inconsistent", unchecked+grayed as blank.
  	*/
@@ -48054,7 +48803,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	OS.gtk_tree_model_get (parent.modelHandle, handle, Tree.CHECKED_COLUMN, ptr, -1);
  	OS.gtk_tree_store_set (parent.modelHandle, handle, Tree.GRAYED_COLUMN, ptr [0] == 0 ? false : grayed, -1);
  	cached = true;
-@@ -1601,7 +1601,7 @@ public void setImage (int index, Image i
+@@ -1601,7 +1601,7 @@
  	}
  	int count = Math.max (1, parent.getColumnCount ());
  	if (0 > index || index > count - 1) return;
@@ -48063,7 +48812,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  	if (image != null) {
  		ImageList imageList = parent.imageList;
  		if (imageList == null) imageList = parent.imageList = new ImageList ();
-@@ -1631,10 +1631,10 @@ public void setImage (int index, Image i
+@@ -1631,10 +1631,10 @@
  	if ((parent.style & SWT.VIRTUAL) != 0 && parent.currentItem == null) {
  		if (OS.GTK_VERSION >= OS.VERSION (2, 3, 2)) {
  			if (image != null) {
@@ -48077,7 +48826,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  				OS.gtk_tree_view_column_cell_get_position (column, pixbufRenderer, null, w);
  				if (w[0] < image.getBounds().width) {
  					/*
-@@ -1642,7 +1642,7 @@ public void setImage (int index, Image i
+@@ -1642,7 +1642,7 @@
  					 * are relying on the fact that it is done as part of modifying
  					 * the style.
  					 */
@@ -48086,10 +48835,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/TreeItem.java swt-gtk-3.6
  					parent.modifyStyle (parentHandle, style);
  				}
  			} 
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Tree.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Tree.java	2011-03-21 11:34:23.855726427 +0000
-@@ -75,9 +75,9 @@ import org.eclipse.swt.events.*;
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.7//org/eclipse/swt/widgets/Tree.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Tree.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Tree.java	2011-06-13 20:53:32.000000000 +0000
+@@ -75,9 +75,9 @@
   * @noextend This class is not intended to be subclassed by clients.
   */
  public class Tree extends Composite {
@@ -48101,7 +48850,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	TreeItem[] items;
  	TreeColumn [] columns;
  	TreeColumn sortColumn;
-@@ -155,14 +155,14 @@ void _addListener (int eventType, Listen
+@@ -155,14 +155,14 @@
  	}
  }
  
@@ -48119,7 +48868,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (depth > 1) {
  		OS.gtk_tree_path_up (path);
  		parentIter = OS.g_malloc (OS.GtkTreeIter_sizeof ());
-@@ -174,8 +174,8 @@ TreeItem _getItem (int /*long*/ iter) {
+@@ -174,8 +174,8 @@
  	return items [id];
  }
  
@@ -48130,7 +48879,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_model_iter_nth_child(modelHandle, iter, parentIter, index);
  	int id = getId (iter, true);
  	OS.g_free (iter);
-@@ -183,7 +183,7 @@ TreeItem _getItem (int /*long*/ parentIt
+@@ -183,7 +183,7 @@
  	return items [id] = new TreeItem (this, parentIter, SWT.NONE, index, false);
  }
  
@@ -48139,7 +48888,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (queryModel) {
  		int[] value = new int[1];
  		OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, value, -1);
-@@ -219,7 +219,7 @@ static int checkStyle (int style) {
+@@ -219,7 +219,7 @@
  	return checkBits (style, SWT.SINGLE, SWT.MULTI, 0, 0, 0, 0);
  }
  
@@ -48148,7 +48897,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (cell == ignoreCell) return 0;
  	TreeItem item = _getItem (iter);
  	if (item != null) OS.g_object_set_qdata (cell, Display.SWT_OBJECT_INDEX2, item.handle);
-@@ -246,7 +246,7 @@ int /*long*/ cellDataProc (int /*long*/
+@@ -246,7 +246,7 @@
  		* fix is to only provide the data if the row is visible.
  		*/
  		if (OS.GTK_VERSION < OS.VERSION (2, 3, 2)) {
@@ -48157,7 +48906,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			OS.gtk_widget_realize (handle);
  			GdkRectangle visible = new GdkRectangle ();
  			OS.gtk_tree_view_get_visible_rect (handle, visible);
-@@ -268,7 +268,7 @@ int /*long*/ cellDataProc (int /*long*/
+@@ -268,7 +268,7 @@
  			setData = checkData (item);
  		}
  	}
@@ -48166,7 +48915,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (setData) {
  		if (isPixbuf) {
  			ptr [0] = 0;
-@@ -406,7 +406,7 @@ public void addTreeListener(TreeListener
+@@ -406,7 +406,7 @@
  	addListener (SWT.Collapse, typedListener);
  }
  
@@ -48175,7 +48924,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false);
  	/*
  	* Bug in GTK.  The width calculated by gtk_tree_view_column_cell_get_size()
-@@ -420,7 +420,7 @@ int calculateWidth (int /*long*/ column,
+@@ -420,7 +420,7 @@
  	
  	int width = 0;
  	int [] w = new int [1];
@@ -48184,7 +48933,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  
  	if (OS.gtk_tree_view_get_expander_column (handle) == column) {
  		/* indent */
-@@ -435,11 +435,11 @@ int calculateWidth (int /*long*/ column,
+@@ -435,11 +435,11 @@
  	}
  	OS.gtk_widget_style_get(handle, OS.focus_line_width, w, 0);
  	width += 2 * w [0];
@@ -48199,7 +48948,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		if (renderer != 0) {
  			OS.gtk_cell_renderer_get_size (renderer, handle, null, null, null, w, null);
  			width += w [0];
-@@ -452,7 +452,7 @@ int calculateWidth (int /*long*/ column,
+@@ -452,7 +452,7 @@
  		if (path == 0) path = OS.gtk_tree_model_get_path (modelHandle, iter);
  		boolean expanded = OS.gtk_tree_view_row_expanded (handle, path);
  		if (expanded) {
@@ -48208,7 +48957,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			boolean valid = OS.gtk_tree_model_iter_children (modelHandle, childIter, iter);
  			while (valid) {
  				width = Math.max (width, calculateWidth (column, childIter, true));
-@@ -498,8 +498,8 @@ public void clear(int index, boolean all
+@@ -498,8 +498,8 @@
  	clear (0, index, all);
  }
  
@@ -48219,7 +48968,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_model_iter_nth_child(modelHandle, iter, parentIter, index);
  	int[] value = new int[1];
  	OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, value, -1);
-@@ -534,10 +534,10 @@ public void clearAll (boolean all) {
+@@ -534,10 +534,10 @@
  	checkWidget ();
  	clearAll (all, 0);
  }
@@ -48232,7 +48981,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	boolean valid = OS.gtk_tree_model_iter_children (modelHandle, iter, parentIter);
  	int[] value = new int[1];
  	while (valid) {
-@@ -563,13 +563,13 @@ public Point computeSize (int wHint, int
+@@ -563,13 +563,13 @@
  	return size;
  }
  
@@ -48250,7 +48999,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (newItem == 0) error (SWT.ERROR_NO_HANDLES);	
  			OS.gtk_tree_store_append (newModel, newItem, newParent);
  			int [] index = new int [1];
-@@ -578,9 +578,9 @@ void copyModel (int /*long*/ oldModel, i
+@@ -578,9 +578,9 @@
  			if (index [0] != -1) {
  				item = items [index [0]];
  				if (item != null) {
@@ -48262,7 +49011,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  					for (int j = 0; j < FIRST_COLUMN; j++) {
  						OS.gtk_tree_model_get (oldModel, oldItem, j, ptr, -1);
  						OS.gtk_tree_store_set (newModel, newItem, j, ptr [0], -1);
-@@ -605,7 +605,7 @@ void copyModel (int /*long*/ oldModel, i
+@@ -605,7 +605,7 @@
  			}
  		} while (OS.gtk_tree_model_iter_next(oldModel, iter));
  		for (int i = 0; i < oldItems.length; i++) {
@@ -48271,7 +49020,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (oldItem != 0) {
  				OS.gtk_tree_store_remove (oldModel, oldItem);
  				OS.g_free (oldItem);
-@@ -638,17 +638,17 @@ void createColumn (TreeColumn column, in
+@@ -638,17 +638,17 @@
  			modelIndex++;
  		}
  		if (modelIndex == modelLength) {
@@ -48294,7 +49043,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (columnHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	if (index == 0 && columnCount > 0) {
  		TreeColumn checkColumn = columns [0];
-@@ -704,7 +704,7 @@ void createHandle (int index) {
+@@ -704,7 +704,7 @@
  	OS.gtk_fixed_set_has_window (fixedHandle, true);
  	scrolledHandle = OS.gtk_scrolled_window_new (0, 0);
  	if (scrolledHandle == 0) error (SWT.ERROR_NO_HANDLES);
@@ -48303,7 +49052,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	modelHandle = OS.gtk_tree_store_newv (types.length, types);
  	if (modelHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	handle = OS.gtk_tree_view_new_with_model (modelHandle);
-@@ -719,7 +719,7 @@ void createHandle (int index) {
+@@ -719,7 +719,7 @@
  	OS.gtk_container_add (scrolledHandle, handle);
  
  	int mode = (style & SWT.MULTI) != 0 ? OS.GTK_SELECTION_MULTIPLE : OS.GTK_SELECTION_BROWSE;
@@ -48312,7 +49061,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_selection_set_mode (selectionHandle, mode);
  	OS.gtk_tree_view_set_headers_visible (handle, false);	
  	int hsp = (style & SWT.H_SCROLL) != 0 ? OS.GTK_POLICY_AUTOMATIC : OS.GTK_POLICY_NEVER;
-@@ -769,11 +769,11 @@ void createItem (TreeColumn column, int
+@@ -769,11 +769,11 @@
  	} else {
  		createColumn (column, index);
  	}
@@ -48327,7 +49076,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (imageHandle == 0) error (SWT.ERROR_NO_HANDLES);
  	OS.gtk_container_add (boxHandle, imageHandle);
  	OS.gtk_container_add (boxHandle, labelHandle);
-@@ -782,7 +782,7 @@ void createItem (TreeColumn column, int
+@@ -782,7 +782,7 @@
  	column.labelHandle = labelHandle;
  	column.imageHandle = imageHandle;	
  	OS.gtk_tree_view_column_set_widget (column.handle, boxHandle);
@@ -48336,7 +49085,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	while (widget != handle) {
  		if (OS.GTK_IS_BUTTON (widget)) {
  			column.buttonHandle = widget;
-@@ -816,7 +816,7 @@ void createItem (TreeColumn column, int
+@@ -816,7 +816,7 @@
  	}
  }
  
@@ -48345,7 +49094,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int count = OS.gtk_tree_model_iter_n_children (modelHandle, parentIter);
  	if (index == -1) index = count;
  	if (!(0 <= index && index <= count)) error (SWT.ERROR_INVALID_RANGE);
-@@ -836,7 +836,7 @@ void createItem (TreeItem item, int /*lo
+@@ -836,7 +836,7 @@
  	modelChanged = true;
  }
  
@@ -48354,7 +49103,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_view_column_clear (columnHandle);
  	if ((style & SWT.CHECK) != 0 && check) {
  		OS.gtk_tree_view_column_pack_start (columnHandle, checkRenderer, false);
-@@ -859,9 +859,9 @@ void createRenderers (int /*long*/ colum
+@@ -859,9 +859,9 @@
  			OS.g_object_set_qdata (checkRenderer, Display.SWT_OBJECT_INDEX1, columnHandle);
  		}
  	}
@@ -48366,7 +49115,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (textRenderer == 0) error (SWT.ERROR_NO_HANDLES);
  	
  	if (ownerDraw) {
-@@ -971,7 +971,7 @@ public void deselect (TreeItem item) {
+@@ -971,7 +971,7 @@
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (item.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
  	boolean fixColumn = showFirstColumn ();
@@ -48375,7 +49124,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_unselect_iter (selection, item.handle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -989,7 +989,7 @@ public void deselect (TreeItem item) {
+@@ -989,7 +989,7 @@
  public void deselectAll() {
  	checkWidget();
  	boolean fixColumn = showFirstColumn ();
@@ -48384,7 +49133,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_unselect_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1003,7 +1003,7 @@ void destroyItem (TreeColumn column) {
+@@ -1003,7 +1003,7 @@
  		index++;
  	}
  	if (index == columnCount) return;
@@ -48393,7 +49142,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (columnCount == 1) {
  		firstCustomDraw = column.customDraw;
  	}
-@@ -1011,11 +1011,11 @@ void destroyItem (TreeColumn column) {
+@@ -1011,11 +1011,11 @@
  	columns [columnCount] = null;
  	OS.gtk_tree_view_remove_column (handle, columnHandle);
  	if (columnCount == 0) {
@@ -48409,7 +49158,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		OS.gtk_tree_view_set_model (handle, newModel);
  		OS.g_object_unref (oldModel);
  		modelHandle = newModel;
-@@ -1025,7 +1025,7 @@ void destroyItem (TreeColumn column) {
+@@ -1025,7 +1025,7 @@
  		for (int i=0; i<items.length; i++) {
  			TreeItem item = items [i];
  			if (item != null) {
@@ -48418,7 +49167,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				int modelIndex = column.modelIndex;
  				OS.gtk_tree_store_set (modelHandle, iter, modelIndex + CELL_PIXBUF, 0, -1);
  				OS.gtk_tree_store_set (modelHandle, iter, modelIndex + CELL_TEXT, 0, -1);
-@@ -1089,7 +1089,7 @@ void destroyItem (TreeItem item) {
+@@ -1089,7 +1089,7 @@
  	if (OS.GTK_VERSION < OS.VERSION (2, 0, 6)) {
  		int length = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
  		if (length > 0) {
@@ -48427,7 +49176,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			boolean valid = OS.gtk_tree_model_iter_children (modelHandle, iter, 0);
  			while (valid) {
  				if (item.handle == iter) {
-@@ -1101,7 +1101,7 @@ void destroyItem (TreeItem item) {
+@@ -1101,7 +1101,7 @@
  			OS.g_free (iter);
  		}
  	}
@@ -48436,8 +49185,8 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_store_remove (modelHandle, item.handle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1111,10 +1111,10 @@ void destroyItem (TreeItem item) {
- boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+@@ -1111,10 +1111,10 @@
+ boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
  	boolean selected = false;
  	if (filter) {
 -		int /*long*/ [] path = new int /*long*/ [1];
@@ -48449,7 +49198,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) selected = true;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -1127,7 +1127,7 @@ boolean dragDetect (int x, int y, boolea
+@@ -1127,7 +1127,7 @@
  	return dragDetect;
  }
  
@@ -48458,7 +49207,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	return paintWindow ();
  }
  
-@@ -1165,13 +1165,13 @@ public Rectangle getClientArea () {
+@@ -1165,13 +1165,13 @@
  	checkWidget ();
  	forceResize ();
  	OS.gtk_widget_realize (handle);
@@ -48475,7 +49224,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (clientHandle);
  	int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (clientHandle);
  	return new Rectangle (fixedX [0] - binX [0], fixedY [0] - binY [0], width, height);
-@@ -1271,13 +1271,13 @@ public int getColumnCount () {
+@@ -1271,13 +1271,13 @@
  public int [] getColumnOrder () {
  	checkWidget ();
  	if (columnCount == 0) return new int [0];
@@ -48492,7 +49241,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		if (column != 0) {
  			for (int j=0; j<columnCount; j++) {
  				if (columns [j].handle == column) {
-@@ -1292,8 +1292,8 @@ public int [] getColumnOrder () {
+@@ -1292,8 +1292,8 @@
  	return order;
  }
  
@@ -48503,7 +49252,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	// per row data
  	types [ID_COLUMN] = OS.G_TYPE_INT ();
  	types [CHECKED_COLUMN] = OS.G_TYPE_BOOLEAN (); 
-@@ -1349,11 +1349,11 @@ public TreeColumn [] getColumns () {
+@@ -1349,11 +1349,11 @@
  }
  
  TreeItem getFocusItem () {
@@ -48517,7 +49266,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.gtk_tree_model_get_iter (modelHandle, iter, path [0])) {
  		int [] index = new int [1];
  		OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
-@@ -1404,7 +1404,7 @@ public int getHeaderHeight () {
+@@ -1404,7 +1404,7 @@
  		GtkRequisition requisition = new GtkRequisition ();
  		int height = 0;
  		for (int i=0; i<columnCount; i++) {
@@ -48526,7 +49275,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (buttonHandle != 0) {
  				OS.gtk_widget_size_request (buttonHandle, requisition);
  				height = Math.max (height, requisition.height);
-@@ -1413,8 +1413,8 @@ public int getHeaderHeight () {
+@@ -1413,8 +1413,8 @@
  		return height;
  	}
  	OS.gtk_widget_realize (handle);
@@ -48537,16 +49286,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int [] binY = new int [1];
  	OS.gdk_window_get_origin (binWindow, null, binY);
  	int [] fixedY = new int [1];
-@@ -1497,13 +1497,13 @@ public TreeItem getItem (int index) {
+@@ -1497,16 +1497,16 @@
  public TreeItem getItem (Point point) {
  	checkWidget ();
  	if (point == null) error (SWT.ERROR_NULL_ARGUMENT);
 -	int /*long*/ [] path = new int /*long*/ [1];
 +	long /*int*/ [] path = new long /*int*/ [1];
  	OS.gtk_widget_realize (handle);
+ 	int x = point.x;
+ 	int y = point.y;
+ 	if ((style & SWT.MIRRORED) != 0) x = getClientWidth () - x;
 -	int /*long*/ [] columnHandle = new int /*long*/ [1];
 +	long /*int*/ [] columnHandle = new long /*int*/ [1];
- 	if (!OS.gtk_tree_view_get_path_at_pos (handle, point.x, point.y, path, columnHandle, null, null)) return null;
+ 	if (!OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, columnHandle, null, null)) return null;
  	if (path [0] == 0) return null;
  	TreeItem item = null;
 -	int /*long*/ iter = OS.g_malloc (OS.GtkTreeIter_sizeof ());
@@ -48554,7 +49306,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.gtk_tree_model_get_iter (modelHandle, iter, path [0])) {
  		boolean overExpander = false;
  		if (OS.gtk_tree_view_get_expander_column (handle) == columnHandle [0]) {
-@@ -1560,7 +1560,7 @@ public int getItemHeight () {
+@@ -1566,7 +1566,7 @@
  	checkWidget ();
  	int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, 0);
  	if (itemCount == 0) {
@@ -48563,7 +49315,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		int [] w = new int [1], h = new int [1];
  		ignoreSize = true;
  		OS.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h);
-@@ -1568,11 +1568,11 @@ public int getItemHeight () {
+@@ -1574,11 +1574,11 @@
  		return h [0];
  	} else {
  		int height = 0;
@@ -48577,7 +49329,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			OS.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false);
  			int [] w = new int [1], h = new int [1];
  			OS.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h);
-@@ -1605,7 +1605,7 @@ public TreeItem [] getItems () {
+@@ -1611,7 +1611,7 @@
  	return getItems (0);
  }
  
@@ -48586,7 +49338,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int length = OS.gtk_tree_model_iter_n_children (modelHandle, parent);
  	TreeItem[] result = new TreeItem [length];
  	if (length == 0) return result;
-@@ -1616,7 +1616,7 @@ TreeItem [] getItems (int /*long*/ paren
+@@ -1622,7 +1622,7 @@
  	} else {
  		int i = 0;
  		int[] index = new int [1];
@@ -48595,7 +49347,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		boolean valid = OS.gtk_tree_model_iter_children (modelHandle, iter, parent);
  		while (valid) {
  			OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
-@@ -1670,14 +1670,14 @@ public TreeItem getParentItem () {
+@@ -1676,14 +1676,14 @@
  	return null;
  }
  
@@ -48614,7 +49366,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		 if (OS.GTK_IS_CELL_RENDERER_PIXBUF (renderer)) {
  			pixbufRenderer = renderer;
  			break;
-@@ -1706,7 +1706,7 @@ int /*long*/ getPixbufRenderer (int /*lo
+@@ -1712,7 +1712,7 @@
   */
  public TreeItem[] getSelection () {
  	checkWidget();
@@ -48623,7 +49375,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength  = 0;
  		display.treeSelection = new int [items.length];
-@@ -1720,15 +1720,15 @@ public TreeItem[] getSelection () {
+@@ -1726,15 +1726,15 @@
  	* in versions smaller than 2.2.4 if the model is NULL.  The fix is
  	* to give a valid pointer instead.
  	*/
@@ -48643,7 +49395,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (OS.gtk_tree_model_get_iter (modelHandle, iter, data)) {
  				treeSelection [length] = _getItem (iter);
  				length++;
-@@ -1758,7 +1758,7 @@ public TreeItem[] getSelection () {
+@@ -1764,7 +1764,7 @@
   */
  public int getSelectionCount () {
  	checkWidget();
@@ -48652,7 +49404,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.GTK_VERSION < OS.VERSION (2, 2, 0)) {
  		display.treeSelectionLength = 0;
  		display.treeSelection = null;
-@@ -1810,14 +1810,14 @@ public int getSortDirection () {
+@@ -1816,14 +1816,14 @@
  	return sortDirection;
  }
  
@@ -48671,7 +49423,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		 if (OS.GTK_IS_CELL_RENDERER_TEXT (renderer)) {
  			textRenderer = renderer;
  			break;
-@@ -1844,12 +1844,12 @@ int /*long*/ getTextRenderer (int /*long
+@@ -1850,12 +1850,12 @@
   */
  public TreeItem getTopItem () {
  	checkWidget ();
@@ -48686,7 +49438,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.gtk_tree_model_get_iter (modelHandle, iter, path [0])) {
  		item = _getItem (iter);
  	}
-@@ -1858,11 +1858,11 @@ public TreeItem getTopItem () {
+@@ -1864,11 +1864,11 @@
  	return item;
  }
  
@@ -48700,7 +49452,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	/*
  	* Feature in GTK.  In a multi-select tree view, when multiple items are already
-@@ -1874,10 +1874,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -1880,10 +1880,10 @@
  	*/
  	int button = gdkEvent.button;
  	if (button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) {
@@ -48713,7 +49465,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				if (OS.gtk_tree_selection_path_is_selected (selection, path [0])) result = 1;
  				OS.gtk_tree_path_free (path [0]);
  			}
-@@ -1892,10 +1892,10 @@ int /*long*/ gtk_button_press_event (int
+@@ -1898,10 +1898,10 @@
  	* widget from automatically selecting the first item.
  	*/
  	if ((style & SWT.SINGLE) != 0 && getSelectionCount () == 0) {
@@ -48726,7 +49478,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  				OS.gtk_tree_view_set_cursor (handle, path [0], 0, false);
  				OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -1915,13 +1915,13 @@ int /*long*/ gtk_button_press_event (int
+@@ -1921,13 +1921,13 @@
  	return result;
  }
  
@@ -48743,10 +49495,19 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	TreeItem item = getFocusItem ();
  	if (item != null) {
  		Event event = new Event ();
-@@ -1931,32 +1931,32 @@ int /*long*/ gtk_changed (int /*long*/ w
+@@ -1937,7 +1937,7 @@
  	return 0;
  }
  
+-int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
++long /*int*/ gtk_event_after (long /*int*/ widget, long /*int*/ gdkEvent) {
+ 	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+ 		case OS.GDK_EXPOSE: {
+ 			/*
+@@ -1956,32 +1956,32 @@
+ 	return super.gtk_event_after (widget, gdkEvent);
+ }
+ 
 -int /*long*/ gtk_expand_collapse_cursor_row (int /*long*/ widget, int /*long*/ logical, int /*long*/ expand, int /*long*/ open_all) {
 +long /*int*/ gtk_expand_collapse_cursor_row (long /*int*/ widget, long /*int*/ logical, long /*int*/ expand, long /*int*/ open_all) {
  	// FIXME - this flag is never cleared.  It should be cleared when the expand all operation completes.
@@ -48782,7 +49543,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  					OS.gtk_tree_view_get_cell_area (handle, path, 0, rect);
  					expanded = OS.gtk_tree_view_row_expanded (handle, path); 
  					OS.gtk_tree_path_free (path);
-@@ -1973,8 +1973,8 @@ int /*long*/ gtk_expose_event (int /*lon
+@@ -1998,8 +1998,8 @@
  	return super.gtk_expose_event (widget, eventPtr);
  }
  
@@ -48793,7 +49554,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (result != 0) return result;
  	if (OS.GTK_VERSION < OS.VERSION (2, 2 ,0)) {
  		/*
-@@ -1998,14 +1998,14 @@ int /*long*/ gtk_key_press_event (int /*
+@@ -2023,14 +2023,14 @@
  	return result;
  }
  
@@ -48812,7 +49573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	/*
  	* Bug in GTK.  The context menu for the typeahead in GtkTreeViewer
  	* opens in the bottom right corner of the screen when Shift+F10
-@@ -2018,10 +2018,10 @@ int /*long*/ gtk_popup_menu (int /*long*
+@@ -2043,10 +2043,10 @@
  	return OS.GTK_VERSION < OS.VERSION (2, 6, 5) ? 1 : result;
  }
  
@@ -48825,7 +49586,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.gtk_tree_model_get_iter (modelHandle, iter, path)) {
  		int [] index = new int [1];
  		OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
-@@ -2048,7 +2048,7 @@ int gtk_row_inserted (int model, int pat
+@@ -2073,7 +2073,7 @@
  	return 0;
  }
  
@@ -48834,7 +49595,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (!searchEnabled()) {
  		OS.g_signal_stop_emission_by_name(widget, OS.start_interactive_search); 
  		return 1;
-@@ -2056,7 +2056,7 @@ int /*long*/ gtk_start_interactive_searc
+@@ -2081,7 +2081,7 @@
  	return 0;
  }
  
@@ -48843,7 +49604,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int [] index = new int [1];
  	OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
  	TreeItem item = items [index [0]];
-@@ -2094,7 +2094,7 @@ int /*long*/ gtk_test_collapse_row (int
+@@ -2119,7 +2119,7 @@
  	return 0;
  }
  
@@ -48852,7 +49613,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int [] index = new int [1];
  	OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
  	TreeItem item = items [index [0]];
-@@ -2136,11 +2136,11 @@ int /*long*/ gtk_test_expand_row (int /*
+@@ -2161,11 +2161,11 @@
  	return 0;
  }
  
@@ -48867,7 +49628,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (OS.gtk_tree_model_get_iter (modelHandle, iter, path)) {
  		item = _getItem (iter);
  	}
-@@ -2156,7 +2156,7 @@ int /*long*/ gtk_toggled (int /*long*/ r
+@@ -2181,7 +2181,7 @@
  	return 0;
  }
  
@@ -48876,7 +49637,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	/*
  	 * Bug in GTK.  For some reason, gtk_widget_size_request() fails
  	 * to include the height of the tree view items when there are
-@@ -2167,17 +2167,17 @@ void gtk_widget_size_request (int /*long
+@@ -2192,17 +2192,17 @@
  		super.gtk_widget_size_request (widget, requisition);
  		return;
  	}
@@ -48897,7 +49658,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (fixVisible) {
  		columnHandle = OS.g_list_data (columns);
  		OS.gtk_tree_view_column_set_visible (columnHandle, true);
-@@ -2190,13 +2190,13 @@ void gtk_widget_size_request (int /*long
+@@ -2215,13 +2215,13 @@
  }
  
  void hideFirstColumn () {
@@ -48913,7 +49674,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_connect_closure (selection, OS.changed, display.closures [CHANGED], false);
  	OS.g_signal_connect_closure (handle, OS.row_activated, display.closures [ROW_ACTIVATED], false);
  	OS.g_signal_connect_closure (handle, OS.test_expand_row, display.closures [TEST_EXPAND_ROW], false);
-@@ -2265,10 +2265,10 @@ public int indexOf (TreeItem item) {
+@@ -2290,10 +2290,10 @@
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (item.isDisposed()) error (SWT.ERROR_INVALID_ARGUMENT);
  	int index = -1;
@@ -48926,7 +49687,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		if (indices != 0) {	
  			int[] temp = new int[1];
  			OS.memmove (temp, indices, 4);
-@@ -2281,7 +2281,7 @@ public int indexOf (TreeItem item) {
+@@ -2306,7 +2306,7 @@
  
  boolean mnemonicHit (char key) {
  	for (int i=0; i<columnCount; i++) {
@@ -48935,7 +49696,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		if (labelHandle != 0 && mnemonicHit (labelHandle, key)) return true;
  	}
  	return false;
-@@ -2289,13 +2289,13 @@ boolean mnemonicHit (char key) {
+@@ -2314,13 +2314,13 @@
  
  boolean mnemonicMatch (char key) {
  	for (int i=0; i<columnCount; i++) {
@@ -48951,7 +49712,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_widget_realize (handle);
  	return OS.gtk_tree_view_get_bin_window (handle);
  }
-@@ -2342,9 +2342,9 @@ void releaseItem (TreeItem item, boolean
+@@ -2367,9 +2367,9 @@
  	items [index [0]] = null;
  }
  
@@ -48963,7 +49724,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	boolean valid = OS.gtk_tree_model_iter_children (modelHandle, iter, parentIter);
  	while (valid) {
  		releaseItems (iter);
-@@ -2394,14 +2394,14 @@ void releaseWidget () {
+@@ -2419,14 +2419,14 @@
  	currentItem = null;
  }
  
@@ -48981,7 +49742,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (iter == 0) error (SWT.ERROR_NO_HANDLES);
  	if (fixAccessibility ()) {
  		ignoreAccessibility = true;
-@@ -2441,7 +2441,7 @@ public void removeAll () {
+@@ -2466,7 +2466,7 @@
  		if (item != null && !item.isDisposed ()) item.release (false);
  	}
  	items = new TreeItem[4];
@@ -48990,7 +49751,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	if (fixAccessibility ()) {
  		ignoreAccessibility = true;
-@@ -2525,19 +2525,19 @@ public void removeTreeListener(TreeListe
+@@ -2550,19 +2550,19 @@
  	eventTable.unhook (SWT.Collapse, listener);
  }
  
@@ -49015,7 +49776,18 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				for (int i = 0; i < columnCount; i++) {
  					if (columns [i].handle == columnHandle) {
  						columnIndex = i;
-@@ -2576,11 +2576,11 @@ int /*long*/ rendererGetSizeProc (int /*
+@@ -2589,8 +2589,8 @@
+ 				event.gc = gc;
+ 				event.width = contentWidth [0];
+ 				event.height = contentHeight [0];
+-				int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
+-				int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
++				long /*int*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
++				long /*int*/ selection = OS.gtk_tree_view_get_selection (handle);
+ 				if (OS.gtk_tree_selection_path_is_selected (selection, path)) {
+ 					event.detail = SWT.SELECTED;
+ 				}
+@@ -2607,11 +2607,11 @@
  	return result;
  }
  
@@ -49030,7 +49802,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int columnIndex = 0;
  	if (columnCount > 0) {
  		for (int i = 0; i < columnCount; i++) {
-@@ -2594,7 +2594,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2625,7 +2625,7 @@
  		if (OS.GTK_IS_CELL_RENDERER_TOGGLE (cell) || (OS.GTK_IS_CELL_RENDERER_PIXBUF (cell) && (columnIndex != 0 || (style & SWT.CHECK) == 0))) {
  			drawFlags = (int)/*64*/flags;
  			drawState = SWT.FOREGROUND;
@@ -49039,7 +49811,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			OS.gtk_tree_model_get (modelHandle, item.handle, Tree.BACKGROUND_COLUMN, ptr, -1);
  			if (ptr [0] == 0) {
  				int modelIndex = columnCount == 0 ? Tree.FIRST_COLUMN : columns [columnIndex].modelIndex;
-@@ -2605,7 +2605,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2636,7 +2636,7 @@
  			if ((flags & OS.GTK_CELL_RENDERER_FOCUSED) != 0) drawState |= SWT.FOCUSED;			
  			
  			GdkRectangle rect = new GdkRectangle ();
@@ -49048,7 +49820,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			OS.gtk_tree_view_get_background_area (handle, path, columnHandle, rect);
  			OS.gtk_tree_path_free (path);
  			
-@@ -2619,7 +2619,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2650,7 +2650,7 @@
  			}
  
  			//send out measure before erase
@@ -49057,7 +49829,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (textRenderer != 0) OS.gtk_cell_renderer_get_size (textRenderer, handle, null, null, null, null, null);
  			
  			if (hooks (SWT.EraseItem)) {
-@@ -2656,7 +2656,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2687,7 +2687,7 @@
  				if ((drawState & SWT.SELECTED) != 0) drawFlags |= OS.GTK_CELL_RENDERER_SELECTED;
  				if ((drawState & SWT.FOCUSED) != 0) drawFlags |= OS.GTK_CELL_RENDERER_FOCUSED;
  				if ((drawState & SWT.SELECTED) != 0) {
@@ -49066,7 +49838,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  					//TODO - parity and sorted
  					byte[] detail = Converter.wcsToMbcs (null, "cell_odd", true);
  					OS.gtk_paint_flat_box (style, window, OS.GTK_STATE_SELECTED, OS.GTK_SHADOW_NONE, rect, widget, detail, rect.x, rect.y, rect.width, rect.height);
-@@ -2667,7 +2667,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2698,7 +2698,7 @@
  			}
  		}
  	}
@@ -49075,7 +49847,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if ((drawState & SWT.BACKGROUND) != 0 && (drawState & SWT.SELECTED) == 0) {
  		GC gc = new GC (this);
  		gc.setBackground (item.getBackground (columnIndex));
-@@ -2677,7 +2677,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2708,7 +2708,7 @@
  		gc.dispose ();
  	}
  	if ((drawState & SWT.FOREGROUND) != 0 || OS.GTK_IS_CELL_RENDERER_TOGGLE (cell)) {
@@ -49084,7 +49856,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		GtkCellRendererClass klass = new GtkCellRendererClass ();
  		OS.memmove (klass, g_class);
  		if (drawForeground != null && OS.GTK_IS_CELL_RENDERER_TEXT (cell)) {
-@@ -2690,7 +2690,7 @@ int /*long*/ rendererRenderProc (int /*l
+@@ -2721,7 +2721,7 @@
  			if (hooks (SWT.PaintItem)) {
  				GdkRectangle rect = new GdkRectangle ();
  				GdkRectangle clipRect = new GdkRectangle ();
@@ -49093,7 +49865,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  				OS.gtk_tree_view_get_cell_area (handle, path, columnHandle, rect);
  				OS.gtk_tree_view_get_background_area (handle, path, columnHandle, clipRect);
  				OS.gtk_tree_path_free (path);
-@@ -2754,8 +2754,8 @@ void resetCustomDraw () {
+@@ -2785,8 +2785,8 @@
  	for (int i=0; i<end; i++) {
  		boolean customDraw = columnCount != 0 ? columns [i].customDraw : firstCustomDraw;
  		if (customDraw) {
@@ -49104,7 +49876,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			OS.gtk_tree_view_column_set_cell_data_func (column, textRenderer, 0, 0, 0);
  			if (columnCount != 0) columns [i].customDraw = false;
  		}
-@@ -2816,7 +2816,7 @@ public void setInsertMark (TreeItem item
+@@ -2847,7 +2847,7 @@
  	if (item.isDisposed()) error (SWT.ERROR_INVALID_ARGUMENT);
  	if (item.parent != this) return;
  	Rectangle rect = item.getBounds();
@@ -49113,7 +49885,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_widget_realize (handle);
  	if (!OS.gtk_tree_view_get_path_at_pos(handle, rect.x, rect.y, path, null, null, null)) return;
  	if (path [0] == 0) return;
-@@ -2825,7 +2825,7 @@ public void setInsertMark (TreeItem item
+@@ -2856,7 +2856,7 @@
  	OS.gtk_tree_path_free (path [0]);
  }
  
@@ -49122,7 +49894,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, parentIter);
  	if (count == itemCount) return;
  	boolean isVirtual = (style & SWT.VIRTUAL) != 0;
-@@ -2836,7 +2836,7 @@ void setItemCount (int /*long*/ parentIt
+@@ -2867,7 +2867,7 @@
  			ignoreAccessibility = true;
  		}
  		for (int i=itemCount; i<count; i++) {
@@ -49131,7 +49903,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  			if (iter == 0) error (SWT.ERROR_NO_HANDLES);
  			OS.gtk_tree_store_append (modelHandle, iter, parentIter);
  			OS.gtk_tree_store_set (modelHandle, iter, ID_COLUMN, -1, -1);
-@@ -2895,7 +2895,7 @@ public void select (TreeItem item) {
+@@ -2926,7 +2926,7 @@
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (item.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT);
  	boolean fixColumn = showFirstColumn ();
@@ -49140,7 +49912,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_select_iter (selection, item.handle);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -2917,7 +2917,7 @@ public void selectAll () {
+@@ -2948,7 +2948,7 @@
  	checkWidget();
  	if ((style & SWT.SINGLE) != 0) return;
  	boolean fixColumn = showFirstColumn ();
@@ -49149,7 +49921,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	OS.gtk_tree_selection_select_all (selection);
  	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
-@@ -2929,7 +2929,7 @@ void setBackgroundColor (GdkColor color)
+@@ -2960,7 +2960,7 @@
  	OS.gtk_widget_modify_base (handle, 0, color);
  }
  
@@ -49158,7 +49930,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	ownerDraw = true;
  	recreateRenderers ();
  }
-@@ -2995,15 +2995,15 @@ public void setColumnOrder (int [] order
+@@ -3026,15 +3026,15 @@
  		if (seen [index]) error (SWT.ERROR_INVALID_ARGUMENT);
  		seen [index] = true;
  	}
@@ -49177,7 +49949,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	super.setFontDescription (font);
  	TreeColumn[] columns = getColumns ();
  	for (int i = 0; i < columns.length; i++) {
-@@ -3068,12 +3068,12 @@ void setParentBackground () {
+@@ -3113,12 +3113,12 @@
  	recreateRenderers ();
  }
  
@@ -49193,7 +49965,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (columnCount != 0 || currentItem == item) return;
  	/*
  	* Use GTK_TREE_VIEW_COLUMN_GROW_ONLY on GTK versions < 2.3.2
-@@ -3142,7 +3142,7 @@ public void setSelection (TreeItem [] it
+@@ -3187,7 +3187,7 @@
  	int length = items.length;
  	if (length == 0 || ((style & SWT.SINGLE) != 0 && length > 1)) return;
  	boolean fixColumn = showFirstColumn ();
@@ -49202,7 +49974,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.g_signal_handlers_block_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
  	boolean first = true;
  	for (int i = 0; i < length; i++) {
-@@ -3150,7 +3150,7 @@ public void setSelection (TreeItem [] it
+@@ -3195,7 +3195,7 @@
  		if (item == null) continue;
  		if (item.isDisposed ()) break;
  		if (item.parent != this) continue;
@@ -49211,7 +49983,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		showItem (path, false);
  		if (first) {
  			OS.gtk_tree_view_set_cursor (handle, path, 0, false);
-@@ -3243,7 +3243,7 @@ public void setTopItem (TreeItem item) {
+@@ -3288,7 +3288,7 @@
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (item.isDisposed ()) error(SWT.ERROR_INVALID_ARGUMENT);
  	if (item.parent != this) return;
@@ -49220,7 +49992,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	showItem (path, false);
  	OS.gtk_tree_view_scroll_to_cell (handle, path, 0, true, 0f, 0f);
  	if (OS.GTK_VERSION < OS.VERSION (2, 8, 0)) {
-@@ -3318,10 +3318,10 @@ boolean showFirstColumn () {
+@@ -3363,10 +3363,10 @@
  	*/
  	int columnCount = Math.max (1, this.columnCount);
  	for (int i=0; i<columnCount; i++) {
@@ -49233,7 +50005,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	OS.gtk_tree_view_column_set_visible (firstColumn, true);
  	return true;
  }
-@@ -3344,13 +3344,13 @@ public void showSelection () {
+@@ -3389,13 +3389,13 @@
  	if (items.length != 0 && items [0] != null) showItem (items [0]);
  }
  
@@ -49250,7 +50022,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  		for (int i=0; i<indices.length; i++) {
  			OS.gtk_tree_path_append_index (tempPath, indices [i]);
  			OS.gtk_tree_view_expand_row (handle, tempPath, false);
-@@ -3422,12 +3422,12 @@ public void showItem (TreeItem item) {
+@@ -3467,12 +3467,12 @@
  	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);
  	if (item.isDisposed ()) error(SWT.ERROR_INVALID_ARGUMENT);
  	if (item.parent != this) return;
@@ -49265,7 +50037,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	if (selection != null) {
  		int [] index = new int [1];
  		OS.gtk_tree_model_get (modelHandle, iter, ID_COLUMN, index, -1);
-@@ -3445,19 +3445,19 @@ void updateScrollBarValue (ScrollBar bar
+@@ -3490,19 +3490,19 @@
  	* The fix is to queue a resize event for each child to
  	* force the position to be corrected.
  	*/
@@ -49290,7 +50062,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  	switch ((int)/*64*/user_data) {
  		case EXPOSE_EVENT_INVERSE: {
  			/*
-@@ -3472,7 +3472,7 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -3517,7 +3517,7 @@
  					if (control != null) {
  						GdkEventExpose gdkEvent = new GdkEventExpose ();
  						OS.memmove (gdkEvent, arg0, GdkEventExpose.sizeof);
@@ -49299,10 +50071,10 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Tree.java swt-gtk-3.6.2/o
  						if (window == gdkEvent.window) {
  							drawBackground (control, window, gdkEvent.region, gdkEvent.area_x, gdkEvent.area_y, gdkEvent.area_width, gdkEvent.area_height);
  						}
-diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2/org/eclipse/swt/widgets/Widget.java
---- swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/org/eclipse/swt/widgets/Widget.java	2011-03-21 11:34:23.825726858 +0000
-@@ -56,7 +56,7 @@ public abstract class Widget {
+diff -ur swt-gtk-3.7.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.7//org/eclipse/swt/widgets/Widget.java
+--- swt-gtk-3.7.orig//org/eclipse/swt/widgets/Widget.java	2011-06-13 20:52:36.000000000 +0000
++++ swt-gtk-3.7//org/eclipse/swt/widgets/Widget.java	2011-06-13 20:53:32.000000000 +0000
+@@ -56,7 +56,7 @@
  	 * 
  	 * @noreference This field is not intended to be referenced by clients.
  	 */
@@ -49311,7 +50083,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	int style, state;
  	Display display;
  	EventTable eventTable;
-@@ -284,7 +284,7 @@ public void addDisposeListener (DisposeL
+@@ -284,7 +284,7 @@
  	addListener (SWT.Dispose, typedListener);
  }
  
@@ -49320,7 +50092,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -300,7 +300,7 @@ static int checkBits (int style, int int
+@@ -300,7 +300,7 @@
  	return style;
  }
  
@@ -49329,7 +50101,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -421,7 +421,7 @@ void deregister () {
+@@ -421,7 +421,7 @@
  }
  
  void destroyWidget () {
@@ -49338,7 +50110,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	releaseHandle ();
  	if (topHandle != 0 && (state & HANDLE) != 0) {
  		OS.gtk_widget_destroy (topHandle);
-@@ -620,281 +620,281 @@ public int getStyle () {
+@@ -620,281 +620,281 @@
  }
  
  
@@ -49690,7 +50462,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -902,11 +902,11 @@ boolean filters (int eventType) {
+@@ -902,11 +902,11 @@
  	return display.filters (eventType);
  }
  
@@ -49704,7 +50476,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return OS.Call (Display.oldFixedSizeAllocateProc, widget, allocationPtr);
  }
  
-@@ -1009,15 +1009,15 @@ boolean hooks (int eventType) {
+@@ -1009,15 +1009,15 @@
  	return eventTable.hooks (eventType);
  }
  
@@ -49723,7 +50495,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	if (!mnemonicMatch (mnemonicHandle, key)) return false;
  	OS.g_signal_handlers_block_matched (mnemonicHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, MNEMONIC_ACTIVATE);
  	boolean result = OS.gtk_widget_mnemonic_activate (mnemonicHandle, false);
-@@ -1025,13 +1025,13 @@ boolean mnemonicHit (int /*long*/ mnemon
+@@ -1025,13 +1025,13 @@
  	return result;
  }
  
@@ -49739,7 +50511,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	OS.gtk_widget_modify_style (handle, style);
  }
  
-@@ -1176,11 +1176,11 @@ protected void removeListener (int event
+@@ -1176,11 +1176,11 @@
  	eventTable.unhook (eventType, handler);
  }
  
@@ -49753,7 +50525,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -1311,7 +1311,7 @@ boolean sendKeyEvent (int type, GdkEvent
+@@ -1311,7 +1311,7 @@
  
  char [] sendIMKeyEvent (int type, GdkEventKey keyEvent, char [] chars) {
  	int index = 0, count = 0, state = 0;
@@ -49762,7 +50534,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	if (keyEvent == null) {
  		ptr = OS.gtk_get_current_event ();
  		if (ptr != 0) {
-@@ -1375,7 +1375,7 @@ void sendSelectionEvent (int eventType,
+@@ -1375,7 +1375,7 @@
  		return;
  	}
  	if (event == null) event = new Event ();
@@ -49771,7 +50543,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	if (ptr != 0) {
  		GdkEvent gdkEvent = new GdkEvent ();
  		OS.memmove (gdkEvent, ptr, GdkEvent.sizeof);
-@@ -1509,8 +1509,8 @@ public void setData (String key, Object
+@@ -1509,8 +1509,8 @@
  	if (key.equals(SWT.SKIN_CLASS) || key.equals(SWT.SKIN_ID)) this.reskin(SWT.ALL);
  }
  
@@ -49782,7 +50554,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_NORMAL, color);
  	OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_ACTIVE, color);
  	OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_PRELIGHT, color);
-@@ -1644,15 +1644,15 @@ boolean setTabItemFocus (boolean next) {
+@@ -1644,15 +1644,15 @@
  	return false;
  }
  
@@ -49801,7 +50573,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -1671,15 +1671,15 @@ public String toString () {
+@@ -1671,15 +1671,15 @@
  	return getName () + " {" + string + "}";
  }
  
@@ -49820,7 +50592,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	return 0;
  }
  
-@@ -1687,7 +1687,7 @@ boolean translateTraversal (int event) {
+@@ -1687,7 +1687,7 @@
  	return false;
  }
  
@@ -49829,7 +50601,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case ACTIVATE: return gtk_activate (handle);
  		case CHANGED: return gtk_changed (handle);
-@@ -1713,13 +1713,13 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -1713,13 +1713,13 @@
  	}
  }
  
@@ -49846,7 +50618,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  			if (window != paintWindow) return 0;
  			return (state & OBSCURED) != 0 ? 1 : 0;
  		}
-@@ -1762,7 +1762,7 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -1762,7 +1762,7 @@
  	}
  }
  
@@ -49855,7 +50627,7 @@ diff -Nurp swt-gtk-3.6.2.orig//org/eclipse/swt/widgets/Widget.java swt-gtk-3.6.2
  	switch ((int)/*64*/user_data) {
  		case DELETE_RANGE: return gtk_delete_range (handle, arg0, arg1);
  		case DELETE_TEXT: return gtk_delete_text (handle, arg0, arg1);
-@@ -1778,7 +1778,7 @@ int /*long*/ windowProc (int /*long*/ ha
+@@ -1778,7 +1778,7 @@
  	}
  }
  
diff --git a/debian/patches/common/02-webkit_linkage.patch b/debian/patches/common/02-webkit_linkage.patch
deleted file mode 100644
index d06c644..0000000
--- a/debian/patches/common/02-webkit_linkage.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Description: Fix linkage for WebKit (>= 1.3).
-Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=326066
-Origin: https://bugs.eclipse.org/bugs/attachment.cgi?id=179464&action=diff
-diff -Nurp swt-gtk-3.6.2.orig//make_linux.mak swt-gtk-3.6.2/make_linux.mak
---- swt-gtk-3.6.2.orig//make_linux.mak	2011-03-21 11:12:43.205883562 +0000
-+++ swt-gtk-3.6.2/make_linux.mak	2011-03-21 11:23:02.149147482 +0000
-@@ -95,7 +95,7 @@ MOZILLAEXCLUDES = -DNO__1XPCOMGlueShutdo
- XULRUNNEREXCLUDES = -DNO__1NS_1InitXPCOM2
- 
- WEBKITCFLAGS = `pkg-config --cflags gtk+-2.0` -I/usr/include/webkit-1.0 -I/usr/include/libsoup-2.4
--WEBKITLIBS = -lwebkit-1.0
-+WEBKITLIBS = `pkg-config --libs webkit-1.0`
- 
- SWT_OBJECTS = swt.o c.o c_stats.o callback.o
- CDE_OBJECTS = swt.o cde.o cde_structs.o cde_stats.o
diff --git a/debian/patches/common/04-fix-webkit-includes.patch b/debian/patches/common/04-fix-webkit-includes.patch
deleted file mode 100644
index f919318..0000000
--- a/debian/patches/common/04-fix-webkit-includes.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Fix a missing include for WebKit (>= 1.3) JNI.
-Forwarded: https://bugs.eclipse.org/bugs/show_bug.cgi?id=341250
-Author: Chris Coulson <chris.coulson at canonical.com>,
- أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
-diff -Nurp swt-gtk-3.6.2.orig//webkitgtk.h swt-gtk-3.6.2/webkitgtk.h
---- swt-gtk-3.6.2.orig//webkitgtk.h	2011-02-10 17:27:56.000000000 +0000
-+++ swt-gtk-3.6.2/webkitgtk.h	2011-03-23 10:21:39.019518695 +0000
-@@ -28,6 +28,9 @@
- #include <webkit/webkitnetworkrequest.h>
- #include <webkit/webkitsoupauthdialog.h>
- #include <webkit/webkitversion.h>
-+#if WEBKIT_MINOR_VERSION > 2
-+# include <webkit/webkitglobals.h>
-+#endif
- #include <webkit/webkitwebpolicydecision.h>
- #include <webkit/webkitwebsettings.h>
- #include <webkit/webkitwebview.h>
diff --git a/gnome.h b/gnome.h
index 4cebd6d..07f1b5a 100644
--- a/gnome.h
+++ b/gnome.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved.
+* Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
 * The contents of this file are made available under the terms
 * of the GNU Lesser General Public License (LGPL) Version 2.1 that
 * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
diff --git a/make_aix.mak b/make_aix.mak
index a951b1b..5dc0ca5 100644
--- a/make_aix.mak
+++ b/make_aix.mak
@@ -1,5 +1,5 @@
 #*******************************************************************************
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2010, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
diff --git a/make_common.mak b/make_common.mak
index 7182563..edb5f04 100644
--- a/make_common.mak
+++ b/make_common.mak
@@ -1,5 +1,5 @@
 #*******************************************************************************
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2000, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -10,5 +10,5 @@
 #*******************************************************************************
 
 maj_ver=3
-min_ver=659
-comma_ver=3,6,5,9
+min_ver=735
+comma_ver=3,7,3,5
diff --git a/make_aix.mak b/make_hpux.mak
similarity index 87%
copy from make_aix.mak
copy to make_hpux.mak
index a951b1b..b6d0f30 100644
--- a/make_aix.mak
+++ b/make_hpux.mak
@@ -1,5 +1,5 @@
 #*******************************************************************************
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2010, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -26,14 +26,14 @@ ATK_PREFIX = swt-atk
 GNOME_PREFIX = swt-gnome
 GLX_PREFIX = swt-glx
 
-SWT_LIB = lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-CDE_LIB = lib$(CDE_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-AWT_LIB = lib$(AWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-SWTPI_LIB = lib$(SWTPI_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-CAIRO_LIB = lib$(CAIRO_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-ATK_LIB = lib$(ATK_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-GNOME_LIB = lib$(GNOME_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
-GLX_LIB = lib$(GLX_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).a
+SWT_LIB = lib$(SWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+CDE_LIB = lib$(CDE_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+AWT_LIB = lib$(AWT_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+SWTPI_LIB = lib$(SWTPI_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+CAIRO_LIB = lib$(CAIRO_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+ATK_LIB = lib$(ATK_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+GNOME_LIB = lib$(GNOME_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
+GLX_LIB = lib$(GLX_PREFIX)-$(WS_PREFIX)-$(SWT_VERSION).so
 
 CAIROCFLAGS = `pkg-config --cflags cairo`
 CAIROLIBS = `pkg-config --libs cairo` -lcairo
@@ -44,7 +44,8 @@ GTKLIBS = `pkg-config --libs gtk+-2.0 gthread-2.0` $(XLIB64) -L/usr/X11R6/lib -l
 CDE_LIBS = -L$(CDE_HOME)/lib -R$(CDE_HOME)/lib -lXt -lX11 -lDtSvc
 
 AWT_LFLAGS = -shared -s ${SWT_LFLAGS} 
-AWT_LIBS = -L$(AWT_LIB_PATH) -ljawt -lX11
+AWT_LIBS = -L$(AWT_LIB_PATH) -L$(AWT_LIB_PATH)/server -ljawt -lX11
+
 
 ATKCFLAGS = `pkg-config --cflags atk gtk+-2.0`
 ATKLIBS = `pkg-config --libs atk gtk+-2.0`
@@ -69,8 +70,9 @@ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
 CFLAGS = -O -Wall \
 		-DSWT_VERSION=$(SWT_VERSION) \
 		$(NATIVE_STATS) \
-		-DAIX -DGTK \
+		-DHPUX -DGTK \
 		-I$(JAVA_HOME)/include \
+		-I$(JAVA_HOME)/include/hp-ux \
 		${SWT_PTR_CFLAGS}
 LFLAGS = -shared -s ${SWT_LFLAGS}
 
@@ -189,10 +191,10 @@ glx_stats.o: glx_stats.c glx_stats.h
 # Install
 #
 install: all
-	cp *.a $(OUTPUT_DIR)
+	cp *.so $(OUTPUT_DIR)
 
 #
 # Clean
 #
 clean:
-	rm -f *.o *.a
+	rm -f *.o *.so
diff --git a/make_linux.mak b/make_linux.mak
index 8b8f1a8..25bb83b 100644
--- a/make_linux.mak
+++ b/make_linux.mak
@@ -1,5 +1,5 @@
 #*******************************************************************************
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2000, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -91,8 +91,8 @@ MOZILLAEXCLUDES = -DNO__1XPCOMGlueShutdown \
 	-DNO_nsDynamicFunctionLoad
 XULRUNNEREXCLUDES = -DNO__1NS_1InitXPCOM2
 
-WEBKITCFLAGS = `pkg-config --cflags gtk+-2.0` -I/usr/include/webkit-1.0 -I/usr/include/libsoup-2.4
-WEBKITLIBS = -lwebkit-1.0
+WEBKITCFLAGS = `pkg-config --cflags webkit-1.0`
+WEBKITLIBS = `pkg-config --libs webkit-1.0`
 
 SWT_OBJECTS = swt.o c.o c_stats.o callback.o
 CDE_OBJECTS = swt.o cde.o cde_structs.o cde_stats.o
diff --git a/make_solaris.mak b/make_solaris.mak
index 20f711c..308e1c4 100644
--- a/make_solaris.mak
+++ b/make_solaris.mak
@@ -48,9 +48,9 @@ CAIROLIBS = `pkg-config --libs-only-L cairo` -lcairo
 GTKCFLAGS = `pkg-config --cflags gtk+-2.0`
 GTKLIBS = `pkg-config --libs-only-L gtk+-2.0 gthread-2.0` -lgtk-x11-2.0 -lgthread-2.0 -L/usr/openwin/lib -Wl,-R -Wl,/usr/openwin/lib -lXtst
 
-CDE_LIBS = -L$(CDE_HOME)/lib -R$(CDE_HOME)/lib -lXt -lX11 -lDtSvc
+CDE_LIBS = -L$(CDE_HOME)/lib$(SWT_CDE_64SUFFIX) -R$(CDE_HOME)/lib$(SWT_CDE_64SUFFIX) -lXt -lX11 -lDtSvc
 
-AWT_LFLAGS = -G -s
+AWT_LFLAGS = -G -s $(SWT_LFLAGS)
 AWT_LIBS = -L$(AWT_LIB_PATH) -ljawt
 
 ATKCFLAGS = `pkg-config --cflags atk gtk+-2.0`
@@ -108,7 +108,7 @@ CFLAGS = -O \
 		-K PIC \
 		${SWT_PTR_CFLAGS} \
 		-I$(CDE_HOME)/include
-LFLAGS = -G -K PIC -s
+LFLAGS = -G -K PIC -s $(SWT_LFLAGS)
 
 
 all: make_swt make_atk make_awt make_glx make_cde
diff --git a/org/eclipse/swt/SWT.java b/org/eclipse/swt/SWT.java
index 8d7c355..ae95091 100644
--- a/org/eclipse/swt/SWT.java
+++ b/org/eclipse/swt/SWT.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -715,6 +715,39 @@ public class SWT {
 	 */
 	public static final int OpenDocument = 46;
 	
+	/**
+	 * The touch event type (value is 47).
+	 * 
+	 * <p>
+	 * This event is sent when a touch has been performed
+	 * on a touch-based input source.
+	 * </p>
+	 *
+     * @see org.eclipse.swt.widgets.Display#addListener
+     * @see org.eclipse.swt.widgets.Event
+     * 
+     * @since 3.7
+	 */
+	public static final int Touch = 47;
+
+	/**
+	 * The gesture event type (value is 48).
+	 * 
+	 * <p>
+	 * This event is sent when a gesture has been performed.
+	 * </p>
+	 *  
+     * @see org.eclipse.swt.widgets.Display#addListener
+     * @see org.eclipse.swt.widgets.Event
+     * @see SWT#GESTURE_MAGNIFY
+     * @see SWT#GESTURE_PAN
+     * @see SWT#GESTURE_ROTATE
+     * @see SWT#GESTURE_SWIPE
+     * 
+     * @since 3.7
+	 */
+	public static final int Gesture = 48;
+
 	/* Event Details */
 	
 	/**
@@ -897,6 +930,82 @@ public class SWT {
 	 * (value is 1<<9).
 	 */
 	public static final int TRAVERSE_PAGE_NEXT = 1 << 9;
+
+	/**
+	 * Gesture event detail field value indicating that a continuous
+	 * gesture is about to begin.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_BEGIN = 1 << 1;
+
+	/**
+	 * Gesture event detail field value indicating that a continuous 
+	 * gesture has ended.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_END = 1 << 2;
+
+	/**
+	 * Gesture event detail field value indicating that a 
+	 * rotation gesture has happened. Only the rotation field
+	 * of the event is valid.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_ROTATE = 1 << 3;
+	
+	/**
+	 * Gesture event detail field value indicating that a 
+	 * swipe gesture has happened.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_SWIPE = 1 << 4;
+	
+	/**
+	 * Gesture event detail field value indicating that a 
+	 * magnification gesture has happened.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_MAGNIFY = 1 << 5;
+	
+	/**
+	 * Gesture event detail field value indicating that a 
+	 * panning (two-finger scroll) gesture has happened.
+	 * 
+	 * @since 3.7
+	 */
+	public static final int GESTURE_PAN = 1 << 6;
+	
+	/**
+	 * A constant indicating that a finger touched the device.  
+	 * 
+	 * @see org.eclipse.swt.widgets.Touch#state
+	 * 
+	 * @since 3.7
+	 */
+	public static final int TOUCHSTATE_DOWN = 1 << 0;
+
+	/**
+	 * A constant indicating that a finger moved on the device.
+	 * 
+	 * @see org.eclipse.swt.widgets.Touch#state
+	 * 
+	 * @since 3.7
+	 */
+	public static final int TOUCHSTATE_MOVE = 1 << 1;
+
+	/**
+	 * A constant indicating that a finger was lifted from the device. 
+	 * 
+	 * @see org.eclipse.swt.widgets.Touch#state
+	 * 
+	 * @since 3.7
+	 */
+	public static final int TOUCHSTATE_UP = 1 << 2;
 	
 	/**
 	 * A constant indicating that widgets have changed.
@@ -981,7 +1090,6 @@ public class SWT {
 
 	/**
 	 * Style constant for drop down menu/list behavior (value is 1<<2).
-	 * <br>Note that for <code>DateTime</code> this is a <em>HINT</em>.
 	 * <p><b>Used By:</b><ul>
 	 * <li><code>Menu</code></li>
 	 * <li><code>ToolItem</code></li>
@@ -1010,6 +1118,16 @@ public class SWT {
 	 */
 	public static final int SEPARATOR = 1 << 1;
 
+    /**
+     * Constant representing a flexible space separator in a ToolBar.
+	 * <p><b>Used By:</b><ul>
+	 * <li><code>ToolItem.setWidth()</code></li>
+	 * </ul></p>
+	 *
+	 * @since 3.7
+     */
+    public static final int SEPARATOR_FILL = -2;
+
 	/**
 	 * Style constant for toggle button behavior (value is 1<<1).
 	 * <p><b>Used By:</b><ul>
@@ -1123,6 +1241,7 @@ public class SWT {
 
 	/**
 	 * Style constant for simple (not drop down) behavior (value is 1<<6).
+	 * <br>Note that this is a <em>HINT</em>.
 	 * <p><b>Used By:</b><ul>
 	 * <li><code>Combo</code></li>
 	 * </ul></p>
@@ -1940,6 +2059,18 @@ public class SWT {
 	public static final int MOZILLA = 1 << 15;
 
 	/**
+	 * Style constant specifying that a Browser should use WebKit
+	 * for rendering its content (value is 1<<16).
+	 * <p>
+	 * <p><b>Used By:</b><ul>
+	 * <li><code>Browser</code></li>
+	 * </ul></p>
+	 * 
+	 * @since 3.7
+	 */
+	public static final int WEBKIT = 1 << 16;
+
+	/**
 	 * Style constant for balloon behavior (value is 1<<12).
 	 * <p><b>Used By:</b><ul>
 	 * <li><code>ToolTip</code></li>
@@ -2034,6 +2165,14 @@ public class SWT {
 	public static final char TAB = '\t';
 						
 	/**
+	 * ASCII character convenience constant for the space character
+	 * (value is the <code>char</code> ' ').
+	 * 
+	 * @since 3.7
+	 */
+	public static final char SPACE = ' ';
+						
+	/**
 	 * keyboard and/or mouse event mask indicating that the ALT key
 	 * was pushed on the keyboard when the event was generated
 	 * (value is 1<<16).
@@ -3850,6 +3989,66 @@ public class SWT {
 	public static final int ALL = 1 << 0;
 	
 	/**
+	 * ID for the About menu item (value is -1).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_ABOUT = -1;
+
+	/**
+	 * ID for the Preferences menu item (value is -2).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_PREFERENCES = -2;
+
+	/**
+	 * ID for the Hide menu item (value is -3).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_HIDE = -3;
+
+	/**
+	 * ID for the Hide Others menu item (value is -4).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_HIDE_OTHERS = -4;
+	
+	/**
+	 * ID for the Show All menu item (value is -5).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_SHOW_ALL = -5;
+	
+	/**
+	 * ID for the Quit menu item (value is -6).
+	 * 
+	 * @see org.eclipse.swt.widgets.MenuItem#setID(int)
+	 * @see org.eclipse.swt.widgets.MenuItem#getID()
+	 * 
+	 * @since 3.7
+	 */
+	public static final int ID_QUIT = -6;
+
+	/**
 	 * Key value for setting and getting the skin class of a widget. 
 	 * 
 	 * @see org.eclipse.swt.widgets.Widget#getData(String)
diff --git a/org/eclipse/swt/accessibility/Accessible.java b/org/eclipse/swt/accessibility/Accessible.java
index f1b21b9..73c155f 100644
--- a/org/eclipse/swt/accessibility/Accessible.java
+++ b/org/eclipse/swt/accessibility/Accessible.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -45,6 +45,7 @@ public class Accessible {
 	Vector accessibleControlListeners = new Vector ();
 	Vector accessibleTextListeners = new Vector ();
 	Vector accessibleActionListeners = new Vector();
+	Vector accessibleEditableTextListeners = new Vector();
 	Vector accessibleHyperlinkListeners = new Vector();
 	Vector accessibleTableListeners = new Vector();
 	Vector accessibleTableCellListeners = new Vector();
@@ -83,6 +84,7 @@ public class Accessible {
 	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
 	 * </ul>
 	 * 
+	 * @see #dispose
 	 * @see Control#getAccessible
 	 * 
 	 * @since 3.6
@@ -209,10 +211,10 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleAction</code> interface.
+	 * defined in the <code>AccessibleActionListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleAction</code> interface properties
+	 * is asked for <code>AccessibleActionListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -236,10 +238,37 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleHyperlink</code> interface.
+	 * defined in the <code>AccessibleEditableTextListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleHyperlink</code> interface properties
+	 * is asked for <code>AccessibleEditableTextListener</code> interface properties
+	 *
+	 * @exception IllegalArgumentException <ul>
+	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+	 * </ul>
+	 * @exception SWTException <ul>
+	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
+	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
+	 * </ul>
+	 *
+	 * @see AccessibleEditableTextListener
+	 * @see #removeAccessibleEditableTextListener
+	 * 
+	 * @since 3.7
+	 */
+	public void addAccessibleEditableTextListener(AccessibleEditableTextListener listener) {
+	    checkWidget();
+	    if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
+	    accessibleEditableTextListeners.addElement(listener);
+	}
+
+	/**
+	 * Adds the listener to the collection of listeners that will be
+	 * notified when an accessible client asks for any of the properties
+	 * defined in the <code>AccessibleHyperlinkListener</code> interface.
+	 *
+	 * @param listener the listener that should be notified when the receiver
+	 * is asked for <code>AccessibleHyperlinkListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -263,10 +292,10 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleTable</code> interface.
+	 * defined in the <code>AccessibleTableListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleTable</code> interface properties
+	 * is asked for <code>AccessibleTableListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -290,10 +319,10 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleTableCell</code> interface.
+	 * defined in the <code>AccessibleTableCellListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleTableCell</code> interface properties
+	 * is asked for <code>AccessibleTableCellListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -317,10 +346,10 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleValue</code> interface.
+	 * defined in the <code>AccessibleValueListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleValue</code> interface properties
+	 * is asked for <code>AccessibleValueListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -344,10 +373,10 @@ public class Accessible {
 	/**
 	 * Adds the listener to the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleAttribute</code> interface.
+	 * defined in the <code>AccessibleAttributeListener</code> interface.
 	 *
 	 * @param listener the listener that should be notified when the receiver
-	 * is asked for <code>AccessibleAttribute</code> interface properties
+	 * is asked for <code>AccessibleAttributeListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -587,10 +616,10 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleAction</code> interface.
+	 * defined in the <code>AccessibleActionListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleAction</code> interface properties
+	 * is asked for <code>AccessibleActionListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -614,10 +643,37 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleHyperlink</code> interface.
+	 * defined in the <code>AccessibleEditableTextListener</code> interface.
+	 *
+	 * @param listener the listener that should no longer be notified when the receiver
+	 * is asked for <code>AccessibleEditableTextListener</code> interface properties
+	 *
+	 * @exception IllegalArgumentException <ul>
+	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+	 * </ul>
+	 * @exception SWTException <ul>
+	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
+	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver's control</li>
+	 * </ul>
+	 *
+	 * @see AccessibleEditableTextListener
+	 * @see #addAccessibleEditableTextListener
+	 * 
+	 * @since 3.7
+	 */
+	public void removeAccessibleEditableTextListener(AccessibleEditableTextListener listener) {
+	    checkWidget();
+	    if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
+	    accessibleEditableTextListeners.removeElement(listener);
+	}
+	
+	/**
+	 * Removes the listener from the collection of listeners that will be
+	 * notified when an accessible client asks for any of the properties
+	 * defined in the <code>AccessibleHyperlinkListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleHyperlink</code> interface properties
+	 * is asked for <code>AccessibleHyperlinkListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -641,10 +697,10 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleTable</code> interface.
+	 * defined in the <code>AccessibleTableListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleTable</code> interface properties
+	 * is asked for <code>AccessibleTableListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -668,10 +724,10 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleTableCell</code> interface.
+	 * defined in the <code>AccessibleTableCellListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleTableCell</code> interface properties
+	 * is asked for <code>AccessibleTableCellListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -695,10 +751,10 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleValue</code> interface.
+	 * defined in the <code>AccessibleValueListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleValue</code> interface properties
+	 * is asked for <code>AccessibleValueListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -722,10 +778,10 @@ public class Accessible {
 	/**
 	 * Removes the listener from the collection of listeners that will be
 	 * notified when an accessible client asks for any of the properties
-	 * defined in the <code>AccessibleAttribute</code> interface.
+	 * defined in the <code>AccessibleAttributeListener</code> interface.
 	 *
 	 * @param listener the listener that should no longer be notified when the receiver
-	 * is asked for <code>AccessibleAttribute</code> interface properties
+	 * is asked for <code>AccessibleAttributeListener</code> interface properties
 	 *
 	 * @exception IllegalArgumentException <ul>
 	 *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
@@ -771,6 +827,7 @@ public class Accessible {
 	 *
 	 * @param event an <code>ACC</code> constant beginning with EVENT_* indicating the message to send
 	 * @param eventData an object containing event-specific data, or null if there is no event-specific data
+	 * (eventData is specified in the documentation for individual ACC.EVENT_* constants)
 	 * 
 	 * @exception SWTException <ul>
 	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver's control has been disposed</li>
diff --git a/org/eclipse/swt/accessibility/AccessibleActionEvent.java b/org/eclipse/swt/accessibility/AccessibleActionEvent.java
index de96073..49219c3 100644
--- a/org/eclipse/swt/accessibility/AccessibleActionEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleActionEvent.java
@@ -50,7 +50,7 @@ public AccessibleActionEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleActionEvent {"
+	return "AccessibleActionEvent {" //$NON-NLS-1$
 		+ "string=" + result   //$NON-NLS-1$
 		+ " count=" + count   //$NON-NLS-1$
 		+ " index=" + index   //$NON-NLS-1$
diff --git a/org/eclipse/swt/accessibility/AccessibleAttributeAdapter.java b/org/eclipse/swt/accessibility/AccessibleAttributeAdapter.java
index 43df16e..f51f7eb 100644
--- a/org/eclipse/swt/accessibility/AccessibleAttributeAdapter.java
+++ b/org/eclipse/swt/accessibility/AccessibleAttributeAdapter.java
@@ -48,14 +48,14 @@ public class AccessibleAttributeAdapter implements AccessibleAttributeListener {
 	 * Returns text attributes specific to this Accessible object.
 	 * 
 	 * @param e an event object containing the following fields:<ul>
-	 * <li>[in] offset - the 0 based text offset</li>
-	 * <li>[out] start - the starting offset of the character range
+	 * <li>[in] offset - the 0 based text offset for which to return attribute information</li>
+	 * <li>[out] start - the 0 based starting offset of the character range
 	 * 		over which all text attributes match those of offset</li>
 	 * <li>[out] end - the 0 based offset after the last character of the character range
 	 * 		over which all text attributes match those of offset</li>
 	 * <li>[out] textStyle - the TextStyle of the character range</li>
 	 * <li>[out] attributes - an array of alternating key and value Strings
-	 * 		which represent additional (i.e. non predefined) attributes</li>
+	 * 		that represent additional attributes that do not correspond to TextStyle fields</li>
 	 * </ul>
 	 */
 	public void getTextAttributes(AccessibleTextAttributeEvent e) {}
diff --git a/org/eclipse/swt/accessibility/AccessibleAttributeEvent.java b/org/eclipse/swt/accessibility/AccessibleAttributeEvent.java
index b09ffb0..87a3a08 100644
--- a/org/eclipse/swt/accessibility/AccessibleAttributeEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleAttributeEvent.java
@@ -51,7 +51,7 @@ public AccessibleAttributeEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleAttributeEvent {"
+	return "AccessibleAttributeEvent {" //$NON-NLS-1$
 		+ " topMargin=" + topMargin   //$NON-NLS-1$
 		+ " bottomMargin=" + bottomMargin   //$NON-NLS-1$
 		+ " leftMargin=" + leftMargin   //$NON-NLS-1$
diff --git a/org/eclipse/swt/accessibility/AccessibleAttributeListener.java b/org/eclipse/swt/accessibility/AccessibleAttributeListener.java
index 6d08f26..da725e0 100644
--- a/org/eclipse/swt/accessibility/AccessibleAttributeListener.java
+++ b/org/eclipse/swt/accessibility/AccessibleAttributeListener.java
@@ -51,14 +51,14 @@ public interface AccessibleAttributeListener extends SWTEventListener {
 	 * Returns text attributes specific to this Accessible object.
 	 * 
 	 * @param e an event object containing the following fields:<ul>
-	 * <li>[in] offset - the 0 based text offset</li>
-	 * <li>[out] start - the starting offset of the character range
+	 * <li>[in] offset - the 0 based text offset for which to return attribute information</li>
+	 * <li>[out] start - the 0 based starting offset of the character range
 	 * 		over which all text attributes match those of offset</li>
 	 * <li>[out] end - the 0 based offset after the last character of the character range
 	 * 		over which all text attributes match those of offset</li>
 	 * <li>[out] textStyle - the TextStyle of the character range</li>
 	 * <li>[out] attributes - an array of alternating key and value Strings
-	 * 		which represent additional (i.e. non predefined) attributes</li>
+	 * 		that represent additional attributes that do not correspond to TextStyle fields</li>
 	 * </ul>
 	 */
 	public void getTextAttributes(AccessibleTextAttributeEvent e);
diff --git a/org/eclipse/swt/accessibility/AccessibleEditableTextAdapter.java b/org/eclipse/swt/accessibility/AccessibleEditableTextAdapter.java
new file mode 100644
index 0000000..583ee5c
--- /dev/null
+++ b/org/eclipse/swt/accessibility/AccessibleEditableTextAdapter.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.accessibility;
+
+/**
+ * This adapter class provides default implementations for the
+ * methods in the <code>AccessibleEditableTextListener</code> interface.
+ * <p>
+ * Classes that wish to deal with <code>AccessibleEditableText</code> events can
+ * extend this class and override only the methods that they are
+ * interested in.
+ * </p>
+ *
+ * @see AccessibleEditableTextListener
+ * @see AccessibleEditableTextEvent
+ * @see AccessibleTextAttributeEvent
+ *
+ * @since 3.7
+ */
+public class AccessibleEditableTextAdapter implements AccessibleEditableTextListener {
+	/**
+	 * Copies the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> to the clipboard.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be copied to the clipboard</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be copied to the clipboard</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void copyText(AccessibleEditableTextEvent e) {};
+
+	/**
+	 * Moves the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> to the clipboard.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be moved to the clipboard</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be moved to the clipboard</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void cutText(AccessibleEditableTextEvent e) {};
+
+	/**
+	 * Inserts the text in the clipboard at the leading edge of the specified <code>start</code> offset.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the offset at which to insert the text from the clipboard.
+	 * 		The valid range is 0..length</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void pasteText(AccessibleEditableTextEvent e) {};
+
+	/**
+	 * Replaces the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> by the specified string.
+	 * <p>
+	 * This event notification is also used to delete text if <code>string</code> is an empty string,
+	 * or to insert text at the leading edge of the specified offset if <code>start</code> and <code>end</code> are equal.
+	 * </p>
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be replaced</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be replaced</li>
+	 * <li>[in] string - the string that replaces the substring beginning at
+	 * 		<code>start</code> and extending to <code>end - 1</code></li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void replaceText(AccessibleEditableTextEvent e) {};
+
+	/**
+	 * Replaces the set of attributes of the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> by the specified set of attributes.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		whose attributes are modified</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		whose attributes are modified</li>
+	 * <li>[in] textStyle - the TextStyle which contains attributes that replace the old set of attributes.
+	 * 		The foreground, background, and font fields of this TextStyle are only valid for the duration of the event.
+	 * 		The value of this field may be null if none of the attributes to be set correspond to TextStyle fields.</li>
+	 * <li>[in] attributes - an array of alternating key and value Strings that represent the complete
+	 * 		set of attributes to replace the old set of attributes.
+	 * 		The value of this field may be null if no attributes are to be set.</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void setTextAttributes(AccessibleTextAttributeEvent e) {};
+}
diff --git a/org/eclipse/swt/accessibility/AccessibleEditableTextEvent.java b/org/eclipse/swt/accessibility/AccessibleEditableTextEvent.java
new file mode 100644
index 0000000..207614b
--- /dev/null
+++ b/org/eclipse/swt/accessibility/AccessibleEditableTextEvent.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.accessibility;
+
+import org.eclipse.swt.internal.*;
+
+/**
+ * Instances of this class are sent as a result of accessibility clients
+ * sending AccessibleEditableText messages to an accessible object.
+ *
+ * @see AccessibleEditableTextListener
+ * @see AccessibleEditableTextAdapter
+ *
+ * @since 3.7
+ */
+public class AccessibleEditableTextEvent extends SWTEventObject {
+
+	/**
+	 * [in] 0-based start offset of the character range to perform
+	 * the operation on
+	 * 
+	 * @see AccessibleEditableTextListener#copyText
+	 * @see AccessibleEditableTextListener#cutText
+	 * @see AccessibleEditableTextListener#pasteText
+	 * @see AccessibleEditableTextListener#replaceText
+	 */
+	public int start;
+	
+	/**
+	 * [in] 0-based ending offset of the character range to perform
+	 * the operation on
+	 * 
+	 * @see AccessibleEditableTextListener#copyText
+	 * @see AccessibleEditableTextListener#cutText
+	 * @see AccessibleEditableTextListener#replaceText
+	 */
+	public int end;
+	
+	/**
+	 * [in] a string that will replace the specified character range
+	 * 
+	 * @see AccessibleEditableTextListener#replaceText
+	 */
+	public String string;
+
+	/**
+	 * [out] Set this field to {@link ACC#OK} if the operation
+	 * was completed successfully, and <code>null</code> otherwise.
+	 * 
+	 * @see AccessibleEditableTextListener#copyText
+	 * @see AccessibleEditableTextListener#cutText
+	 * @see AccessibleEditableTextListener#pasteText
+	 * @see AccessibleEditableTextListener#replaceText
+	 */
+	public String result;
+
+	static final long serialVersionUID = -5045447704486894646L;
+
+/**
+ * Constructs a new instance of this class.
+ *
+ * @param source the object that fired the event
+ */
+public AccessibleEditableTextEvent(Object source) {
+	super(source);
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public String toString () {
+	return "AccessibleEditableTextEvent {" //$NON-NLS-1$
+		+ "start=" + start   //$NON-NLS-1$
+		+ " end=" + end   //$NON-NLS-1$
+		+ " string=" + string   //$NON-NLS-1$
+		+ " result=" + result   //$NON-NLS-1$
+		+ "}";  //$NON-NLS-1$
+}
+}
diff --git a/org/eclipse/swt/accessibility/AccessibleEditableTextListener.java b/org/eclipse/swt/accessibility/AccessibleEditableTextListener.java
new file mode 100644
index 0000000..6bbe3d6
--- /dev/null
+++ b/org/eclipse/swt/accessibility/AccessibleEditableTextListener.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.accessibility;
+
+import org.eclipse.swt.internal.SWTEventListener;
+
+/**
+ * Classes which implement this interface provide methods
+ * that handle AccessibleEditableText events.
+ * <p>
+ * After creating an instance of a class that implements
+ * this interface it can be added to an accessible using the
+ * <code>addAccessibleEditableTextListener</code> method and removed using
+ * the <code>removeAccessibleEditableTextListener</code> method.
+ * </p>
+ *
+ * @see AccessibleEditableTextAdapter
+ * @see AccessibleEditableTextEvent
+ * @see AccessibleTextAttributeEvent
+ *
+ * @since 3.7
+ */
+public interface AccessibleEditableTextListener extends SWTEventListener {
+	/**
+	 * Copies the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> to the clipboard.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be copied to the clipboard</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be copied to the clipboard</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void copyText(AccessibleEditableTextEvent e);
+
+	/**
+	 * Moves the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> to the clipboard.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be moved to the clipboard</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be moved to the clipboard</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void cutText(AccessibleEditableTextEvent e);
+
+	/**
+	 * Inserts the text in the clipboard at the leading edge of the specified <code>start</code> offset.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the offset at which to insert the text from the clipboard.
+	 * 		The valid range is 0..length</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void pasteText(AccessibleEditableTextEvent e);
+
+	/**
+	 * Replaces the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> by the specified string.
+	 * <p>
+	 * This event notification is also used to delete text if <code>string</code> is an empty string,
+	 * or to insert text at the leading edge of the specified offset if <code>start</code> and <code>end</code> are equal.
+	 * </p>
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		to be replaced</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		to be replaced</li>
+	 * <li>[in] string - the string that replaces the substring beginning at
+	 * 		<code>start</code> and extending to <code>end - 1</code></li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void replaceText(AccessibleEditableTextEvent e);
+
+	/**
+	 * Replaces the set of attributes of the substring beginning at the specified <code>start</code> offset
+	 * and extending to the character at offset <code>end - 1</code> by the specified set of attributes.
+	 * 
+	 * @param e an event object containing the following information:<ul>
+	 * <li>[in] start - the 0 based offset of the first character of the substring
+	 * 		whose attributes are modified</li>
+	 * <li>[in] end - the 0 based offset after the last character of the substring
+	 * 		whose attributes are modified</li>
+	 * <li>[in] textStyle - the TextStyle which contains attributes that replace the old set of attributes.
+	 * 		The foreground, background, and font fields of this TextStyle are only valid for the duration of the event.
+	 * 		The value of this field may be null if none of the attributes to be set correspond to TextStyle fields.</li>
+	 * <li>[in] attributes - an array of alternating key and value Strings that represent the complete
+	 * 		set of attributes to replace the old set of attributes.
+	 * 		The value of this field may be null if no attributes are to be set.</li>
+	 * <li>[out] result - set to {@link ACC#OK} if the operation was completed successfully</li>
+	 * </ul>
+	 */
+	public void setTextAttributes(AccessibleTextAttributeEvent e);
+}
diff --git a/org/eclipse/swt/accessibility/AccessibleFactory.java b/org/eclipse/swt/accessibility/AccessibleFactory.java
index 47ed177..03e4031 100644
--- a/org/eclipse/swt/accessibility/AccessibleFactory.java
+++ b/org/eclipse/swt/accessibility/AccessibleFactory.java
@@ -29,6 +29,9 @@ class AccessibleFactory {
 		ACC.ROLE_SPLITBUTTON, ACC.ROLE_SPINBUTTON,
 		ACC.ROLE_CHECKMENUITEM, ACC.ROLE_RADIOMENUITEM,
 	};
+	static final int[] editableTextRoles = {
+		ACC.ROLE_TEXT, ACC.ROLE_COMBOBOX, ACC.ROLE_PARAGRAPH, ACC.ROLE_DOCUMENT,
+	};
 	static final int[] hypertextRoles = {
 		ACC.ROLE_TEXT, ACC.ROLE_LINK, ACC.ROLE_PARAGRAPH,
 	};
@@ -37,7 +40,7 @@ class AccessibleFactory {
 	};
 	static final int[] textRoles = {
 		ACC.ROLE_COMBOBOX, ACC.ROLE_LINK, ACC.ROLE_LABEL, ACC.ROLE_TEXT, ACC.ROLE_STATUSBAR,
-		ACC.ROLE_PARAGRAPH,
+		ACC.ROLE_PARAGRAPH, ACC.ROLE_DOCUMENT,
 	};
 	static final int[] tableRoles = {
 		ACC.ROLE_TABLE, ACC.ROLE_TREE,
@@ -59,6 +62,15 @@ class AccessibleFactory {
 	static final Callback AtkComponentCB_get_size;
 	static final Callback AtkComponentCB_ref_accessible_at_point;
 	
+	/* EditableText callbacks */
+	static final Callback AtkEditableTextCB_set_run_attributes;
+	static final Callback AtkEditableTextCB_set_text_contents;
+	static final Callback AtkEditableTextCB_insert_text;
+	static final Callback AtkEditableTextCB_copy_text;
+	static final Callback AtkEditableTextCB_cut_text;
+	static final Callback AtkEditableTextCB_delete_text;
+	static final Callback AtkEditableTextCB_paste_text;
+
 	/* Hypertext callbacks */
 	static final Callback AtkHypertextCB_get_link;
 	static final Callback AtkHypertextCB_get_n_links;
@@ -136,6 +148,7 @@ class AccessibleFactory {
 	/* interface initialization callbacks */
 	static final Callback InitActionIfaceCB;		
 	static final Callback InitComponentIfaceCB;
+	static final Callback InitEditableTextIfaceCB;
 	static final Callback InitHypertextIfaceCB;
 	static final Callback GTypeInfo_base_init_type;
 	static final Callback InitSelectionIfaceCB;
@@ -146,6 +159,7 @@ class AccessibleFactory {
 	/* interface definitions */
 	static final int /*long*/ ActionIfaceDefinition;
 	static final int /*long*/ ComponentIfaceDefinition;
+	static final int /*long*/ EditableTextIfaceDefinition;
 	static final int /*long*/ HypertextIfaceDefinition;
 	static final int /*long*/ SelectionIfaceDefinition;
 	static final int /*long*/ TableIfaceDefinition;
@@ -161,6 +175,13 @@ class AccessibleFactory {
 		AtkComponentCB_get_position = newCallback (AccessibleObject.class, "atkComponent_get_position", 4); //$NON-NLS-1$
 		AtkComponentCB_get_size = newCallback (AccessibleObject.class, "atkComponent_get_size", 4); //$NON-NLS-1$
 		AtkComponentCB_ref_accessible_at_point = newCallback (AccessibleObject.class, "atkComponent_ref_accessible_at_point", 4); //$NON-NLS-1$
+		AtkEditableTextCB_set_run_attributes = newCallback (AccessibleObject.class, "atkEditableText_set_run_attributes", 4); //$NON-NLS-1$
+		AtkEditableTextCB_set_text_contents = newCallback (AccessibleObject.class, "atkEditableText_set_text_contents", 2); //$NON-NLS-1$
+		AtkEditableTextCB_insert_text = newCallback (AccessibleObject.class, "atkEditableText_insert_text", 4); //$NON-NLS-1$
+		AtkEditableTextCB_copy_text = newCallback (AccessibleObject.class, "atkEditableText_copy_text", 3); //$NON-NLS-1$
+		AtkEditableTextCB_cut_text = newCallback (AccessibleObject.class, "atkEditableText_cut_text", 3); //$NON-NLS-1$
+		AtkEditableTextCB_delete_text = newCallback (AccessibleObject.class, "atkEditableText_delete_text", 3); //$NON-NLS-1$
+		AtkEditableTextCB_paste_text = newCallback (AccessibleObject.class, "atkEditableText_paste_text", 2); //$NON-NLS-1$
 		AtkHypertextCB_get_link = newCallback (AccessibleObject.class, "atkHypertext_get_link", 2); //$NON-NLS-1$
 		AtkHypertextCB_get_n_links = newCallback (AccessibleObject.class, "atkHypertext_get_n_links", 1); //$NON-NLS-1$
 		AtkHypertextCB_get_link_index = newCallback (AccessibleObject.class, "atkHypertext_get_link_index", 2); //$NON-NLS-1$
@@ -236,6 +257,12 @@ class AccessibleFactory {
 		interfaceInfo.interface_init = InitComponentIfaceCB.getAddress ();
 		ComponentIfaceDefinition = OS.g_malloc (GInterfaceInfo.sizeof);
 		OS.memmove (ComponentIfaceDefinition, interfaceInfo, GInterfaceInfo.sizeof);
+		/* EditableText interface */
+		InitEditableTextIfaceCB = newCallback (AccessibleFactory.class, "initEditableTextIfaceCB", 1); //$NON-NLS-1$
+		interfaceInfo = new GInterfaceInfo ();
+		interfaceInfo.interface_init = InitEditableTextIfaceCB.getAddress ();
+		EditableTextIfaceDefinition = OS.g_malloc (GInterfaceInfo.sizeof);  
+		OS.memmove (EditableTextIfaceDefinition, interfaceInfo, GInterfaceInfo.sizeof);
 		/* Hypertext interface */
 		InitHypertextIfaceCB = newCallback (AccessibleFactory.class, "initHypertextIfaceCB", 1); //$NON-NLS-1$
 		interfaceInfo = new GInterfaceInfo ();
@@ -334,7 +361,7 @@ class AccessibleFactory {
 			AccessibleControlListener listener = (AccessibleControlListener)listeners.elementAt (i);
 			listener.getRole (event);
 		}
-		boolean action = false, hypertext = false, selection = false, table = false, text = false, value = false;
+		boolean action = false, editableText = false, hypertext = false, selection = false, table = false, text = false, value = false;
 		if (event.detail != 0) {	/* a role was specified */
 			for (int i = 0; i < actionRoles.length; i++) {
 				if (event.detail == actionRoles [i]) {
@@ -342,6 +369,12 @@ class AccessibleFactory {
 					break;
 				}
 			}
+			for (int i = 0; i < editableTextRoles.length; i++) {
+				if (event.detail == editableTextRoles [i]) {
+					editableText = true;
+					break;
+				}
+			}
 			for (int i = 0; i < hypertextRoles.length; i++) {
 				if (event.detail == hypertextRoles [i]) {
 					hypertext = true;
@@ -373,10 +406,11 @@ class AccessibleFactory {
 				}
 			}
 		} else {
-			action = hypertext = selection = table = text = value = true;
+			action = editableText = hypertext = selection = table = text = value = true;
 		}
 		String swtTypeName = SWT_TYPE_PREFIX + widgetTypeName;
 		if (action) swtTypeName += "Action"; //$NON-NLS-1$
+		if (editableText) swtTypeName += "EditableText"; //$NON-NLS-1$
 		if (hypertext) swtTypeName += "Hypertext"; //$NON-NLS-1$
 		if (selection) swtTypeName += "Selection"; //$NON-NLS-1$
 		if (table) swtTypeName += "Table"; //$NON-NLS-1$
@@ -402,6 +436,7 @@ class AccessibleFactory {
 			type = OS.g_type_register_static (parentType, nameBytes, definition, 0);
 			OS.g_type_add_interface_static (type, ATK.ATK_TYPE_COMPONENT(), ComponentIfaceDefinition);
 			if (action) OS.g_type_add_interface_static (type, ATK.ATK_TYPE_ACTION(), ActionIfaceDefinition);
+			if (editableText) OS.g_type_add_interface_static (type, ATK.ATK_TYPE_EDITABLE_TEXT(), EditableTextIfaceDefinition);
 			if (hypertext) OS.g_type_add_interface_static (type, ATK.ATK_TYPE_HYPERTEXT(), HypertextIfaceDefinition);
 			if (selection) OS.g_type_add_interface_static (type, ATK.ATK_TYPE_SELECTION(), SelectionIfaceDefinition);
 			if (table) OS.g_type_add_interface_static (type, ATK.ATK_TYPE_TABLE(), TableIfaceDefinition);
@@ -463,6 +498,20 @@ class AccessibleFactory {
 		return 0;
 	}
 
+	static int /*long*/ initEditableTextIfaceCB (int /*long*/ iface) {
+		AtkEditableTextIface inter = new AtkEditableTextIface ();
+		ATK.memmove (inter, iface);
+		inter.set_run_attributes = AtkEditableTextCB_set_run_attributes.getAddress ();
+		inter.set_text_contents = AtkEditableTextCB_set_text_contents.getAddress ();
+		inter.insert_text = AtkEditableTextCB_insert_text.getAddress ();
+		inter.copy_text = AtkEditableTextCB_copy_text.getAddress ();
+		inter.cut_text = AtkEditableTextCB_cut_text.getAddress ();
+		inter.delete_text = AtkEditableTextCB_delete_text.getAddress ();
+		inter.paste_text = AtkEditableTextCB_paste_text.getAddress ();
+		ATK.memmove (iface, inter);
+		return 0;
+	}
+
 	static int /*long*/ initHypertextIfaceCB (int /*long*/ iface) {
 		AtkHypertextIface inter = new AtkHypertextIface ();
 		ATK.memmove (inter, iface);
diff --git a/org/eclipse/swt/accessibility/AccessibleHyperlinkEvent.java b/org/eclipse/swt/accessibility/AccessibleHyperlinkEvent.java
index 79df0ef..5e30381 100644
--- a/org/eclipse/swt/accessibility/AccessibleHyperlinkEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleHyperlinkEvent.java
@@ -51,7 +51,7 @@ public AccessibleHyperlinkEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleHyperlinkEvent {"
+	return "AccessibleHyperlinkEvent {" //$NON-NLS-1$
 		+ "accessible=" + accessible   //$NON-NLS-1$
 		+ " string=" + result   //$NON-NLS-1$
 		+ " index=" + index   //$NON-NLS-1$
diff --git a/org/eclipse/swt/accessibility/AccessibleObject.java b/org/eclipse/swt/accessibility/AccessibleObject.java
index ec4c646..80896bd 100644
--- a/org/eclipse/swt/accessibility/AccessibleObject.java
+++ b/org/eclipse/swt/accessibility/AccessibleObject.java
@@ -400,6 +400,347 @@ class AccessibleObject {
 		return parentResult;
 	}	
 
+	
+	static AtkEditableTextIface getEditableTextIface (int /*long*/ atkObject) {
+		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_EDITABLE_TEXT())) {
+			AtkEditableTextIface iface = new AtkEditableTextIface ();
+			ATK.memmove (iface, ATK.g_type_interface_peek_parent (ATK.ATK_EDITABLE_TEXT_GET_IFACE (atkObject)));
+			return iface;
+		}
+		return null;
+	}
+	
+//	gboolean atk_editable_text_set_run_attributes(AtkEditableText *text, AtkAttributeSet *attrib_set, gint start_offset, gint end_offset);
+	static int /*long*/ atkEditableText_set_run_attributes (int /*long*/ atkObject, int /*long*/ attrib_set, int /*long*/ start_offset, int /*long*/ end_offset) {
+		if (DEBUG) print ("-->atkEditableText_set_run_attributes");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				Display display = accessible.control.getDisplay();
+				int /*long*/ fontDesc = OS.pango_font_description_new ();
+				boolean createFont = false;
+				TextStyle style = new TextStyle();
+				String [] attributes = new String [0];
+				int /*long*/ current = attrib_set;
+				int listLength = OS.g_slist_length (attrib_set);
+				for (int i = 0; i < listLength; i++) {
+					int /*long*/ attrPtr = OS.g_slist_data (current);
+					if (attrPtr != 0) {
+						AtkAttribute attr = new AtkAttribute();
+						ATK.memmove(attr, attrPtr, AtkAttribute.sizeof);
+						String name = getString(attr.name);
+						String value = getString(attr.value);
+						OS.g_free(attrPtr);
+						if (DEBUG) print("name=" + name + ", value=" + value);
+						String [] newAttributes = new String [attributes.length + 2];
+						System.arraycopy (attributes, 0, newAttributes, 0, attributes.length);
+						newAttributes[attributes.length] = name;
+						newAttributes[attributes.length + 1] = value;
+						attributes = newAttributes;
+						try {
+							if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_RISE)))) {
+								// number of pixels above baseline
+								style.rise = Integer.parseInt(value);
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_UNDERLINE)))) {
+								// "none", "single", "double", "low", or "error" (also allow "squiggle")
+								if (value.equals("single") || value.equals("low")) {
+									style.underline = true;
+									style.underlineStyle = SWT.UNDERLINE_SINGLE;
+								} else if (value.equals("double")) {
+									style.underline = true;
+									style.underlineStyle = SWT.UNDERLINE_DOUBLE;
+								} else if (value.equals("error")) {
+									style.underline = true;
+									style.underlineStyle = SWT.UNDERLINE_ERROR;
+								} else if (value.equals("squiggle")) {
+									style.underline = true;
+									style.underlineStyle = SWT.UNDERLINE_SQUIGGLE;
+								}
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRIKETHROUGH)))) {
+								// "true" or "false" (also allow "1" and "single")
+								if (value.equals("true") || value.equals("1") || value.equals("single")) style.strikeout = true;
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FAMILY_NAME)))) {
+								// font family name
+								byte [] buffer = Converter.wcsToMbcs(null, value, true);
+								OS.pango_font_description_set_family(fontDesc, buffer);
+								createFont = true;
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_SIZE)))) {
+								// size of characters in points (allow fractional points)
+								float size = Float.parseFloat(value);
+								OS.pango_font_description_set_size(fontDesc, (int)(size * OS.PANGO_SCALE));
+								createFont = true;
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STYLE)))) {
+								// "normal", "italic" or "oblique"
+								int fontStyle = -1;
+								if (value.equals("normal")) fontStyle = OS.PANGO_STYLE_NORMAL;
+								else if (value.equals("italic")) fontStyle = OS.PANGO_STYLE_ITALIC;
+								else if (value.equals("oblique")) fontStyle = OS.PANGO_STYLE_OBLIQUE;
+								if (fontStyle != -1) {
+									OS.pango_font_description_set_style(fontDesc, fontStyle);
+									createFont = true;
+								}
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_VARIANT)))) {
+								// "normal" or "small_caps"
+								int variant = -1;
+								if (value.equals("normal")) variant = OS.PANGO_VARIANT_NORMAL;
+								else if (value.equals("small_caps")) variant = OS.PANGO_VARIANT_SMALL_CAPS;
+								if (variant != -1) {
+									OS.pango_font_description_set_variant(fontDesc, variant);
+									createFont = true;
+								}
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_STRETCH)))) {
+								//"ultra_condensed", "extra_condensed", "condensed", "semi_condensed", "normal", "semi_expanded", "expanded", "extra_expanded" or "ultra_expanded" 
+								int stretch = -1;
+								if (value.equals("ultra_condensed")) stretch = OS.PANGO_STRETCH_ULTRA_CONDENSED;
+								else if (value.equals("extra_condensed")) stretch = OS.PANGO_STRETCH_EXTRA_CONDENSED;
+								else if (value.equals("condensed")) stretch = OS.PANGO_STRETCH_CONDENSED;
+								else if (value.equals("semi_condensed")) stretch = OS.PANGO_STRETCH_SEMI_CONDENSED;
+								else if (value.equals("normal")) stretch = OS.PANGO_STRETCH_NORMAL;
+								else if (value.equals("semi_expanded")) stretch = OS.PANGO_STRETCH_SEMI_EXPANDED;
+								else if (value.equals("expanded")) stretch = OS.PANGO_STRETCH_EXPANDED;
+								else if (value.equals("extra_expanded")) stretch = OS.PANGO_STRETCH_EXTRA_EXPANDED;
+								else if (value.equals("ultra_expanded")) stretch = OS.PANGO_STRETCH_ULTRA_EXPANDED;
+								if (stretch != -1) {
+									OS.pango_font_description_set_stretch(fontDesc, stretch);
+									createFont = true;
+								}
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_WEIGHT)))) {
+								// weight of the characters
+								int weight = Integer.parseInt(value);
+								OS.pango_font_description_set_weight(fontDesc, weight);
+								createFont = true;
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_FG_COLOR)))) {
+								// RGB value of the format "u,u,u"
+								style.foreground = colorFromString(display, value);
+							} else if (name.equals(getString(ATK.atk_text_attribute_get_name(ATK.ATK_TEXT_ATTR_BG_COLOR)))) {
+								// RGB value of the format "u,u,u"
+								style.background = colorFromString(display, value);
+							} else {
+								//TODO language and direction
+							}
+						} catch (NumberFormatException ex) {}
+					}
+					current = OS.g_slist_next (current);
+				}
+				if (createFont) {
+					style.font = Font.gtk_new(display, fontDesc);
+				}
+
+				AccessibleTextAttributeEvent event = new AccessibleTextAttributeEvent(accessible);
+				event.start = (int)/*64*/start_offset;
+				event.end = (int)/*64*/end_offset;
+				event.textStyle = style;
+				event.attributes = attributes;
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.setTextAttributes(event);
+				}
+				if (style.font != null) {
+					style.font.dispose();
+				}
+				if (style.foreground != null) {
+					style.foreground.dispose();
+				}
+				if (style.background != null) {
+					style.background.dispose();
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.set_run_attributes != 0) {
+			parentResult = ATK.call (iface.set_run_attributes, atkObject, attrib_set, start_offset, end_offset);
+		}
+		return parentResult;
+	}
+
+	/*
+	 * Return a Color given a string of the form "n,n,n".
+	 * @param display must be the display for the accessible's control
+	 * @param rgbString must not be null
+	 */
+	static Color colorFromString(Display display, String rgbString) {
+		try {
+			int comma1 = rgbString.indexOf(',');
+			int comma2 = rgbString.indexOf(',', comma1 + 1);
+			int r = Integer.parseInt(rgbString.substring(0, comma1));
+			int g = Integer.parseInt(rgbString.substring(comma1 + 1, comma2));
+			int b = Integer.parseInt(rgbString.substring(comma2 + 1, rgbString.length()));
+			return new Color(display, r, g, b);
+		} catch (NumberFormatException ex) {}
+		return null;
+	}
+
+//	void atk_editable_text_set_text_contents (AtkEditableText *text, const gchar *string);
+	static int /*long*/ atkEditableText_set_text_contents (int /*long*/ atkObject, int /*long*/ string) {
+		if (DEBUG) print ("-->atkEditableText_set_text_contents");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				event.start = 0;
+				String text = object.getText ();
+				event.end = text == null ? 0 : text.length ();
+				event.string = getString (string);
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.replaceText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.set_text_contents != 0) {
+			parentResult = ATK.call (iface.set_text_contents, atkObject, string);
+		}
+		return parentResult;
+	}
+
+//	void atk_editable_text_insert_text (AtkEditableText *text, const gchar *string, gint length, gint *position);
+	static int /*long*/ atkEditableText_insert_text (int /*long*/ atkObject, int /*long*/ string, int /*long*/ string_length, int /*long*/ position) {
+		if (DEBUG) print ("-->atkEditableText_insert_text");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				int[] pos = new int [1];
+				OS.memmove (pos, position, OS.PTR_SIZEOF);
+				event.start = event.end = pos[0];
+				event.string = getString (string);
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.replaceText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.insert_text != 0) {
+			parentResult = ATK.call (iface.insert_text, atkObject, string, string_length, position);
+		}
+		return parentResult;
+	}
+
+//	void atk_editable_text_copy_text (AtkEditableText *text, gint start_pos, gint end_pos);
+	static int /*long*/ atkEditableText_copy_text(int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
+		if (DEBUG) print ("-->atkEditableText_copy_text");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				event.start = (int)/*64*/start_pos;
+				event.end = (int)/*64*/end_pos;
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.copyText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.copy_text != 0) {
+			parentResult = ATK.call (iface.copy_text, atkObject, start_pos, end_pos);
+		}
+		return parentResult;
+	}
+
+//	void atk_editable_text_cut_text (AtkEditableText *text, gint start_pos, gint end_pos);
+	static int /*long*/ atkEditableText_cut_text (int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
+		if (DEBUG) print ("-->atkEditableText_cut_text");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				event.start = (int)/*64*/start_pos;
+				event.end = (int)/*64*/end_pos;
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.cutText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.cut_text != 0) {
+			parentResult = ATK.call (iface.cut_text, atkObject, start_pos, end_pos);
+		}
+		return parentResult;
+	}
+	
+//	void atk_editable_text_delete_text (AtkEditableText *text, gint start_pos, gint end_pos);
+	static int /*long*/ atkEditableText_delete_text (int /*long*/ atkObject, int /*long*/ start_pos, int /*long*/ end_pos) {
+		if (DEBUG) print ("-->atkEditableText_delete_text");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				event.start = (int)/*64*/start_pos;
+				event.end = (int)/*64*/end_pos;
+				event.string = "";
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.replaceText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.delete_text != 0) {
+			parentResult = ATK.call (iface.delete_text, atkObject, start_pos, end_pos);
+		}
+		return parentResult;
+	}
+
+//	void atk_editable_text_paste_text (AtkEditableText *text, gint position);
+	static int /*long*/ atkEditableText_paste_text (int /*long*/ atkObject, int /*long*/ position) {
+		if (DEBUG) print ("-->atkEditableText_paste_text");
+		AccessibleObject object = getAccessibleObject (atkObject);
+		if (object != null) {
+			Accessible accessible = object.accessible;
+			Vector listeners = accessible.accessibleEditableTextListeners;
+			int length = listeners.size();
+			if (length > 0) {
+				AccessibleEditableTextEvent event = new AccessibleEditableTextEvent(accessible);
+				event.start = (int)/*64*/position;
+				for (int i = 0; i < length; i++) {
+					AccessibleEditableTextListener listener = (AccessibleEditableTextListener) listeners.elementAt(i);
+					listener.pasteText(event);
+				}
+				return ACC.OK.equals(event.result) ? 1 : 0;
+			}
+		}
+		int /*long*/ parentResult = 0;
+		AtkEditableTextIface iface = getEditableTextIface (atkObject);
+		if (iface != null && iface.paste_text != 0) {
+			parentResult = ATK.call (iface.paste_text, atkObject, position);
+		}
+		return parentResult;
+	}
+	
 	static AtkHypertextIface getHypertextIface (int /*long*/ atkObject) {
 		if (ATK.g_type_is_a (OS.g_type_parent (OS.G_OBJECT_TYPE (atkObject)), ATK.ATK_TYPE_HYPERTEXT())) {
 			AtkHypertextIface iface = new AtkHypertextIface ();
diff --git a/org/eclipse/swt/accessibility/AccessibleTableCellEvent.java b/org/eclipse/swt/accessibility/AccessibleTableCellEvent.java
index 47ceff4..59c6fe6 100644
--- a/org/eclipse/swt/accessibility/AccessibleTableCellEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleTableCellEvent.java
@@ -47,7 +47,7 @@ public AccessibleTableCellEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleTableCellEvent {"
+	return "AccessibleTableCellEvent {" //$NON-NLS-1$
 		+ " accessibles=" + accessibles   //$NON-NLS-1$
 		+ " isSelected=" + isSelected   //$NON-NLS-1$
 		+ " count=" + count   //$NON-NLS-1$
diff --git a/org/eclipse/swt/accessibility/AccessibleTableEvent.java b/org/eclipse/swt/accessibility/AccessibleTableEvent.java
index a4dcc9b..ff059d7 100644
--- a/org/eclipse/swt/accessibility/AccessibleTableEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleTableEvent.java
@@ -56,7 +56,7 @@ public AccessibleTableEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleTableEvent {"
+	return "AccessibleTableEvent {" //$NON-NLS-1$
 		+ "accessible=" + accessible   //$NON-NLS-1$
 		+ " accessibles=" + accessibles   //$NON-NLS-1$
 		+ " string=" + result   //$NON-NLS-1$
diff --git a/org/eclipse/swt/accessibility/AccessibleTextAttributeEvent.java b/org/eclipse/swt/accessibility/AccessibleTextAttributeEvent.java
index 96dc631..aa6ccfa 100644
--- a/org/eclipse/swt/accessibility/AccessibleTextAttributeEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleTextAttributeEvent.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
+ * Copyright (c) 2009, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -15,21 +15,61 @@ import org.eclipse.swt.internal.*;
 
 /**
  * Instances of this class are sent as a result of accessibility clients
- * sending AccessibleAttribute messages to an accessible object.
+ * sending AccessibleAttribute or AccessibleEditableText messages to an
+ * accessible object.
  *
  * @see AccessibleAttributeListener
  * @see AccessibleAttributeAdapter
+ * @see AccessibleEditableTextListener
+ * @see AccessibleEditableTextAdapter
  *
  * @since 3.6
  */
 public class AccessibleTextAttributeEvent extends SWTEventObject {
 
+	/**
+	 * [in] the 0-based text offset for which to return attribute information
+	 * 
+	 * @see AccessibleAttributeListener#getTextAttributes
+	 */
 	public int offset;
+
+	/**
+	 * [in/out] the starting and ending offsets of the character range
+	 * 
+	 * @see AccessibleAttributeListener#getTextAttributes
+	 * @see AccessibleEditableTextListener#setTextAttributes
+	 */
 	public int start, end;
+
+	/**
+	 * [in/out] the TextStyle of the character range
+	 * 
+	 * @see AccessibleAttributeListener#getTextAttributes
+	 * @see AccessibleEditableTextListener#setTextAttributes
+	 */
 	public TextStyle textStyle;
+	
+	/**
+	 * [in/out] an array of alternating key and value Strings
+	 * that represent attributes that do not correspond to TextStyle fields
+	 * 
+	 * @see AccessibleAttributeListener#getTextAttributes
+	 * @see AccessibleEditableTextListener#setTextAttributes
+	 */
 	public String [] attributes;
 
-	static final long serialVersionUID = 0L; // TODO: run serialver -show
+	/**
+	 * [out] Set this field to {@link ACC#OK} if the operation
+	 * was completed successfully, and null otherwise.
+	 * 
+	 * @see AccessibleEditableTextListener#setTextAttributes
+	 * 
+	 * @since 3.7
+	 */
+	public String result;
+
+	static final long serialVersionUID = 7131825608864332802L;
 
 /**
  * Constructs a new instance of this class.
@@ -47,11 +87,23 @@ public AccessibleTextAttributeEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleAttributeEvent {"
+	return "AccessibleAttributeEvent {" //$NON-NLS-1$
 		+ " offset=" + offset   //$NON-NLS-1$
-		+ " startOffset=" + start   //$NON-NLS-1$
-		+ " endOffset=" + end   //$NON-NLS-1$
+		+ " start=" + start   //$NON-NLS-1$
+		+ " end=" + end   //$NON-NLS-1$
 		+ " textStyle=" + textStyle   //$NON-NLS-1$
+		+ " attributes=" + toAttributeString(attributes)   //$NON-NLS-1$
+		+ " result=" + result   //$NON-NLS-1$
 		+ "}";  //$NON-NLS-1$
 }
+
+String toAttributeString(String [] attributes) {
+	if (attributes == null || attributes.length == 0) return "" + attributes;   //$NON-NLS-1$
+	StringBuffer attributeString = new StringBuffer();
+	for (int i = 0; i < attributes.length; i++) {
+		attributeString.append(attributes[i]);
+		attributeString.append((i % 2 == 0) ? ":" : ";");   //$NON-NLS-1$   //$NON-NLS-2$
+	}
+	return attributeString.toString();
+}
 }
diff --git a/org/eclipse/swt/accessibility/AccessibleTextExtendedListener.java b/org/eclipse/swt/accessibility/AccessibleTextExtendedListener.java
index c4374ef..59ec5df 100644
--- a/org/eclipse/swt/accessibility/AccessibleTextExtendedListener.java
+++ b/org/eclipse/swt/accessibility/AccessibleTextExtendedListener.java
@@ -16,8 +16,8 @@ package org.eclipse.swt.accessibility;
  * <p>
  * After creating an instance of a class that implements
  * this interface it can be added to an accessible using the
- * <code>addAccessibleTextExtendedListener</code> method and removed using
- * the <code>removeAccessibleTextExtendedListener</code> method.
+ * <code>addAccessibleTextListener</code> method and removed using
+ * the <code>removeAccessibleTextListener</code> method.
  * </p>
  *
  * @see AccessibleTextExtendedAdapter
diff --git a/org/eclipse/swt/accessibility/AccessibleValueEvent.java b/org/eclipse/swt/accessibility/AccessibleValueEvent.java
index de42982..5c4b579 100644
--- a/org/eclipse/swt/accessibility/AccessibleValueEvent.java
+++ b/org/eclipse/swt/accessibility/AccessibleValueEvent.java
@@ -43,7 +43,7 @@ public AccessibleValueEvent(Object source) {
  * @return a string representation of the event
  */
 public String toString () {
-	return "AccessibleValueEvent {"
+	return "AccessibleValueEvent {" //$NON-NLS-1$
 		+ "value=" + value   //$NON-NLS-1$
 		+ "}";  //$NON-NLS-1$
 }
diff --git a/org/eclipse/swt/browser/Browser.java b/org/eclipse/swt/browser/Browser.java
index 88c8297..7914e1c 100644
--- a/org/eclipse/swt/browser/Browser.java
+++ b/org/eclipse/swt/browser/Browser.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -23,11 +23,14 @@ import org.eclipse.swt.widgets.*;
  * </p>
  * <dl>
  * <dt><b>Styles:</b></dt>
- * <dd>MOZILLA</dd>
+ * <dd>MOZILLA, WEBKIT</dd>
  * <dt><b>Events:</b></dt>
  * <dd>CloseWindowListener, LocationListener, OpenWindowListener, ProgressListener, StatusTextListener, TitleListener, VisibilityWindowListener</dd>
  * </dl>
  * <p>
+ * Note: At most one of the styles MOZILLA and WEBKIT may be specified.
+ * </p>
+ * <p>
  * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
@@ -83,45 +86,15 @@ public Browser (Composite parent, int style) {
 	userStyle = style;
 
 	String platform = SWT.getPlatform ();
-	Display display = parent.getDisplay ();
-	if ("gtk".equals (platform)) display.setData (NO_INPUT_METHOD, null); //$NON-NLS-1$
-	String classNames[] = null;
-	if ((style & SWT.MOZILLA) != 0) {
-		classNames = new String[] {"org.eclipse.swt.browser.Mozilla"}; //$NON-NLS-1$
-	} else {
-		if ("win32".equals (platform) || "wpf".equals (platform)) { //$NON-NLS-1$ $NON-NLS-2$
-			classNames = new String[] {"org.eclipse.swt.browser.IE"}; //$NON-NLS-1$
-		} else if ("motif".equals (platform)) { //$NON-NLS-1$
-			classNames = new String[] {"org.eclipse.swt.browser.Mozilla"}; //$NON-NLS-1$
-		} else if ("gtk".equals (platform)) { //$NON-NLS-1$
-			String property = System.getProperty (PROPERTY_USEWEBKITGTK);
-			if (property != null && property.equalsIgnoreCase ("true")) { //$NON-NLS-1$
-				classNames = new String[] {"org.eclipse.swt.browser.WebKit", "org.eclipse.swt.browser.Mozilla"}; //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				classNames = new String[] {"org.eclipse.swt.browser.Mozilla"}; //$NON-NLS-1$
-			}
-		} else if ("carbon".equals (platform) || "cocoa".equals (platform)) { //$NON-NLS-1$
-			classNames = new String[] {"org.eclipse.swt.browser.Safari"}; //$NON-NLS-1$
-		} else if ("photon".equals (platform)) { //$NON-NLS-1$
-			classNames = new String[] {"org.eclipse.swt.browser.Voyager"}; //$NON-NLS-1$
-		} else {
-			dispose ();
-			SWT.error (SWT.ERROR_NO_HANDLES);
-		}
+	if ("gtk".equals (platform)) { //$NON-NLS-1$
+		parent.getDisplay ().setData (NO_INPUT_METHOD, null);
 	}
 
-	for (int i = 0; i < classNames.length; i++) {
-		try {
-			Class clazz = Class.forName (classNames[i]);
-			webBrowser = (WebBrowser)clazz.newInstance ();
-			if (webBrowser != null) {
-				webBrowser.setBrowser (this);
-				if (webBrowser.create (parent, style)) return;
-			}
-		} catch (ClassNotFoundException e) {
-		} catch (IllegalAccessException e) {
-		} catch (InstantiationException e) {
-		}
+	webBrowser = new BrowserFactory ().createWebBrowser (style);
+	if (webBrowser != null) {
+		webBrowser.setBrowser (this);
+		webBrowser.create (parent, style);
+		return;
 	}
 	dispose ();
 	SWT.error (SWT.ERROR_NO_HANDLES);
@@ -149,8 +122,11 @@ static Composite checkParent (Composite parent) {
 }
 
 static int checkStyle(int style) {
+	if ((style & (SWT.MOZILLA | SWT.WEBKIT)) == (SWT.MOZILLA | SWT.WEBKIT)) {
+		style &= ~SWT.WEBKIT;
+	}
 	String platform = SWT.getPlatform ();
-	if ((style & SWT.MOZILLA) != 0) {
+	if ((style & SWT.MOZILLA) != 0 || (style & SWT.WEBKIT) != 0) {
 		if ("carbon".equals (platform)) return style | SWT.EMBEDDED; //$NON-NLS-1$
 		if ("motif".equals (platform)) return style | SWT.EMBEDDED; //$NON-NLS-1$
 		return style;
diff --git a/org/eclipse/swt/browser/BrowserFactory.java b/org/eclipse/swt/browser/BrowserFactory.java
new file mode 100644
index 0000000..37a332a
--- /dev/null
+++ b/org/eclipse/swt/browser/BrowserFactory.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.browser;
+
+import org.eclipse.swt.SWT;
+
+class BrowserFactory {
+
+	static boolean mozillaLibsLoaded;
+
+WebBrowser createWebBrowser (int style) {
+	boolean webkitInstalled = WebKit.isInstalled ();
+	if ((style & SWT.MOZILLA) != 0 || (!webkitInstalled && (style & SWT.WEBKIT) == 0)) {
+		mozillaLibsLoaded = true;
+		return new Mozilla ();
+	}
+	if (!webkitInstalled) return null;
+
+	/*
+	* A crash can occur if XULRunner-1.9.2.x is loaded into a process where WebKit has
+	* already been loaded, as a result of conflicting versions of the sqlite3 library.
+	* Loading these native renderers in the reverse order does not cause a problem.  The
+	* crash workaround is to ensure that Mozilla's libraries (if available) are always
+	* loaded before WebKit's.
+	*/
+	if (!mozillaLibsLoaded) {
+		mozillaLibsLoaded = true;
+		Mozilla.LoadLibraries ();
+	}
+	return new WebKit ();
+}
+
+}
diff --git a/org/eclipse/swt/browser/BrowserFunction.java b/org/eclipse/swt/browser/BrowserFunction.java
index f87aef0..b77ed22 100644
--- a/org/eclipse/swt/browser/BrowserFunction.java
+++ b/org/eclipse/swt/browser/BrowserFunction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.swt.browser;
 
+import java.util.Random;
+
 import org.eclipse.swt.*;
 
 /**
@@ -46,6 +48,7 @@ public class BrowserFunction {
 	String functionString;
 	int index;
 	boolean isEvaluate;
+	long token;
 
 /**
  * Constructs a new instance of this class, which will be invokable
@@ -83,6 +86,10 @@ BrowserFunction (Browser browser, String name, boolean create) {
 	browser.checkWidget ();
 	this.browser = browser;
 	this.name = name;
+
+	Random random = new Random ();
+	long value = random.nextLong ();
+	token = ((value & 0xFFE0000000000000L) >>> 11) ^ (value & 0x1FFFFFFFFFFFFFL);
 	if (create) browser.webBrowser.createFunction (this);
 }
 
@@ -119,12 +126,14 @@ void dispose (boolean remove) {
  * javascript boolean -> <code>java.lang.Boolean</code>
  * javascript array whose elements are all of supported types -> <code>java.lang.Object[]</code>
  *
- * If any of the Javascript arguments are of unsupported types then the
+ * If any of the javascript arguments are of unsupported types then the
  * function invocation will fail and this method will not be called.
  * 
- * This method must return a value with one of these supported types to
- * the javascript caller (note that any subclass of <code>java.lang.Number</code>
- * will be successfully converted to a javascript number).
+ * This method must return a value with one of these supported java types to
+ * the javascript caller.  Note that <code>null</code> values are converted
+ * to javascript's <code>null</code> value (not <code>undefined</code>), and
+ * instances of any <code>java.lang.Number</code> subclass will be converted
+ * to a javascript number.
  * 
  * @param arguments the javascript arguments converted to java equivalents 
  * @return the value to return to the javascript caller
diff --git a/org/eclipse/swt/browser/External.java b/org/eclipse/swt/browser/External.java
index e888c32..f971969 100644
--- a/org/eclipse/swt/browser/External.java
+++ b/org/eclipse/swt/browser/External.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * Copyright (c) 2008, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -68,11 +68,11 @@ void createCOMInterfaces () {
 		public int /*long*/ method6 (int /*long*/[] args) {return canSetProperty (args[0], args[1], args[2]);}
 	};
 
-	external = new XPCOMObject (new int[] {2, 0, 0, 3}) {
+	external = new XPCOMObject (new int[] {2, 0, 0, 4}) {
 		public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);}
 		public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();}
 		public int /*long*/ method2 (int /*long*/[] args) {return Release ();}
-		public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2]);}
+		public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2], args[3]);}
 	};
 	
 }
@@ -475,7 +475,7 @@ nsIVariant convertToJS (Object value, nsIComponentManager componentManager) {
 	result[0] = 0;
 
 	if (value == null) {
-		rc = variant.SetAsVoid ();
+		rc = variant.SetAsEmpty ();
 		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
 		return variant;
 	}
@@ -541,25 +541,35 @@ nsIVariant convertToJS (Object value, nsIComponentManager componentManager) {
 	return null;
 }
 
-int callJava (int functionId, int /*long*/ args, int /*long*/ returnPtr) {
+int callJava (int functionId, int /*long*/ tokenVariant, int /*long*/ args, int /*long*/ returnPtr) {
 	Object key = new Integer (functionId);
 	BrowserFunction function = (BrowserFunction)Mozilla.AllFunctions.get (key);
 	Object returnValue = null;
 
 	if (function != null) {
-		short[] type = new short[1]; /* PRUint16 */
-		nsIVariant variant = new nsIVariant (args);
-		int rc = variant.GetDataType (type);
-		if (rc != XPCOM.NS_OK) Mozilla.error (rc);
 		try {
-			Object temp = (Object[])convertToJava (variant, type[0]);
-			if (temp instanceof Object[]) {
-				Object[] arguments = (Object[])temp;
-				try {
-					returnValue = function.function (arguments);
-				} catch (Exception e) {
-					/* exception during function invocation */
-					returnValue = WebBrowser.CreateErrorString (e.getLocalizedMessage ());
+			short[] type = new short[1]; /* PRUint16 */
+			nsIVariant variant = new nsIVariant (tokenVariant);
+			int rc = variant.GetDataType (type);
+			if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+			Object temp = convertToJava (variant, type[0]);
+			type[0] = 0;
+			if (temp instanceof Number) {
+				long token = ((Number)temp).longValue ();
+				if (token == function.token) {
+					variant = new nsIVariant (args);
+					rc = variant.GetDataType (type);
+					if (rc != XPCOM.NS_OK) Mozilla.error (rc);
+					temp = convertToJava (variant, type[0]);
+					if (temp instanceof Object[]) {
+						Object[] arguments = (Object[])temp;
+						try {
+							returnValue = function.function (arguments);
+						} catch (Exception e) {
+							/* exception during function invocation */
+							returnValue = WebBrowser.CreateErrorString (e.getLocalizedMessage ());
+						}
+					}
 				}
 			}
 		} catch (IllegalArgumentException e) {
diff --git a/org/eclipse/swt/browser/Mozilla.java b/org/eclipse/swt/browser/Mozilla.java
index af44dda..78944cc 100644
--- a/org/eclipse/swt/browser/Mozilla.java
+++ b/org/eclipse/swt/browser/Mozilla.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -62,22 +62,25 @@ class Mozilla extends WebBrowser {
 	static int BrowserCount, NextJSFunctionIndex = 1;
 	static Hashtable AllFunctions = new Hashtable ();
 	static Listener DisplayListener;
-	static boolean Initialized, IsPre_1_8, IsPre_1_9, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued;
+	static boolean Initialized, IsPre_1_8, IsPre_1_9, IsXULRunner, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued;
+	static String MozillaPath;
 	static String oldProxyHostFTP, oldProxyHostHTTP, oldProxyHostSSL;
 	static int oldProxyPortFTP = -1, oldProxyPortHTTP = -1, oldProxyPortSSL = -1, oldProxyType = -1;
 	static byte[] pathBytes_JSEvaluateUCScriptForPrincipals;
 	static byte[] pathBytes_NSFree;
 
 	/* XULRunner detect constants */
+	static final String GCC3 = "-gcc3"; //$NON-NLS-1$
 	static final String GRERANGE_LOWER = "1.8.1.2"; //$NON-NLS-1$
 	static final String GRERANGE_LOWER_FALLBACK = "1.8"; //$NON-NLS-1$
 	static final boolean LowerRangeInclusive = true;
 	static final String GRERANGE_UPPER = "1.9.*"; //$NON-NLS-1$
 	static final boolean UpperRangeInclusive = true;
+	static final String PROPERTY_ABI = "abi"; //$NON-NLS-1$
 
 	static final int MAX_PORT = 65535;
 	static final String DEFAULTVALUE_STRING = "default"; //$NON-NLS-1$
-	static final String SEPARATOR_OS = System.getProperty ("file.separator"); //$NON-NLS-1$
+	static final char SEPARATOR_OS = System.getProperty ("file.separator").charAt (0); //$NON-NLS-1$
 	static final String ABOUT_BLANK = "about:blank"; //$NON-NLS-1$
 	static final String DISPOSE_LISTENER_HOOKED = "org.eclipse.swt.browser.Mozilla.disposeListenerHooked"; //$NON-NLS-1$
 	static final String HEADER_CONTENTTYPE = "Content-Type"; //$NON-NLS-1
@@ -106,10 +109,12 @@ class Mozilla extends WebBrowser {
 	static final String SHUTDOWN_PERSIST = "shutdown-persist"; //$NON-NLS-1$
 	static final String STARTUP = "startup"; //$NON-NLS-1$
 	static final String TOKENIZER_LOCALE = ","; //$NON-NLS-1$
+	static final String TRUE = "true"; //$NON-NLS-1$
 	static final String URI_FILEROOT = "file:///"; //$NON-NLS-1$
 	static final String XULRUNNER_PATH = "org.eclipse.swt.browser.XULRunnerPath"; //$NON-NLS-1$
 
 	// TEMPORARY CODE
+	static final String FACTORIES_REGISTERED = "org.eclipse.swt.browser.MozillaFactoriesRegistered"; //$NON-NLS-1$
 	static final String GRE_INITIALIZED = "org.eclipse.swt.browser.XULRunnerInitialized"; //$NON-NLS-1$
 
 	static {
@@ -207,7 +212,7 @@ class Mozilla extends WebBrowser {
 					XPCOMInit.XPCOMGlueShutdown ();
 					XPCOMInitWasGlued = false;
 				}
-				Initialized = false;
+				Initialized = PerformedVersionCheck = false;
 			}
 
 			void revertProxySettings (nsIPrefService prefService) {
@@ -528,117 +533,143 @@ class Mozilla extends WebBrowser {
 		};
 	}
 
-public boolean create (Composite parent, int style) {
-	delegate = new MozillaDelegate (browser);
-	final Display display = parent.getDisplay ();
+static String Arch () {
+	String osArch = System.getProperty("os.arch"); //$NON-NLS-1$
+	if (osArch.equals ("i386") || osArch.equals ("i686")) return "x86"; //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
+	if (osArch.equals ("amd64")) return "x86_64"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osArch.equals ("IA64N")) return "ia64_32"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osArch.equals ("IA64W")) return "ia64"; //$NON-NLS-1$ $NON-NLS-2$
+	return osArch;
+}
 
-	int /*long*/[] result = new int /*long*/[1];
-	if (!Initialized) {
-		boolean initLoaded = false;
-		boolean isXULRunner = false;
+static void LoadLibraries () {
+	boolean initLoaded = false;
 
-		String greInitialized = System.getProperty (GRE_INITIALIZED); 
-		if ("true".equals (greInitialized)) { //$NON-NLS-1$
-			/* 
-			 * Another browser has already initialized xulrunner in this process,
-			 * so just bind to it instead of trying to initialize a new one.
-			 */
-			Initialized = true;
-		}
+	String greInitialized = System.getProperty (GRE_INITIALIZED);
+	if (TRUE.equals (greInitialized)) {
+		/* 
+		 * Another browser has already initialized xulrunner in this process,
+		 * so just bind to it instead of trying to initialize a new one.
+		 */
+		Initialized = true;
+	}
 
-		String mozillaPath = System.getProperty (XULRUNNER_PATH);
-		/*
-		* Browser clients that ship XULRunner in a plug-in must have an opportunity 
-		* to set the org.eclipse.swt.browser.XULRunnerPath system property to point
-		* at their XULRunner before the first Mozilla-based Browser is created.  To
-		* facilitate this, reflection is used to reference non-existent class
-		* org.eclipse.swt.browser.XULRunnerInitializer the first time a Mozilla-
-		* based Browser is created.   A client wishing to use this hook can do so
-		* by creating a fragment of org.eclipse.swt that implements this class and
-		* sets the system property in its static initializer.
-		*/
-		if (mozillaPath == null) {
-			try {
-				Class.forName ("org.eclipse.swt.browser.XULRunnerInitializer"); //$NON-NLS-1$
-				mozillaPath = System.getProperty (XULRUNNER_PATH);
-			} catch (ClassNotFoundException e) {
-				/* no fragment is providing this class, which is the typical case */
-			}
+	MozillaPath = System.getProperty (XULRUNNER_PATH);
+	/*
+	* Browser clients that ship XULRunner in a plug-in must have an opportunity 
+	* to set the org.eclipse.swt.browser.XULRunnerPath system property to point
+	* at their XULRunner before the first Mozilla-based Browser is created.  To
+	* facilitate this, reflection is used to reference non-existent class
+	* org.eclipse.swt.browser.XULRunnerInitializer the first time a Mozilla-
+	* based Browser is created.   A client wishing to use this hook can do so
+	* by creating a fragment of org.eclipse.swt that implements this class and
+	* sets the system property in its static initializer.
+	*/
+	if (MozillaPath == null) {
+		try {
+			Class.forName ("org.eclipse.swt.browser.XULRunnerInitializer"); //$NON-NLS-1$
+			MozillaPath = System.getProperty (XULRUNNER_PATH);
+		} catch (ClassNotFoundException e) {
+			/* no fragment is providing this class, which is the typical case */
 		}
+	}
 
-		if (mozillaPath == null) {
-			try {
-				String libName = delegate.getSWTInitLibraryName ();
-				Library.loadLibrary (libName);
-				initLoaded = true;
-			} catch (UnsatisfiedLinkError e) {
-				/* 
-				* If this library failed to load then do not attempt to detect a
-				* xulrunner to use.  The Browser may still be usable if MOZILLA_FIVE_HOME
-				* points at a GRE. 
-				*/
-			}
+	if (MozillaPath == null) {
+		try {
+			String libName = MozillaDelegate.GetSWTInitLibraryName ();
+			Library.loadLibrary (libName);
+			initLoaded = true;
+		} catch (UnsatisfiedLinkError e) {
+			/* 
+			* If this library failed to load then do not attempt to detect a
+			* xulrunner to use.  The Browser may still be usable if MOZILLA_FIVE_HOME
+			* points at a GRE. 
+			*/
+		}
+	} else {
+		/* ensure that client-supplied path is using correct separators */
+		if (SEPARATOR_OS == '/') {
+			MozillaPath = MozillaPath.replace ('\\', SEPARATOR_OS);
 		} else {
-			mozillaPath += SEPARATOR_OS + MozillaDelegate.getLibraryName ();
-			isXULRunner = true;
+			MozillaPath = MozillaPath.replace ('/', SEPARATOR_OS);
 		}
 
-		if (initLoaded) {
-			/* attempt to discover a XULRunner to use as the GRE */
-			mozillaPath = initDiscoverXULRunner ();
-			isXULRunner = mozillaPath.length () > 0;
+		MozillaPath += SEPARATOR_OS + MozillaDelegate.getLibraryName ();
+		IsXULRunner = true;
+	}
 
-			/*
-			 * Test whether the detected XULRunner can be used as the GRE before loading swt's
-			 * XULRunner library.  If it cannot be used then fall back to attempting to use
-			 * the GRE pointed to by MOZILLA_FIVE_HOME.
-			 * 
-			 * One case where this will fail is attempting to use a 64-bit xulrunner while swt
-			 * is running in 32-bit mode, or vice versa.
-			 */
-			if (isXULRunner) {
-				byte[] path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
-				int rc = XPCOMInit.XPCOMGlueStartup (path);
-				if (rc != XPCOM.NS_OK) {
-					mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
-					if (Device.DEBUG) System.out.println ("cannot use detected XULRunner: " + mozillaPath); //$NON-NLS-1$
+	if (initLoaded) {
+		/* attempt to discover a XULRunner to use as the GRE */
+		MozillaPath = InitDiscoverXULRunner ();
+		IsXULRunner = MozillaPath.length () > 0;
 
-					/* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
-					int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
-					if (ptr == 0) {
-						isXULRunner = false;
+		/*
+		 * Test whether the detected XULRunner can be used as the GRE before loading swt's
+		 * XULRunner library.  If it cannot be used then fall back to attempting to use
+		 * the GRE pointed to by MOZILLA_FIVE_HOME.
+		 * 
+		 * One case where this will fail is attempting to use a 64-bit xulrunner while swt
+		 * is running in 32-bit mode, or vice versa.
+		 */
+		if (IsXULRunner) {
+			byte[] bytes = MozillaDelegate.wcsToMbcs (null, MozillaPath, true);
+			int rc = XPCOMInit.XPCOMGlueStartup (bytes);
+			if (rc != XPCOM.NS_OK) {
+				MozillaPath = MozillaPath.substring (0, MozillaPath.lastIndexOf (SEPARATOR_OS));
+				if (Device.DEBUG) System.out.println ("cannot use detected XULRunner: " + MozillaPath); //$NON-NLS-1$
+
+				/* attempt to XPCOMGlueStartup the GRE pointed at by MOZILLA_FIVE_HOME */
+				int /*long*/ ptr = C.getenv (MozillaDelegate.wcsToMbcs (null, XPCOM.MOZILLA_FIVE_HOME, true));
+				if (ptr == 0) {
+					IsXULRunner = false;
+				} else {
+					int length = C.strlen (ptr);
+					bytes = new byte[length];
+					C.memmove (bytes, ptr, length);
+					MozillaPath = new String (MozillaDelegate.mbcsToWcs (null, bytes));
+					/*
+					 * Attempting to XPCOMGlueStartup a mozilla-based GRE != xulrunner can
+					 * crash, so don't attempt unless the GRE appears to be xulrunner.
+					 */
+					if (MozillaPath.indexOf ("xulrunner") == -1) { //$NON-NLS-1$
+						IsXULRunner = false;	
 					} else {
-						int length = C.strlen (ptr);
-						byte[] buffer = new byte[length];
-						C.memmove (buffer, ptr, length);
-						mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, buffer));
-						/*
-						 * Attempting to XPCOMGlueStartup a mozilla-based GRE != xulrunner can
-						 * crash, so don't attempt unless the GRE appears to be xulrunner.
-						 */
-						if (mozillaPath.indexOf("xulrunner") == -1) { //$NON-NLS-1$
-							isXULRunner = false;	
-						} else {
-							mozillaPath += SEPARATOR_OS + MozillaDelegate.getLibraryName ();
-							path = MozillaDelegate.wcsToMbcs (null, mozillaPath, true);
-							rc = XPCOMInit.XPCOMGlueStartup (path);
-							if (rc != XPCOM.NS_OK) {
-								isXULRunner = false;
-								mozillaPath = mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
-								if (Device.DEBUG) System.out.println ("failed to start as XULRunner: " + mozillaPath); //$NON-NLS-1$
+						MozillaPath += SEPARATOR_OS + MozillaDelegate.getLibraryName ();
+						bytes = MozillaDelegate.wcsToMbcs (null, MozillaPath, true);
+						rc = XPCOMInit.XPCOMGlueStartup (bytes);
+						if (rc == XPCOM.NS_OK) {
+							/* ensure that client-supplied path is using correct separators */
+							if (SEPARATOR_OS == '/') {
+								MozillaPath = MozillaPath.replace ('\\', SEPARATOR_OS);
+							} else {
+								MozillaPath = MozillaPath.replace ('/', SEPARATOR_OS);
 							}
+						} else {
+							IsXULRunner = false;
+							MozillaPath = MozillaPath.substring (0, MozillaPath.lastIndexOf (SEPARATOR_OS));
+							if (Device.DEBUG) System.out.println ("failed to start as XULRunner: " + MozillaPath); //$NON-NLS-1$
 						}
-					} 
-				}
-				if (isXULRunner) {
-					XPCOMInitWasGlued = true;
-				}
+					}
+				} 
+			}
+			if (IsXULRunner) {
+				XPCOMInitWasGlued = true;
 			}
 		}
+	}
+}
+
+public void create (Composite parent, int style) {
+	delegate = new MozillaDelegate (browser);
+	final Display display = parent.getDisplay ();
+
+	int /*long*/[] result = new int /*long*/[1];
+	if (!Initialized) {
+		LoadLibraries ();
 
-		if (isXULRunner) {
+		if (IsXULRunner) {
 			/* load swt's xulrunner library and invoke XPCOMGlueStartup to load xulrunner's dependencies */
-			mozillaPath = initXULRunner (mozillaPath);
+			MozillaPath = initXULRunner (MozillaPath);
 		} else {
 			/*
 			* If style SWT.MOZILLA was specified then this initialization has already
@@ -646,31 +677,31 @@ public boolean create (Composite parent, int style) {
 			*/
 			if ((style & SWT.MOZILLA) != 0) {
 				browser.dispose ();
-				String errorString = (mozillaPath != null && mozillaPath.length () > 0) ?
-					" [Failed to use detected XULRunner: " + mozillaPath + "]" :
+				String errorString = (MozillaPath != null && MozillaPath.length () > 0) ?
+					" [Failed to use detected XULRunner: " + MozillaPath + "]" :
 					" [Could not detect registered XULRunner to use]";	//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				SWT.error (SWT.ERROR_NO_HANDLES, null, errorString);
 			}
 
 			/* load swt's mozilla library */
-			mozillaPath = initMozilla (mozillaPath);
+			MozillaPath = initMozilla (MozillaPath);
 		}
 
 		if (!Initialized) {
 			/* create LocationProvider, which tells mozilla where to find things on the file system */
 			String profilePath = delegate.getProfilePath ();
-			LocationProvider = new AppFileLocProvider (mozillaPath, profilePath, isXULRunner);
+			LocationProvider = new AppFileLocProvider (MozillaPath, profilePath, IsXULRunner);
 			LocationProvider.AddRef ();
 
 			/* write external.xpt to the file system if needed */
 			initExternal (profilePath);
 
 			/* load swt's mozilla/xulrunner library and invoke appropriate Init function */
-			initXPCOM (mozillaPath, isXULRunner);
+			initXPCOM (MozillaPath, IsXULRunner);
 		}
 
 		/* attempt to initialize JavaXPCOM in the detected XULRunner */
-		if (isXULRunner) initJavaXPCOM (mozillaPath);
+		if (IsXULRunner) initJavaXPCOM (MozillaPath);
 
 		/* get the nsIComponentManager and nsIServiceManager, used throughout initialization */
 		int rc = XPCOM.NS_GetComponentManager (result);
@@ -700,17 +731,31 @@ public boolean create (Composite parent, int style) {
 		/* init the event handler if needed */
 		initSpinup (componentManager);
 
+		/*
+		 * Check for the property indicating that factories have already been registered,
+		 * in which case this browser should not overwrite them with its own.
+		 */
+		boolean factoriesRegistered = false;
+		String propertyString = System.getProperty (FACTORIES_REGISTERED);
+		if (TRUE.equals (propertyString)) {
+			factoriesRegistered = true;
+		}
+
 		/* init our WindowCreator, which mozilla uses for the creation of child browsers in external Shells */
-		initWindowCreator (serviceManager);
+		if (!factoriesRegistered) {
+			initWindowCreator (serviceManager);
+		}
 
 		/* notify mozilla that the profile directory has been changed from its default value */
-		initProfile (serviceManager, isXULRunner);
+		initProfile (serviceManager, IsXULRunner);
 
 		/* init preference values that give desired mozilla behaviours */ 
 		initPreferences (serviceManager, componentManager);
 
-		/* init our various factories that mozilla can invoke as needed */ 
-		initFactories (serviceManager, componentManager, isXULRunner);
+		/* init our various factories that mozilla can invoke as needed */
+		if (!factoriesRegistered) {
+			initFactories (serviceManager, componentManager, IsXULRunner);
+		}
 
 		serviceManager.Release ();
 		componentManager.Release ();
@@ -780,16 +825,28 @@ public boolean create (Composite parent, int style) {
 		nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar (result[0]);
 		result[0] = 0;
 
-		HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory ();
-		dialogFactory.AddRef ();
-		byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
-		byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "swtHelperAppLauncherDialog", true); //$NON-NLS-1$
-		rc = componentRegistrar.RegisterFactory (XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress ());
-		if (rc != XPCOM.NS_OK) {
-			browser.dispose ();
-			error (rc);
+		/*
+		 * Check for the property indicating that factories have already been registered,
+		 * in which case this browser should not overwrite them with its own.
+		 */
+		boolean factoriesRegistered = false;
+		String propertyString = System.getProperty (FACTORIES_REGISTERED);
+		if (TRUE.equals (propertyString)) {
+			factoriesRegistered = true;
+		}
+
+		if (!factoriesRegistered) {
+			HelperAppLauncherDialogFactory dialogFactory = new HelperAppLauncherDialogFactory ();
+			dialogFactory.AddRef ();
+			byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CONTRACTID, true);
+			byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "swtHelperAppLauncherDialog", true); //$NON-NLS-1$
+			rc = componentRegistrar.RegisterFactory (XPCOM.NS_HELPERAPPLAUNCHERDIALOG_CID, aClassName, aContractID, dialogFactory.getAddress ());
+			if (rc != XPCOM.NS_OK) {
+				browser.dispose ();
+				error (rc);
+			}
+			dialogFactory.Release ();
 		}
-		dialogFactory.Release ();
 
 		/*
 		* Check for the availability of the pre-1.8 implementation of nsIDocShell
@@ -830,16 +887,18 @@ public boolean create (Composite parent, int style) {
 				new nsISupports (result[0]).Release ();
 				result[0] = 0;
 
-				DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8 ();
-				downloadFactory_1_8.AddRef ();
-				aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_TRANSFER_CONTRACTID, true);
-				aClassName = MozillaDelegate.wcsToMbcs (null, "swtTransfer", true); //$NON-NLS-1$
-				rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress ());
-				if (rc != XPCOM.NS_OK) {
-					browser.dispose ();
-					error (rc);
+				if (!factoriesRegistered) {
+					DownloadFactory_1_8 downloadFactory_1_8 = new DownloadFactory_1_8 ();
+					downloadFactory_1_8.AddRef ();
+					byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_TRANSFER_CONTRACTID, true);
+					byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "swtTransfer", true); //$NON-NLS-1$
+					rc = componentRegistrar.RegisterFactory (XPCOM.NS_DOWNLOAD_CID, aClassName, aContractID, downloadFactory_1_8.getAddress ());
+					if (rc != XPCOM.NS_OK) {
+						browser.dispose ();
+						error (rc);
+					}
+					downloadFactory_1_8.Release ();
 				}
-				downloadFactory_1_8.Release ();
 			} else { /* >= 1.9 */
 				IsPre_1_9 = false;
 			}
@@ -847,6 +906,8 @@ public boolean create (Composite parent, int style) {
 		result[0] = 0;
 		interfaceRequestor.Release ();
 		componentRegistrar.Release ();
+
+		System.setProperty (FACTORIES_REGISTERED, TRUE);
 	}
 	componentManager.Release ();
 
@@ -930,8 +991,6 @@ public boolean create (Composite parent, int style) {
 	for (int i = 0; i < folderEvents.length; i++) {
 		browser.addListener (folderEvents[i], listener);
 	}
-
-	return true;
 }
 
 public boolean back () {
@@ -1543,7 +1602,18 @@ public Object getWebBrowser () {
 	return null;
 }
 
-String initDiscoverXULRunner () {
+static String InitDiscoverXULRunner () {
+	/*
+	* Up to three XULRunner detection attempts will be made:
+	*
+	* 1. A XULRunner with 1.8.1.2 <= version < 2.0, and with "abi" property matching
+	* the current runtime.  Note that XULRunner registrations began including abi
+	* info as of version 1.9.x, so older versions than this will not be returned.
+	* 2. A XULRunner with 1.8.1.2 <= version < 2.0.  XULRunner 1.8.1.2 is the oldest
+	* release that enables the Browser to expose its JavaXPCOM interfaces to clients.
+	* 3. A XULRunner with 1.8.0.1 <= version < 2.0.
+	*/
+
 	GREVersionRange range = new GREVersionRange ();
 	byte[] bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER, true);
 	int /*long*/ lower = C.malloc (bytes.length);
@@ -1557,26 +1627,37 @@ String initDiscoverXULRunner () {
 	range.upper = upper;
 	range.upperInclusive = UpperRangeInclusive;
 
+	GREProperty property = new GREProperty ();
+	bytes = MozillaDelegate.wcsToMbcs (null, PROPERTY_ABI, true);
+	int /*long*/ name = C.malloc (bytes.length);
+	C.memmove (name, bytes, bytes.length);
+	property.property = name;
+	bytes = MozillaDelegate.wcsToMbcs (null, Arch () + GCC3, true);
+	int /*long*/ value = C.malloc (bytes.length);
+	C.memmove (value, bytes, bytes.length);
+	property.value = value;
+
 	int length = XPCOMInit.PATH_MAX;
 	int /*long*/ greBuffer = C.malloc (length);
-	int /*long*/ propertiesPtr = C.malloc (2 * C.PTR_SIZEOF);
-	int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+	int rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, property, 1, greBuffer, length);
 
-	/*
-	 * A XULRunner was not found that supports wrapping of XPCOM handles as JavaXPCOM objects.
-	 * Drop the lower version bound and try to detect an earlier XULRunner installation.
-	 */
 	if (rc != XPCOM.NS_OK) {
-		C.free (lower);
-		bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER_FALLBACK, true);
-		lower = C.malloc (bytes.length);
-		C.memmove (lower, bytes, bytes.length);
-		range.lower = lower;
-		rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, propertiesPtr, 0, greBuffer, length);
+		/* Fall back to attempt #2 */
+		rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, property, 0, greBuffer, length); /* note: propertiesLength is 0 */
+		if (rc != XPCOM.NS_OK) {
+			/* Fall back to attempt #3 */
+			C.free (lower);
+			bytes = MozillaDelegate.wcsToMbcs (null, GRERANGE_LOWER_FALLBACK, true);
+			lower = C.malloc (bytes.length);
+			C.memmove (lower, bytes, bytes.length);
+			range.lower = lower;
+			rc = XPCOMInit.GRE_GetGREPathWithProperties (range, 1, property, 0, greBuffer, length); /* note: propertiesLength is 0 */
+		}
 	}
+	C.free (value);
+	C.free (name);
 	C.free (lower);
 	C.free (upper);
-	C.free (propertiesPtr);
 
 	String result = null;
 	if (rc == XPCOM.NS_OK) {
@@ -1618,9 +1699,6 @@ void initExternal (String profilePath) {
 void initFactories (nsIServiceManager serviceManager, nsIComponentManager componentManager, boolean isXULRunner) {
 	int /*long*/[] result = new int /*long*/[1];
 
-	PromptService2Factory factory = new PromptService2Factory ();
-	factory.AddRef ();
-
 	int rc = componentManager.QueryInterface (nsIComponentRegistrar.NS_ICOMPONENTREGISTRAR_IID, result);
 	if (rc != XPCOM.NS_OK) {
 		browser.dispose ();
@@ -1635,6 +1713,8 @@ void initFactories (nsIServiceManager serviceManager, nsIComponentManager compon
 	result[0] = 0;
 	componentRegistrar.AutoRegister (0);	 /* detect the External component */ 
 
+	PromptService2Factory factory = new PromptService2Factory ();
+	factory.AddRef ();
 	byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true); 
 	byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "swtPromptService", true); //$NON-NLS-1$
 	rc = componentRegistrar.RegisterFactory (XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress ());
@@ -1734,6 +1814,13 @@ String initMozilla (String mozillaPath) {
 		byte[] buffer = new byte[length];
 		C.memmove (buffer, ptr, length);
 		mozillaPath = new String (MozillaDelegate.mbcsToWcs (null, buffer));
+
+		/* ensure that client-supplied path is using correct separators */
+		if (SEPARATOR_OS == '/') {
+			mozillaPath = mozillaPath.replace ('\\', SEPARATOR_OS);
+		} else {
+			mozillaPath = mozillaPath.replace ('/', SEPARATOR_OS);
+		}
 	} else {
 		browser.dispose ();
 		SWT.error (SWT.ERROR_NO_HANDLES, null, " [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]"); //$NON-NLS-1$
@@ -1826,7 +1913,7 @@ void initXPCOM (String mozillaPath, boolean isXULRunner) {
 		browser.dispose ();
 		SWT.error (SWT.ERROR_NO_HANDLES, null, " [MOZILLA_FIVE_HOME may not point at an embeddable GRE] [NS_InitEmbedding " + mozillaPath + " error " + rc + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 	}
-	System.setProperty (GRE_INITIALIZED, "true"); //$NON-NLS-1$
+	System.setProperty (GRE_INITIALIZED, TRUE);
 }
 
 void initPreferences (nsIServiceManager serviceManager, nsIComponentManager componentManager) {
@@ -2384,6 +2471,7 @@ String initXULRunner (String mozillaPath) {
 	 */ 
 	return mozillaPath.substring (0, mozillaPath.lastIndexOf (SEPARATOR_OS));
 }
+
 public boolean isBackEnabled () {
 	int /*long*/[] result = new int /*long*/[1];
 	int rc = webBrowser.QueryInterface (nsIWebNavigation.NS_IWEBNAVIGATION_IID, result);
@@ -2841,8 +2929,7 @@ void hookDOMListeners (nsIDOMEventTarget target, boolean isTop) {
 void unhookDOMListeners () {
 	int /*long*/[] result = new int /*long*/[1];
 	int rc = webBrowser.GetContentDOMWindow (result);
-	if (rc != XPCOM.NS_OK) error (rc);
-	if (result[0] == 0) error (XPCOM.NS_ERROR_NO_INTERFACE);
+	if (rc != XPCOM.NS_OK || result[0] == 0) return;
 
 	nsIDOMWindow window = new nsIDOMWindow (result[0]);
 	result[0] = 0;
@@ -3048,7 +3135,9 @@ int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateF
 		Enumeration elements = functions.elements ();
 		while (elements.hasMoreElements ()) {
 			BrowserFunction function = (BrowserFunction)elements.nextElement ();
-			execute (function.functionString);
+			if (!function.isEvaluate) {
+				execute (function.functionString);
+			}
 		}
 	}
 
@@ -3242,7 +3331,9 @@ int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateF
 				Enumeration elements = functions.elements ();
 				while (elements.hasMoreElements ()) {
 					BrowserFunction function = (BrowserFunction)elements.nextElement ();
-					execute (function.functionString);
+					if (!function.isEvaluate) {
+						execute (function.functionString);
+					}
 				}
 				/* 
 				* For Mozilla >= 1.9.2, when content is being set via nsIWebBrowserStream,
@@ -3343,27 +3434,27 @@ int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateF
 			nsIRequest request = new nsIRequest (aRequest);
 
 			int rc = request.QueryInterface (nsIChannel.NS_ICHANNEL_IID, result);
-			if (rc != XPCOM.NS_OK) error (rc);
-			if (result[0] == 0) error (XPCOM.NS_NOINTERFACE);
-			nsIChannel channel = new nsIChannel (result[0]);
-			result[0] = 0;
-			rc = channel.GetURI (result);
-			if (rc != XPCOM.NS_OK) error (rc);
-			if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
-			channel.Release ();
+			if (rc == XPCOM.NS_OK && result[0] != 0) {
+				nsIChannel channel = new nsIChannel (result[0]);
+				result[0] = 0;
+				rc = channel.GetURI (result);
+				if (rc != XPCOM.NS_OK) error (rc);
+				if (result[0] == 0) error (XPCOM.NS_ERROR_NULL_POINTER);
+				channel.Release ();
 
-			nsIURI uri = new nsIURI (result[0]);
-			result[0] = 0;
-			int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
-			rc = uri.GetSpec (aSpec);
-			if (rc != XPCOM.NS_OK) error (rc);
-			int length = XPCOM.nsEmbedCString_Length (aSpec);
-			int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
-			byte[] bytes = new byte[length];
-			XPCOM.memmove (bytes, buffer, length);
-			lastNavigateURL = new String (bytes);
-			XPCOM.nsEmbedCString_delete (aSpec);
-			uri.Release ();
+				nsIURI uri = new nsIURI (result[0]);
+				result[0] = 0;
+				int /*long*/ aSpec = XPCOM.nsEmbedCString_new ();
+				rc = uri.GetSpec (aSpec);
+				if (rc != XPCOM.NS_OK) error (rc);
+				int length = XPCOM.nsEmbedCString_Length (aSpec);
+				int /*long*/ buffer = XPCOM.nsEmbedCString_get (aSpec);
+				byte[] bytes = new byte[length];
+				XPCOM.memmove (bytes, buffer, length);
+				lastNavigateURL = new String (bytes);
+				XPCOM.nsEmbedCString_delete (aSpec);
+				uri.Release ();
+			}
 		}
 
 		/*
@@ -3574,7 +3665,7 @@ int DestroyBrowserWindow () {
 	browser.dispose ();
 	return XPCOM.NS_OK;
 }
-   	
+
 int SizeBrowserTo (int aCX, int aCY) {
 	size = new Point (aCX, aCY);
 	boolean isChrome = (chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) != 0;
@@ -3626,18 +3717,26 @@ int ExitModalEventLoop (int aStatus) {
 	return XPCOM.NS_OK;
 }
 
-/* nsIEmbeddingSiteWindow */ 
+/* nsIEmbeddingSiteWindow */
 
 int SetDimensions (int flags, int x, int y, int cx, int cy) {
+	boolean isChrome = (chromeFlags & nsIWebBrowserChrome.CHROME_OPENAS_CHROME) != 0;
 	if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_POSITION) != 0) {
 		location = new Point (x, y);
-		browser.getShell ().setLocation (x, y);
+		if (isChrome) {
+			browser.getShell ().setLocation (x, y);
+		}
 	}
 	if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_INNER) != 0) {
-		browser.setSize (cx, cy);
+		size = new Point (cx, cy);
+		if (isChrome) {
+			browser.setSize (cx, cy);
+		}
 	}
 	if ((flags & nsIEmbeddingSiteWindow.DIM_FLAGS_SIZE_OUTER) != 0) {
-		browser.getShell ().setSize (cx, cy);
+		if (isChrome) {
+			browser.getShell ().setSize (cx, cy);
+		}
 	}
 	return XPCOM.NS_OK;
 }
@@ -4306,6 +4405,7 @@ int HandleEvent (int /*long*/ event) {
 		rc = domMouseEvent.GetRelatedTarget (result);
 		if (rc != XPCOM.NS_OK) error (rc);
 		if (result[0] != 0) {
+			new nsISupports (result[0]).Release ();
 			domMouseEvent.Release ();
 			return XPCOM.NS_OK;
 		}
diff --git a/org/eclipse/swt/browser/MozillaDelegate.java b/org/eclipse/swt/browser/MozillaDelegate.java
index e2dda62..d5de1b3 100644
--- a/org/eclipse/swt/browser/MozillaDelegate.java
+++ b/org/eclipse/swt/browser/MozillaDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -113,7 +113,7 @@ String getProfilePath () {
 	return baseDir + Mozilla.SEPARATOR_OS + ".mozilla" + Mozilla.SEPARATOR_OS + "eclipse"; //$NON-NLS-1$ //$NON-NLS-2$
 }
 
-String getSWTInitLibraryName () {
+static String GetSWTInitLibraryName () {
 	return "swt-xpcominit"; //$NON-NLS-1$
 }
 
diff --git a/org/eclipse/swt/browser/WebBrowser.java b/org/eclipse/swt/browser/WebBrowser.java
index 8b93b11..31dd96b 100644
--- a/org/eclipse/swt/browser/WebBrowser.java
+++ b/org/eclipse/swt/browser/WebBrowser.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * Copyright (c) 2003, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -171,7 +171,7 @@ abstract class WebBrowser {
 		{19,	SWT.PAUSE},
 		{3,		SWT.BREAK},
 
-		/* WebKit/Safari-specific */
+		/* WebKit-specific */
 		{186,	';'},
 		{187,	'='},
 		{189,	'-'},
@@ -300,7 +300,7 @@ static void SetPendingCookies (Vector pendingCookies) {
 	}
 }
 
-public abstract boolean create (Composite parent, int style);
+public abstract void create (Composite parent, int style);
 
 static String CreateErrorString (String error) {
 	return ERROR_ID + error;
@@ -325,7 +325,7 @@ public void createFunction (BrowserFunction function) {
 		Object key = keys.nextElement ();
 		BrowserFunction current = (BrowserFunction)functions.get (key);
 		if (current.name.equals (function.name)) {
-			functions.remove (key);
+			deregisterFunction (current);
 			break;
 		}
 	}
@@ -339,6 +339,8 @@ public void createFunction (BrowserFunction function) {
 	buffer.append (function.name);
 	buffer.append ("() {var result = window.external.callJava("); //$NON-NLS-1$
 	buffer.append (function.index);
+	buffer.append (',');
+	buffer.append (function.token);
 	buffer.append (",Array.prototype.slice.call(arguments)); if (typeof result == 'string' && result.indexOf('"); //$NON-NLS-1$
 	buffer.append (ERROR_ID);
 	buffer.append ("') == 0) {var error = new Error(result.substring("); //$NON-NLS-1$
@@ -390,14 +392,20 @@ public Object evaluate (String script) throws SWTException {
 	buffer.append (functionName);
 	buffer.append (" == undefined) {window.external.callJava("); // $NON-NLS-1$
 	buffer.append (index);
+	buffer.append (',');
+	buffer.append (function.token);
 	buffer.append (", ['"); // $NON-NLS-1$
 	buffer.append (ERROR_ID);
 	buffer.append ("']);} else {try {var result = "); // $NON-NLS-1$
 	buffer.append (functionName);
 	buffer.append ("(); window.external.callJava("); // $NON-NLS-1$
 	buffer.append (index);
+	buffer.append (',');
+	buffer.append (function.token);
 	buffer.append (", [result]);} catch (e) {window.external.callJava("); // $NON-NLS-1$
 	buffer.append (index);
+	buffer.append (',');
+	buffer.append (function.token);
 	buffer.append (", ['"); // $NON-NLS-1$
 	buffer.append (ERROR_ID);
 	buffer.append ("' + e.message]);}}"); // $NON-NLS-1$
diff --git a/org/eclipse/swt/browser/WebKit.java b/org/eclipse/swt/browser/WebKit.java
index fa8840b..727a9ed 100644
--- a/org/eclipse/swt/browser/WebKit.java
+++ b/org/eclipse/swt/browser/WebKit.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -23,7 +23,7 @@ import org.eclipse.swt.internal.webkit.*;
 import org.eclipse.swt.layout.*;
 import org.eclipse.swt.widgets.*;
 
-public class WebKit extends WebBrowser {
+class WebKit extends WebBrowser {
 	int /*long*/ webView, webViewData, scrolledWindow;
 	int failureCount, lastKeyCode, lastCharCode;
 	String postData;
@@ -89,116 +89,127 @@ public class WebKit extends WebBrowser {
 	static Callback JSObjectHasPropertyProc, JSObjectGetPropertyProc, JSObjectCallAsFunctionProc;
 
 	static {
+
+		/*
+		* WebKitGTK is binary-incompatible between its 1.2 and 1.4 releases,
+		* so swt has separate libraries compiled against each.
+		*/
 		try {
-			Library.loadLibrary ("swt-webkit"); // $NON-NLS-1$
+			Library.loadLibrary ("swt-webkit12"); // $NON-NLS-1$
 			LibraryLoaded = true;
 		} catch (Throwable e) {
+			try {
+				Library.loadLibrary ("swt-webkit"); // $NON-NLS-1$
+				LibraryLoaded = true;
+			} catch (Throwable e2) {
+			}
 		}
 
-		Proc2 = new Callback (WebKit.class, "Proc", 2); //$NON-NLS-1$
-		if (Proc2.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		Proc3 = new Callback (WebKit.class, "Proc", 3); //$NON-NLS-1$
-		if (Proc3.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		Proc4 = new Callback (WebKit.class, "Proc", 4); //$NON-NLS-1$
-		if (Proc4.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		Proc5 = new Callback (WebKit.class, "Proc", 5); //$NON-NLS-1$
-		if (Proc5.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		Proc6 = new Callback (WebKit.class, "Proc", 6); //$NON-NLS-1$
-		if (Proc6.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		JSObjectHasPropertyProc = new Callback (WebKit.class, "JSObjectHasPropertyProc", 3); //$NON-NLS-1$
-		if (JSObjectHasPropertyProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		JSObjectGetPropertyProc = new Callback (WebKit.class, "JSObjectGetPropertyProc", 4); //$NON-NLS-1$
-		if (JSObjectGetPropertyProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-		JSObjectCallAsFunctionProc = new Callback (WebKit.class, "JSObjectCallAsFunctionProc", 6); //$NON-NLS-1$
-		if (JSObjectCallAsFunctionProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-
-		NativeClearSessions = new Runnable () {
-			public void run () {
-				if (!LibraryLoaded) return;
-				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-				if (jar == 0) return;
-				int /*long*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
-				int length = OS.g_slist_length (cookies);
-				int /*long*/ current = cookies;
-				for (int i = 0; i < length; i++) {
-					int /*long*/ cookie = OS.g_slist_data (current);
-					int /*long*/ expires = WebKitGTK.SoupCookie_expires (cookie);
-					if (expires == 0) {
-						/* indicates a session cookie */
-						WebKitGTK.soup_cookie_jar_delete_cookie (jar, cookie);
+		if (LibraryLoaded) {
+			Proc2 = new Callback (WebKit.class, "Proc", 2); //$NON-NLS-1$
+			if (Proc2.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			Proc3 = new Callback (WebKit.class, "Proc", 3); //$NON-NLS-1$
+			if (Proc3.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			Proc4 = new Callback (WebKit.class, "Proc", 4); //$NON-NLS-1$
+			if (Proc4.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			Proc5 = new Callback (WebKit.class, "Proc", 5); //$NON-NLS-1$
+			if (Proc5.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			Proc6 = new Callback (WebKit.class, "Proc", 6); //$NON-NLS-1$
+			if (Proc6.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			JSObjectHasPropertyProc = new Callback (WebKit.class, "JSObjectHasPropertyProc", 3); //$NON-NLS-1$
+			if (JSObjectHasPropertyProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			JSObjectGetPropertyProc = new Callback (WebKit.class, "JSObjectGetPropertyProc", 4); //$NON-NLS-1$
+			if (JSObjectGetPropertyProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+			JSObjectCallAsFunctionProc = new Callback (WebKit.class, "JSObjectCallAsFunctionProc", 6); //$NON-NLS-1$
+			if (JSObjectCallAsFunctionProc.getAddress () == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
+
+			NativeClearSessions = new Runnable () {
+				public void run () {
+					if (!LibraryLoaded) return;
+					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+					if (jar == 0) return;
+					int /*long*/ cookies = WebKitGTK.soup_cookie_jar_all_cookies (jar);
+					int length = OS.g_slist_length (cookies);
+					int /*long*/ current = cookies;
+					for (int i = 0; i < length; i++) {
+						int /*long*/ cookie = OS.g_slist_data (current);
+						int /*long*/ expires = WebKitGTK.SoupCookie_expires (cookie);
+						if (expires == 0) {
+							/* indicates a session cookie */
+							WebKitGTK.soup_cookie_jar_delete_cookie (jar, cookie);
+						}
+						OS.g_free (cookie);
+						current = OS.g_slist_next (current);
 					}
-					OS.g_free (cookie);
-					current = OS.g_slist_next (current);
 				}
-			}
-		};
-
-		NativeGetCookie = new Runnable () {
-			public void run () {
-				if (!LibraryLoaded) return;
-				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-				if (jar == 0) return;
-				byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
-				int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
-				if (uri == 0) return;
-				int /*long*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
-				WebKitGTK.soup_uri_free (uri);
-				if (cookies == 0) return;
-				int length = OS.strlen (cookies);
-				bytes = new byte[length];
-				C.memmove (bytes, cookies, length);
-				OS.g_free (cookies);
-				String allCookies = new String (Converter.mbcsToWcs (null, bytes));
-				StringTokenizer tokenizer = new StringTokenizer (allCookies, ";"); //$NON-NLS-1$
-				while (tokenizer.hasMoreTokens ()) {
-					String cookie = tokenizer.nextToken ();
-					int index = cookie.indexOf ('=');
-					if (index != -1) {
-						String name = cookie.substring (0, index).trim ();
-						if (name.equals (CookieName)) {
-							CookieValue = cookie.substring (index + 1).trim ();
-							return;
+			};
+
+			NativeGetCookie = new Runnable () {
+				public void run () {
+					if (!LibraryLoaded) return;
+					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+					if (jar == 0) return;
+					byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
+					int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
+					if (uri == 0) return;
+					int /*long*/ cookies = WebKitGTK.soup_cookie_jar_get_cookies (jar, uri, 0);
+					WebKitGTK.soup_uri_free (uri);
+					if (cookies == 0) return;
+					int length = OS.strlen (cookies);
+					bytes = new byte[length];
+					C.memmove (bytes, cookies, length);
+					OS.g_free (cookies);
+					String allCookies = new String (Converter.mbcsToWcs (null, bytes));
+					StringTokenizer tokenizer = new StringTokenizer (allCookies, ";"); //$NON-NLS-1$
+					while (tokenizer.hasMoreTokens ()) {
+						String cookie = tokenizer.nextToken ();
+						int index = cookie.indexOf ('=');
+						if (index != -1) {
+							String name = cookie.substring (0, index).trim ();
+							if (name.equals (CookieName)) {
+								CookieValue = cookie.substring (index + 1).trim ();
+								return;
+							}
 						}
 					}
 				}
-
-			}
-		};
-
-		NativeSetCookie = new Runnable () {
-			public void run () {
-				if (!LibraryLoaded) return;
-				int /*long*/ session = WebKitGTK.webkit_get_default_session ();
-				int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
-				int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
-				if (jar == 0) {
-					/* this happens if a navigation has not occurred yet */
-					WebKitGTK.soup_session_add_feature_by_type (session, type);
-					jar = WebKitGTK.soup_session_get_feature (session, type);
-				}
-				if (jar == 0) return;
-				byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
-				int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
-				if (uri == 0) return;
-				bytes = Converter.wcsToMbcs (null, CookieValue, true);
-				int /*long*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
-				if (cookie != 0) {
-					WebKitGTK.soup_cookie_jar_add_cookie (jar, cookie);
-					// the following line is intentionally commented
-					// WebKitGTK.soup_cookie_free (cookie);
-					CookieResult = true;
+			};
+
+			NativeSetCookie = new Runnable () {
+				public void run () {
+					if (!LibraryLoaded) return;
+					int /*long*/ session = WebKitGTK.webkit_get_default_session ();
+					int /*long*/ type = WebKitGTK.soup_cookie_jar_get_type ();
+					int /*long*/ jar = WebKitGTK.soup_session_get_feature (session, type);
+					if (jar == 0) {
+						/* this happens if a navigation has not occurred yet */
+						WebKitGTK.soup_session_add_feature_by_type (session, type);
+						jar = WebKitGTK.soup_session_get_feature (session, type);
+					}
+					if (jar == 0) return;
+					byte[] bytes = Converter.wcsToMbcs (null, CookieUrl, true);
+					int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
+					if (uri == 0) return;
+					bytes = Converter.wcsToMbcs (null, CookieValue, true);
+					int /*long*/ cookie = WebKitGTK.soup_cookie_parse (bytes, uri);
+					if (cookie != 0) {
+						WebKitGTK.soup_cookie_jar_add_cookie (jar, cookie);
+						// the following line is intentionally commented
+						// WebKitGTK.soup_cookie_free (cookie);
+						CookieResult = true;
+					}
+					WebKitGTK.soup_uri_free (uri);
 				}
-				WebKitGTK.soup_uri_free (uri);
-			}
-		};
+			};
 
-		if (NativePendingCookies != null) {
-			SetPendingCookies (NativePendingCookies);
-			NativePendingCookies = null;
+			if (NativePendingCookies != null) {
+				SetPendingCookies (NativePendingCookies);
+				NativePendingCookies = null;
+			}
 		}
 	}
 
@@ -209,6 +220,19 @@ static Browser findBrowser (int /*long*/ webView) {
 	return (Browser)Display.getCurrent ().findWidget (parent);
 }
 
+static boolean isInstalled () {
+	if (!LibraryLoaded) return false;
+	// TODO webkit_check_version() should take care of the following, but for some
+	// reason this symbol is missing from the latest build.  If it is present in
+	// Linux distro-provided builds then replace the following with this call.
+	int major = WebKitGTK.webkit_major_version ();
+	int minor = WebKitGTK.webkit_minor_version ();
+	int micro = WebKitGTK.webkit_micro_version ();
+	return major > MIN_VERSION[0] ||
+		(major == MIN_VERSION[0] && minor > MIN_VERSION[1]) ||
+		(major == MIN_VERSION[0] && minor == MIN_VERSION[1] && micro >= MIN_VERSION[2]);
+}
+
 static int /*long*/ JSObjectCallAsFunctionProc (int /*long*/ ctx, int /*long*/ function, int /*long*/ thisObject, int /*long*/ argumentCount, int /*long*/ arguments, int /*long*/ exception) {
 	if (WebKitGTK.JSValueIsObjectOfClass (ctx, thisObject, ExternalClass) == 0) {
 		return WebKitGTK.JSValueMakeUndefined (ctx);
@@ -395,22 +419,12 @@ int /*long*/ webViewProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ a
 	}
 }
 
-public boolean create (Composite parent, int style) {
-	if (!LibraryLoaded) return false;
-
+public void create (Composite parent, int style) {
 	if (ExternalClass == 0) {
-		// TODO webkit_check_version() should do the following, but for some reason
-		// this symbol is missing from the latest build.  If it is present in Linux
-		// distro-provided builds then replace the following with this call.
-		int major = WebKitGTK.webkit_major_version ();
-		int minor = WebKitGTK.webkit_minor_version ();
-		int micro = WebKitGTK.webkit_micro_version ();
-		boolean success = major > MIN_VERSION[0] ||
-			(major == MIN_VERSION[0] && minor > MIN_VERSION[1]) ||
-			(major == MIN_VERSION[0] && minor == MIN_VERSION[1] && micro >= MIN_VERSION[2]);
-		if (!success) return false;
-
 		if (Device.DEBUG) {
+			int major = WebKitGTK.webkit_major_version ();
+			int minor = WebKitGTK.webkit_minor_version ();
+			int micro = WebKitGTK.webkit_micro_version ();
 			System.out.println("WebKit version " + major + "." + minor + "." + micro); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 		JSClassDefinition jsClassDefinition = new JSClassDefinition ();
@@ -471,6 +485,8 @@ public boolean create (Composite parent, int style) {
     int /*long*/ settings = WebKitGTK.webkit_web_view_get_settings (webView);
     OS.g_object_set (settings, WebKitGTK.javascript_can_open_windows_automatically, 1, 0);
     OS.g_object_set (settings, WebKitGTK.enable_universal_access_from_file_uris, 1, 0);
+    byte[] bytes = Converter.wcsToMbcs (null, "UTF-8", true); // $NON-NLS-1$
+    OS.g_object_set (settings, WebKitGTK.default_encoding, bytes, 0);
 
     Listener listener = new Listener () {
 		public void handleEvent (Event event) {
@@ -534,7 +550,7 @@ public boolean create (Composite parent, int style) {
 			proxyHost = PROTOCOL_HTTP + proxyHost;
 		}
 		proxyHost += ":" + port; //$NON-NLS-1$
-		byte[] bytes = Converter.wcsToMbcs (null, proxyHost, true);
+		bytes = Converter.wcsToMbcs (null, proxyHost, true);
 		int /*long*/ uri = WebKitGTK.soup_uri_new (bytes);
 		if (uri != 0) {
 			OS.g_object_set (session, WebKitGTK.SOUP_SESSION_PROXY_URI, uri, 0);
@@ -557,8 +573,6 @@ public boolean create (Composite parent, int style) {
 	* be changed.
 	*/
 	browser.setData (KEY_CHECK_SUBWINDOW, Boolean.FALSE);
-
-	return true;
 }
 
 void addEventHandlers (boolean top) {
@@ -693,9 +707,9 @@ public String getText () {
 	OS.memmove (bytes, encoding, length);
 	String encodingString = new String (Converter.mbcsToWcs (null, bytes));
 
-	int /*long*/ string = OS.GString_str (data);
-	length = OS.GString_len (string);
+	length = OS.GString_len (data);
 	bytes = new byte[length];
+	int /*long*/ string = OS.GString_str (data);
 	C.memmove (bytes, string, length);
 
 	try {
@@ -1727,19 +1741,22 @@ int /*long*/ webkit_window_object_cleared (int /*long*/ web_view, int /*long*/ f
 
 int /*long*/ callJava (int /*long*/ ctx, int /*long*/ func, int /*long*/ thisObject, int /*long*/ argumentCount, int /*long*/ arguments, int /*long*/ exception) {
 	Object returnValue = null;
-	if (argumentCount == 2) {
+	if (argumentCount == 3) {
 		int /*long*/[] result = new int /*long*/[1];
 		C.memmove (result, arguments, C.PTR_SIZEOF);
 		int type = WebKitGTK.JSValueGetType (ctx, result[0]);
 		if (type == WebKitGTK.kJSTypeNumber) {
 			int index = ((Double)convertToJava (ctx, result[0])).intValue ();
 			result[0] = 0;
-			if (index > 0) {
-				Object key = new Integer (index);
+			Object key = new Integer (index);
+			C.memmove (result, arguments + C.PTR_SIZEOF, C.PTR_SIZEOF);
+			type = WebKitGTK.JSValueGetType (ctx, result[0]);
+			if (type == WebKitGTK.kJSTypeNumber) {
+				long token = ((Double)convertToJava (ctx, result[0])).longValue ();
 				BrowserFunction function = (BrowserFunction)functions.get (key);
-				if (function != null) {
+				if (function != null && token == function.token) {
 					try {
-						C.memmove (result, arguments + C.PTR_SIZEOF, C.PTR_SIZEOF);
+						C.memmove (result, arguments + 2 * C.PTR_SIZEOF, C.PTR_SIZEOF);
 						Object temp = convertToJava (ctx, result[0]);
 						if (temp instanceof Object[]) {
 							Object[] args = (Object[])temp;
diff --git a/org/eclipse/swt/custom/CBanner.java b/org/eclipse/swt/custom/CBanner.java
index 0a20c6b..69d4b03 100644
--- a/org/eclipse/swt/custom/CBanner.java
+++ b/org/eclipse/swt/custom/CBanner.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -102,7 +102,7 @@ public class CBanner extends Composite {
 public CBanner(Composite parent, int style) {
 	super(parent, checkStyle(style));
 	super.setLayout(new CBannerLayout());
-	resizeCursor = new Cursor(getDisplay(), SWT.CURSOR_SIZEWE);
+	resizeCursor = getDisplay().getSystemCursor(SWT.CURSOR_SIZEWE);
 	
 	listener = new Listener() {
 		public void handleEvent(Event e) {
@@ -261,7 +261,6 @@ void onDispose(Event event) {
 	notifyListeners(SWT.Dispose, event);
 	event.type = SWT.None;
 
-	if (resizeCursor != null) resizeCursor.dispose();
 	resizeCursor = null;
 	left = null;
 	right = null;
diff --git a/org/eclipse/swt/custom/CCombo.java b/org/eclipse/swt/custom/CCombo.java
index aceaced..49cae17 100644
--- a/org/eclipse/swt/custom/CCombo.java
+++ b/org/eclipse/swt/custom/CCombo.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -470,9 +470,9 @@ void createPopup(String[] items, int selectionIndex) {
 	if (foreground != null) list.setForeground (foreground);
 	if (background != null) list.setBackground (background);
 
-	int [] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};
+	int [] popupEvents = {SWT.Close, SWT.Paint};
 	for (int i=0; i<popupEvents.length; i++) popup.addListener (popupEvents [i], listener);
-	int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.Dispose};
+	int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut, SWT.Dispose};
 	for (int i=0; i<listEvents.length; i++) list.addListener (listEvents [i], listener);
 
 	if (items != null) list.setItems (items);
@@ -1077,6 +1077,30 @@ void listEvent (Event event) {
 			handleFocus (SWT.FocusIn);
 			break;
 		}
+		case SWT.FocusOut: {
+			/*
+			 * Behavior in Windows, GTK & Cocoa: When the arrow button is pressed
+			 * with the popup list visible, the following events are received-
+			 * popup control receives a deactivate event, 
+			 * list receives focus lost event, and then
+			 * arrow button receives a selection event. 
+			 * If we hide the popup in the focus out event, the selection event will
+			 * show it again. To prevent the popup from showing again, we will detect
+			 * this case and let the selection event of the arrow button hide the popup.
+			 */
+			if (!"carbon".equals(SWT.getPlatform())) {
+				Point point = arrow.toControl(getDisplay().getCursorLocation());
+				Point size = arrow.getSize();
+				Rectangle rect = new Rectangle(0, 0, size.x, size.y);
+				if (rect.contains(point)) {
+					boolean comboShellActivated = getDisplay ().getActiveShell () == getShell ();
+					if (!comboShellActivated) dropDown (false);
+					break;
+				}
+			}
+			dropDown (false);
+			break;
+		}
 		case SWT.MouseUp: {
 			if (event.button != 1) return;
 			dropDown (false);
@@ -1197,25 +1221,6 @@ void popupEvent(Event event) {
 			event.doit = false;
 			dropDown (false);
 			break;
-		case SWT.Deactivate:
-			/*
-			 * Bug in GTK. When the arrow button is pressed the popup control receives a
-			 * deactivate event and then the arrow button receives a selection event. If 
-			 * we hide the popup in the deactivate event, the selection event will show 
-			 * it again. To prevent the popup from showing again, we will let the selection 
-			 * event of the arrow button hide the popup.
-			 * In Windows, hiding the popup during the deactivate causes the deactivate 
-			 * to be called twice and the selection event to be disappear.
-			 */
-			if (!"carbon".equals(SWT.getPlatform())) {
-				Point point = arrow.toControl(getDisplay().getCursorLocation());
-				Point size = arrow.getSize();
-				Rectangle rect = new Rectangle(0, 0, size.x, size.y);
-				if (!rect.contains(point)) dropDown (false);
-			} else {
-				dropDown(false);
-			}
-			break;
 	}
 }
 public void redraw () {
@@ -1429,7 +1434,7 @@ public void setEnabled (boolean enabled) {
 }
 public boolean setFocus () {
 	checkWidget();
-	if (!isEnabled () || !isVisible ()) return false;
+	if (!isEnabled () || !getVisible ()) return false;
 	if (isFocusControl ()) return true;
 	return text.setFocus ();
 }
diff --git a/org/eclipse/swt/custom/CTabFolder.java b/org/eclipse/swt/custom/CTabFolder.java
index 6549c46..f9f31b7 100644
--- a/org/eclipse/swt/custom/CTabFolder.java
+++ b/org/eclipse/swt/custom/CTabFolder.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1038,6 +1038,9 @@ void initAccessible() {
 					}
 				}
 			}
+			if (childID == ACC.CHILDID_SELF) {
+				shortcut = "Ctrl+PageDown"; //$NON-NLS-1$
+			}
 			e.result = shortcut;
 		}
 	});
@@ -1964,13 +1967,12 @@ public void setBackground(Color[] colors, int[] percents) {
  * </pre>
  *
  * @param colors an array of Color that specifies the colors to appear in the gradient 
- *               in order of appearance left to right.  The value <code>null</code> clears the
- *               background gradient. The value <code>null</code> can be used inside the array of 
- *               Color to specify the background color.
+ *               in order of appearance from top to bottom or left to right.  The value
+ *               <code>null</code> clears the background gradient. The value <code>null</code>
+ *               can be used inside the array of Color to specify the background color.
  * @param percents an array of integers between 0 and 100 specifying the percent of the width 
  *                 of the widget at which the color should change.  The size of the <code>percents</code>
  *                 array must be one less than the size of the <code>colors</code> array.
- * 
  * @param vertical indicate the direction of the gradient. <code>True</code> is vertical and <code>false</code> is horizontal. 
  * 
  * @exception SWTException <ul>
@@ -2762,8 +2764,8 @@ void setSelection(int index, boolean notify) {
  */
 public void setSelectionBackground (Color color) {
 	checkWidget();
+	if (selectionBackground.equals(color)) return;
 	setSelectionHighlightGradientColor(null);
-	if (selectionBackground == color) return;
 	if (color == null) color = getDisplay().getSystemColor(SELECTION_BACKGROUND);
 	selectionBackground = color;
 	renderer.createAntialiasColors(); //TODO:  need better caching strategy
@@ -2798,11 +2800,11 @@ public void setSelectionBackground(Color[] colors, int[] percents) {
 	setSelectionBackground(colors, percents, false);
 }
 /**
- * Specify a gradient of colours to be draw in the background of the selected tab.
+ * Specify a gradient of colours to be drawn in the background of the selected tab.
  * For example to draw a vertical gradient that varies from dark blue to blue and then to
- * white, use the following call to setBackground:
+ * white, use the following call to setSelectionBackground:
  * <pre>
- *	cfolder.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 
+ *	cfolder.setSelectionBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 
  *		                           display.getSystemColor(SWT.COLOR_BLUE),
  *		                           display.getSystemColor(SWT.COLOR_WHITE), 
  *		                           display.getSystemColor(SWT.COLOR_WHITE)},
@@ -2810,13 +2812,14 @@ public void setSelectionBackground(Color[] colors, int[] percents) {
  * </pre>
  *
  * @param colors an array of Color that specifies the colors to appear in the gradient 
- *               in order of appearance left to right.  The value <code>null</code> clears the
+ *               in order of appearance from top to bottom.  The value <code>null</code> clears the
  *               background gradient. The value <code>null</code> can be used inside the array of 
- *               Color to specify the background color.
- * @param percents an array of integers between 0 and 100 specifying the percent of the width 
+ *               Color to specify the background color. For vertical gradients, the colors array
+ *               can optionally have an extra entry at the end to specify a highlight top color.
+ * @param percents an array of increasing integers between 0 and 100 specifying the percent of the width 
  *                 of the widget at which the color should change.  The size of the percents array must be one 
- *                 less than the size of the colors array.
- * 
+ *                 less than the size of the colors array, unless there is a highlight top color, in which
+ *                 case it must be exactly two less than the size of the colors array.
  * @param vertical indicate the direction of the gradient.  True is vertical and false is horizontal. 
  * 
  * @exception SWTException <ul>
@@ -2934,8 +2937,8 @@ void setSelectionHighlightGradientColor(Color start) {
  */
 public void setSelectionBackground(Image image) {
 	checkWidget();
-	setSelectionHighlightGradientColor(null);
 	if (image == selectionBgImage) return;
+	setSelectionHighlightGradientColor(null);
 	if (image != null) {
 		selectionGradientColors = null;
 		selectionGradientPercents = null;
@@ -2957,7 +2960,7 @@ public void setSelectionBackground(Image image) {
  */
 public void setSelectionForeground (Color color) {
 	checkWidget();
-	if (selectionForeground == color) return;
+	if (selectionForeground.equals(color)) return;
 	if (color == null) color = getDisplay().getSystemColor(SELECTION_FOREGROUND);
 	selectionForeground = color;
 	if (selectedIndex > -1) redraw();
diff --git a/org/eclipse/swt/custom/CTabFolderRenderer.java b/org/eclipse/swt/custom/CTabFolderRenderer.java
index 1a05182..3613304 100644
--- a/org/eclipse/swt/custom/CTabFolderRenderer.java
+++ b/org/eclipse/swt/custom/CTabFolderRenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.swt.custom;
 
+import java.util.Hashtable;
 import org.eclipse.swt.*;
 import org.eclipse.swt.graphics.*;
 import org.eclipse.swt.widgets.*;
@@ -52,6 +53,7 @@ public class CTabFolderRenderer {
 	 * We have to recompute the colors if the border color changes
 	 */
 	Color lastBorderColor = null;
+	static final String COLOR_CACHE = "org.eclipse.swt.custom.CTabFolderRenderer.ColorCache"; //$NON-NLS-1$
 	
 	//TOP_LEFT_CORNER_HILITE is laid out in reverse (ie. top to bottom)
 	//so can fade in same direction as right swoop curve
@@ -124,6 +126,45 @@ public class CTabFolderRenderer {
 		this.parent = parent;
 	}
 	
+	static Color getColor(Display display, RGB rgb) {
+		Color color;
+		Hashtable ColorCache = (Hashtable) display.getData(COLOR_CACHE);
+		if (ColorCache == null) {
+			ColorCache = new Hashtable();
+			display.setData(COLOR_CACHE, ColorCache);
+		}
+		Object [] colorData = (Object []) ColorCache.get(rgb);
+		if (colorData != null) {
+			color = (Color) colorData[0];
+			int refcount = ((Integer) colorData[1]).intValue();
+			colorData[1] = new Integer(refcount + 1);
+		} else {
+			color = new Color(display, rgb);
+			ColorCache.put(rgb, new Object[] {color, new Integer(1)});
+		}
+		return color;
+	}
+	
+	static void releaseColor(Display display, Color color) {
+		RGB rgb = color.getRGB();
+		Hashtable ColorCache = (Hashtable) display.getData(COLOR_CACHE);
+		if (ColorCache == null) {
+			ColorCache = new Hashtable();
+			display.setData(COLOR_CACHE, ColorCache);
+		}
+		Object [] colorData = (Object []) ColorCache.get(rgb);
+		if (colorData != null) {
+			int refcount = ((Integer) colorData[1]).intValue();
+			refcount--;
+			if (refcount == 0) {
+				ColorCache.remove(rgb);
+				color.dispose();
+			} else {
+				colorData[1] = new Integer(refcount);
+			}
+		}
+	}
+	
 	void antialias (int[] shape, Color innerColor, Color outerColor, GC gc){
 		// Don't perform anti-aliasing on Mac and WPF because the platform
 		// already does it.  The simple style also does not require anti-aliasing.
@@ -374,7 +415,8 @@ public class CTabFolderRenderer {
 	
 	void createAntialiasColors() {
 	    disposeAntialiasColors();
-	    lastBorderColor = parent.getDisplay().getSystemColor(BORDER1_COLOR);
+	    Display display = parent.getDisplay();
+	    lastBorderColor = display.getSystemColor(BORDER1_COLOR);
 	    RGB lineRGB = lastBorderColor.getRGB();
 	    /* compute the selected color */
 	    RGB innerRGB = parent.selectionBackground.getRGB();
@@ -392,7 +434,7 @@ public class CTabFolderRenderer {
 			int red = from.red + 2*(to.red - from.red)/3;
 			int green = from.green + 2*(to.green - from.green)/3;
 			int blue = from.blue + 2*(to.blue - from.blue)/3;
-			selectedOuterColor = new Color(parent.getDisplay(), red, green, blue);
+			selectedOuterColor = getColor(display, new RGB(red, green, blue));
 	    }
 	    if (innerRGB != null) {
 			RGB from = lineRGB;
@@ -400,7 +442,7 @@ public class CTabFolderRenderer {
 			int red = from.red + 2*(to.red - from.red)/3;
 			int green = from.green + 2*(to.green - from.green)/3;
 			int blue = from.blue + 2*(to.blue - from.blue)/3;
-			selectedInnerColor = new Color(parent.getDisplay(), red, green, blue);
+			selectedInnerColor = getColor(display, new RGB(red, green, blue));
 	    }
 	    /* compute the tabArea color */
 	    outerRGB = parent.getParent().getBackground().getRGB();
@@ -410,7 +452,7 @@ public class CTabFolderRenderer {
 			int red = from.red + 2*(to.red - from.red)/3;
 			int green = from.green + 2*(to.green - from.green)/3;
 			int blue = from.blue + 2*(to.blue - from.blue)/3;
-			tabAreaColor = new Color(parent.getDisplay(), red, green, blue);
+			tabAreaColor = getColor(display, new RGB(red, green, blue));
 	    }
 	}
 
@@ -436,13 +478,14 @@ public class CTabFolderRenderer {
 		selectionHighlightGradientColorsCache = new Color[fadeGradientSize];
 		int denom = fadeGradientSize - 1;
 
+		Display display = parent.getDisplay();
 		for (int i = 0; i < fadeGradientSize; i++) {
 			int propFrom = denom - i;
 			int propTo = i;
 			int red = (to.red * propTo + from.red * propFrom) / denom;
 			int green = (to.green * propTo  + from.green * propFrom) / denom;
 			int blue = (to.blue * propTo  + from.blue * propFrom) / denom;
-			selectionHighlightGradientColorsCache[i] = new Color(parent.getDisplay(), red, green, blue);
+			selectionHighlightGradientColorsCache[i] = getColor(display, new RGB(red, green, blue));
 		}
 	}
 	
@@ -457,23 +500,25 @@ public class CTabFolderRenderer {
 		disposeAntialiasColors();
 		disposeSelectionHighlightGradientColors();
 		if (fillColor != null) {
-		    fillColor.dispose();
+			releaseColor(parent.getDisplay(), fillColor);
 		    fillColor = null;
 		}
 	}
 	
 	void disposeAntialiasColors() {
-	    if (tabAreaColor != null) tabAreaColor.dispose();
-	    if (selectedInnerColor != null) selectedInnerColor.dispose();
-	    if (selectedOuterColor != null) selectedOuterColor.dispose();
+		Display display = parent.getDisplay();
+	    if (tabAreaColor != null) releaseColor(display, tabAreaColor);
+	    if (selectedInnerColor != null) releaseColor(display, selectedInnerColor);
+	    if (selectedOuterColor != null) releaseColor(display, selectedOuterColor);
 	    tabAreaColor = selectedInnerColor = selectedOuterColor = null;
 	}
 
 	void disposeSelectionHighlightGradientColors() {
 		if(selectionHighlightGradientColorsCache == null)
 			return;
+		Display display = parent.getDisplay();
 		for (int i = 0; i < selectionHighlightGradientColorsCache.length; i++) {
-			selectionHighlightGradientColorsCache[i].dispose();
+			releaseColor(display, selectionHighlightGradientColorsCache[i]);
 		}
 		selectionHighlightGradientColorsCache = null;
 	}
@@ -1624,7 +1669,7 @@ public class CTabFolderRenderer {
 		
 	Color getFillColor() {
 		if (fillColor == null) {
-			fillColor = new Color(parent.getDisplay(), CLOSE_FILL);
+			fillColor = getColor(parent.getDisplay(), CLOSE_FILL);
 		}
 		return fillColor;
 	}
diff --git a/org/eclipse/swt/custom/PopupList.java b/org/eclipse/swt/custom/PopupList.java
index c3bb6f0..4db6100 100644
--- a/org/eclipse/swt/custom/PopupList.java
+++ b/org/eclipse/swt/custom/PopupList.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -47,9 +47,12 @@ public PopupList(Shell parent) {
 * @since 3.0 
 */
 public PopupList(Shell parent, int style) {
+	int listStyle = SWT.SINGLE | SWT.V_SCROLL;
+	if ((style & SWT.H_SCROLL) != 0) listStyle |= SWT.H_SCROLL;
+	
 	shell = new Shell(parent, checkStyle(style));
 	
-	list = new List(shell, SWT.SINGLE | SWT.V_SCROLL);	
+	list = new List(shell, listStyle);	
 
 	// close dialog if user selects outside of the shell
 	shell.addListener(SWT.Deactivate, new Listener() {
diff --git a/org/eclipse/swt/custom/SashForm.java b/org/eclipse/swt/custom/SashForm.java
index 232652d..c944b71 100644
--- a/org/eclipse/swt/custom/SashForm.java
+++ b/org/eclipse/swt/custom/SashForm.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -107,6 +107,11 @@ Sash createSash() {
  * Returns SWT.HORIZONTAL if the controls in the SashForm are laid out side by side
  * or SWT.VERTICAL   if the controls in the SashForm are laid out top to bottom.
  * 
+ * <p>
+ * To retrieve the bidi orientation of the SashForm use <code>{@link #getStyle()}</code>
+ * and test if the SWT.RIGHT_TO_LEFT or SWT.LEFT_TO_RIGHT bits are set.
+ * </p>
+ * 
  * @return SWT.HORIZONTAL or SWT.VERTICAL
  */
 public int getOrientation() {
@@ -286,16 +291,27 @@ void onDragSash(Event event) {
  * out side by side.  If orientation is SWT.VERTICAL, lay the 
  * controls in the SashForm out top to bottom.
  * 
- * @param orientation SWT.HORIZONTAL or SWT.VERTICAL
+ * <p>
+ * Since 3.7, this method can also be called with SWT.RIGHT_TO_LEFT or SWT.LEFT_TO_RIGHT 
+ * to change the bidi orientation of the SashForm.
+ * </p>
+ * 
+ * @param orientation SWT.HORIZONTAL or SWT.VERTICAL, SWT.RIGHT_TO_LEFT or SWT.LEFT_TO_RIGHT
+ * 
+ * @see Control#setOrientation(int)
  * 
  * @exception SWTException <ul>
  *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
  *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- *    <li>ERROR_INVALID_ARGUMENT - if the value of orientation is not SWT.HORIZONTAL or SWT.VERTICAL
+ *    <li>ERROR_INVALID_ARGUMENT - if the value of orientation is not SWT.HORIZONTAL or SWT.VERTICAL, SWT.RIGHT_TO_LEFT or SWT.LEFT_TO_RIGHT
  * </ul>
  */
 public void setOrientation(int orientation) {
 	checkWidget();
+	if (orientation == SWT.RIGHT_TO_LEFT || orientation == SWT.LEFT_TO_RIGHT) {
+		super.setOrientation(orientation);
+		return;
+	}
 	if (getOrientation() == orientation) return;
 	if (orientation != SWT.HORIZONTAL && orientation != SWT.VERTICAL) {
 		SWT.error(SWT.ERROR_INVALID_ARGUMENT);
diff --git a/org/eclipse/swt/custom/StyledText.java b/org/eclipse/swt/custom/StyledText.java
index c6915a2..250f2d7 100644
--- a/org/eclipse/swt/custom/StyledText.java
+++ b/org/eclipse/swt/custom/StyledText.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -149,7 +149,6 @@ public class StyledText extends Canvas {
 	int lastTextChangeReplaceCharCount;
 	int lastCharCount = 0;
 	int lastLineBottom;					// the bottom pixel of the last line been replaced
-	boolean isMirrored;
 	boolean bidiColoring = false;		// apply the BIDI algorithm on text segments of the same color
 	Image leftCaretBitmap = null;
 	Image rightCaretBitmap = null;
@@ -1000,6 +999,7 @@ public class StyledText extends Canvas {
 				write("\\highlight");
 				write(colorIndex);
 			}
+			int fontStyle = style.fontStyle;
 			Font font = style.font;
 			if (font != null) {
 				int fontIndex = getFontIndex(font);
@@ -1008,13 +1008,13 @@ public class StyledText extends Canvas {
 				FontData fontData = font.getFontData()[0];
 				write("\\fs");
 				write(fontData.getHeight() * 2);
-			} else {
-				if ((style.fontStyle & SWT.BOLD) != 0) {
-					write("\\b"); 
-				}
-				if ((style.fontStyle & SWT.ITALIC) != 0) {
-					write("\\i"); 
-				}
+				fontStyle = fontData.getStyle();
+			}
+			if ((fontStyle & SWT.BOLD) != 0) {
+				write("\\b");
+			}
+			if ((fontStyle & SWT.ITALIC) != 0) {
+				write("\\i");
 			}
 			if (style.underline) {
 				write("\\ul");
@@ -1028,13 +1028,11 @@ public class StyledText extends Canvas {
 			// guard against invalid styles and let style processing continue
 			copyEnd = Math.max(copyEnd, lineIndex);
 			write(line, lineIndex, copyEnd);
-			if (font == null) {
-				if ((style.fontStyle & SWT.BOLD) != 0) {
-					write("\\b0"); 
-				}
-				if ((style.fontStyle & SWT.ITALIC) != 0) {
-					write("\\i0"); 
-				}
+			if ((fontStyle & SWT.BOLD) != 0) {
+				write("\\b0");
+			}
+			if ((style.fontStyle & SWT.ITALIC) != 0) {
+				write("\\i0");
 			}
 			if (style.underline) {
 				write("\\ul0");
@@ -1239,7 +1237,6 @@ public StyledText(Composite parent, int style) {
 	super.setForeground(getForeground());
 	super.setDragDetect(false);
 	Display display = getDisplay();
-	isMirrored = (super.getStyle() & SWT.MIRRORED) != 0;
 	fixedLineHeight = true;
 	if ((style & SWT.READ_ONLY) != 0) {
 		setEditable(false);
@@ -1523,7 +1520,7 @@ public void addVerifyListener(VerifyListener verifyListener) {
  */
 public void addWordMovementListener(MovementListener movementListener) {
 	checkWidget();
-	if (listener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
+	if (movementListener == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
 	addListener(WordNext, new StyledTextListener(movementListener));
 	addListener(WordPrevious, new StyledTextListener(movementListener));
 }
@@ -2469,20 +2466,16 @@ void doContentEnd() {
 		doLineEnd();
 	} else {
 		int length = content.getCharCount();		
-		if (caretOffset < length) {
-			setCaretOffset(length, SWT.DEFAULT);
-			showCaret();
-		}
+		setCaretOffset(length, SWT.DEFAULT);
+		showCaret();
 	}
 }
 /**
  * Moves the caret in front of the first character of the widget content.
  */
 void doContentStart() {
-	if (caretOffset > 0) {
-		setCaretOffset(0, SWT.DEFAULT);
-		showCaret();
-	}
+	setCaretOffset(0, SWT.DEFAULT);
+	showCaret();
 }
 /**
  * Moves the caret to the start of the selection if a selection exists.
@@ -2636,10 +2629,8 @@ void doLineEnd() {
 		int lineLength = content.getLine(caretLine).length();
 		lineEndOffset = lineOffset + lineLength;
 	}
-	if (caretOffset < lineEndOffset) {
-		setCaretOffset(lineEndOffset, PREVIOUS_OFFSET_TRAILING);
-		showCaret();
-	}
+	setCaretOffset(lineEndOffset, PREVIOUS_OFFSET_TRAILING);
+	showCaret();
 }
 /**
  * Moves the caret to the beginning of the line.
@@ -2655,10 +2646,8 @@ void doLineStart() {
 		lineOffset += offsets[lineIndex];
 		renderer.disposeTextLayout(layout);
 	}
-	if (caretOffset > lineOffset) {
-		setCaretOffset(lineOffset, OFFSET_LEADING);
-		showCaret();
-	}
+	setCaretOffset(lineOffset, OFFSET_LEADING);
+	showCaret();
 }
 /**
  * Moves the caret one line up and to the same character offset relative 
@@ -4471,12 +4460,7 @@ int getOffsetAtPoint(int x, int y, int[] trailing, boolean inTextOnly) {
  * @since 2.1.2
  */
 public int getOrientation () {
-	checkWidget();
-	if (IS_MAC) {
-		int style = super.getStyle();
-		return style & (SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT);
-	}
-	return isMirrored() ? SWT.RIGHT_TO_LEFT : SWT.LEFT_TO_RIGHT;
+	return super.getOrientation ();
 }
 /** 
  * Returns the index of the last partially visible line.
@@ -4770,14 +4754,6 @@ public String getSelectionText() {
 	}
 	return content.getTextRange(selection.x, selection.y - selection.x);
 }
-public int getStyle() {
-	int style = super.getStyle();
-	style &= ~(SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT | SWT.MIRRORED);
-	style |= getOrientation();
-	if (isMirrored()) style |= SWT.MIRRORED;
-	return style;
-}
-
 StyledTextEvent getBidiSegments(int lineOffset, String line) {
 	if (!isBidi()) return null;
 	if (!isListening(LineGetSegments)) {
@@ -5296,6 +5272,7 @@ int getVisualLineIndex(TextLayout layout, int offsetInLine) {
 		int lineY = layout.getLineBounds(lineIndex).y;
 		int caretY = getCaret().getLocation().y - topMargin - getLinePixel(getCaretLine());
 		if (lineY > caretY) lineIndex--;
+		caretAlignment = OFFSET_LEADING;
  	}
 	return lineIndex;
 }
@@ -5442,7 +5419,8 @@ Point getPointAtOffset(int offset) {
 	TextLayout layout = renderer.getTextLayout(lineIndex);
 	if (lineLength != 0  && offsetInLine <= lineLength) {
 		if (offsetInLine == lineLength) {
-			point = layout.getLocation(offsetInLine - 1, true);
+			offsetInLine = layout.getPreviousOffset(offsetInLine, SWT.MOVEMENT_CLUSTER); 
+			point = layout.getLocation(offsetInLine, true);
 		} else {
 			switch (caretAlignment) {
 				case OFFSET_LEADING:
@@ -5453,7 +5431,8 @@ Point getPointAtOffset(int offset) {
 					if (offsetInLine == 0) {
 						point = layout.getLocation(offsetInLine, false);
 					} else {
-						point = layout.getLocation(offsetInLine - 1, true);
+						offsetInLine = layout.getPreviousOffset(offsetInLine, SWT.MOVEMENT_CLUSTER); 
+						point = layout.getLocation(offsetInLine, true);
 					}
 					break;
 			}
@@ -6685,6 +6664,35 @@ void initializeAccessible() {
 			e.result = ACC.OK;
 		}
 	});
+	accessible.addAccessibleEditableTextListener(new AccessibleEditableTextListener() {
+		public void setTextAttributes(AccessibleTextAttributeEvent e) {
+			// This method must be implemented by the application
+			e.result = ACC.OK;
+		}
+		public void replaceText(AccessibleEditableTextEvent e) {
+			StyledText st = StyledText.this;
+			st.replaceTextRange(e.start, e.end - e.start, e.string);
+            e.result = ACC.OK;
+		}
+		public void pasteText(AccessibleEditableTextEvent e) {
+			StyledText st = StyledText.this;
+			st.setSelection(e.start);
+            st.paste();
+            e.result = ACC.OK;
+		}
+		public void cutText(AccessibleEditableTextEvent e) {
+			StyledText st = StyledText.this;
+			st.setSelection(e.start, e.end);
+            st.cut();
+            e.result = ACC.OK;
+		}
+		public void copyText(AccessibleEditableTextEvent e) {
+			StyledText st = StyledText.this;
+			st.setSelection(e.start, e.end);
+            st.copy();
+            e.result = ACC.OK;
+		}
+	});
 	accessible.addAccessibleAttributeListener(new AccessibleAttributeAdapter() {
 		public void getAttributes(AccessibleAttributeEvent e) {
 			StyledText st = StyledText.this;
@@ -7078,7 +7086,7 @@ boolean invokeBlockAction(int action) {
  * Temporary until SWT provides this
  */
 boolean isBidi() {
-	return IS_GTK || IS_MAC || BidiUtil.isBidiPlatform() || isMirrored;
+	return IS_GTK || IS_MAC || BidiUtil.isBidiPlatform() || isMirrored();
 }
 boolean isBidiCaret() {
 	return BidiUtil.isBidiPlatform();
@@ -7111,7 +7119,7 @@ boolean isLineDelimiter(int offset) {
  * 	is left oriented
  */
 boolean isMirrored() {
-	return isMirrored;
+	return (getStyle() & SWT.MIRRORED) != 0;
 }
 /**
  * Returns whether the widget can have only one line.
@@ -9236,28 +9244,17 @@ void setMouseWordSelectionAnchor() {
  * @since 2.1.2
  */
 public void setOrientation(int orientation) {
-	if ((orientation & (SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT)) == 0) { 
-		return;
-	}
-	if ((orientation & SWT.RIGHT_TO_LEFT) != 0 && (orientation & SWT.LEFT_TO_RIGHT) != 0) {
-		return;	
-	}
-	if ((orientation & SWT.RIGHT_TO_LEFT) != 0 && isMirrored()) {
-		return;	
-	} 
-	if ((orientation & SWT.LEFT_TO_RIGHT) != 0 && !isMirrored()) {
-		return;
-	}
-	if (!BidiUtil.setOrientation(this, orientation)) {
-		return;
+	int oldOrientation = getOrientation();
+	super.setOrientation(orientation);
+	int newOrientation = getOrientation();
+	if (oldOrientation != newOrientation) {
+		caretDirection = SWT.NULL;
+		resetCache(0, content.getLineCount());
+		setCaretLocation();
+		keyActionMap.clear();
+		createKeyBindings();
+		super.redraw();
 	}
-	isMirrored = (orientation & SWT.RIGHT_TO_LEFT) != 0;
-	caretDirection = SWT.NULL;
-	resetCache(0, content.getLineCount());
-	setCaretLocation();
-	keyActionMap.clear();
-	createKeyBindings();
-	super.redraw();
 }
 /** 
  * Sets the right margin.
diff --git a/org/eclipse/swt/custom/StyledTextRenderer.java b/org/eclipse/swt/custom/StyledTextRenderer.java
index f1e2fba..f22fed0 100644
--- a/org/eclipse/swt/custom/StyledTextRenderer.java
+++ b/org/eclipse/swt/custom/StyledTextRenderer.java
@@ -514,7 +514,8 @@ boolean hasLink(int offset) {
 				}
 			} else {
 				for (int i = 0; i < styles.length; i++) {
-					if (styles[i].start <= offset && offset < styles[i].start + styles[i].length && styles[i >> 1].underline && styles[i >> 1].underlineStyle == SWT.UNDERLINE_LINK) {
+					StyleRange style = styles[i]; 
+					if (style.start <= offset && offset < style.start + style.length && style.underline && style.underlineStyle == SWT.UNDERLINE_LINK) {
 						return true;
 					}
 				}
diff --git a/org/eclipse/swt/custom/TableEditor.java b/org/eclipse/swt/custom/TableEditor.java
index 2f57b5f..05278af 100644
--- a/org/eclipse/swt/custom/TableEditor.java
+++ b/org/eclipse/swt/custom/TableEditor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -111,8 +111,11 @@ Rectangle computeBounds () {
 	if (item == null || column == -1 || item.isDisposed()) return new Rectangle(0, 0, 0, 0);
 	Rectangle cell = item.getBounds(column);
 	Rectangle rect = item.getImageBounds(column);
-	cell.x = rect.x + rect.width;
-	cell.width -= rect.width;
+	if (rect.width != 0) {
+		int imageGap = Math.max(rect.x - cell.x, 0);
+		cell.x = rect.x + rect.width;
+		cell.width -= (imageGap + rect.width);
+	}
 	Rectangle area = table.getClientArea();
 	if (cell.x < area.x + area.width) {
 		if (cell.x + cell.width > area.x + area.width) {
diff --git a/org/eclipse/swt/dnd/Clipboard.java b/org/eclipse/swt/dnd/Clipboard.java
index 87b1e17..8c2cb59 100644
--- a/org/eclipse/swt/dnd/Clipboard.java
+++ b/org/eclipse/swt/dnd/Clipboard.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -292,10 +292,24 @@ public Object getContents(Transfer transfer, int clipboards) {
 	for (int i = 0; i < typeIds.length; i++) {
 		if ((clipboards & DND.CLIPBOARD) != 0) {
 			selection_data = gtk_clipboard_wait_for_contents(GTKCLIPBOARD, typeIds[i]);
+			/*
+			* This call to gdk_threads_leave() is a temporary work around
+			* to avoid deadlocks when gdk_threads_init() is called by native
+			* code outside of SWT (i.e AWT, etc). It ensures that the current
+			* thread leaves the GTK lock acquired by the function above. 
+			*/
+			OS.gdk_threads_leave();
 		}
 		if (selection_data != 0) break;
 		if ((clipboards & DND.SELECTION_CLIPBOARD) != 0) {
 			selection_data = gtk_clipboard_wait_for_contents(GTKPRIMARYCLIPBOARD, typeIds[i]);
+			/*
+			* This call to gdk_threads_leave() is a temporary work around
+			* to avoid deadlocks when gdk_threads_init() is called by native
+			* code outside of SWT (i.e AWT, etc). It ensures that the current
+			* thread leaves the GTK lock acquired by the function above. 
+			*/
+			OS.gdk_threads_leave();
 		}
 	}
 	if (selection_data == 0) return null;
@@ -579,6 +593,13 @@ public String[] getAvailableTypeNames() {
 private  int[] getAvailablePrimaryTypes() {
 	int[] types = new int[0];
 	int /*long*/ selection_data = gtk_clipboard_wait_for_contents(GTKPRIMARYCLIPBOARD, TARGET);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if (selection_data != 0) {
 		try {
 			GtkSelectionData gtkSelectionData = new GtkSelectionData();
@@ -596,6 +617,13 @@ private  int[] getAvailablePrimaryTypes() {
 private int[] getAvailableClipboardTypes () {
 	int[] types = new int[0];
 	int /*long*/ selection_data  = gtk_clipboard_wait_for_contents(GTKCLIPBOARD, TARGET);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if (selection_data != 0) {
 		try {
 			GtkSelectionData gtkSelectionData = new GtkSelectionData();
diff --git a/org/eclipse/swt/dnd/ClipboardProxy.java b/org/eclipse/swt/dnd/ClipboardProxy.java
index 1c53f72..c03768f 100644
--- a/org/eclipse/swt/dnd/ClipboardProxy.java
+++ b/org/eclipse/swt/dnd/ClipboardProxy.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -88,8 +88,20 @@ int /*long*/ clearFunc(int /*long*/ clipboard,int /*long*/ user_data_or_owner){
 
 void dispose () {
 	if (display == null) return;
-	if (activeClipboard != null) OS.gtk_clipboard_clear(Clipboard.GTKCLIPBOARD);
-	if (activePrimaryClipboard != null) OS.gtk_clipboard_clear(Clipboard.GTKPRIMARYCLIPBOARD);
+	if (activeClipboard != null) {
+		if (OS.GTK_VERSION >= OS.VERSION(2, 6, 0)) {
+			OS.gtk_clipboard_store(Clipboard.GTKCLIPBOARD);
+		} else {
+			OS.gtk_clipboard_clear(Clipboard.GTKCLIPBOARD);
+		}
+	}
+	if (activePrimaryClipboard != null) {
+		if (OS.GTK_VERSION >= OS.VERSION(2, 6, 0)) {
+			OS.gtk_clipboard_store(Clipboard.GTKPRIMARYCLIPBOARD);
+		} else {
+			OS.gtk_clipboard_clear(Clipboard.GTKPRIMARYCLIPBOARD);
+		}
+	}
 	display = null;
 	if (getFunc != null ) getFunc.dispose();
 	getFunc = null;
@@ -178,6 +190,9 @@ boolean setData(Clipboard owner, Object[] data, Transfer[] dataTypes, int clipbo
 			if (!OS.gtk_clipboard_set_with_owner (Clipboard.GTKCLIPBOARD, pTargetsList, entries.length, getFuncProc, clearFuncProc, clipboardOwner)) {
 				return false;
 			}
+			if (OS.GTK_VERSION >= OS.VERSION(2, 6, 0)) {
+				OS.gtk_clipboard_set_can_store(Clipboard.GTKCLIPBOARD, 0, 0);
+			}
 			activeClipboard = owner;
 		}
 		if ((clipboards & DND.SELECTION_CLIPBOARD) != 0) {
@@ -188,6 +203,9 @@ boolean setData(Clipboard owner, Object[] data, Transfer[] dataTypes, int clipbo
 			if (!OS.gtk_clipboard_set_with_owner (Clipboard.GTKPRIMARYCLIPBOARD, pTargetsList, entries.length, getFuncProc, clearFuncProc, clipboardOwner)) {
 				return false;
 			}
+			if (OS.GTK_VERSION >= OS.VERSION(2, 6, 0)) {
+				OS.gtk_clipboard_set_can_store(Clipboard.GTKPRIMARYCLIPBOARD, 0, 0);
+			}
 			activePrimaryClipboard = owner;
 		}
 		return true;
diff --git a/org/eclipse/swt/events/GestureEvent.java b/org/eclipse/swt/events/GestureEvent.java
new file mode 100644
index 0000000..f6667fd
--- /dev/null
+++ b/org/eclipse/swt/events/GestureEvent.java
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.events;
+
+
+import org.eclipse.swt.widgets.*;
+
+/**
+ * Instances of this class are sent in response to
+ * touch-based gestures that are triggered by the user.
+ *
+ * @see GestureListener
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ *
+ * @since 3.7
+ */
+public class GestureEvent extends TypedEvent {
+
+	/**
+	 * The state of the keyboard modifier keys and mouse masks
+	 * at the time the event was generated.
+	 * 
+	 * @see org.eclipse.swt.SWT#MODIFIER_MASK
+	 * @see org.eclipse.swt.SWT#BUTTON_MASK
+	 */
+	public int stateMask;
+
+	/**
+	 * The gesture type.
+	 * <p><ul>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_BEGIN}</li>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_END}</li>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_MAGNIFY}</li>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_PAN}</li>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_ROTATE}</li>
+	 * <li>{@link org.eclipse.swt.SWT#GESTURE_SWIPE}</li>
+	 * </ul></p>
+	 * 
+	 * This field determines the <code>GestureEvent</code> fields that contain valid data.
+	 */
+	public int detail;
+
+	/**
+	 * The meaning of this field is dependent on the value of the <code>detail</code> field
+	 * and the platform.  It can represent either the x coordinate of the centroid of the
+	 * touches that make up the gesture, or the x coordinate of the cursor at the time the
+	 * gesture was performed. 
+	 */
+	public int x;
+
+	/**
+	 * The meaning of this field is dependent on the value of the <code>detail</code> field
+	 * and the platform.  It can represent either the y coordinate of the centroid of the
+	 * touches that make up the gesture, or the y coordinate of the cursor at the time the
+	 * gesture was performed. 
+	 */
+	public int y;
+
+	/**
+	 * This field is valid when the <code>detail</code> field is set to <code>GESTURE_ROTATE</code>.
+	 * It specifies the number of degrees rotated on the device since the gesture started. Positive
+	 * values indicate counter-clockwise rotation, and negative values indicate clockwise rotation.
+	 */
+	public double rotation;
+
+	/**
+	 * This field is valid when the <code>detail</code> field is set to <code>GESTURE_SWIPE</code>
+	 * or <code>GESTURE_PAN</code>.  Both <code>xDirection</code> and <code>yDirection</code>
+	 * can be valid for an individual gesture.  The meaning of this field is dependent on the value
+	 * of the <code>detail</code> field.
+	 * <p>
+	 * If <code>detail</code> is <code>GESTURE_SWIPE</code> then a positive value indicates a swipe
+	 * to the right and a negative value indicates a swipe to the left.
+	 * 
+	 * If <code>detail</code> is <code>GESTURE_PAN</code> then a positive value indicates a pan to
+	 * the right by this field's count of pixels and a negative value indicates a pan to the left
+	 * by this field's count of pixels. 
+	 */	
+	public int xDirection;
+
+	/**
+	 * This field is valid when the <code>detail</code> field is set to <code>GESTURE_SWIPE</code>
+	 * or <code>GESTURE_PAN</code>.  Both <code>xDirection</code> and <code>yDirection</code>
+	 * can be valid for an individual gesture.  The meaning of this field is dependent on the value
+	 * of the <code>detail</code> field.
+	 * 
+	 * If <code>detail</code> is <code>GESTURE_SWIPE</code> then a positive value indicates a downward
+	 * swipe and a negative value indicates an upward swipe.
+	 * 
+	 * If <code>detail</code> is <code>GESTURE_PAN</code> then a positive value indicates a downward
+	 * pan by this field's count of pixels and a negative value indicates an upward pan by this
+	 * field's count of pixels. 
+	 */	
+	public int yDirection;
+
+	/**
+	 * This field is valid when the <code>detail</code> field is set to <code>GESTURE_MAGNIFY</code>.
+	 * This is the scale factor to be applied. This value will be 1.0 in the first received event with
+	 * <code>GESTURE_MAGNIFY</code>, and will then fluctuate in subsequent events as the user moves
+	 * their fingers.
+	 */
+	public double magnification;
+
+	/**
+	 * This flag indicates whether the operation should be allowed.
+	 * Setting it to <code>false</code> will cancel the operation.
+	 */
+	public boolean doit;
+
+	static final long serialVersionUID = -8348741538373572182L;
+
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public GestureEvent(Event e) {
+	super(e);
+	this.stateMask = e.stateMask;
+	this.x = e.x;
+	this.y = e.y;
+	this.detail = e.detail;
+	this.rotation = e.rotation;
+	this.xDirection = e.xDirection;
+	this.yDirection = e.yDirection;
+	this.magnification = e.magnification;
+	this.doit = e.doit;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public String toString() {
+	String string = super.toString ();
+	return string.substring (0, string.length() - 1) // remove trailing '}'
+		+ " stateMask=" + stateMask
+		+ " detail=" + detail
+		+ " x=" + x
+		+ " y=" + y
+		+ " rotation=" + rotation
+		+ " xDirection=" + xDirection
+		+ " yDirection=" + yDirection
+		+ " magnification=" + magnification
+		+ "}";
+}
+}
diff --git a/org/eclipse/swt/events/PaintListener.java b/org/eclipse/swt/events/GestureListener.java
similarity index 52%
copy from org/eclipse/swt/events/PaintListener.java
copy to org/eclipse/swt/events/GestureListener.java
index 7a047c8..d209263 100644
--- a/org/eclipse/swt/events/PaintListener.java
+++ b/org/eclipse/swt/events/GestureListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,29 +11,32 @@
 package org.eclipse.swt.events;
 
 
-import org.eclipse.swt.internal.SWTEventListener;
+import org.eclipse.swt.internal.*;
 
 /**
  * Classes which implement this interface provide methods
- * that deal with the events that are generated when the
- * control needs to be painted. 
+ * that deal with the events that are generated as gestures
+ * are triggered by the user interacting with a touch pad or
+ * touch screen.
  * <p>
  * After creating an instance of a class that implements
  * this interface it can be added to a control using the
- * <code>addPaintListener</code> method and removed using
- * the <code>removePaintListener</code> method. When a
- * paint event occurs, the paintControl method will be
- * invoked.
+ * <code>addGestureListener</code> method and removed using
+ * the <code>removeGestureListener</code> method. When a
+ * gesture is triggered, the appropriate method will be invoked.
  * </p>
  *
- * @see PaintEvent
+ * @see GestureEvent
+ *
+ * @since 3.7
  */
-public interface PaintListener extends SWTEventListener {
+public interface GestureListener extends SWTEventListener {
 
 /**
- * Sent when a paint event occurs for the control.
+ * Sent when a recognized gesture has occurred.
  *
- * @param e an event containing information about the paint
+ * @param e an event containing information about the gesture.
  */
-public void paintControl(PaintEvent e);
-}
+public void gesture(GestureEvent e);
+
+}
\ No newline at end of file
diff --git a/org/eclipse/swt/events/TouchEvent.java b/org/eclipse/swt/events/TouchEvent.java
new file mode 100644
index 0000000..ae467a9
--- /dev/null
+++ b/org/eclipse/swt/events/TouchEvent.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.events;
+
+
+import org.eclipse.swt.widgets.*;
+
+/**
+ * Instances of this class are sent in response to
+ * a touch-based input source being touched.
+ *
+ * @see TouchListener
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ * 
+ * @since 3.7
+ */
+public class TouchEvent extends TypedEvent {
+
+	/**
+	 * The set of touches representing the state of all contacts with touch input
+	 * device at the time the event was generated.
+	 * 
+	 * @see org.eclipse.swt.widgets.Touch
+	 */
+	public Touch[] touches;
+
+	/**
+	 * The state of the keyboard modifier keys and mouse masks 
+	 * at the time the event was generated.
+	 * 
+	 * @see org.eclipse.swt.SWT#MODIFIER_MASK
+	 * @see org.eclipse.swt.SWT#BUTTON_MASK
+	 */
+	public int stateMask;
+
+	/**
+	 * The widget-relative x coordinate of the pointer
+	 * at the time the touch occurred.
+	 */
+	public int x;
+
+	/**
+	 * The widget-relative y coordinate of the pointer
+	 * at the time the touch occurred.
+	 */	
+	public int y;
+
+	static final long serialVersionUID = -8348741538373572182L;
+	
+/**
+ * Constructs a new instance of this class based on the
+ * information in the given untyped event.
+ *
+ * @param e the untyped event containing the information
+ */
+public TouchEvent(Event e) {
+	super(e);
+	this.touches = e.touches;
+	this.stateMask = e.stateMask;
+	this.x = e.x;
+	this.y = e.y;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public String toString() {
+	String string = super.toString();
+	string = string.substring (0, string.length() - 1); // remove trailing '}'
+	string += " stateMask=" + stateMask
+			+ " x=" + x
+			+ " y=" + y;
+	if (touches != null) {
+		for (int i = 0; i < touches.length; i++) {
+			string += "\n     " + touches[i].toString();
+		}
+		string += "\n";
+	}
+	string += "}";
+	return string;
+}
+}
diff --git a/org/eclipse/swt/events/DragDetectListener.java b/org/eclipse/swt/events/TouchListener.java
similarity index 53%
copy from org/eclipse/swt/events/DragDetectListener.java
copy to org/eclipse/swt/events/TouchListener.java
index 805747d..f0dacf0 100644
--- a/org/eclipse/swt/events/DragDetectListener.java
+++ b/org/eclipse/swt/events/TouchListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,30 +11,31 @@
 package org.eclipse.swt.events;
 
 
-import org.eclipse.swt.internal.SWTEventListener;
+import org.eclipse.swt.internal.*;
 
 /**
  * Classes which implement this interface provide methods
- * that deal with the events that are generated when a drag
- * gesture is detected.
+ * that deal with the events that are generated as touches
+ * occur on a touch-aware input surface.
  * <p>
  * After creating an instance of a class that implements
  * this interface it can be added to a control using the
- * <code>addDragDetectListener</code> method and removed using
- * the <code>removeDragDetectListener</code> method. When the
- * drag is detected, the drageDetected method will be invoked.
+ * <code>addTouchListener</code> method and removed using
+ * the <code>removeTouchListener</code> method. When a
+ * touch occurs or changes state, the <code>touch</code> method
+ * will be invoked.
  * </p>
  *
- * @see DragDetectEvent
+ * @see TouchEvent
  * 
- * @since 3.3
+ * @since 3.7
  */
-public interface DragDetectListener extends SWTEventListener {
+public interface TouchListener extends SWTEventListener {
 
 /**
- * Sent when a drag gesture is detected.
+ * Sent when a touch sequence begins, changes state, or ends.
  *
- * @param e an event containing information about the drag
+ * @param e an event containing information about the touch
  */
-public void dragDetected(DragDetectEvent e);
+public void touch(TouchEvent e);
 }
diff --git a/org/eclipse/swt/graphics/Device.java b/org/eclipse/swt/graphics/Device.java
index 32e16e8..7b89886 100644
--- a/org/eclipse/swt/graphics/Device.java
+++ b/org/eclipse/swt/graphics/Device.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -79,10 +79,13 @@ public abstract class Device implements Drawable {
 	/* System Font */
 	Font systemFont;
 	
+	/* Device dpi */
+	Point dpi;
+	
 	int /*long*/ emptyTab;
 
 	boolean useXRender;
-
+	boolean useCairo;
 	static boolean CAIRO_LOADED;
 
 	/*
@@ -406,7 +409,7 @@ public int getDepth () {
  */
 public Point getDPI () {
 	checkDevice ();
-	return new Point (72, 72);
+	return getScreenDPI();
 }
 
 /**
@@ -473,6 +476,13 @@ public FontData[] getFontList (String faceName, boolean scalable) {
 	return result;
 }
 
+Point getScreenDPI () {
+	int widthMM = OS.gdk_screen_width_mm ();
+	int width = OS.gdk_screen_width ();
+	int dpi = Compatibility.round (254 * width, widthMM * 10);
+	return new Point (dpi, dpi);
+}
+
 /**
  * Returns the matching standard color for the given
  * constant, which should be one of the color constants
@@ -568,6 +578,8 @@ public boolean getWarnings () {
  * @see #create
  */
 protected void init () {
+	this.dpi = getDPI();
+	
 	if (xDisplay != 0) {
 		int[] event_basep = new int[1], error_basep = new int [1];
 		if (OS.XRenderQueryExtension (xDisplay, event_basep, error_basep)) {
@@ -576,6 +588,11 @@ protected void init () {
 			useXRender = major_versionp[0] > 0 || (major_versionp[0] == 0 && minor_versionp[0] >= 8);
 		}
 	}
+	
+	if (OS.GTK_VERSION > OS.VERSION (2, 17, 0) && System.getProperty("org.eclipse.swt.internal.gtk.useCairo") != null) {
+		useCairo = true;
+	}
+	
 	//TODO: Remove; temporary code only
 	boolean fixAIX = OS.IsAIX && OS.PTR_SIZEOF == 8;
 	
diff --git a/org/eclipse/swt/graphics/Font.java b/org/eclipse/swt/graphics/Font.java
index 2619dbb..70a7b7d 100644
--- a/org/eclipse/swt/graphics/Font.java
+++ b/org/eclipse/swt/graphics/Font.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -186,6 +186,8 @@ public FontData[] getFontData() {
 	OS.memmove(buffer, family, length);
 	String name = new String(Converter.mbcsToWcs(null, buffer));
 	float height = (float)OS.pango_font_description_get_size(handle) / OS.PANGO_SCALE;
+	Point dpi = device.dpi, screenDPI = device.getScreenDPI();
+	float size = height * screenDPI.y / dpi.y;
 	int pangoStyle = OS.pango_font_description_get_style(handle);
 	int pangoWeight = OS.pango_font_description_get_weight(handle);
 	int style = SWT.NORMAL;
@@ -197,7 +199,7 @@ public FontData[] getFontData() {
 	buffer = new byte [length + 1];
 	OS.memmove (buffer, fontString, length);	
 	OS.g_free (fontString);
-	FontData data = new FontData(name, height, style);
+	FontData data = new FontData(name, size, style);
 	data.string = buffer;
 	return new FontData[]{data};
 }
@@ -240,6 +242,8 @@ public int hashCode() {
 void init(String name, float height, int style, byte[] fontString) {
 	if (name == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
 	if (height < 0) SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+	Point dpi = device.dpi, screenDPI = device.getScreenDPI();
+	float size = height * dpi.y / screenDPI.y;
 	if (fontString != null) {
 		handle = OS.pango_font_description_from_string (fontString);
 		if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);
@@ -248,8 +252,8 @@ void init(String name, float height, int style, byte[] fontString) {
 		if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES);
 		byte[] buffer = Converter.wcsToMbcs(null, name, true);
 		OS.pango_font_description_set_family(handle, buffer);
-		if (height > 0) {
-			OS.pango_font_description_set_size(handle, (int)(0.5f + height * OS.PANGO_SCALE));
+		if (size > 0) {
+			OS.pango_font_description_set_size(handle, (int)(0.5f + size * OS.PANGO_SCALE));
 		}
 		OS.pango_font_description_set_stretch(handle, OS.PANGO_STRETCH_NORMAL);
 		int pangoStyle = OS.PANGO_STYLE_NORMAL;
diff --git a/org/eclipse/swt/graphics/FontData.java b/org/eclipse/swt/graphics/FontData.java
index 39a350c..204f6f7 100644
--- a/org/eclipse/swt/graphics/FontData.java
+++ b/org/eclipse/swt/graphics/FontData.java
@@ -318,7 +318,7 @@ public int getStyle() {
  * @see #equals
  */
 public int hashCode () {
-	return name.hashCode() ^ getHeight() ^ style;
+	return name.hashCode() ^ getHeight() << 8 ^ style;
 }
 
 /**
diff --git a/org/eclipse/swt/graphics/GC.java b/org/eclipse/swt/graphics/GC.java
index ac76e2c..4cb4b66 100644
--- a/org/eclipse/swt/graphics/GC.java
+++ b/org/eclipse/swt/graphics/GC.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -2813,6 +2813,9 @@ void init(Drawable drawable, GCData data, int /*long*/ gdkGC) {
 	this.drawable = drawable;
 	this.data = data;
 	handle = gdkGC;
+	if (device.useCairo) {
+		initCairo();
+	}
 	if ((data.style & SWT.MIRRORED) != 0) {
 	  initCairo();
 	  int /*long*/ cairo = data.cairo;
@@ -2949,7 +2952,7 @@ boolean isIdentity(double[] matrix) {
  */
 public void setAdvanced(boolean advanced) {
 	if (handle == 0) SWT.error(SWT.ERROR_GRAPHIC_DISPOSED);
-	if ((data.style & SWT.MIRRORED) != 0) {
+	if ((data.style & SWT.MIRRORED) != 0 || device.useCairo) {
 		if (!advanced) {
 			setAlpha(0xFF);
 			setAntialias(SWT.DEFAULT);
diff --git a/org/eclipse/swt/graphics/Image.java b/org/eclipse/swt/graphics/Image.java
index 08c0da6..c70a42a 100644
--- a/org/eclipse/swt/graphics/Image.java
+++ b/org/eclipse/swt/graphics/Image.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/org/eclipse/swt/graphics/LineAttributes.java b/org/eclipse/swt/graphics/LineAttributes.java
index 6d02341..011d993 100644
--- a/org/eclipse/swt/graphics/LineAttributes.java
+++ b/org/eclipse/swt/graphics/LineAttributes.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -119,4 +119,61 @@ public LineAttributes(float width, int cap, int join, int style, float[] dash, f
 	this.dashOffset = dashOffset;
 	this.miterLimit = miterLimit;
 }
+
+/**
+ * Compares the argument to the receiver, and returns true
+ * if they represent the <em>same</em> object using a class
+ * specific comparison.
+ *
+ * @param object the object to compare with this object
+ * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
+ *
+ * @see #hashCode()
+ */
+public boolean equals (Object object) {
+	if (object == this) return true;
+	if (!(object instanceof LineAttributes)) return false;
+	LineAttributes p = (LineAttributes)object;
+	if (p.width != width) return false;
+	if (p.cap != cap) return false;
+	if (p.join != join) return false;
+	if (p.style != style) return false;
+	if (p.dashOffset != dashOffset) return false;
+	if (p.miterLimit != miterLimit) return false;
+	if (p.dash != null && dash != null) {
+		if (p.dash.length != dash.length) return false;
+		for (int i = 0; i < dash.length; i++) {
+			if (p.dash[i] != dash[i]) return false;
+		}
+	} else {
+		if (p.dash != null || dash != null) return false;
+	}
+	return true;
+}
+
+/**
+ * Returns an integer hash code for the receiver. Any two 
+ * objects that return <code>true</code> when passed to 
+ * <code>equals</code> must return the same value for this
+ * method.
+ *
+ * @return the receiver's hash
+ *
+ * @see #equals(Object)
+ */
+public int hashCode () {
+	int hashCode = Float.floatToIntBits(width);
+	hashCode = 31 * hashCode + cap;
+	hashCode = 31 * hashCode + join;
+	hashCode = 31 * hashCode + style;
+	hashCode = 31 * hashCode + Float.floatToIntBits(dashOffset);
+	hashCode = 31 * hashCode + Float.floatToIntBits(miterLimit);
+	if (dash != null) {
+		for (int i = 0; i < dash.length; i++) {
+			hashCode = 31 * hashCode + Float.floatToIntBits(dash[i]);
+		}
+	}
+	return hashCode;
+}
+
 }
diff --git a/org/eclipse/swt/graphics/TextLayout.java b/org/eclipse/swt/graphics/TextLayout.java
index 372b628..11adbc6 100644
--- a/org/eclipse/swt/graphics/TextLayout.java
+++ b/org/eclipse/swt/graphics/TextLayout.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -142,7 +142,7 @@ void computeRuns () {
 			attribute.end_index = bytePos + offset + 6;
 			OS.memmove (attr, attribute, PangoAttribute.sizeof);
 			OS.pango_attr_list_insert(attrList, attr);			
-			int pos = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + bytePos);
+			int pos = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + bytePos);
 			chars[pos + lineIndex * 2] = ZWS;
 			chars[pos + lineIndex * 2 + 1] = ZWNBS;
 			segmentsText.getChars(oldPos, pos, chars,  oldPos + lineIndex * 2);
@@ -166,7 +166,7 @@ void computeRuns () {
 		int segmentCount = 0;
 		for (int i = 0; i < chars.length; i++) {
 			char c = chars[i];
-			if (c == ZWS && lineOffsets != null && i == lineOffsets[lineIndex]) {
+			if (c == ZWS && lineOffsets != null && lineIndex < lineOffsets.length && i == lineOffsets[lineIndex]) {
 				invalidOffsets[offsetCount++] = i;		//ZWS
 				invalidOffsets[offsetCount++] = ++i;	//ZWNBS
 				lineIndex++;
@@ -184,8 +184,8 @@ void computeRuns () {
 		if (style == null) continue;
 		int start = translateOffset(styleItem.start);
 		int end = translateOffset(styles[i+1].start - 1);
-		int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
-		int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+		int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+		int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
 		byteStart = Math.min(byteStart, strlen);
 		byteEnd = Math.min(byteEnd, strlen);
 		Font font = style.font;
@@ -408,7 +408,7 @@ public void draw(GC gc, int x, int y, int selectionStart, int selectionEnd, Colo
 	boolean hasSelection = selectionStart <= selectionEnd && selectionStart != -1 && selectionEnd != -1;
 	GCData data = gc.data;
 	int /*long*/ cairo = data.cairo;
-	if (flags != 0 && (hasSelection || (flags & SWT.LAST_LINE_SELECTION) != 0)) {
+	if ((flags & (SWT.FULL_SELECTION | SWT.DELIMITER_SELECTION)) != 0 && (hasSelection || (flags & SWT.LAST_LINE_SELECTION) != 0)) {
 		int /*long*/[] attrs = new int /*long*/[1];
 		int[] nAttrs = new int[1];
 		PangoLogAttr logAttr = new PangoLogAttr();
@@ -430,9 +430,9 @@ public void draw(GC gc, int x, int y, int selectionStart, int selectionEnd, Colo
 			OS.pango_layout_iter_get_line_extents(iter, null, rect);
 			if (OS.pango_layout_iter_next_line(iter)) {
 				int bytePos = OS.pango_layout_iter_get_index(iter);
-				lineEnd = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + bytePos);
+				lineEnd = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + bytePos);
 			} else {
-				lineEnd = (int)/*64*/OS.g_utf8_strlen(ptr, -1);
+				lineEnd = (int)/*64*/OS.g_utf16_strlen(ptr, -1);
 			}
 			boolean extent = false;
 			if (lineIndex == lineCount - 1 && (flags & SWT.LAST_LINE_SELECTION) != 0) {
@@ -494,7 +494,7 @@ public void draw(GC gc, int x, int y, int selectionStart, int selectionEnd, Colo
 	} else {
 		selectionStart = Math.min(Math.max(0, selectionStart), length - 1);
 		selectionEnd = Math.min(Math.max(0, selectionEnd), length - 1);
-		length = (int)/*64*/OS.g_utf8_strlen(OS.pango_layout_get_text(layout), -1);
+		length = (int)/*64*/OS.g_utf16_strlen(OS.pango_layout_get_text(layout), -1);
 		selectionStart = translateOffset(selectionStart);
 		selectionEnd = translateOffset(selectionEnd);
 		if (selectionForeground == null) selectionForeground = device.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
@@ -518,8 +518,8 @@ public void draw(GC gc, int x, int y, int selectionStart, int selectionEnd, Colo
 			}
 		} else {
 			int /*long*/ ptr = OS.pango_layout_get_text(layout);
-			int byteSelStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, selectionStart) - ptr);
-			int byteSelEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, selectionEnd + 1) - ptr);
+			int byteSelStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, selectionStart) - ptr);
+			int byteSelEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, selectionEnd + 1) - ptr);
 			int strlen = OS.strlen(ptr);
 			byteSelStart = Math.min(byteSelStart, strlen);
 			byteSelEnd = Math.min(byteSelEnd, strlen);
@@ -599,8 +599,8 @@ void drawBorder(GC gc, int x, int y, GdkColor selectionColor) {
 			}
 			start = translateOffset(start);
 			int end = translateOffset(styles[i+1].start - 1);
-			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
-			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
 			int[] ranges = new int[]{byteStart, byteEnd};
 			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 			if (rgn != 0) {
@@ -677,8 +677,8 @@ void drawBorder(GC gc, int x, int y, GdkColor selectionColor) {
 			}
 			start = translateOffset(start);
 			int end = translateOffset(styles[i+1].start - 1);
-			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
-			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
 			int[] ranges = new int[]{byteStart, byteEnd};
 			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 			if (rgn != 0) {
@@ -776,8 +776,8 @@ void drawBorder(GC gc, int x, int y, GdkColor selectionColor) {
 			}
 			start = translateOffset(start);
 			int end = translateOffset(styles[i+1].start - 1);
-			int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, start) - ptr);
-			int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, end + 1) - ptr);
+			int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, start) - ptr);
+			int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, end + 1) - ptr);
 			int[] ranges = new int[]{byteStart, byteEnd};
 			int /*long*/ rgn = OS.gdk_pango_layout_get_clip_region(layout, x, y, ranges, ranges.length / 2);
 			if (rgn != 0) {
@@ -946,8 +946,8 @@ public Rectangle getBounds(int start, int end) {
 	start = translateOffset(start);
 	end = translateOffset(end);
 	int /*long*/ ptr = OS.pango_layout_get_text(layout);
-	int byteStart = (int)/*64*/(OS.g_utf8_offset_to_pointer (ptr, start) - ptr);
-	int byteEnd = (int)/*64*/(OS.g_utf8_offset_to_pointer (ptr, end + 1) - ptr);
+	int byteStart = (int)/*64*/(OS.g_utf16_offset_to_pointer (ptr, start) - ptr);
+	int byteEnd = (int)/*64*/(OS.g_utf16_offset_to_pointer (ptr, end + 1) - ptr);
 	int strlen = OS.strlen(ptr);
 	byteStart = Math.min(byteStart, strlen);
 	byteEnd = Math.min(byteEnd, strlen);
@@ -1086,7 +1086,7 @@ public int getLevel(int offset) {
 	PangoItem item = new PangoItem();
 	PangoLayoutRun run = new PangoLayoutRun();
 	int /*long*/ ptr = OS.pango_layout_get_text(layout);
-	int /*long*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr, offset) - ptr;
+	int /*long*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr, offset) - ptr;
 	int strlen = OS.strlen(ptr);
 	byteOffset = Math.min(byteOffset, strlen);
 	do {
@@ -1180,7 +1180,7 @@ public int getLineIndex(int offset) {
 	offset = translateOffset(offset);
 	int line = 0;
 	int /*long*/ ptr = OS.pango_layout_get_text(layout);
-	int /*long*/ byteOffset = OS.g_utf8_offset_to_pointer(ptr,offset) - ptr;
+	int /*long*/ byteOffset = OS.g_utf16_offset_to_pointer(ptr,offset) - ptr;
 	int strlen = OS.strlen(ptr);
 	byteOffset = Math.min(byteOffset, strlen);
 	int /*long*/ iter = OS.pango_layout_get_iter(layout);
@@ -1253,7 +1253,7 @@ public int[] getLineOffsets() {
 	for (int i = 0; i < lineCount; i++) {
 		int /*long*/ linePtr = OS.pango_layout_get_line(layout, i);
 		OS.memmove(line, linePtr, PangoLayoutLine.sizeof);
-		int pos = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + line.start_index);
+		int pos = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + line.start_index);
 		offsets[i] = untranslateOffset(pos);
 	}
 	offsets[lineCount] = text.length();
@@ -1283,7 +1283,7 @@ public Point getLocation(int offset, boolean trailing) {
 	if (!(0 <= offset && offset <= length)) SWT.error(SWT.ERROR_INVALID_RANGE);
 	offset = translateOffset(offset);
 	int /*long*/ ptr = OS.pango_layout_get_text(layout);
-	int byteOffset = (int)/*64*/(OS.g_utf8_offset_to_pointer(ptr, offset) - ptr);
+	int byteOffset = (int)/*64*/(OS.g_utf16_offset_to_pointer(ptr, offset) - ptr);
 	int strlen = OS.strlen(ptr);
 	byteOffset = Math.min(byteOffset, strlen);
 	PangoRectangle pos = new PangoRectangle();
@@ -1337,32 +1337,50 @@ int _getOffset (int offset, int movement, boolean forward) {
 	int[] nAttrs = new int[1];
 	OS.pango_layout_get_log_attrs(layout, attrs, nAttrs);
 	if (attrs[0] == 0) return offset + step;
-	length = (int)/*64*/OS.g_utf8_strlen(OS.pango_layout_get_text(layout), -1);
-	offset += step;
-	int internalOffset = translateOffset(offset);
+	
+	int /*long*/ ptr = OS.pango_layout_get_text(layout);
+	int utf8Offset = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, translateOffset(offset));
+	int utf8Length = (int)/*64*/OS.g_utf8_strlen(ptr, -1);
+	utf8Offset += step;
 	PangoLogAttr logAttr = new PangoLogAttr();
-	while (0 < internalOffset && internalOffset < length) {
-		OS.memmove(logAttr, attrs[0] + internalOffset * PangoLogAttr.sizeof, PangoLogAttr.sizeof);
-		if (((movement & SWT.MOVEMENT_CLUSTER) != 0) && logAttr.is_cursor_position) break; 
+	while (0 <= utf8Offset && utf8Offset <= utf8Length) {
+		OS.memmove(logAttr, attrs[0] + utf8Offset * PangoLogAttr.sizeof, PangoLogAttr.sizeof);
+		boolean found = false;
+		if (((movement & SWT.MOVEMENT_CLUSTER) != 0) && logAttr.is_cursor_position) found = true; 
 		if ((movement & SWT.MOVEMENT_WORD) != 0) {
 			if (forward) {
-				if (logAttr.is_word_end) break;
+				if (logAttr.is_word_end) found = true;
 			} else {
-				if (logAttr.is_word_start) break;
+				if (logAttr.is_word_start) found = true;
 			}
 		}
 		if ((movement & SWT.MOVEMENT_WORD_START) != 0) {
-			if (logAttr.is_word_start) break;
-			if (logAttr.is_sentence_end) break;
+			if (logAttr.is_word_start) found = true;
+			if (logAttr.is_sentence_end) found = true;
 		}
 		if ((movement & SWT.MOVEMENT_WORD_END) != 0) {
-			if (logAttr.is_word_end) break;
+			if (logAttr.is_word_end) found = true;
+			if (logAttr.is_sentence_start) found = true;
 		}
-		offset += step;
-		internalOffset = translateOffset(offset);
+		if (found) {
+			int testOffset = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, utf8Offset); 
+			if (invalidOffsets != null) {
+				for (int i = 0; i < invalidOffsets.length; i++) {
+					if (testOffset == invalidOffsets[i]) {
+						found = false;
+						break;
+					}
+				}
+			}
+			if (found) {
+				offset = untranslateOffset(testOffset);
+				break;
+			}
+		}
+		utf8Offset += step;
 	}
 	OS.g_free(attrs[0]);
-	return Math.min(Math.max(0, offset), text.length());
+	return Math.min(Math.max(0, offset), length);
 }
 
 /**
@@ -1454,8 +1472,13 @@ public int getOffset(int x, int y, int[] trailing) {
 	int[] piTrailing = new int[1];
 	OS.pango_layout_xy_to_index(layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, piTrailing);
 	int /*long*/ ptr = OS.pango_layout_get_text(layout);
-	int offset = (int)/*64*/OS.g_utf8_pointer_to_offset(ptr, ptr + index[0]);
-	if (trailing != null) trailing[0] = piTrailing[0];
+	int offset = (int)/*64*/OS.g_utf16_pointer_to_offset(ptr, ptr + index[0]);
+	if (trailing != null) {
+		trailing[0] = piTrailing[0];
+		if (piTrailing[0] != 0) {
+			trailing[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset(ptr, OS.g_utf8_pointer_to_offset(ptr, ptr + index[0]) + piTrailing[0]) - offset;
+		}
+	}
 	return untranslateOffset(offset);
 }
 
@@ -1911,6 +1934,7 @@ public void setOrientation(int orientation) {
 	if ((orientation & SWT.LEFT_TO_RIGHT) != 0) orientation = SWT.LEFT_TO_RIGHT;
 	int baseDir = orientation == SWT.RIGHT_TO_LEFT ? OS.PANGO_DIRECTION_RTL : OS.PANGO_DIRECTION_LTR;
 	if (OS.pango_context_get_base_dir(context) == baseDir) return;
+	freeRuns();
 	OS.pango_context_set_base_dir(context, baseDir);
 	OS.pango_layout_context_changed(layout);
 	int align = OS.pango_layout_get_alignment(layout);
diff --git a/org/eclipse/swt/graphics/TextStyle.java b/org/eclipse/swt/graphics/TextStyle.java
index 6b7b1cd..769a0f1 100644
--- a/org/eclipse/swt/graphics/TextStyle.java
+++ b/org/eclipse/swt/graphics/TextStyle.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -74,7 +74,7 @@ public class TextStyle {
 	 * <p> 
 	 * This value should be one of <code>SWT.UNDERLINE_SINGLE</code>,
 	 * <code>SWT.UNDERLINE_DOUBLE</code>, <code>SWT.UNDERLINE_ERROR</code>,
-	 * or <code>SWT.UNDERLINE_SQUIGGLE</code>.
+	 * <code>SWT.UNDERLINE_SQUIGGLE</code>, or <code>SWT.UNDERLINE_LINK</code>.
 	 * </p>
 	 * 
 	 * @see SWT#UNDERLINE_SINGLE
@@ -262,8 +262,8 @@ public int hashCode() {
 	if (background != null) hash ^= background.hashCode();	
 	if (font != null) hash ^= font.hashCode();
 	if (metrics != null) hash ^= metrics.hashCode();
-	if (underline) hash ^= hash;
-	if (strikeout) hash ^= hash;
+	if (underline) hash ^= (hash << 1);
+	if (strikeout) hash ^= (hash << 2);
 	hash ^= rise;
 	if (underlineColor != null) hash ^= underlineColor.hashCode();
 	if (strikeoutColor != null) hash ^= strikeoutColor.hashCode();
diff --git a/org/eclipse/swt/internal/LONG.java b/org/eclipse/swt/internal/LONG.java
index 8609adc..91f0a09 100644
--- a/org/eclipse/swt/internal/LONG.java
+++ b/org/eclipse/swt/internal/LONG.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -26,6 +26,6 @@ public class LONG {
 	}
 
 	public int hashCode () {
-		return (int)/*64*/value;
+		return (int)/*64*/(value ^ (value >>> 32));
 	}
 }
diff --git a/org/eclipse/swt/internal/Library.java b/org/eclipse/swt/internal/Library.java
index 87d1355..0858efa 100644
--- a/org/eclipse/swt/internal/Library.java
+++ b/org/eclipse/swt/internal/Library.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -24,7 +24,7 @@ public class Library {
 	/**
 	 * SWT Minor version number (must be in the range 0..999)
 	 */
-    static int MINOR_VERSION = 659;
+    static int MINOR_VERSION = 735;
 	
 	/**
 	 * SWT revision number (must be >= 0)
@@ -42,16 +42,36 @@ public class Library {
 	/* 64-bit support */
 	static final boolean IS_64 = longConst() == (int /*long*/)longConst();
 	static final String SUFFIX_64 = "-64";	//$NON-NLS-1$
-	static final String SWTDIR_32 = "swtlib-32";	//$NON-NLS-1$
-	static final String SWTDIR_64 = "swtlib-64";	//$NON-NLS-1$
+	static final String SWT_LIB_DIR;
 
 static {
 	DELIMITER = System.getProperty("line.separator"); //$NON-NLS-1$
 	SEPARATOR = System.getProperty("file.separator"); //$NON-NLS-1$
+	SWT_LIB_DIR = ".swt" + SEPARATOR + "lib" + SEPARATOR + os() + SEPARATOR + arch(); //$NON-NLS-1$ $NON-NLS-2$
 	JAVA_VERSION = parseVersion(System.getProperty("java.version")); //$NON-NLS-1$
 	SWT_VERSION = SWT_VERSION(MAJOR_VERSION, MINOR_VERSION);
 }
 
+static String arch() {
+	String osArch = System.getProperty("os.arch"); //$NON-NLS-1$
+	if (osArch.equals ("i386") || osArch.equals ("i686")) return "x86"; //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
+	if (osArch.equals ("amd64")) return "x86_64"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osArch.equals ("IA64N")) return "ia64_32"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osArch.equals ("IA64W")) return "ia64"; //$NON-NLS-1$ $NON-NLS-2$
+	return osArch;
+}
+
+static String os() {
+	String osName = System.getProperty("os.name"); //$NON-NLS-1$
+	if (osName.equals ("Linux")) return "linux"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osName.equals ("AIX")) return "aix"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osName.equals ("Solaris") || osName.equals ("SunOS")) return "solaris"; //$NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$
+	if (osName.equals ("HP-UX")) return "hpux"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osName.equals ("Mac OS X")) return "macosx"; //$NON-NLS-1$ $NON-NLS-2$
+	if (osName.startsWith ("Win")) return "win32"; //$NON-NLS-1$ $NON-NLS-2$
+	return osName;
+}
+
 static void chmod(String permision, String path) {
 	if (Platform.PLATFORM.equals ("win32")) return; //$NON-NLS-1$
 	try {
@@ -240,14 +260,12 @@ public static void loadLibrary (String name, boolean mapName) {
 	String fileName1 = mappedName1;
 	String fileName2 = mappedName2;
 	if (path == null) {
-		path = System.getProperty ("java.io.tmpdir"); //$NON-NLS-1$
-		File dir = new File (path, IS_64 ? SWTDIR_64 : SWTDIR_32);
-		boolean make = false;
-		if ((dir.exists () && dir.isDirectory ()) || (make = dir.mkdir ())) {
+		path = System.getProperty ("user.home"); //$NON-NLS-1$
+		File dir = new File (path, SWT_LIB_DIR);
+		if ((dir.exists () && dir.isDirectory ()) || dir.mkdirs ()) {
 			path = dir.getAbsolutePath ();
-			if (make) chmod ("777", path); //$NON-NLS-1$
 		} else {
-			/* fall back to using the tmp directory */
+			/* fall back to using the home dir directory */
 			if (IS_64) {
 				fileName1 = mapLibraryName (libName1 + SUFFIX_64);
 				fileName2 = mapLibraryName (libName2 + SUFFIX_64);
diff --git a/org/eclipse/swt/internal/Lock.java b/org/eclipse/swt/internal/Lock.java
index 7254f52..a1858da 100644
--- a/org/eclipse/swt/internal/Lock.java
+++ b/org/eclipse/swt/internal/Lock.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/org/eclipse/swt/internal/SWTMessages.properties b/org/eclipse/swt/internal/SWTMessages.properties
index 3a5c957..d212d17 100644
--- a/org/eclipse/swt/internal/SWTMessages.properties
+++ b/org/eclipse/swt/internal/SWTMessages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000, 2010 IBM Corporation and others.
+# Copyright (c) 2000, 2011 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -83,6 +83,7 @@ SWT_InvalidCert_Connect=Would you like to connect to this site anyways?
 SWT_OnBeforeUnload_Message1=Are you sure you want to leave this page?
 SWT_OnBeforeUnload_Message2=Click OK to continue, or Cancel to stay on this page.
 SWT_ViewCertificate=View Certificate
+SWT_Certificate=Certificate
 SWT_Controlled_By=controlled by
 SWT_Controller_For=controller for
 SWT_Described_By=described by
@@ -98,3 +99,17 @@ SWT_Node_Child_Of=node child of
 SWT_Parent_Window_Of=parent window of
 SWT_Popup_For=popup for
 SWT_Subwindow_Of=subwindow of
+SWT_Continue=Continue
+SWT_IssuedTo=Issued to:\t{0}
+SWT_IssuedFrom=Issued from:\t{0}
+SWT_Issuer=Issuer
+SWT_General=General
+SWT_Details=Details
+SWT_Field=Field
+SWT_Value=Value
+SWT_Version=Version
+SWT_ValidFrom=Valid From
+SWT_ValidTo=Valid To
+SWT_ValidFromTo=Valid from: {0} to: {1}
+SWT_Subject=Subject
+SWT_SerialNumber=Serial Number
\ No newline at end of file
diff --git a/org/eclipse/swt/internal/SWTMessages_ar.properties b/org/eclipse/swt/internal/SWTMessages_ar.properties
index c14fda9..9c486d3 100644
--- a/org/eclipse/swt/internal/SWTMessages_ar.properties
+++ b/org/eclipse/swt/internal/SWTMessages_ar.properties
@@ -22,4 +22,11 @@ SWT_Open=\u0641\u062a\u062d
 SWT_Close=\u0627\u063a\u0644\u0627\u0642
 SWT_Minimize=\u062a\u0635\u063a\u064a\u0631
 SWT_Maximize=\u062a\u0643\u0628\u064a\u0631
-SWT_Restore=\u0627\u0633\u062a\u0639\u0627\u062f\u0629
\ No newline at end of file
+SWT_Restore=\u0627\u0633\u062a\u0639\u0627\u062f\u0629
+SWT_Continue=\u0627\u0633\u062a\u0645\u0631\u0627\u0631
+SWT_General=\u0639\u0627\u0645
+SWT_Details=\u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644
+SWT_Field=\u0645\u062c\u0627\u0644
+SWT_Value=\u0627\u0644\u0642\u064a\u0645\u0629
+SWT_Version=\u0627\u0644\u0646\u0633\u062e\u0629
+SWT_Subject=\u0627\u0644\u0645\u0648\u0636\u0648\u0639
diff --git a/org/eclipse/swt/internal/SWTMessages_mn.properties b/org/eclipse/swt/internal/SWTMessages_bg.properties
similarity index 56%
copy from org/eclipse/swt/internal/SWTMessages_mn.properties
copy to org/eclipse/swt/internal/SWTMessages_bg.properties
index 7ce97ec..104a0e5 100644
--- a/org/eclipse/swt/internal/SWTMessages_mn.properties
+++ b/org/eclipse/swt/internal/SWTMessages_bg.properties
@@ -1,2 +1,2 @@
 # Copyright by many contributors; see http://babel.eclipse.org/
-SWT_Cancel=\u0411\u043e\u043b\u0438\u0445
\ No newline at end of file
+SWT_Version=\u0412\u0435\u0440\u0441\u0438\u044f
diff --git a/org/eclipse/swt/internal/SWTMessages_cs.properties b/org/eclipse/swt/internal/SWTMessages_cs.properties
index f6c9664..bea6ecb 100644
--- a/org/eclipse/swt/internal/SWTMessages_cs.properties
+++ b/org/eclipse/swt/internal/SWTMessages_cs.properties
@@ -26,4 +26,11 @@ SWT_Open=Otev\u0159\u00edt
 SWT_Close=Zav\u0159\u00edt
 SWT_Minimize=Minimalizovat
 SWT_Maximize=Maximalizovat
-SWT_Restore=Obnovit
\ No newline at end of file
+SWT_Restore=Obnovit
+SWT_Continue=Pokra\u010dovat
+SWT_General=Obecn\u00e9
+SWT_Details=Podrobnosti
+SWT_Field=Pole
+SWT_Value=Hodnota
+SWT_Version=Verze
+SWT_Subject=P\u0159edm\u011bt
diff --git a/org/eclipse/swt/internal/SWTMessages_da.properties b/org/eclipse/swt/internal/SWTMessages_da.properties
index e6efe92..e24e158 100644
--- a/org/eclipse/swt/internal/SWTMessages_da.properties
+++ b/org/eclipse/swt/internal/SWTMessages_da.properties
@@ -22,4 +22,11 @@ SWT_Open=\u00c5bn
 SWT_Close=Luk
 SWT_Minimize=Minim\u00e9r
 SWT_Maximize=Maksim\u00e9r
-SWT_Restore=Gendan
\ No newline at end of file
+SWT_Restore=Gendan
+SWT_Continue=Forts\u00e6t
+SWT_General=Generelt
+SWT_Details=Oplysninger
+SWT_Field=Felt
+SWT_Value=V\u00e6rdi
+SWT_Version=Version
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_de.properties b/org/eclipse/swt/internal/SWTMessages_de.properties
index d2969d0..472cad6 100644
--- a/org/eclipse/swt/internal/SWTMessages_de.properties
+++ b/org/eclipse/swt/internal/SWTMessages_de.properties
@@ -62,4 +62,13 @@ SWT_Download_Location=Speichern von {0} von {1}
 SWT_Download_Started=Herunterladen...
 SWT_Download_Status=Download: {0,number,integer} KB von {1,number,integer} KB
 SWT_Authentication_Required=Authentifizierung erforderlich
-SWT_Enter_Username_and_Password=Benutzernamen und Kennwort f\u00fcr {0} unter {1} eingeben
\ No newline at end of file
+SWT_Enter_Username_and_Password=Benutzernamen und Kennwort f\u00fcr {0} unter {1} eingeben
+SWT_Continue=Weiter
+SWT_General=Allgemein
+SWT_Details=Details
+SWT_Field=Feld
+SWT_Value=Wert
+SWT_Version=Version
+SWT_ValidFrom=G\u00fcltig ab
+SWT_Subject=Subject
+SWT_SerialNumber=Seriennummer
diff --git a/org/eclipse/swt/internal/SWTMessages_el.properties b/org/eclipse/swt/internal/SWTMessages_el.properties
index a14609e..56dd88e 100644
--- a/org/eclipse/swt/internal/SWTMessages_el.properties
+++ b/org/eclipse/swt/internal/SWTMessages_el.properties
@@ -22,4 +22,11 @@ SWT_Open=\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1
 SWT_Close=\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf
 SWT_Minimize=\u0395\u03bb\u03b1\u03c7\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7
 SWT_Maximize=\u039c\u03b5\u03b3\u03b9\u03c3\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7
-SWT_Restore=\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac
\ No newline at end of file
+SWT_Restore=\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac
+SWT_Continue=\u03a3\u03c5\u03bd\u03ad\u03c7\u03b9\u03c3\u03b7
+SWT_General=\u0393\u03b5\u03bd\u03b9\u03ba\u03ac
+SWT_Details=\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2
+SWT_Field=\u03a0\u03b5\u03b4\u03af\u03bf
+SWT_Value=\u03a4\u03b9\u03bc\u03ae
+SWT_Version=\u0395\u03ba\u03b4\u03bf\u03c7\u03ae
+SWT_Subject=\u0398\u03ad\u03bc\u03b1
diff --git a/org/eclipse/swt/internal/SWTMessages_es.properties b/org/eclipse/swt/internal/SWTMessages_es.properties
index 83c1aa0..e3f6ff9 100644
--- a/org/eclipse/swt/internal/SWTMessages_es.properties
+++ b/org/eclipse/swt/internal/SWTMessages_es.properties
@@ -64,3 +64,11 @@ SWT_Download_Status=Descarga: {0,number,integer} KB de {1,number,integer} KB
 SWT_Authentication_Required=Autenticaci\u00f3n requerida
 SWT_Enter_Username_and_Password=Introduzca nombre de usuario y contrase\u00f1a para {0} en {1}
 SWT_Page_Load_Failed=Carga de p\u00e1gina fall\u00f3 con error: {0}
+SWT_Continue=Continuar
+SWT_General=General
+SWT_Details=Detalles
+SWT_Field=Campo
+SWT_Value=Valor
+SWT_Version=Versi\u00f3n
+SWT_ValidFrom=V\u00e1lido desde
+SWT_Subject=Sujeto
diff --git a/org/eclipse/swt/internal/SWTMessages_et.properties b/org/eclipse/swt/internal/SWTMessages_et.properties
index 6118bc8..da82051 100644
--- a/org/eclipse/swt/internal/SWTMessages_et.properties
+++ b/org/eclipse/swt/internal/SWTMessages_et.properties
@@ -21,3 +21,6 @@ SWT_Minimize=V\u00e4henda
 SWT_Maximize=Suurenda
 SWT_Restore=Taasta
 SWT_Download_Started=Laen alla...
+SWT_General=\u00dcldine
+SWT_Value=V\u00e4\u00e4rtus
+SWT_Version=Versioon
diff --git a/org/eclipse/swt/internal/SWTMessages_fa.properties b/org/eclipse/swt/internal/SWTMessages_fa.properties
new file mode 100644
index 0000000..d70a97b
--- /dev/null
+++ b/org/eclipse/swt/internal/SWTMessages_fa.properties
@@ -0,0 +1,54 @@
+# Copyright by many contributors; see http://babel.eclipse.org/
+SWT_Yes=\u0628\u0644\u0647
+SWT_No=\u062e\u06cc\u0631
+SWT_OK=\u062a\u0623\u06cc\u06cc\u062f
+SWT_Cancel=\u0644\u063a\u0648
+SWT_Abort=\u0631\u0647\u0627\u06a9\u0646
+SWT_Retry=\u0645\u062c\u062f\u062f\u0627 \u062a\u0644\u0627\u0634\u200c\u06a9\u0646
+SWT_Ignore=\u0646\u0627\u062f\u06cc\u062f\u0647\u200c\u0628\u06af\u06cc\u0631
+SWT_Sample=\u0646\u0645\u0648\u0646\u0647
+SWT_A_Sample_Text=\u0645\u062a\u0646 \u0646\u0645\u0648\u0646\u0647
+SWT_Selection=\u0645\u0646\u062a\u062e\u0628
+SWT_Current_Selection=\u0627\u0646\u062a\u062e\u0627\u0628 \u062c\u0627\u0631\u06cc
+SWT_Font=\u0642\u0644\u0645
+SWT_Color=\u0631\u0646\u06af
+SWT_Extended_style=\u0633\u0628\u06a9 \u06af\u0633\u062a\u0631\u062f\u0647
+SWT_Size=\u0633\u0627\u06cc\u0632
+SWT_Style=\u0633\u0628\u06a9
+SWT_Save=\u0630\u062e\u06cc\u0631\u0647\u200c\u06a9\u0631\u062f\u0646
+SWT_Character_set=\u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u0648\u06cc\u0633\u0647
+SWT_ColorDialog_Title=\u0631\u0646\u06af\u200c\u0647\u0627
+SWT_FontDialog_Title=\u0642\u0644\u0645\u200c\u0647\u0627
+SWT_FontSet=\u0645\u062c\u0645\u0648\u0639\u0647 \u0642\u0644\u0645
+SWT_NewFont=\u0642\u0644\u0645 \u062c\u062f\u06cc\u062f
+SWT_Remove=\u062d\u0630\u0641
+SWT_Up=\u0628\u0627\u0644\u0627
+SWT_Down=\u067e\u0627\u0626\u06cc\u0646
+SWT_Charset_Western=\u063a\u0631\u0628\u06cc
+SWT_Charset_EastEuropean=\u0634\u0631\u0642\u06cc
+SWT_Charset_SouthEuropean=\u062c\u0646\u0648\u0628\u06cc
+SWT_Charset_NorthEuropean=\u0634\u0645\u0627\u0644\u06cc
+SWT_Charset_Cyrillic=\u0633\u06cc\u0631\u06cc\u0644\u06cc\u06a9
+SWT_Charset_Arabic=\u0639\u0631\u0628\u06cc
+SWT_Charset_Greek=\u06cc\u0648\u0646\u0627\u0646\u06cc
+SWT_Charset_Hebrew=\u0639\u0628\u0631\u06cc
+SWT_Charset_Turkish=\u062a\u0631\u06a9\u06cc
+SWT_Charset_Nordic=\u0634\u0645\u0627\u0644\u200c\u0627\u0631\u0648\u067e\u0627\u06cc\u06cc
+SWT_Charset_Thai=\u062a\u0627\u06cc\u06cc
+SWT_Charset_BalticRim=\u062d\u0627\u0634\u06cc\u0647\u0654 \u0628\u0627\u0644\u062a\u06cc\u06a9
+SWT_Charset_Celtic=\u0633\u0644\u062a\u06cc
+SWT_Charset_Euro=\u0627\u0631\u0648\u067e\u0627\u06cc\u06cc
+SWT_Charset_Romanian=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc
+SWT_Charset_SimplifiedChinese=\u0686\u06cc\u0646\u06cc \u0633\u0627\u062f\u0647
+SWT_Charset_TraditionalChinese=\u0686\u06cc\u0646\u06cc \u0633\u0646\u062a\u06cc
+SWT_Charset_Japanese=\u0698\u0627\u067e\u0646\u06cc
+SWT_Charset_Korean=\u06a9\u0631\u0647\u200c\u0627\u06cc
+SWT_Charset_Unicode=\u06cc\u0648\u0646\u06cc\u06a9\u062f
+SWT_Charset_ASCII=\u0627\u0633\u06a9\u06cc
+SWT_Close=\u0628\u0633\u062a\u0646
+SWT_Minimize=\u06a9\u0648\u0686\u06a9 \u06a9\u0631\u062f\u0646
+SWT_Maximize=\u0628\u06cc\u0634\u06cc\u0646\u0647\u200c\u06a9\u0631\u062f\u0646
+SWT_Restore=\u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0646
+SWT_General=\u0639\u0645\u0648\u0645\u06cc
+SWT_Value=\u0645\u0642\u062f\u0627\u0631
+SWT_Version=\u0646\u0633\u062e\u0647
diff --git a/org/eclipse/swt/internal/SWTMessages_fi.properties b/org/eclipse/swt/internal/SWTMessages_fi.properties
index 796ae74..6cc5ed5 100644
--- a/org/eclipse/swt/internal/SWTMessages_fi.properties
+++ b/org/eclipse/swt/internal/SWTMessages_fi.properties
@@ -22,4 +22,11 @@ SWT_Open=Avaa
 SWT_Close=Sulje
 SWT_Minimize=Pienenn\u00e4
 SWT_Maximize=Suurenna
-SWT_Restore=Palauta
\ No newline at end of file
+SWT_Restore=Palauta
+SWT_Continue=Jatka
+SWT_General=Yleiset
+SWT_Details=Tiedot
+SWT_Field=Kentt\u00e4
+SWT_Value=Arvo
+SWT_Version=Versio
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_fr.properties b/org/eclipse/swt/internal/SWTMessages_fr.properties
index 1b60f16..ba4aedb 100644
--- a/org/eclipse/swt/internal/SWTMessages_fr.properties
+++ b/org/eclipse/swt/internal/SWTMessages_fr.properties
@@ -62,4 +62,13 @@ SWT_Download_Location=Enregistrement de {0} depuis {1}
 SWT_Download_Started=T\u00e9l\u00e9chargement...
 SWT_Download_Status=T\u00e9l\u00e9charger\u00a0: {0,number,integer} ko de {1,number,integer} ko
 SWT_Authentication_Required=Authentification requise
-SWT_Enter_Username_and_Password=Entrer le nom d''utilisateur et le mot de passe pour {0} au niveau de {1}
\ No newline at end of file
+SWT_Enter_Username_and_Password=Entrer le nom d''utilisateur et le mot de passe pour {0} au niveau de {1}
+SWT_Continue=Continuer
+SWT_General=G\u00e9n\u00e9ral
+SWT_Details=D\u00e9tails
+SWT_Field=Champ
+SWT_Value=Valeur
+SWT_Version=Version
+SWT_ValidFrom=Valide \u00e0 partir du
+SWT_Subject=Sujet
+SWT_SerialNumber=Num\u00e9ro de s\u00e9rie
diff --git a/org/eclipse/swt/internal/SWTMessages_mn.properties b/org/eclipse/swt/internal/SWTMessages_hi.properties
similarity index 60%
copy from org/eclipse/swt/internal/SWTMessages_mn.properties
copy to org/eclipse/swt/internal/SWTMessages_hi.properties
index 7ce97ec..4328fab 100644
--- a/org/eclipse/swt/internal/SWTMessages_mn.properties
+++ b/org/eclipse/swt/internal/SWTMessages_hi.properties
@@ -1,2 +1,2 @@
 # Copyright by many contributors; see http://babel.eclipse.org/
-SWT_Cancel=\u0411\u043e\u043b\u0438\u0445
\ No newline at end of file
+SWT_OK=\u0920\u0940\u0915 \u0939\u0948
diff --git a/org/eclipse/swt/internal/SWTMessages_hu.properties b/org/eclipse/swt/internal/SWTMessages_hu.properties
index f2dd2c1..e3dc13d 100644
--- a/org/eclipse/swt/internal/SWTMessages_hu.properties
+++ b/org/eclipse/swt/internal/SWTMessages_hu.properties
@@ -22,4 +22,11 @@ SWT_Open=Megnyit\u00e1s
 SWT_Close=Bez\u00e1r\u00e1s
 SWT_Minimize=Kis m\u00e9ret
 SWT_Maximize=Teljes m\u00e9ret
-SWT_Restore=Vissza\u00e1ll\u00edt\u00e1s
\ No newline at end of file
+SWT_Restore=Vissza\u00e1ll\u00edt\u00e1s
+SWT_Continue=Folytat\u00e1s
+SWT_General=\u00c1ltal\u00e1nos
+SWT_Details=R\u00e9szletek
+SWT_Field=Mez\u0151
+SWT_Value=\u00c9rt\u00e9k
+SWT_Version=Verzi\u00f3
+SWT_Subject=T\u00e1rgy
diff --git a/org/eclipse/swt/internal/SWTMessages_it.properties b/org/eclipse/swt/internal/SWTMessages_it.properties
index bb229e6..c437941 100644
--- a/org/eclipse/swt/internal/SWTMessages_it.properties
+++ b/org/eclipse/swt/internal/SWTMessages_it.properties
@@ -60,4 +60,11 @@ SWT_FileDownload=Download file
 SWT_Download_File=Download: {0}
 SWT_Download_Location=Salvataggio di {0} da {1}
 SWT_Download_Started=Download in corso...
-SWT_Download_Status=Download: {0,number,integer} KB di {1,number,integer} KB
\ No newline at end of file
+SWT_Download_Status=Download: {0,number,integer} KB di {1,number,integer} KB
+SWT_Continue=Continua
+SWT_General=Generale
+SWT_Details=Dettagli
+SWT_Field=Campo
+SWT_Value=Valore
+SWT_Version=Versione
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_iw.properties b/org/eclipse/swt/internal/SWTMessages_iw.properties
index 0e9d119..b27ccba 100644
--- a/org/eclipse/swt/internal/SWTMessages_iw.properties
+++ b/org/eclipse/swt/internal/SWTMessages_iw.properties
@@ -7,6 +7,8 @@ SWT_Abort=Abort
 SWT_Ignore=Ignore
 SWT_Selection=Selection
 SWT_Font=\u05d2\u05d5\u05e4\u05df
+SWT_Color=\u05e6\u05d1\u05e2
+SWT_Size=\u05d2\u05d5\u05d3\u05dc
 SWT_Style=Style
 SWT_Save=\u05e9\u05de\u05d9\u05e8\u05d4
 SWT_Remove=Remove
@@ -18,4 +20,11 @@ SWT_Open=Open
 SWT_Close=\u05e1\u05d2\u05d9\u05e8\u05d4
 SWT_Minimize=\u05de\u05d6\u05e2\u05d5\u05e8
 SWT_Maximize=\u05d4\u05d2\u05d3\u05dc\u05d4
-SWT_Restore=\u05e9\u05d7\u05d6\u05d5\u05e8
\ No newline at end of file
+SWT_Restore=\u05e9\u05d7\u05d6\u05d5\u05e8
+SWT_Continue=Continue
+SWT_General=General
+SWT_Details=Details
+SWT_Field=Field
+SWT_Value=Value
+SWT_Version=\u05d2\u05e8\u05e1\u05d4
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_ja.properties b/org/eclipse/swt/internal/SWTMessages_ja.properties
index 3f48738..3dcd6bf 100644
--- a/org/eclipse/swt/internal/SWTMessages_ja.properties
+++ b/org/eclipse/swt/internal/SWTMessages_ja.properties
@@ -62,4 +62,13 @@ SWT_Download_Location={1} \u304b\u3089 {0} \u3092\u4fdd\u5b58\u3057\u3066\u3044\
 SWT_Download_Started=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9...
 SWT_Download_Status=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9 : {0,number,integer} KB / {1,number,integer} KB
 SWT_Authentication_Required=\u8a8d\u8a3c\u304c\u5fc5\u8981\u3067\u3059
-SWT_Enter_Username_and_Password={1} \u306b\u304a\u3051\u308b {0} \u306e\u30e6\u30fc\u30b6\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
\ No newline at end of file
+SWT_Enter_Username_and_Password={1} \u306b\u304a\u3051\u308b {0} \u306e\u30e6\u30fc\u30b6\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
+SWT_Continue=\u7d99\u7d9a
+SWT_General=\u4e00\u822c
+SWT_Details=\u8a73\u7d30
+SWT_Field=\u30d5\u30a3\u30fc\u30eb\u30c9
+SWT_Value=\u5024
+SWT_Version=\u30d0\u30fc\u30b8\u30e7\u30f3
+SWT_ValidFrom=\u6709\u52b9\u671f\u9650\u306e\u958b\u59cb
+SWT_Subject=\u30b5\u30d6\u30b8\u30a7\u30af\u30c8
+SWT_SerialNumber=\u30b7\u30ea\u30a2\u30eb\u756a\u53f7
diff --git a/org/eclipse/swt/internal/SWTMessages_ko.properties b/org/eclipse/swt/internal/SWTMessages_ko.properties
index 2adca26..574e6ad 100644
--- a/org/eclipse/swt/internal/SWTMessages_ko.properties
+++ b/org/eclipse/swt/internal/SWTMessages_ko.properties
@@ -62,4 +62,13 @@ SWT_Download_Location={1}\uc5d0\uc11c {0} \uc800\uc7a5
 SWT_Download_Started=\ub2e4\uc6b4\ub85c\ub4dc \uc911 ...
 SWT_Download_Status=\ub2e4\uc6b4\ub85c\ub4dc: {0,number,integer}KB/{1,number,integer}KB
 SWT_Authentication_Required=\uc778\uc99d \ud544\uc694
-SWT_Enter_Username_and_Password={1}\uc5d0 {0}\uc758 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \uc554\ud638\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.
\ No newline at end of file
+SWT_Enter_Username_and_Password={1}\uc5d0 {0}\uc758 \uc0ac\uc6a9\uc790 \uc774\ub984\uacfc \uc554\ud638\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.
+SWT_Continue=\uacc4\uc18d
+SWT_General=\uc77c\ubc18
+SWT_Details=\uc138\ubd80\uc0ac\ud56d
+SWT_Field=\ud544\ub4dc
+SWT_Value=\uac12
+SWT_Version=\ubc84\uc804
+SWT_ValidFrom=\uc720\ud6a8 \uae30\uac04 \uc2dc\uc791
+SWT_Subject=\uc8fc\uc81c
+SWT_SerialNumber=\uc77c\ub828 \ubc88\ud638
diff --git a/org/eclipse/swt/internal/SWTMessages_mn.properties b/org/eclipse/swt/internal/SWTMessages_mn.properties
index 7ce97ec..14e88df 100644
--- a/org/eclipse/swt/internal/SWTMessages_mn.properties
+++ b/org/eclipse/swt/internal/SWTMessages_mn.properties
@@ -1,2 +1,3 @@
 # Copyright by many contributors; see http://babel.eclipse.org/
-SWT_Cancel=\u0411\u043e\u043b\u0438\u0445
\ No newline at end of file
+SWT_Cancel=\u0411\u043e\u043b\u0438\u0445
+SWT_Version=\u0425\u0443\u0432\u0438\u043b\u0431\u0430\u0440
diff --git a/org/eclipse/swt/internal/SWTMessages_nl.properties b/org/eclipse/swt/internal/SWTMessages_nl.properties
index db94758..75dd792 100644
--- a/org/eclipse/swt/internal/SWTMessages_nl.properties
+++ b/org/eclipse/swt/internal/SWTMessages_nl.properties
@@ -22,4 +22,11 @@ SWT_Open=Openen
 SWT_Close=Sluiten
 SWT_Minimize=Minimaliseren
 SWT_Maximize=Maximaliseren
-SWT_Restore=Herstellen
\ No newline at end of file
+SWT_Restore=Herstellen
+SWT_Continue=Doorgaan
+SWT_General=Algemeen
+SWT_Details=Details
+SWT_Field=Veld
+SWT_Value=Waarde
+SWT_Version=Versie
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_no.properties b/org/eclipse/swt/internal/SWTMessages_no.properties
index 2d1bc5d..746df23 100644
--- a/org/eclipse/swt/internal/SWTMessages_no.properties
+++ b/org/eclipse/swt/internal/SWTMessages_no.properties
@@ -22,4 +22,11 @@ SWT_Open=\u00c5pne
 SWT_Close=Lukk
 SWT_Minimize=Minimer
 SWT_Maximize=Maksimer
-SWT_Restore=Gjenopprett
\ No newline at end of file
+SWT_Restore=Gjenopprett
+SWT_Continue=Fortsett
+SWT_General=Generelt
+SWT_Details=Detaljer
+SWT_Field=Felt
+SWT_Value=Verdi
+SWT_Version=Versjon
+SWT_Subject=Emne
diff --git a/org/eclipse/swt/internal/SWTMessages_pl.properties b/org/eclipse/swt/internal/SWTMessages_pl.properties
index 5f09c29..286bc14 100644
--- a/org/eclipse/swt/internal/SWTMessages_pl.properties
+++ b/org/eclipse/swt/internal/SWTMessages_pl.properties
@@ -39,4 +39,11 @@ SWT_FileDownload=Pobierz plik
 SWT_Download_File=Pobierz
 SWT_Download_Location=Zapisuj\u0119 {0} z {1}
 SWT_Download_Started=Pobieranie...
-SWT_Download_Status=Pobrano: {0,number,integer} KB z {1,number,integer} KB
\ No newline at end of file
+SWT_Download_Status=Pobrano: {0,number,integer} KB z {1,number,integer} KB
+SWT_Continue=Kontynuuj
+SWT_General=Og\u00f3lne
+SWT_Details=Szczeg\u00f3\u0142y
+SWT_Field=Pole
+SWT_Value=Warto\u015b\u0107
+SWT_Version=Wersja
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_pt.properties b/org/eclipse/swt/internal/SWTMessages_pt.properties
index 6b03c74..58e89c9 100644
--- a/org/eclipse/swt/internal/SWTMessages_pt.properties
+++ b/org/eclipse/swt/internal/SWTMessages_pt.properties
@@ -61,4 +61,11 @@ SWT_Download_Location=Gravando {0} de {1}
 SWT_Download_Started=Descarregando...
 SWT_Download_Status=Descarregar: {0,number,integer} KB de {1,number,integer} KB
 SWT_Authentication_Required=Autentica\u00e7\u00e3o Necess\u00e1ria
-SWT_Enter_Username_and_Password=Insira nome de utilizador e palavra-passe para {0} em {1}
\ No newline at end of file
+SWT_Enter_Username_and_Password=Insira nome de utilizador e palavra-passe para {0} em {1}
+SWT_Continue=Continuar
+SWT_General=Geral
+SWT_Details=Detalhes
+SWT_Field=Campo
+SWT_Value=Valor
+SWT_Version=Vers\u00e3o
+SWT_Subject=Sujeito
diff --git a/org/eclipse/swt/internal/SWTMessages_pt_BR.properties b/org/eclipse/swt/internal/SWTMessages_pt_BR.properties
index e80c352..0cb0bd2 100644
--- a/org/eclipse/swt/internal/SWTMessages_pt_BR.properties
+++ b/org/eclipse/swt/internal/SWTMessages_pt_BR.properties
@@ -22,4 +22,11 @@ SWT_Open=Abrir
 SWT_Close=Fechar
 SWT_Minimize=Minimizar
 SWT_Maximize=Maximizar
-SWT_Restore=Restaurar
\ No newline at end of file
+SWT_Restore=Restaurar
+SWT_Continue=Continuar
+SWT_General=Geral
+SWT_Details=Detalhes
+SWT_Field=Campo
+SWT_Value=Valor
+SWT_Version=Vers\u00e3o
+SWT_Subject=Assunto
diff --git a/org/eclipse/swt/internal/SWTMessages_ro.properties b/org/eclipse/swt/internal/SWTMessages_ro.properties
index 820114f..3535f9c 100644
--- a/org/eclipse/swt/internal/SWTMessages_ro.properties
+++ b/org/eclipse/swt/internal/SWTMessages_ro.properties
@@ -1,5 +1,10 @@
 # Copyright by many contributors; see http://babel.eclipse.org/
 SWT_Yes=Da
 SWT_No=Nu
+SWT_OK=OK
+SWT_Cancel=Anuleaz\u0103
+SWT_Save=Salva
+SWT_Remove=\u015eterge
 SWT_Password=Parol\u0103:
-SWT_Close=\u00cenchide
\ No newline at end of file
+SWT_Close=\u00cenchide
+SWT_General=General
diff --git a/org/eclipse/swt/internal/SWTMessages_ru.properties b/org/eclipse/swt/internal/SWTMessages_ru.properties
index 8d056cd..16655dc 100644
--- a/org/eclipse/swt/internal/SWTMessages_ru.properties
+++ b/org/eclipse/swt/internal/SWTMessages_ru.properties
@@ -28,3 +28,11 @@ SWT_Minimize=\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c
 SWT_Maximize=\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c
 SWT_Restore=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
 SWT_Download_Started=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430:
+SWT_Continue=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
+SWT_General=\u041e\u0431\u0449\u0438\u0435
+SWT_Details=\u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f
+SWT_Field=\u041f\u043e\u043b\u0435
+SWT_Value=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
+SWT_Version=\u0412\u0435\u0440\u0441\u0438\u044f
+SWT_Subject=\u0421\u0443\u0431\u044a\u0435\u043a\u0442
+SWT_SerialNumber=\u0421\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440
diff --git a/org/eclipse/swt/internal/SWTMessages_sl.properties b/org/eclipse/swt/internal/SWTMessages_sl.properties
new file mode 100644
index 0000000..aa2e63c
--- /dev/null
+++ b/org/eclipse/swt/internal/SWTMessages_sl.properties
@@ -0,0 +1,65 @@
+# Copyright by many contributors; see http://babel.eclipse.org/
+SWT_Yes=Da
+SWT_No=Ne
+SWT_OK=V redu
+SWT_Cancel=Prekli\u010di
+SWT_Abort=Prekini
+SWT_Retry=Poskusi ponovno
+SWT_Ignore=Prezri
+SWT_Sample=Vzorec
+SWT_A_Sample_Text=Vzor\u010dno besedilo
+SWT_Selection=Izbor
+SWT_Current_Selection=Trenutni izbor
+SWT_Font=Pisava
+SWT_Color=Barva
+SWT_Extended_style=Raz\u0161irjen stil
+SWT_Size=Velikost
+SWT_Style=Stil
+SWT_Save=Shrani
+SWT_Character_set=Nabor znakov
+SWT_ColorDialog_Title=Barve
+SWT_FontDialog_Title=Pisave
+SWT_FontSet=Nabor pisav
+SWT_NewFont=Nova pisava
+SWT_Remove=Odstrani
+SWT_Up=Gor
+SWT_Down=Dol
+SWT_Charset_Western=zahodna
+SWT_Charset_EastEuropean=vzhodna
+SWT_Charset_SouthEuropean=ju\u017ena
+SWT_Charset_NorthEuropean=severna
+SWT_Charset_Cyrillic=cirilica
+SWT_Charset_Arabic=arabska
+SWT_Charset_Greek=gr\u0161ka
+SWT_Charset_Hebrew=hebrejska
+SWT_Charset_Turkish=tur\u0161ka
+SWT_Charset_Nordic=nordijska
+SWT_Charset_Thai=tajska
+SWT_Charset_BalticRim=skandinavska/baltska
+SWT_Charset_Celtic=keltska
+SWT_Charset_Euro=evropska
+SWT_Charset_Romanian=romunska
+SWT_Charset_SimplifiedChinese=poenostavljena kitajska
+SWT_Charset_TraditionalChinese=tradicionalna kitajska
+SWT_Charset_Japanese=japonska
+SWT_Charset_Korean=korejska
+SWT_Charset_Unicode=unikod
+SWT_InputMethods=Na\u010dini vnosa
+SWT_Password=Geslo:
+SWT_Username=Uporabni\u0161ko ime:
+SWT_Switch=Preklopi
+SWT_Press=Pritisni
+SWT_Open=Odpri
+SWT_Close=Zapri
+SWT_Minimize=Minimiziraj
+SWT_Maximize=Maksimiziraj
+SWT_Restore=Obnovi
+SWT_ShowList=Prika\u017ei seznam
+SWT_FileDownload=Prenos datoteke
+SWT_Download_File=Prenos: {0}
+SWT_Download_Location=Shranjujem {0} od {1}
+SWT_Download_Started=Prena\u0161am ...
+SWT_Download_Status=Prenos: {0,number,integer} KB od {1,number,integer} KB
+SWT_Authentication_Required=Zahtevana avtentikacija
+SWT_Enter_Username_and_Password=Vpi\u0161ite uporabni\u0161ko ime in geslo za {0} pri {1}
+SWT_Page_Load_Failed=Nalaganje strani ni uspelo. Napaka: {0}
diff --git a/org/eclipse/swt/internal/SWTMessages_sv.properties b/org/eclipse/swt/internal/SWTMessages_sv.properties
index b251051..bc04ee8 100644
--- a/org/eclipse/swt/internal/SWTMessages_sv.properties
+++ b/org/eclipse/swt/internal/SWTMessages_sv.properties
@@ -22,4 +22,11 @@ SWT_Open=\u00d6ppna
 SWT_Close=St\u00e4ng
 SWT_Minimize=Minimera
 SWT_Maximize=Maximera
-SWT_Restore=\u00c5terst\u00e4ll
\ No newline at end of file
+SWT_Restore=\u00c5terst\u00e4ll
+SWT_Continue=Forts\u00e4tt
+SWT_General=Allm\u00e4nt
+SWT_Details=Detaljer
+SWT_Field=F\u00e4lt
+SWT_Value=V\u00e4rde
+SWT_Version=Version
+SWT_Subject=\u00c4mne
diff --git a/org/eclipse/swt/internal/SWTMessages_tr.properties b/org/eclipse/swt/internal/SWTMessages_tr.properties
index 19ba07c..666ad34 100644
--- a/org/eclipse/swt/internal/SWTMessages_tr.properties
+++ b/org/eclipse/swt/internal/SWTMessages_tr.properties
@@ -64,3 +64,10 @@ SWT_Download_Status=\u0130ndirilen: {0,number,integer} KB / {1,number,integer} K
 SWT_Authentication_Required=Kimlik Do\u011frulamas\u0131 Gerekiyor
 SWT_Enter_Username_and_Password={1} alan\u0131na {0} i\u00e7in kullan\u0131c\u0131 ad\u0131n\u0131 ve parolas\u0131n\u0131 girini\u015f
 SWT_Page_Load_Failed=Sayfa y\u00fcklemesi ba\u015far\u0131s\u0131z oldu: {0}
+SWT_Continue=Devam
+SWT_General=Genel
+SWT_Details=Ayr\u0131nt\u0131lar
+SWT_Field=Alan
+SWT_Value=De\u011fer
+SWT_Version=S\u00fcr\u00fcm
+SWT_Subject=Subject
diff --git a/org/eclipse/swt/internal/SWTMessages_uk.properties b/org/eclipse/swt/internal/SWTMessages_uk.properties
index 0549844..d10afab 100644
--- a/org/eclipse/swt/internal/SWTMessages_uk.properties
+++ b/org/eclipse/swt/internal/SWTMessages_uk.properties
@@ -64,3 +64,6 @@ SWT_Download_Status=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d
 SWT_Authentication_Required=\u041f\u043e\u0442\u0440\u0456\u0431\u043d\u0430 \u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0456\u044f
 SWT_Enter_Username_and_Password=\u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0456\u043c\''\u044f \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0442\u0430 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f {0} \u0432 {1}
 SWT_Page_Load_Failed=\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0432\u0434\u0430\u043b\u043e \u0437 \u043f\u043e\u043c\u0438\u043b\u043a\u043e\u044e: {0}
+SWT_General=\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0435
+SWT_Value=\u0417\u043d\u0430\u0447\u0435\u043d\u043d\u044f
+SWT_Version=\u0412\u0435\u0440\u0441\u0456\u044f
diff --git a/org/eclipse/swt/internal/SWTMessages_zh.properties b/org/eclipse/swt/internal/SWTMessages_zh.properties
index 399df80..faf4231 100644
--- a/org/eclipse/swt/internal/SWTMessages_zh.properties
+++ b/org/eclipse/swt/internal/SWTMessages_zh.properties
@@ -63,3 +63,12 @@ SWT_Download_Started=\u6b63\u5728\u4e0b\u8f7d...
 SWT_Download_Status=\u4e0b\u8f7d\uff1a{0,number,integer} KB\uff08\u5171 {1,number,integer} KB\uff09
 SWT_Authentication_Required=\u9700\u8981\u8ba4\u8bc1
 SWT_Enter_Username_and_Password=\u8f93\u5165 {0}\uff08\u4f4d\u4e8e {1}\uff09\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801
+SWT_Continue=\u7ee7\u7eed
+SWT_General=\u5e38\u89c4
+SWT_Details=\u8be6\u7ec6\u4fe1\u606f
+SWT_Field=\u5b57\u6bb5
+SWT_Value=\u503c
+SWT_Version=\u7248\u672c
+SWT_ValidFrom=\u751f\u6548\u65e5\u671f
+SWT_Subject=Subject
+SWT_SerialNumber=\u5e8f\u5217\u53f7
diff --git a/org/eclipse/swt/internal/SWTMessages_zh_TW.properties b/org/eclipse/swt/internal/SWTMessages_zh_TW.properties
index 9ec42cc..05e2d8e 100644
--- a/org/eclipse/swt/internal/SWTMessages_zh_TW.properties
+++ b/org/eclipse/swt/internal/SWTMessages_zh_TW.properties
@@ -61,4 +61,13 @@ SWT_Download_Location=\u5132\u5b58 {1} \u7684 {0}
 SWT_Download_Started=\u6b63\u5728\u4e0b\u8f09...
 SWT_Download_Status=\u4e0b\u8f09\uff1a{0,number,integer} KB (\u5171 {1,number,integer} KB)
 SWT_Authentication_Required=\u9700\u8981\u9451\u5225
-SWT_Enter_Username_and_Password=\u65bc {1} \u8655\u8f38\u5165 {0} \u7684\u4f7f\u7528\u8005\u540d\u7a31\u53ca\u5bc6\u78bc
\ No newline at end of file
+SWT_Enter_Username_and_Password=\u65bc {1} \u8655\u8f38\u5165 {0} \u7684\u4f7f\u7528\u8005\u540d\u7a31\u53ca\u5bc6\u78bc
+SWT_Continue=\u7e7c\u7e8c
+SWT_General=\u4e00\u822c\u4e8b\u9805
+SWT_Details=\u8a73\u7d30\u8cc7\u6599
+SWT_Field=\u6b04\u4f4d
+SWT_Value=\u503c
+SWT_Version=\u7248\u672c
+SWT_ValidFrom=\u751f\u6548\u65e5\u671f
+SWT_Subject=\u4e3b\u984c
+SWT_SerialNumber=\u5e8f\u865f
diff --git a/org/eclipse/swt/internal/accessibility/gtk/ATK.java b/org/eclipse/swt/internal/accessibility/gtk/ATK.java
index a54a31a..d643afc 100644
--- a/org/eclipse/swt/internal/accessibility/gtk/ATK.java
+++ b/org/eclipse/swt/internal/accessibility/gtk/ATK.java
@@ -204,6 +204,8 @@ public static final native int /*long*/ ATK_TYPE_ACTION ();
 /** @method flags=const */
 public static final native int /*long*/ ATK_TYPE_COMPONENT ();
 /** @method flags=const */
+public static final native int /*long*/ ATK_TYPE_EDITABLE_TEXT ();
+/** @method flags=const */
 public static final native int /*long*/ ATK_TYPE_HYPERTEXT ();
 /** @method flags=const */
 public static final native int /*long*/ ATK_TYPE_SELECTION ();
@@ -244,6 +246,15 @@ public static final int /*long*/ ATK_SELECTION_GET_IFACE (int /*long*/ obj) {
 		lock.unlock();
 	}
 }
+public static final native int /*long*/ _ATK_EDITABLE_TEXT_GET_IFACE (int /*long*/ handle);
+public static final int /*long*/ ATK_EDITABLE_TEXT_GET_IFACE (int /*long*/ handle) {
+	lock.lock();
+	try {
+		return _ATK_EDITABLE_TEXT_GET_IFACE(handle);
+	} finally {
+		lock.unlock();
+	}
+}
 public static final native int /*long*/ _ATK_HYPERTEXT_GET_IFACE (int /*long*/ handle);
 public static final int /*long*/ ATK_HYPERTEXT_GET_IFACE (int /*long*/ handle) {
 	lock.lock();
@@ -546,6 +557,7 @@ public static final int /*long*/ call (int /*long*/ function, int /*long*/ arg0,
 public static final native int /*long*/ g_strdup (int /*long*/ str);
 public static final native void memmove (AtkActionIface dest, int /*long*/ src);
 public static final native void memmove (AtkComponentIface dest, int /*long*/ src);
+public static final native void memmove (AtkEditableTextIface dest, int /*long*/ src);
 public static final native void memmove (AtkHypertextIface dest, int /*long*/ src);
 public static final native void memmove (AtkObjectClass dest, int /*long*/ src);
 public static final native void memmove (AtkObjectFactoryClass  dest, int /*long*/ src);
@@ -556,6 +568,7 @@ public static final native void memmove (AtkValueIface dest, int /*long*/ src);
 public static final native void memmove (GtkAccessible  dest, int /*long*/ src);
 public static final native void memmove (int /*long*/ dest, AtkActionIface src);
 public static final native void memmove (int /*long*/ dest, AtkComponentIface src);
+public static final native void memmove (int /*long*/ dest, AtkEditableTextIface src);
 public static final native void memmove (int /*long*/ dest, AtkHypertextIface src);
 public static final native void memmove (int /*long*/ dest, AtkObjectClass src);
 public static final native void memmove (int /*long*/ dest, AtkObjectFactoryClass src);
diff --git a/org/eclipse/swt/internal/gtk/GObjectClass.java b/org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java
similarity index 69%
copy from org/eclipse/swt/internal/gtk/GObjectClass.java
copy to org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java
index 649eba2..f4f7723 100644
--- a/org/eclipse/swt/internal/gtk/GObjectClass.java
+++ b/org/eclipse/swt/internal/accessibility/gtk/AtkEditableTextIface.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2010, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -12,22 +12,21 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-package org.eclipse.swt.internal.gtk;
+package org.eclipse.swt.internal.accessibility.gtk;
 
-
-public class GObjectClass {
-	/** @field cast=(GObject *(*)()) */
-	public int /*long*/ constructor;
+public class AtkEditableTextIface {
+	/** @field cast=(gboolean (*)()) */
+	public int /*long*/ set_run_attributes;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ set_property;
+	public int /*long*/ set_text_contents;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ get_property;
+	public int /*long*/ insert_text;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ dispose;
+	public int /*long*/ copy_text;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ finalize;
+	public int /*long*/ cut_text;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ dispatch_properties_changed;
+	public int /*long*/ delete_text;
 	/** @field cast=(void (*)()) */
-	public int /*long*/ notify;
+	public int /*long*/ paste_text;
 }
diff --git a/org/eclipse/swt/internal/gtk/OS.java b/org/eclipse/swt/internal/gtk/OS.java
index 41ed3fa..9c3db9f 100644
--- a/org/eclipse/swt/internal/gtk/OS.java
+++ b/org/eclipse/swt/internal/gtk/OS.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -311,6 +311,9 @@ public class OS extends C {
 	public static final int GTK_PRINT_PAGES_ALL = 0;
 	public static final int GTK_PRINT_PAGES_CURRENT = 1;
 	public static final int GTK_PRINT_PAGES_RANGES = 2;
+	public static final int GTK_PRINT_DUPLEX_SIMPLEX = 0;
+	public static final int GTK_PRINT_DUPLEX_HORIZONTAL = 1;
+	public static final int GTK_PRINT_DUPLEX_VERTICAL = 2;
 	public static final int GTK_PROGRESS_CONTINUOUS = 0x0;
 	public static final int GTK_PROGRESS_DISCRETE = 0x1;
 	public static final int GTK_PROGRESS_LEFT_TO_RIGHT = 0x0;
@@ -408,7 +411,15 @@ public class OS extends C {
 	public static final int PANGO_DIRECTION_LTR = 0;
 	public static final int PANGO_DIRECTION_RTL = 1;	
 	public static final int PANGO_SCALE = 1024;
+	public static final int PANGO_STRETCH_ULTRA_CONDENSED = 0x0;
+	public static final int PANGO_STRETCH_EXTRA_CONDENSED = 0x1;
+	public static final int PANGO_STRETCH_CONDENSED = 0x2;
+	public static final int PANGO_STRETCH_SEMI_CONDENSED = 0x3;
 	public static final int PANGO_STRETCH_NORMAL = 0x4;
+	public static final int PANGO_STRETCH_SEMI_EXPANDED = 0x5;
+	public static final int PANGO_STRETCH_EXPANDED = 0x6;
+	public static final int PANGO_STRETCH_EXTRA_EXPANDED = 0x7;
+	public static final int PANGO_STRETCH_ULTRA_EXPANDED = 0x8;
 	public static final int PANGO_STYLE_ITALIC = 0x2;
 	public static final int PANGO_STYLE_NORMAL = 0x0;
 	public static final int PANGO_STYLE_OBLIQUE = 0x1;
@@ -418,6 +429,8 @@ public class OS extends C {
 	public static final int PANGO_UNDERLINE_DOUBLE = 2;
 	public static final int PANGO_UNDERLINE_LOW = 3;
 	public static final int PANGO_UNDERLINE_ERROR = 4;
+	public static final int PANGO_VARIANT_NORMAL = 0;
+	public static final int PANGO_VARIANT_SMALL_CAPS = 1;
 	public static final int PANGO_WEIGHT_BOLD = 0x2bc;
 	public static final int PANGO_WEIGHT_NORMAL = 0x190;
 	public static final int PANGO_WRAP_WORD = 0;
@@ -514,6 +527,7 @@ public class OS extends C {
 	public static final byte[] expander_size = ascii("expander-size");
 	public static final byte[] fixed_height_mode = ascii("fixed-height-mode");
 	public static final byte[] focus_line_width = ascii("focus-line-width");
+	public static final byte[] focus_padding = ascii("focus-padding");
 	public static final byte[] font_desc = ascii("font-desc");
 	public static final byte[] foreground_gdk = ascii("foreground-gdk");
 	public static final byte[] grid_line_width = ascii("grid-line-width");
@@ -522,12 +536,17 @@ public class OS extends C {
 	public static final byte[] gtk_cursor_blink_time = ascii("gtk-cursor-blink-time");
 	public static final byte[] gtk_double_click_time = ascii("gtk-double-click-time");
 	public static final byte[] gtk_entry_select_on_focus = ascii("gtk-entry-select-on-focus");
+	public static final byte[] gtk_show_input_method_menu = ascii("gtk-show-input-method-menu");
+	public static final byte[] gtk_menu_bar_accel = ascii("gtk-menu-bar-accel");
 	public static final byte[] inner_border = ascii("inner-border");
 	public static final byte[] horizontal_separator = ascii("horizontal-separator");
 	public static final byte[] inconsistent = ascii("inconsistent");
+	public static final byte[] indicator_size = ascii("indicator-size");
+	public static final byte[] indicator_spacing = ascii("indicator-spacing");
 	public static final byte[] interior_focus = ascii("interior-focus");
 	public static final byte[] mode = ascii("mode");
 	public static final byte[] model = ascii("model");
+	public static final byte[] spacing = ascii("spacing");
 	public static final byte[] pixbuf = ascii("pixbuf");
 	public static final byte[] text = ascii("text");
 	public static final byte[] xalign = ascii("xalign");
@@ -622,6 +641,8 @@ public static final native int /*long*/ localeconv_decimal_point();
  */
 public static final native int /*long*/ realpath(byte[] path, byte[] realPath);
 
+
+
 /** Object private fields accessors */
 
 
@@ -1287,7 +1308,7 @@ public static final native void memmove(XFocusChangeEvent dest, int /*long*/ src
  */
 public static final native void memmove(XVisibilityEvent dest, int /*long*/ src, int /*long*/ size);
 
-/** @method flags=const*/
+/** @method flags=const */
 public static final native int RTLD_GLOBAL();
 /** @method flags=const */
 public static final native int RTLD_NOW();
@@ -2420,6 +2441,18 @@ public static final void g_list_free_1(int /*long*/ list) {
 		lock.unlock();
 	}
 }
+/**
+ * @param list cast=(GList *)
+ */
+public static final native int /*long*/ _g_list_last(int /*long*/ list);
+public static final int /*long*/ g_list_last(int /*long*/ list) {
+	lock.lock();
+	try {
+		return _g_list_last(list);
+	} finally {
+		lock.unlock();
+	}
+}
 /** @param list cast=(GList *) */
 public static final native int _g_list_length(int /*long*/ list);
 public static final int g_list_length(int /*long*/ list) {
@@ -2637,6 +2670,20 @@ public static final void g_object_get(int /*long*/ object, byte[] first_property
 }
 /**
  * @param object cast=(GObject *)
+ * @param first_property_name cast=(const gchar *),flags=no_out
+ * @param terminator cast=(const gchar *),flags=sentinel
+ */
+public static final native void _g_object_get(int /*long*/ object, byte[] first_property_name, long[] value, int /*long*/ terminator);
+public static final void g_object_get(int /*long*/ object, byte[] first_property_name, long[] value, int /*long*/ terminator) {
+	lock.lock();
+	try {
+		_g_object_get(object, first_property_name, value, terminator);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @param object cast=(GObject *)
  * @param quark cast=(GQuark)
  */
 public static final native int /*long*/ _g_object_get_qdata(int /*long*/ object, int quark);
@@ -3350,6 +3397,59 @@ public static final int /*long*/ g_utf8_pointer_to_offset(int /*long*/ str, int
 	}
 }
 /** @param str cast=(const gchar *) */
+public static final native int /*long*/ _g_utf16_offset_to_pointer(int /*long*/ str, int /*long*/ offset);
+public static final int /*long*/ g_utf16_offset_to_pointer(int /*long*/ str, int /*long*/ offset) {
+	lock.lock();
+	try {
+		return _g_utf16_offset_to_pointer(str, offset);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @param str cast=(const gchar *)
+ * @param pos cast=(const gchar *)
+ */
+public static final native int /*long*/ _g_utf16_pointer_to_offset(int /*long*/ str, int /*long*/ pos);
+public static final int /*long*/ g_utf16_pointer_to_offset(int /*long*/ str, int /*long*/ pos) {
+	lock.lock();
+	try {
+		return _g_utf16_pointer_to_offset(str, pos);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @param str cast=(const gchar *) */
+public static final native int /*long*/ _g_utf16_strlen(int /*long*/ str, int /*long*/ max);
+public static final int /*long*/ g_utf16_strlen(int /*long*/ str, int /*long*/ max) {
+	lock.lock();
+	try {
+		return _g_utf16_strlen(str, max);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @param str cast=(const gchar *) */
+public static final native int /*long*/ _g_utf8_offset_to_utf16_offset(int /*long*/ str, int /*long*/ offset);
+public static final int /*long*/ g_utf8_offset_to_utf16_offset(int /*long*/ str, int /*long*/ offset) {
+	lock.lock();
+	try {
+		return _g_utf8_offset_to_utf16_offset(str, offset);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @param str cast=(const gchar *) */
+public static final native int /*long*/ _g_utf16_offset_to_utf8_offset(int /*long*/ str, int /*long*/ offset);
+public static final int /*long*/ g_utf16_offset_to_utf8_offset(int /*long*/ str, int /*long*/ offset) {
+	lock.lock();
+	try {
+		return _g_utf16_offset_to_utf8_offset(str, offset);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @param str cast=(const gchar *) */
 public static final native int /*long*/ _g_utf8_strlen(int /*long*/ str, int /*long*/ max);
 public static final int /*long*/ g_utf8_strlen(int /*long*/ str, int /*long*/ max) {
 	lock.lock();
@@ -5033,6 +5133,13 @@ public static final int gdk_text_property_to_utf8_list  (int /*long*/ encoding,
 		lock.unlock();
 	}
 }
+public static final native void gdk_threads_init ();
+public static final native void gdk_threads_enter ();
+public static final native void gdk_threads_leave ();
+/**
+ * @method flags=dynamic
+ */
+public static final native void gdk_threads_set_lock_functions(int /*long*/ enter_fn, int /*long*/ leave_fn);
 /**
  * @method flags=dynamic
  * @param display cast=(GdkDisplay*)
@@ -5304,6 +5411,16 @@ public static final boolean gdk_window_is_visible(int /*long*/ window) {
 	}
 }
 /** @param window cast=(GdkWindow *) */
+public static final native boolean _gdk_window_is_viewable (int /*long*/ window);
+public static final boolean gdk_window_is_viewable (int /*long*/ window) {
+	lock.lock();
+	try {
+		return _gdk_window_is_viewable (window);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @param window cast=(GdkWindow *) */
 public static final native void _gdk_window_move(int /*long*/ window, int x, int y);
 public static final void gdk_window_move(int /*long*/ window, int x, int y) {
 	lock.lock();
@@ -5598,6 +5715,29 @@ public static final void gdk_window_thaw_updates(int /*long*/ window) {
 		lock.unlock();
 	}
 }
+public static final native int _gtk_accelerator_get_default_mod_mask();
+public static final int gtk_accelerator_get_default_mod_mask() {
+	lock.lock();
+	try {
+		return _gtk_accelerator_get_default_mod_mask();
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @param accelerator cast=(const gchar *)
+ * @param accelerator_key cast=(guint *)
+ * @param accelerator_mods cast=(GdkModifierType *)
+ */
+public static final native void _gtk_accelerator_parse(int /*long*/ accelerator, int [] accelerator_key, int [] accelerator_mods);
+public static final void gtk_accelerator_parse(int /*long*/ accelerator, int [] accelerator_key, int [] accelerator_mods) {
+	lock.lock();
+	try {
+		_gtk_accelerator_parse(accelerator, accelerator_key, accelerator_mods);
+	} finally {
+		lock.unlock();
+	}
+}
 public static final native int /*long*/ _gtk_accel_group_new();
 public static final int /*long*/ gtk_accel_group_new() {
 	lock.lock();
@@ -5837,6 +5977,34 @@ public static final void gtk_calendar_select_day(int /*long*/ calendar, int day)
 /**
  * @method flags=dynamic
  * @param calendar cast=(GtkCalendar *)
+ * @param day cast=(guint)
+ */
+public static final native void _gtk_calendar_mark_day(int /*long*/ calendar, int day);
+public static final void gtk_calendar_mark_day(int /*long*/ calendar, int day) {
+	lock.lock();
+	try {
+		_gtk_calendar_mark_day(calendar, day);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @method flags=dynamic
+ * @param calendar cast=(GtkCalendar *)
+ * @param day cast=(guint)
+ */
+public static final native void _gtk_calendar_clear_marks(int /*long*/ calendar);
+public static final void gtk_calendar_clear_marks(int /*long*/ calendar) {
+	lock.lock();
+	try {
+		_gtk_calendar_clear_marks(calendar);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @method flags=dynamic
+ * @param calendar cast=(GtkCalendar *)
  * @param flags cast=(GtkCalendarDisplayOptions)
  */
 public static final native void _gtk_calendar_set_display_options(int /*long*/ calendar, int flags);
@@ -6059,6 +6227,34 @@ public static final boolean gtk_clipboard_set_with_owner(int /*long*/ clipboard,
 	}
 }
 /**
+ * @method flags=dynamic
+ * @param clipboard cast=(GtkClipboard *)
+ * @param targets cast=(const GtkTargetEntry *)
+ * @param n_targets cast=(gint)
+ */
+public static final native void _gtk_clipboard_set_can_store(int /*long*/ clipboard, int /*long*/ targets, int n_targets);
+public static final void gtk_clipboard_set_can_store(int /*long*/ clipboard, int /*long*/ targets, int n_targets) {
+	lock.lock();
+	try {
+		_gtk_clipboard_set_can_store(clipboard, targets, n_targets);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
+ * @method flags=dynamic
+ * @param clipboard cast=(GtkClipboard *)
+ */
+public static final native void _gtk_clipboard_store(int /*long*/ clipboard);
+public static final void gtk_clipboard_store(int /*long*/ clipboard) {
+	lock.lock();
+	try {
+		_gtk_clipboard_store(clipboard);
+	} finally {
+		lock.unlock();
+	}
+}
+/**
  * @param clipboard cast=(GtkClipboard *)
  * @param target cast=(GdkAtom)
  */
@@ -7469,6 +7665,15 @@ public static final int /*long*/ gtk_hseparator_new() {
 		lock.unlock();
 	}
 }
+public static final native int /*long*/ _gtk_status_icon_position_menu_func();
+public static final int /*long*/ gtk_status_icon_position_menu_func() {
+	lock.lock();
+	try {
+		return _gtk_status_icon_position_menu_func();
+	} finally {
+		lock.unlock();
+	}
+}
 /**
  * @method flags=dynamic
  */
@@ -9301,6 +9506,26 @@ public static final void gtk_print_settings_set_collate(int /*long*/ settings, b
 	}
 }
 /** @method flags=dynamic */
+public static final native int _gtk_print_settings_get_duplex(int /*long*/ settings);
+public static final int gtk_print_settings_get_duplex(int /*long*/ settings) {
+	lock.lock();
+	try {
+		return _gtk_print_settings_get_duplex(settings);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @method flags=dynamic */
+public static final native void _gtk_print_settings_set_duplex(int /*long*/ settings, int duplex);
+public static final void gtk_print_settings_set_duplex(int /*long*/ settings, int duplex) {
+	lock.lock();
+	try {
+		_gtk_print_settings_set_duplex(settings, duplex);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @method flags=dynamic */
 public static final native int _gtk_print_settings_get_n_copies(int /*long*/ settings);
 public static final int gtk_print_settings_get_n_copies(int /*long*/ settings) {
 	lock.lock();
@@ -9414,6 +9639,16 @@ public static final int /*long*/ gtk_print_unix_dialog_new(byte[] title, int /*l
 	}
 }
 /** @method flags=dynamic */
+public static final native void _gtk_print_unix_dialog_set_embed_page_setup(int /*long*/ dialog, boolean embed);
+public static final void gtk_print_unix_dialog_set_embed_page_setup(int /*long*/ dialog, boolean embed) {
+	lock.lock();
+	try {
+		_gtk_print_unix_dialog_set_embed_page_setup(dialog, embed);
+	} finally {
+		lock.unlock();
+	}
+}
+/** @method flags=dynamic */
 public static final native void _gtk_print_unix_dialog_set_page_setup(int /*long*/ dialog, int /*long*/ page_setup);
 public static final void gtk_print_unix_dialog_set_page_setup(int /*long*/ dialog, int /*long*/ page_setup) {
 	lock.lock();
@@ -14401,6 +14636,19 @@ public static final void pango_font_description_set_weight(int /*long*/ desc, in
 		lock.unlock();
 	}
 }
+/**
+ * @param desc cast=(PangoFontDescription *)
+ * @param variant cast=(PangoVariant)
+ */
+public static final native void _pango_font_description_set_variant(int /*long*/ desc, int variant);
+public static final void pango_font_description_set_variant(int /*long*/ desc, int variant) {
+	lock.lock();
+	try {
+		_pango_font_description_set_variant(desc, variant);
+	} finally {
+		lock.unlock();
+	}
+}
 /** @param desc cast=(PangoFontDescription *) */
 public static final native int /*long*/ _pango_font_description_to_string(int /*long*/ desc);
 public static final int /*long*/ pango_font_description_to_string(int /*long*/ desc) {
diff --git a/org/eclipse/swt/internal/image/JPEGDecoder.java b/org/eclipse/swt/internal/image/JPEGDecoder.java
index 54d6daa..9a94f8e 100644
--- a/org/eclipse/swt/internal/image/JPEGDecoder.java
+++ b/org/eclipse/swt/internal/image/JPEGDecoder.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -2300,16 +2300,16 @@ static void jinit_d_coef_controller (jpeg_decompress_struct cinfo, boolean need_
 		/* Allocate a full-image virtual array for each component, */
 		/* padded to a multiple of samp_factor DCT blocks in each direction. */
 		/* Note we ask for a pre-zeroed array. */
-		int ci, access_rows;
+		int ci; //, access_rows;
 		jpeg_component_info compptr;
 
 		for (ci = 0; ci < cinfo.num_components; ci++) {
 			compptr = cinfo.comp_info[ci];
-			access_rows = compptr.v_samp_factor;
+			//access_rows = compptr.v_samp_factor;
 //#ifdef BLOCK_SMOOTHING_SUPPORTED
 			/* If block smoothing could be used, need a bigger window */
-			if (cinfo.progressive_mode)
-				access_rows *= 3;
+			//if (cinfo.progressive_mode)
+				//access_rows *= 3;
 //#endif
 			coef.whole_image[ci] = 
 				new short
@@ -3821,7 +3821,7 @@ static int decompress_smooth_data (jpeg_decompress_struct cinfo, byte[][][] outp
 	jpeg_d_coef_controller coef = cinfo.coef;
 	int last_iMCU_row = cinfo.total_iMCU_rows - 1;
 	int block_num, last_block_column;
-	int ci, block_row, block_rows, access_rows;
+	int ci, block_row, block_rows; //, access_rows;
 	short[][][] buffer;
 	short[][] buffer_ptr, prev_block_row, next_block_row;
 	byte[][] output_ptr;
@@ -3862,19 +3862,19 @@ static int decompress_smooth_data (jpeg_decompress_struct cinfo, byte[][][] outp
 		/* Count non-dummy DCT block rows in this iMCU row. */
 		if (cinfo.output_iMCU_row < last_iMCU_row) {
 			block_rows = compptr.v_samp_factor;
-			access_rows = block_rows * 2; /* this and next iMCU row */
+			//access_rows = block_rows * 2; /* this and next iMCU row */
 			last_row = false;
 		} else {
 			/* NB: can't use last_row_height here; it is input-side-dependent! */
 			block_rows = (compptr.height_in_blocks % compptr.v_samp_factor);
 			if (block_rows == 0) block_rows = compptr.v_samp_factor;
-			access_rows = block_rows; /* this iMCU row only */
+			//access_rows = block_rows; /* this iMCU row only */
 			last_row = true;
 		}
 		/* Align the virtual buffer for this component. */
 		int buffer_offset;
 		if (cinfo.output_iMCU_row > 0) {
-			access_rows += compptr.v_samp_factor; /* prior iMCU row too */
+			//access_rows += compptr.v_samp_factor; /* prior iMCU row too */
 			buffer = coef.whole_image[ci];
 			buffer_offset = (cinfo.output_iMCU_row - 1) * compptr.v_samp_factor;
 			buffer_offset += compptr.v_samp_factor;	/* point to current iMCU row */
diff --git a/org/eclipse/swt/internal/mozilla/XPCOM.java b/org/eclipse/swt/internal/mozilla/XPCOM.java
index 79be3c2..3d8d084 100644
--- a/org/eclipse/swt/internal/mozilla/XPCOM.java
+++ b/org/eclipse/swt/internal/mozilla/XPCOM.java
@@ -22,7 +22,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Mozilla and SWT
- * -  Copyright (C) 2003, 2006 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2003, 2010 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 package org.eclipse.swt.internal.mozilla;
diff --git a/org/eclipse/swt/internal/mozilla/nsICancelable.java b/org/eclipse/swt/internal/mozilla/init/GREProperty.java
similarity index 62%
copy from org/eclipse/swt/internal/mozilla/nsICancelable.java
copy to org/eclipse/swt/internal/mozilla/init/GREProperty.java
index e20f203..d5935e3 100644
--- a/org/eclipse/swt/internal/mozilla/nsICancelable.java
+++ b/org/eclipse/swt/internal/mozilla/init/GREProperty.java
@@ -22,26 +22,16 @@
  *
  * IBM
  * -  Binding to permit interfacing between Mozilla and SWT
- * -  Copyright (C) 2003 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2011 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
-package org.eclipse.swt.internal.mozilla;
+package org.eclipse.swt.internal.mozilla.init;
 
-public class nsICancelable extends nsISupports {
-
-	static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 1;
-
-	public static final String NS_ICANCELABLE_IID_STR =
-		"d94ac0a0-bb18-46b8-844e-84159064b0bd";
-
-	public static final nsID NS_ICANCELABLE_IID =
-		new nsID(NS_ICANCELABLE_IID_STR);
-
-	public nsICancelable(int /*long*/ address) {
-		super(address);
-	}
-
-	public int Cancel(int aReason) {
-		return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aReason);
-	}
+/** @jniclass flags=cpp */
+public class GREProperty {
+	/** @field cast=(const char *) */
+	public int /*long*/ property;
+	/** @field cast=(const char *) */
+	public int /*long*/ value;
+    public static final int sizeof = XPCOMInit.GREProperty_sizeof ();
 }
diff --git a/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java b/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
index da361dd..0ec838b 100644
--- a/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
+++ b/org/eclipse/swt/internal/mozilla/init/GREVersionRange.java
@@ -1,13 +1,30 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
  *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation.  All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * -  Binding to permit interfacing between Mozilla and SWT
+ * -  Copyright (C) 2003, 2011 IBM Corp.  All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
 package org.eclipse.swt.internal.mozilla.init;
 
 /** @jniclass flags=cpp */
diff --git a/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java b/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
index a746934..d8901f2 100644
--- a/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
+++ b/org/eclipse/swt/internal/mozilla/init/XPCOMInit.java
@@ -22,7 +22,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Mozilla and SWT
- * -  Copyright (C) 2003, 2006 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2003, 2011 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 package org.eclipse.swt.internal.mozilla.init;
@@ -32,7 +32,8 @@ import org.eclipse.swt.internal.Platform;
 /** @jniclass flags=cpp */
 public class XPCOMInit extends Platform {
 	public static final int PATH_MAX = 4096;
-	
+
+public static final native int GREProperty_sizeof ();
 public static final native int GREVersionRange_sizeof ();
 
 /**
@@ -40,8 +41,8 @@ public static final native int GREVersionRange_sizeof ();
  * @param properties cast=(const GREProperty *)
  * @param buffer cast=(char *)
  */
-public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen);
-public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, int /*long*/ properties, int propertiesLength, int /*long*/ buffer, int buflen) {
+public static final native int _GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, int /*long*/ buffer, int buflen);
+public static final int GRE_GetGREPathWithProperties (GREVersionRange versions, int versionsLength, GREProperty properties, int propertiesLength, int /*long*/ buffer, int buflen) {
 	lock.lock();
 	try {
 		return _GRE_GetGREPathWithProperties(versions, versionsLength, properties, propertiesLength, buffer, buflen);
diff --git a/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java b/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
index 7857539..1053001 100644
--- a/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
+++ b/org/eclipse/swt/internal/mozilla/nsDynamicFunctionLoad.java
@@ -1,13 +1,30 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1
  *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by Netscape are Copyright (C) 1998-1999
+ * Netscape Communications Corporation.  All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * IBM
+ * -  Binding to permit interfacing between Mozilla and SWT
+ * -  Copyright (C) 2003, 2011 IBM Corp.  All Rights Reserved.
+ *
+ * ***** END LICENSE BLOCK ***** */
 package org.eclipse.swt.internal.mozilla;
 
 public class nsDynamicFunctionLoad {
diff --git a/org/eclipse/swt/internal/mozilla/nsID.java b/org/eclipse/swt/internal/mozilla/nsID.java
index 716aab3..9e2a28b 100644
--- a/org/eclipse/swt/internal/mozilla/nsID.java
+++ b/org/eclipse/swt/internal/mozilla/nsID.java
@@ -22,7 +22,7 @@
  *
  * IBM
  * -  Binding to permit interfacing between Mozilla and SWT
- * -  Copyright (C) 2003, 2004 IBM Corp.  All Rights Reserved.
+ * -  Copyright (C) 2003, 2010 IBM Corp.  All Rights Reserved.
  *
  * ***** END LICENSE BLOCK ***** */
 package org.eclipse.swt.internal.mozilla;
@@ -36,6 +36,8 @@ public class nsID {
 	public byte[] m3 = new byte[8];
 	public static final int sizeof = 16;
 
+	static final String zeros = "00000000"; //$NON-NLS-1$
+
 public nsID() {
 }
 
@@ -118,4 +120,21 @@ public void Parse(String aIDStr) {
 	}
 }
 
+static String toHex (int v, int length) {
+	String t = Integer.toHexString (v).toUpperCase ();
+	int tlen = t.length ();
+	if (tlen > length) {
+		t = t.substring (tlen - length);
+	}
+	return zeros.substring (0, Math.max (0, length - tlen)) + t;
+}
+
+public String toString () {
+	return '{' + toHex (m0, 8) + '-' + 
+    	toHex (m1, 4) + '-' + 
+    	toHex (m2, 4) + '-' + 
+    	toHex (m3[0], 2) + toHex (m3[1], 2) + '-' + 
+    	toHex (m3[2], 2) + toHex (m3[3], 2) + toHex (m3[4], 2) + toHex (m3[5], 2) + toHex (m3[6], 2) + toHex (m3[7], 2) + '}';
+}
+
 }
diff --git a/org/eclipse/swt/internal/theme/ButtonDrawData.java b/org/eclipse/swt/internal/theme/ButtonDrawData.java
index a170c1f..eff7bef 100644
--- a/org/eclipse/swt/internal/theme/ButtonDrawData.java
+++ b/org/eclipse/swt/internal/theme/ButtonDrawData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -130,17 +130,19 @@ void draw(Theme theme, GC gc, Rectangle bounds) {
 		int border_width = OS.gtk_container_get_border_width(buttonHandle);
 		
 		GtkBorder default_border = new GtkBorder();
-		int default_border_ptr = theme.getWidgetProperty(buttonHandle, "default-border");
+		int /*long*/ default_border_ptr = theme.getBorderProperty(buttonHandle, "default-border");
 		if (default_border_ptr != 0) {
-			OS.memmove(default_border, default_border_ptr, GdkRectangle.sizeof);
+			OS.memmove(default_border, default_border_ptr, GtkBorder.sizeof);
+			OS.gtk_border_free(default_border_ptr);
 		} else {
 			default_border.left = default_border.right = default_border.top = default_border.bottom = 1;
 		}
 
 		GtkBorder default_outside_border = new GtkBorder();
-		int default_outside_border_ptr = theme.getWidgetProperty(buttonHandle, "default-outside-border");
+		int /*long*/ default_outside_border_ptr = theme.getBorderProperty(buttonHandle, "default-outside-border");
 		if (default_outside_border_ptr != 0) {
-			OS.memmove(default_outside_border, default_outside_border_ptr, GdkRectangle.sizeof);
+			OS.memmove(default_outside_border, default_outside_border_ptr, GtkBorder.sizeof);
+			OS.gtk_border_free(default_outside_border_ptr);
 		} else {
 			default_outside_border.left = default_outside_border.right = default_outside_border.top = default_outside_border.bottom = 0;
 		}
diff --git a/org/eclipse/swt/internal/theme/ComboDrawData.java b/org/eclipse/swt/internal/theme/ComboDrawData.java
index 3bab8a1..dbf3b0d 100644
--- a/org/eclipse/swt/internal/theme/ComboDrawData.java
+++ b/org/eclipse/swt/internal/theme/ComboDrawData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -47,10 +47,10 @@ void draw(Theme theme, GC gc, Rectangle bounds) {
 	int arrow_width = MIN_ARROW_SIZE;
 	int arrow_height = ARROW_HEIGHT;
 	int x_border = xthickness + focus_padding;
-	int y_border = ythickness + focus_padding;
+	//int y_border = ythickness + focus_padding;
 	if (interior_focus == 0) {
 		x_border += focus_line_width;
-		y_border += focus_line_width;
+		//y_border += focus_line_width;
 	}
 	int arrow_button_width = arrow_width + x_border * 2;		
 	int arrow_button_x = x + width - arrow_button_width;
@@ -106,16 +106,17 @@ int hit(Theme theme, Point position, Rectangle bounds) {
 	int focus_line_width = theme.getWidgetProperty(buttonHandle, "focus-line-width");
 	int focus_padding = theme.getWidgetProperty(buttonHandle, "focus-padding");
 	int xthickness = OS.gtk_style_get_xthickness(gtkStyle);
-	int ythickness = OS.gtk_style_get_xthickness(gtkStyle);
+//	int ythickness = OS.gtk_style_get_xthickness(gtkStyle);
 	int arrow_width = MIN_ARROW_SIZE;
 	int x_border = xthickness + focus_padding;
-	int y_border = ythickness + focus_padding;
+	//int y_border = ythickness + focus_padding;
 	if (interior_focus == 0) {
 		x_border += focus_line_width;
-		y_border += focus_line_width;
+		//y_border += focus_line_width;
 	}
 	int arrow_button_width = arrow_width + x_border * 2;		
 	int arrow_button_x = bounds.x + bounds.width - arrow_button_width;
+
 	Rectangle arrowRect = new Rectangle(arrow_button_x, bounds.y, arrow_button_width, bounds.height);
 	if (arrowRect.contains(position)) return DrawData.COMBO_ARROW;
 	return DrawData.WIDGET_WHOLE;
diff --git a/org/eclipse/swt/internal/theme/Theme.java b/org/eclipse/swt/internal/theme/Theme.java
index a174a93..72d8175 100644
--- a/org/eclipse/swt/internal/theme/Theme.java
+++ b/org/eclipse/swt/internal/theme/Theme.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -225,6 +225,14 @@ int getWidgetProperty(int /*long*/ handle, String name) {
 	return result[0];
 }
 
+
+int /*long*/ getBorderProperty(int /*long*/ handle, String name) {
+	byte[] propertyName = Converter.wcsToMbcs(null, name, true);
+	int /*long*/ [] result = new int /*long*/[1];
+	OS.gtk_widget_style_get(handle, propertyName, result, 0);
+	return result[0];
+}
+
 void transferClipping(GC gc, int /*long*/ style) {
 	GCData data = gc.getGCData();
 	int /*long*/ clipRgn = data.clipRgn;
diff --git a/org/eclipse/swt/internal/webkit/WebKitGTK.java b/org/eclipse/swt/internal/webkit/WebKitGTK.java
index 0b1717e..01bbe98 100644
--- a/org/eclipse/swt/internal/webkit/WebKitGTK.java
+++ b/org/eclipse/swt/internal/webkit/WebKitGTK.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -52,6 +52,7 @@ public class WebKitGTK extends C {
 	public static final byte[] window_object_cleared = ascii ("window-object-cleared"); // $NON-NLS-1$
 
 	/** Properties */
+	public static final byte[] default_encoding = ascii ("default-encoding"); // $NON-NLS-1$
 	public static final byte[] enable_scripts = ascii ("enable-scripts"); // $NON-NLS-1$
 	public static final byte[] enable_universal_access_from_file_uris = ascii ("enable-universal-access-from-file-uris"); // $NON-NLS-1$
 	public static final byte[] height = ascii ("height"); // $NON-NLS-1$
diff --git a/org/eclipse/swt/layout/GridData.java b/org/eclipse/swt/layout/GridData.java
index 3d0bac8..690e58c 100644
--- a/org/eclipse/swt/layout/GridData.java
+++ b/org/eclipse/swt/layout/GridData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/org/eclipse/swt/layout/GridLayout.java b/org/eclipse/swt/layout/GridLayout.java
index 2dd1763..af3b97c 100644
--- a/org/eclipse/swt/layout/GridLayout.java
+++ b/org/eclipse/swt/layout/GridLayout.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -137,7 +137,8 @@ public final class GridLayout extends Layout {
  	public int verticalSpacing = 5;
  
 /**
- * Constructs a new instance of this class.
+ * Constructs a new instance of this class
+ * with a single column.
  */
 public GridLayout () {}
 
diff --git a/org/eclipse/swt/printing/PrintDialog.java b/org/eclipse/swt/printing/PrintDialog.java
index 03cbb14..a317822 100644
--- a/org/eclipse/swt/printing/PrintDialog.java
+++ b/org/eclipse/swt/printing/PrintDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -22,8 +22,7 @@ import org.eclipse.swt.widgets.*;
  * a printer and various print-related parameters
  * prior to starting a print job.
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#printing">Printing snippets</a>
@@ -312,7 +311,23 @@ public PrinterData open() {
 		if (printerData.otherData != null) {
 			Printer.restore(printerData.otherData, settings, page_setup);
 		}
+		
 		/* Set values of print_settings and page_setup from PrinterData. */
+		String printerName = printerData.name;
+		if (printerName == null && printerData.printToFile) {
+			/* Find the printer name corresponding to the file backend. */
+			int /*long*/ printer = Printer.gtkPrinterFromPrinterData(printerData);
+			if (printer != 0) {
+				PrinterData data = Printer.printerDataFromGtkPrinter(printer);
+				printerName = data.name;
+				OS.g_object_unref(printer);
+			}
+		}
+		if (printerName != null) {
+			byte [] nameBytes = Converter.wcsToMbcs (null, printerName, true);
+			OS.gtk_print_settings_set_printer(settings, nameBytes);
+		}
+		
 		switch (printerData.scope) {
 			case PrinterData.ALL_PAGES:
 				OS.gtk_print_settings_set_print_pages(settings, OS.GTK_PRINT_PAGES_ALL);
@@ -329,37 +344,41 @@ public PrinterData open() {
 				OS.gtk_print_settings_set_print_pages(settings, OS.GTK_PRINT_PAGES_ALL);
 				break;
 		}
-		if (printerData.fileName != null) {
-			//TODO: Should we look at printToFile, or driver/name for "Print to File", or both? (see gtk bug 345590)
-			if (printerData.printToFile) {
-				byte [] buffer = Converter.wcsToMbcs (null, printerData.fileName, true);
-				OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, buffer);
+		if ((printerData.printToFile || Printer.GTK_FILE_BACKEND.equals(printerData.driver)) && printerData.fileName != null) {
+			// TODO: GTK_FILE_BACKEND is not GTK API (see gtk bug 345590)
+			byte [] uri = Printer.uriFromFilename(printerData.fileName);
+			if (uri != null) {
+				OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, uri);
 			}
-			if (printerData.driver != null && printerData.name != null) {
-				if (printerData.driver.equals("GtkPrintBackendFile") && printerData.name.equals("Print to File")) { //$NON-NLS-1$ //$NON-NLS-2$
-					byte [] buffer = Converter.wcsToMbcs (null, printerData.fileName, true);
-					OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, buffer);
-				}
-			}
-		}
-		if (printerData.printToFile) {
-			byte [] buffer = Converter.wcsToMbcs (null, "Print to File", true); //$NON-NLS-1$
-			OS.gtk_print_settings_set_printer(settings, buffer);
 		}
 		OS.gtk_print_settings_set_n_copies(settings, printerData.copyCount);
 		OS.gtk_print_settings_set_collate(settings, printerData.collate);
+		/* 
+		 * Bug in GTK.  The unix dialog gives priority to the value of the non-API
+		 * field cups-Duplex in the print_settings (which we preserve in otherData).
+		 * The fix is to manually clear cups-Duplex before setting the duplex field.
+		 */
+		byte [] keyBuffer = Converter.wcsToMbcs (null, "cups-Duplex", true);
+		OS.gtk_print_settings_set(settings, keyBuffer, (byte[]) null);
+		if (printerData.duplex != SWT.DEFAULT) {
+			int duplex = printerData.duplex == PrinterData.DUPLEX_LONG_EDGE ? OS.GTK_PRINT_DUPLEX_HORIZONTAL
+				: printerData.duplex == PrinterData.DUPLEX_SHORT_EDGE ? OS.GTK_PRINT_DUPLEX_VERTICAL
+				: OS.GTK_PRINT_DUPLEX_SIMPLEX;
+			OS.gtk_print_settings_set_duplex (settings, duplex);
+		}
 		int orientation = printerData.orientation == PrinterData.LANDSCAPE ? OS.GTK_PAGE_ORIENTATION_LANDSCAPE : OS.GTK_PAGE_ORIENTATION_PORTRAIT;
 		OS.gtk_print_settings_set_orientation(settings, orientation);
 		OS.gtk_page_setup_set_orientation(page_setup, orientation);
 		
 		OS.gtk_print_unix_dialog_set_settings(handle, settings);
 		OS.gtk_print_unix_dialog_set_page_setup(handle, page_setup);
+		if (OS.GTK_VERSION >= OS.VERSION (2, 18, 0)) {
+			OS.gtk_print_unix_dialog_set_embed_page_setup(handle, true);
+		}
 		OS.g_object_unref(settings);
 		OS.g_object_unref(page_setup);
-		if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
-			int /*long*/ group = OS.gtk_window_get_group(0);
-			OS.gtk_window_group_add_window (group, handle);
-		}
+		int /*long*/ group = OS.gtk_window_get_group(0);
+		OS.gtk_window_group_add_window (group, handle);
 		OS.gtk_window_set_modal(handle, true);
 		PrinterData data = null;
 		//TODO: Handle 'Print Preview' (GTK_RESPONSE_APPLY).
@@ -378,6 +397,13 @@ public PrinterData open() {
 			display.setData (SET_MODAL_DIALOG, this);
 		}
 		int response = OS.gtk_dialog_run (handle);
+		/*
+		* This call to gdk_threads_leave() is a temporary work around
+		* to avoid deadlocks when gdk_threads_init() is called by native
+		* code outside of SWT (i.e AWT, etc). It ensures that the current
+		* thread leaves the GTK lock acquired by the function above. 
+		*/
+		OS.gdk_threads_leave();
 		if (OS.gtk_window_get_modal (handle)) {
 			display.setData (SET_MODAL_DIALOG, oldModal);
 		}
@@ -419,7 +445,7 @@ public PrinterData open() {
 						break;
 				}
 				
-				data.printToFile = data.name.equals("Print to File"); //$NON-NLS-1$
+				data.printToFile = Printer.GTK_FILE_BACKEND.equals(data.driver); // TODO: GTK_FILE_BACKEND is not GTK API (see gtk bug 345590)
 				if (data.printToFile) {
 					int /*long*/ address = OS.gtk_print_settings_get(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI);
 					int length = OS.strlen (address);
@@ -430,6 +456,10 @@ public PrinterData open() {
 
 				data.copyCount = OS.gtk_print_settings_get_n_copies(settings);
 				data.collate = OS.gtk_print_settings_get_collate(settings);
+				int duplex = OS.gtk_print_settings_get_duplex(settings);
+				data.duplex = duplex == OS.GTK_PRINT_DUPLEX_HORIZONTAL ? PrinterData.DUPLEX_LONG_EDGE
+						: duplex == OS.GTK_PRINT_DUPLEX_VERTICAL ? PrinterData.DUPLEX_SHORT_EDGE
+						: PrinterData.DUPLEX_NONE;
 				data.orientation = OS.gtk_page_setup_get_orientation(page_setup) == OS.GTK_PAGE_ORIENTATION_LANDSCAPE ? PrinterData.LANDSCAPE : PrinterData.PORTRAIT;
 
 				/* Save other print_settings data as key/value pairs in otherData. */
diff --git a/org/eclipse/swt/printing/Printer.java b/org/eclipse/swt/printing/Printer.java
index 0812440..0b79f2d 100644
--- a/org/eclipse/swt/printing/Printer.java
+++ b/org/eclipse/swt/printing/Printer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -44,6 +44,8 @@ import org.eclipse.swt.printing.PrinterData;
  */
 public final class Printer extends Device {
 	static PrinterData [] printerList;
+	static int /*long*/ findPrinter;
+	static PrinterData findData;
 	
 	PrinterData data;
 	int /*long*/ printer;
@@ -63,9 +65,20 @@ public final class Printer extends Device {
 	static int start, end;
 
 	static final String GTK_LPR_BACKEND = "GtkPrintBackendLpr"; //$NON-NLS-1$
+	static final String GTK_FILE_BACKEND = "GtkPrintBackendFile"; //$NON-NLS-1$
 
 	static boolean disablePrinting = System.getProperty("org.eclipse.swt.internal.gtk.disablePrinting") != null; //$NON-NLS-1$
 	
+static void gtk_init() {
+	if (!OS.g_thread_supported ()) {
+		OS.g_thread_init (0);
+	}
+	OS.gtk_set_locale();
+	if (!OS.gtk_init_check (new int /*long*/ [] {0}, null)) {
+		SWT.error (SWT.ERROR_NO_HANDLES, null, " [gtk_init_check() failed]");
+	}
+}
+
 /**
  * Returns an array of <code>PrinterData</code> objects
  * representing all available printers.  If there are no
@@ -78,17 +91,18 @@ public static PrinterData[] getPrinterList() {
 	if (OS.GTK_VERSION < OS.VERSION (2, 10, 0) || disablePrinting) {
 		return printerList;
 	}
-	if (!OS.g_thread_supported ()) {
-		OS.g_thread_init (0);
-	}
-	OS.gtk_set_locale();
-	if (!OS.gtk_init_check (new int /*long*/ [] {0}, null)) {
-		SWT.error (SWT.ERROR_NO_HANDLES, null, " [gtk_init_check() failed]");
-	}
+	gtk_init();
 	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_List", 2); //$NON-NLS-1$
 	int /*long*/ GtkPrinterFunc_List = printerCallback.getAddress();
 	if (GtkPrinterFunc_List == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
 	OS.gtk_enumerate_printers(GtkPrinterFunc_List, 0, 0, true);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	printerCallback.dispose ();
 	return printerList;
 }
@@ -121,28 +135,29 @@ static int /*long*/ GtkPrinterFunc_List (int /*long*/ printer, int /*long*/ user
  * @since 2.1
  */
 public static PrinterData getDefaultPrinterData() {
-	printerList = new PrinterData [1];
+	findData = null;
 	if (OS.GTK_VERSION < OS.VERSION (2, 10, 0) || disablePrinting) {
 		return null;
 	}
-	if (!OS.g_thread_supported ()) {
-		OS.g_thread_init (0);
-	}
-	OS.gtk_set_locale();
-	if (!OS.gtk_init_check (new int /*long*/ [] {0}, null)) {
-		SWT.error (SWT.ERROR_NO_HANDLES, null, " [gtk_init_check() failed]");
-	}
+	gtk_init();
 	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_Default", 2); //$NON-NLS-1$
 	int /*long*/ GtkPrinterFunc_Default = printerCallback.getAddress();
 	if (GtkPrinterFunc_Default == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
 	OS.gtk_enumerate_printers(GtkPrinterFunc_Default, 0, 0, true);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	printerCallback.dispose ();
-	return printerList[0];
+	return findData;
 }
 
 static int /*long*/ GtkPrinterFunc_Default (int /*long*/ printer, int /*long*/ user_data) {
 	if (OS.gtk_printer_is_default(printer)) {
-		printerList[0] = printerDataFromGtkPrinter(printer);
+		findData = printerDataFromGtkPrinter(printer);
 		return 1;
 	} else if (OS.GTK_VERSION < OS.VERSION(2, 10, 12) && printerDataFromGtkPrinter(printer).driver.equals (GTK_LPR_BACKEND)) { 
 		return 1;
@@ -150,20 +165,31 @@ static int /*long*/ GtkPrinterFunc_Default (int /*long*/ printer, int /*long*/ u
 	return 0;
 }
 
-int /*long*/ gtkPrinterFromPrinterData() {
-	Callback printerCallback = new Callback(this, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$
+static int /*long*/ gtkPrinterFromPrinterData(PrinterData data) {
+	gtk_init();
+	Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$
 	int /*long*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress();
 	if (GtkPrinterFunc_FindNamedPrinter == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-	printer = 0;
+	findPrinter = 0;
+	findData = data;
 	OS.gtk_enumerate_printers(GtkPrinterFunc_FindNamedPrinter, 0, 0, true);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	printerCallback.dispose ();
-	return printer;
+	return findPrinter;
 }
 
-int /*long*/ GtkPrinterFunc_FindNamedPrinter (int /*long*/ printer, int /*long*/ user_data) {
+static int /*long*/ GtkPrinterFunc_FindNamedPrinter (int /*long*/ printer, int /*long*/ user_data) {
 	PrinterData pd = printerDataFromGtkPrinter(printer);
-	if (pd.driver.equals(data.driver) && pd.name.equals(data.name)) {
-		this.printer = printer;
+	if ((pd.driver.equals(findData.driver) && pd.name.equals(findData.name))
+			|| (pd.driver.equals(GTK_FILE_BACKEND)) && findData.printToFile && findData.driver == null && findData.name == null) {
+			// TODO: GTK_FILE_BACKEND is not GTK API (see gtk bug 345590)
+		findPrinter = printer;
 		OS.g_object_ref(printer);
 		return 1;
 	} else if (OS.GTK_VERSION < OS.VERSION (2, 10, 12) && pd.driver.equals(GTK_LPR_BACKEND)) {
@@ -239,13 +265,45 @@ static void restore(byte [] data, int /*long*/ settings, int /*long*/ page_setup
 	OS.gtk_paper_size_free(paper_size);
 }
 
+static byte [] uriFromFilename(String filename) {
+	if (filename == null) return null;
+	int length = filename.length();
+	if (length == 0) return null;
+	char[] chars = new char[length];
+	filename.getChars(0, length, chars, 0);		
+	int /*long*/[] error = new int /*long*/[1];
+	int /*long*/ utf8Ptr = OS.g_utf16_to_utf8(chars, chars.length, null, null, error);
+	if (error[0] != 0 || utf8Ptr == 0) return null;
+	int /*long*/ localePtr = OS.g_filename_from_utf8(utf8Ptr, -1, null, null, error);
+	OS.g_free(utf8Ptr);
+	if (error[0] != 0 || localePtr == 0) return null;
+	int /*long*/ uriPtr = OS.g_filename_to_uri(localePtr, 0, error);
+	OS.g_free(localePtr);
+	if (error[0] != 0 || uriPtr == 0) return null;
+	length = OS.strlen(uriPtr);
+	byte[] uri = new byte[length + 1];
+	OS.memmove (uri, uriPtr, length);
+	OS.g_free(uriPtr);
+	return uri;
+}
+
 static DeviceData checkNull (PrinterData data) {
 	if (data == null) data = new PrinterData();
 	if (data.driver == null || data.name == null) {
-		PrinterData defaultPrinter = getDefaultPrinterData();
-		if (defaultPrinter == null) SWT.error(SWT.ERROR_NO_HANDLES);
-		data.driver = defaultPrinter.driver;
-		data.name = defaultPrinter.name;		
+		PrinterData defaultData = null;
+		if (data.printToFile) {
+			int /*long*/ filePrinter = gtkPrinterFromPrinterData(data);
+			if (filePrinter != 0) {
+				defaultData = printerDataFromGtkPrinter(filePrinter);
+				OS.g_object_unref(filePrinter);
+			}
+		}
+		if (defaultData == null) {
+			defaultData = getDefaultPrinterData();
+			if (defaultData == null) SWT.error(SWT.ERROR_NO_HANDLES);
+		}
+		data.driver = defaultData.driver;
+		data.name = defaultData.name;		
 	}
 	return data;
 }
@@ -257,7 +315,7 @@ static DeviceData checkNull (PrinterData data) {
  * </p>
  *
  * @exception SWTError <ul>
- *    <li>ERROR_NO_HANDLES - if there are no valid printers
+ *    <li>ERROR_NO_HANDLES - if there is no valid default printer
  * </ul>
  *
  * @see Device#dispose
@@ -352,6 +410,9 @@ public Font getSystemFont () {
 	if (systemFont != null) return systemFont;
 	int /*long*/ style = OS.gtk_widget_get_default_style();	
 	int /*long*/ defaultFont = OS.pango_font_description_copy (OS.gtk_style_get_font_desc (style));
+	int size = OS.pango_font_description_get_size(defaultFont);
+	Point dpi = getDPI(), screenDPI = super.getDPI();
+	OS.pango_font_description_set_size(defaultFont, size * dpi.y / screenDPI.y);
 	return systemFont = Font.gtk_new (this, defaultFont);
 }
 
@@ -387,10 +448,15 @@ public int /*long*/ internal_new_GC(GCData data) {
 		data.background = getSystemColor (SWT.COLOR_WHITE).handle;
 		data.foreground = getSystemColor (SWT.COLOR_BLACK).handle;
 		data.font = getSystemFont ();
-		//TODO: We are supposed to return this in pixels, but GTK_UNIT_PIXELS is currently not implemented (gtk bug 346245)
-		data.width = (int)OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS);
-		data.height = (int)OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS);
+		Point dpi = getDPI(), screenDPI = getIndependentDPI();
+		data.width = (int)(OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x);
+		data.height = (int)(OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y);
 		if (cairo == 0) SWT.error(SWT.ERROR_NO_HANDLES);
+		Cairo.cairo_identity_matrix(cairo);
+		double printX = OS.gtk_page_setup_get_left_margin(pageSetup, OS.GTK_UNIT_POINTS);
+		double printY = OS.gtk_page_setup_get_top_margin(pageSetup, OS.GTK_UNIT_POINTS);
+		Cairo.cairo_translate(cairo, printX, printY);
+		Cairo.cairo_scale(cairo, screenDPI.x / (float)dpi.x, screenDPI.y / (float)dpi.y);
 		data.cairo = cairo;
 		isGCCreated = true;
 	}
@@ -591,10 +657,9 @@ public Point getDPI() {
 	checkDevice();
 	int resolution = OS.gtk_print_settings_get_resolution(settings);
 	if (DEBUG) System.out.println("print_settings.resolution=" + resolution);
-	//TODO: Return 72 (1/72 inch = 1 point) until gtk bug 346245 is fixed
-	//TODO: Fix this: gtk_print_settings_get_resolution returns 0? (see gtk bug 346252)
-	/*if (resolution == 0)*/ return new Point(72, 72);
-//	return new Point(resolution, resolution);
+	//TODO: use new api for get x resolution and get y resolution
+	if (resolution == 0) return new Point(72, 72);
+	return new Point(resolution, resolution);
 }
 
 /**
@@ -614,9 +679,9 @@ public Point getDPI() {
  */
 public Rectangle getBounds() {
 	checkDevice();
-	//TODO: We are supposed to return this in pixels, but GTK_UNIT_PIXELS is currently not implemented (gtk bug 346245)
-	double width = OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS);
-	double height = OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS);
+	Point dpi = getDPI(), screenDPI = getIndependentDPI();
+	double width = OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x;
+	double height = OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y;
 	return new Rectangle(0, 0, (int) width, (int) height);
 }
 
@@ -639,12 +704,16 @@ public Rectangle getBounds() {
  */
 public Rectangle getClientArea() {
 	checkDevice();
-	//TODO: We are supposed to return this in pixels, but GTK_UNIT_PIXELS is currently not implemented (gtk bug 346245)
-	double width = OS.gtk_page_setup_get_page_width(pageSetup, OS.GTK_UNIT_POINTS);
-	double height = OS.gtk_page_setup_get_page_height(pageSetup, OS.GTK_UNIT_POINTS);
+	Point dpi = getDPI(), screenDPI = getIndependentDPI();
+	double width = OS.gtk_page_setup_get_page_width(pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x;
+	double height = OS.gtk_page_setup_get_page_height(pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y;
 	return new Rectangle(0, 0, (int) width, (int) height);
 }
 
+Point getIndependentDPI () {
+	return new Point(72, 72);
+}
+
 /**
  * Given a <em>client area</em> (as described by the arguments),
  * returns a rectangle, relative to the client area's coordinates,
@@ -682,13 +751,13 @@ public Rectangle getClientArea() {
  */
 public Rectangle computeTrim(int x, int y, int width, int height) {
 	checkDevice();
-	//TODO: We are supposed to return this in pixels, but GTK_UNIT_PIXELS is currently not implemented (gtk bug 346245)
-	double printWidth = OS.gtk_page_setup_get_page_width(pageSetup, OS.GTK_UNIT_POINTS);
-	double printHeight = OS.gtk_page_setup_get_page_height(pageSetup, OS.GTK_UNIT_POINTS);
-	double paperWidth = OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS);
-	double paperHeight = OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS);
-	double printX = -OS.gtk_page_setup_get_left_margin(pageSetup, OS.GTK_UNIT_POINTS);
-	double printY = -OS.gtk_page_setup_get_top_margin(pageSetup, OS.GTK_UNIT_POINTS);
+	Point dpi = getDPI(), screenDPI = getIndependentDPI();
+	double printWidth = OS.gtk_page_setup_get_page_width(pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x;
+	double printHeight = OS.gtk_page_setup_get_page_height(pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y;
+	double paperWidth = OS.gtk_page_setup_get_paper_width (pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x;
+	double paperHeight = OS.gtk_page_setup_get_paper_height (pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y;
+	double printX = -OS.gtk_page_setup_get_left_margin(pageSetup, OS.GTK_UNIT_POINTS) * dpi.x / screenDPI.x;
+	double printY = -OS.gtk_page_setup_get_top_margin(pageSetup, OS.GTK_UNIT_POINTS) * dpi.y / screenDPI.y;
 	double hTrim = paperWidth - printWidth;
 	double vTrim = paperHeight - printHeight;
 	return new Rectangle(x + (int)printX, y + (int)printY, width + (int)hTrim, height + (int)vTrim);
@@ -703,7 +772,7 @@ public Rectangle computeTrim(int x, int y, int width, int height) {
 protected void create(DeviceData deviceData) {
 	this.data = (PrinterData)deviceData;
 	if (OS.GTK_VERSION < OS.VERSION (2, 10, 0) || disablePrinting) SWT.error(SWT.ERROR_NO_HANDLES);
-	printer = gtkPrinterFromPrinterData();
+	printer = gtkPrinterFromPrinterData(data);
 	if (printer == 0) SWT.error(SWT.ERROR_NO_HANDLES);
 }
 
@@ -720,7 +789,6 @@ protected void create(DeviceData deviceData) {
  * @see #create
  */
 protected void init() {
-	super.init ();
 	settings = OS.gtk_print_settings_new();
 	pageSetup = OS.gtk_page_setup_new();
 	if (data.otherData != null) {
@@ -728,20 +796,37 @@ protected void init() {
 	}
 	
 	/* Set values of print_settings and page_setup from PrinterData. */
-	//TODO: Should we look at printToFile, or driver/name for "Print to File", or both? (see gtk bug 345590)
 	if (data.printToFile && data.fileName != null) {
-		byte [] buffer = Converter.wcsToMbcs (null, data.fileName, true);
-		OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, buffer);
-	}
-	if (data.driver.equals("GtkPrintBackendFile") && data.name.equals("Print to File") && data.fileName != null) { //$NON-NLS-1$ //$NON-NLS-2$
-		byte [] buffer = Converter.wcsToMbcs (null, data.fileName, true);
-		OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, buffer);
+		byte [] uri = uriFromFilename(data.fileName);
+		if (uri != null) {
+			OS.gtk_print_settings_set(settings, OS.GTK_PRINT_SETTINGS_OUTPUT_URI, uri);
+		}
 	}
 	OS.gtk_print_settings_set_n_copies(settings, data.copyCount);
 	OS.gtk_print_settings_set_collate(settings, data.collate);
+	if (data.duplex != SWT.DEFAULT) {
+		int duplex = data.duplex == PrinterData.DUPLEX_LONG_EDGE ? OS.GTK_PRINT_DUPLEX_HORIZONTAL
+			: data.duplex == PrinterData.DUPLEX_SHORT_EDGE ? OS.GTK_PRINT_DUPLEX_VERTICAL
+			: OS.GTK_PRINT_DUPLEX_SIMPLEX;
+		OS.gtk_print_settings_set_duplex (settings, duplex);
+		/* 
+		 * Bug in GTK.  The cups backend only looks at the value
+		 * of the non-API field cups-Duplex in the print_settings.
+		 * The fix is to manually set cups-Duplex to Tumble or NoTumble.
+		 */
+		String cupsDuplexType = null;
+		if (duplex == OS.GTK_PRINT_DUPLEX_HORIZONTAL) cupsDuplexType = "DuplexNoTumble";
+		else if (duplex == OS.GTK_PRINT_DUPLEX_VERTICAL) cupsDuplexType = "DuplexTumble";
+		if (cupsDuplexType != null) {
+			byte [] keyBuffer = Converter.wcsToMbcs (null, "cups-Duplex", true);
+			byte [] valueBuffer = Converter.wcsToMbcs (null, cupsDuplexType, true);
+			OS.gtk_print_settings_set(settings, keyBuffer, valueBuffer);
+		}
+	}
 	int orientation = data.orientation == PrinterData.LANDSCAPE ? OS.GTK_PAGE_ORIENTATION_LANDSCAPE : OS.GTK_PAGE_ORIENTATION_PORTRAIT;
 	OS.gtk_page_setup_set_orientation(pageSetup, orientation);
 	OS.gtk_print_settings_set_orientation(settings, orientation);
+	super.init ();
 }
 
 /**
diff --git a/org/eclipse/swt/printing/PrinterData.java b/org/eclipse/swt/printing/PrinterData.java
index 98fc552..334d7aa 100644
--- a/org/eclipse/swt/printing/PrinterData.java
+++ b/org/eclipse/swt/printing/PrinterData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
 package org.eclipse.swt.printing;
 
 
+import org.eclipse.swt.*;
 import org.eclipse.swt.graphics.*;
 
 /**
@@ -113,6 +114,30 @@ public final class PrinterData extends DeviceData {
 	public int orientation = PORTRAIT;
 
 	/**
+	 * Single-sided or double-sided printing, expressed as one of the
+	 * following values:
+	 * <dl>
+	 * <dt><code>SWT.DEFAULT</code></dt>
+	 * <dd>the default duplex value for the printer</dd>
+	 * <dt><code>DUPLEX_NONE</code></dt>
+	 * <dd>single-sided printing</dd>
+	 * <dt><code>DUPLEX_LONG_EDGE</code></dt>
+	 * <dd>double-sided printing as if bound on the long edge</dd>
+	 * <dt><code>DUPLEX_SHORT_EDGE</code></dt>
+	 * <dd>double-sided printing as if bound on the short edge</dd>
+	 * </dl>
+	 * <p>
+	 * The default value is <code>SWT.DEFAULT</code>, meaning do not set a value;
+	 * use the printer's default duplex setting.
+	 * A printer's default value is typically single-sided,
+	 * however it can default to double-sided in order to save paper.
+	 * </p>
+	 * 
+	 * @since 3.7
+	 */
+	public int duplex = SWT.DEFAULT;
+
+	/**
 	 * <code>scope</code> field value indicating that
 	 * all pages should be printed
 	 */	
@@ -147,6 +172,45 @@ public final class PrinterData extends DeviceData {
 	 */
 	public static final int LANDSCAPE = 2;
 	
+ 	/**
+	 * <code>duplex</code> field value indicating
+	 * single-sided printing.
+	 * <p>
+	 * This is also known as simplex printing.
+	 * </p>
+	 * 
+	 * @since 3.7
+	 */
+	public static final int DUPLEX_NONE = 0;
+	
+	/**
+	 * <code>duplex</code> field value indicating
+	 * double-sided printing for binding on the long edge.
+	 * <p>
+	 * For portrait orientation, the long edge is vertical.
+	 * For landscape orientation, the long edge is horizontal.
+	 * </p><p>
+	 * This is also known as duplex printing.
+	 * </p>
+	 * 
+	 * @since 3.7
+	 */
+	public static final int DUPLEX_LONG_EDGE = 1;
+	
+	/**
+	 * <code>duplex</code> field value indicating
+	 * double-sided printing for binding on the short edge.
+	 * <p>
+	 * For portrait orientation, the short edge is horizontal.
+	 * For landscape orientation, the short edge is vertical.
+	 * </p><p>
+	 * This is also known as duplex tumble printing.
+	 * </p>
+	 * 
+	 * @since 3.7
+	 */
+	public static final int DUPLEX_SHORT_EDGE = 2;
+	
 	/**
 	 * private, platform-specific data
 	 * On Windows, this contains a copy of the DEVMODE struct
diff --git a/org/eclipse/swt/program/Program.java b/org/eclipse/swt/program/Program.java
index 9d4d4fe..80efc65 100644
--- a/org/eclipse/swt/program/Program.java
+++ b/org/eclipse/swt/program/Program.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -94,34 +94,21 @@ static int getDesktop(final Display display) {
 	 * The workaround is to simply check that the window manager is a 
 	 * compliant one (property _NET_SUPPORTING_WM_CHECK) and to attempt to load 
 	 * our native library that depends on gnome-vfs.
+	 * 
+	 * Note: GIO is used when available instead of gnome-vfs.
 	 */
 	if (desktop == DESKTOP_UNKNOWN) {
 		byte[] gnomeName = Converter.wcsToMbcs(null, "_NET_SUPPORTING_WM_CHECK", true);
 		int /*long*/ gnome = OS.XInternAtom(xDisplay, gnomeName, true);
-		if (gnome != OS.None && (OS.GTK_VERSION >= OS.VERSION (2, 2, 0)) && gnome_init()) {
-			desktop = DESKTOP_GNOME;
-			int /*long*/ icon_theme = GNOME.gnome_icon_theme_new();
-			display.setData(ICON_THEME_DATA, new LONG(icon_theme));
-			display.addListener(SWT.Dispose, new Listener() {
-				public void handleEvent(Event event) {
-					LONG gnomeIconTheme = (LONG)display.getData(ICON_THEME_DATA);
-					if (gnomeIconTheme == null) return;
-					display.setData(ICON_THEME_DATA, null);
-					/* 
-					 * Note.  gnome_icon_theme_new uses g_object_new to allocate the
-					 * data it returns. Use g_object_unref to free the pointer it returns.
-					 */
-					if (gnomeIconTheme.value != 0) OS.g_object_unref(gnomeIconTheme.value);
-				}
-			});
-			/* Check for the existence of libgio libraries */
-			byte[] buffer ;
+		if (gnome != OS.None) {
+			/* Check for the existence of libgio libraries first */
+			byte[] buffer;
 			int flags = OS.RTLD_LAZY;
 			if (OS.IsAIX) {
-				 buffer = Converter.wcsToMbcs(null, "libgio-2.0.a(libgio-2.0.so.0)", true);
-				 flags |= OS.RTLD_MEMBER;
+				buffer = Converter.wcsToMbcs(null, "libgio-2.0.a(libgio-2.0.so.0)", true);
+				flags |= OS.RTLD_MEMBER;
 			} else  if (OS.IsHPUX) {
-				 buffer = Converter.wcsToMbcs(null, "libgio-2.0.so", true);
+				buffer = Converter.wcsToMbcs(null, "libgio-2.0.so", true);
 			} else {
 				buffer =  Converter.wcsToMbcs(null, "libgio-2.0.so.0", true);
 			}
@@ -133,7 +120,24 @@ static int getDesktop(final Display display) {
 					desktop = DESKTOP_GIO;
 				}
 				OS.dlclose(libgio);
-			} else {
+			}
+			
+			if (desktop == DESKTOP_UNKNOWN && (OS.GTK_VERSION >= OS.VERSION (2, 2, 0)) && gnome_init()) {
+				desktop = DESKTOP_GNOME;
+				int /*long*/ icon_theme = GNOME.gnome_icon_theme_new();
+				display.setData(ICON_THEME_DATA, new LONG(icon_theme));
+				display.addListener(SWT.Dispose, new Listener() {
+					public void handleEvent(Event event) {
+						LONG gnomeIconTheme = (LONG)display.getData(ICON_THEME_DATA);
+						if (gnomeIconTheme == null) return;
+						display.setData(ICON_THEME_DATA, null);
+						/* 
+						 * Note.  gnome_icon_theme_new uses g_object_new to allocate the
+						 * data it returns. Use g_object_unref to free the pointer it returns.
+						 */
+						if (gnomeIconTheme.value != 0) OS.g_object_unref(gnomeIconTheme.value);
+					}
+				});
 				/* Check for libgnomevfs-2 version 2.4 */
 				buffer = Converter.wcsToMbcs(null, "libgnomevfs-2.so.0", true);
 				int /*long*/ libgnomevfs = OS.dlopen(buffer, OS.RTLD_LAZY);
@@ -974,14 +978,17 @@ boolean gio_execute(String fileName) {
 	if (application != 0) {
 		byte[] fileNameBuffer = Converter.wcsToMbcs (null, fileName, true);
 		int /*long*/ file = 0;
-		if (OS.g_app_info_supports_uris (application)) {
-			file = OS.g_file_new_for_uri (fileNameBuffer);
-		} else {
-			file = OS.g_file_new_for_path (fileNameBuffer);
+		if (fileName.length() > 0) {
+			if (OS.g_app_info_supports_uris (application)) {
+				file = OS.g_file_new_for_uri (fileNameBuffer);
+			} else {
+				file = OS.g_file_new_for_path (fileNameBuffer);
+			}
 		}
-		if (file != 0) {
-			int /*long*/ list = OS.g_list_append (0, file);
-			result = OS.g_app_info_launch (application, list, 0, 0);
+		int /*long*/ list = 0;
+		if (file != 0) list = OS.g_list_append (0, file);
+		result = OS.g_app_info_launch (application, list, 0, 0);
+		if (list != 0) {
 			OS.g_list_free (list);
 			OS.g_object_unref (file);
 		}
diff --git a/org/eclipse/swt/widgets/Button.java b/org/eclipse/swt/widgets/Button.java
index f16b2d4..862ed98 100644
--- a/org/eclipse/swt/widgets/Button.java
+++ b/org/eclipse/swt/widgets/Button.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -36,8 +36,7 @@ import org.eclipse.swt.events.*;
  * Note: Only one of the styles UP, DOWN, LEFT, and RIGHT may be specified
  * when the ARROW style is specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/snippets/#button">Button snippets</a>
@@ -52,6 +51,9 @@ public class Button extends Control {
 	Image image;
 	String text;
 
+	static final int INNER_BORDER = 1;
+	static final int DEFAULT_BORDER = 1;
+
 /**
  * Constructs a new instance of this class given its parent
  * and a style value describing its behavior and appearance.
@@ -109,6 +111,22 @@ static int checkStyle (int style) {
 	return style;
 }
 
+static GtkBorder getBorder (byte[] border, int /*long*/ handle, int defaultBorder) {
+    GtkBorder gtkBorder = new GtkBorder();
+    int /*long*/ []  borderPtr = new int /*long*/ [1];
+    OS.gtk_widget_style_get (handle, border, borderPtr,0);
+    if (borderPtr[0] != 0) {
+        OS.memmove (gtkBorder, borderPtr[0], GtkBorder.sizeof);
+        OS.gtk_border_free(borderPtr[0]);
+        return gtkBorder;
+    }
+    gtkBorder.left = defaultBorder;
+    gtkBorder.top = defaultBorder;
+    gtkBorder.right = defaultBorder;
+    gtkBorder.bottom = defaultBorder;
+    return gtkBorder;
+}
+
 /**
  * Adds the listener to the collection of listeners who will
  * be notified when the control is selected by the user, by sending
@@ -165,21 +183,68 @@ public Point computeSize (int wHint, int hHint, boolean changed) {
 		OS.gtk_widget_get_size_request (boxHandle, reqWidth, reqHeight);
 		OS.gtk_widget_set_size_request (boxHandle, -1, -1);
 	}
-	Point size = computeNativeSize (handle, wHint, hHint, changed);
+	Point size;
+	boolean wrap = labelHandle != 0 && (style & SWT.WRAP) != 0 && (OS.GTK_WIDGET_FLAGS (labelHandle) & OS.GTK_VISIBLE) != 0;
+	if (wrap) {
+		int borderWidth = OS.gtk_container_get_border_width (handle);
+		int[] focusWidth = new int[1];
+		OS.gtk_widget_style_get (handle, OS.focus_line_width, focusWidth, 0);
+		int[] focusPadding = new int[1];
+		OS.gtk_widget_style_get (handle, OS.focus_padding, focusPadding, 0);
+		int trimWidth = 2 * (borderWidth + focusWidth [0] + focusPadding [0]), trimHeight = trimWidth;
+		int indicatorHeight = 0;
+		if ((style & (SWT.CHECK | SWT.RADIO)) != 0) {
+			int[] indicatorSize = new int[1];
+			OS.gtk_widget_style_get (handle, OS.indicator_size, indicatorSize, 0);
+			int[] indicatorSpacing = new int[1];
+			OS.gtk_widget_style_get (handle, OS.indicator_spacing, indicatorSpacing, 0);
+			indicatorHeight = indicatorSize [0] + 2 * indicatorSpacing [0];
+			trimWidth += indicatorHeight + indicatorSpacing [0];
+		} else {
+			int /*long*/ style = OS.gtk_widget_get_style (handle);
+			trimWidth += OS.gtk_style_get_xthickness (style) * 2;
+			trimHeight += OS.gtk_style_get_ythickness (style) * 2;
+			GtkBorder innerBorder = getBorder (OS.inner_border, handle, INNER_BORDER);
+			trimWidth += innerBorder.left + innerBorder.right;
+			trimHeight += innerBorder.top + innerBorder.bottom;
+			if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_CAN_DEFAULT) != 0) {
+				GtkBorder defaultBorder = getBorder (OS.default_border, handle, DEFAULT_BORDER);
+				trimWidth += defaultBorder.left + defaultBorder.right;
+				trimHeight += defaultBorder.top + defaultBorder.bottom;
+			}
+		}
+		int imageWidth = 0, imageHeight = 0;
+		if (OS.GTK_WIDGET_VISIBLE (imageHandle)) {
+			GtkRequisition requisition = new GtkRequisition ();
+			OS.gtk_widget_size_request (imageHandle, requisition);
+			imageWidth = requisition.width;
+			imageHeight = requisition.height;
+			int [] spacing = new int [1];
+			OS.g_object_get (boxHandle, OS.spacing, spacing, 0);
+			imageWidth += spacing [0];
+		}
+		int /*long*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
+		int pangoWidth = OS.pango_layout_get_width (labelLayout);
+		if (wHint != SWT.DEFAULT) {
+			OS.pango_layout_set_width (labelLayout, Math.max (1, (wHint - imageWidth - trimWidth)) * OS.PANGO_SCALE);
+		} else {
+			OS.pango_layout_set_width (labelLayout, -1);
+		}
+		int [] w = new int [1], h = new int [1];
+		OS.pango_layout_get_size (labelLayout, w, h);
+		OS.pango_layout_set_width (labelLayout, pangoWidth);
+		size = new Point(0, 0);
+		size.x += wHint == SWT.DEFAULT ? OS.PANGO_PIXELS(w [0]) + imageWidth + trimWidth : wHint;
+		size.y += hHint == SWT.DEFAULT ? Math.max(Math.max(imageHeight, indicatorHeight), OS.PANGO_PIXELS(h [0])) + trimHeight : hHint;
+	} else {
+		size = computeNativeSize (handle, wHint, hHint, changed);
+	}
 	if ((style & (SWT.CHECK | SWT.RADIO)) != 0) {
 		OS.gtk_widget_set_size_request (boxHandle, reqWidth [0], reqHeight [0]);
 	}
 	if (wHint != SWT.DEFAULT || hHint != SWT.DEFAULT) {
 		if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_CAN_DEFAULT) != 0) {
-			int /*long*/ [] buffer = new int /*long*/ [1];
-			GtkBorder border = new GtkBorder ();
-			OS.gtk_widget_style_get (handle, OS.default_border, buffer, 0);
-			if (buffer[0] != 0) {
-				OS.memmove (border, buffer[0], GtkBorder.sizeof);
-			} else {
-				/* Use the GTK+ default value of 1 for each. */
-				border.left = border.right = border.top = border.bottom = 1;
-			}
+			GtkBorder border = getBorder (OS.default_border, handle, DEFAULT_BORDER);
 			if (wHint != SWT.DEFAULT) size.x += border.left + border.right;
 			if (hHint != SWT.DEFAULT) size.y += border.top + border.bottom;
 		}
@@ -252,6 +317,12 @@ void createHandle (int index) {
 		OS.gtk_container_add (handle, boxHandle);
 		OS.gtk_container_add (boxHandle, imageHandle);
 		OS.gtk_container_add (boxHandle, labelHandle);
+		if ((style & SWT.WRAP) != 0) {
+			OS.gtk_label_set_line_wrap (labelHandle, true);
+			if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
+				OS.gtk_label_set_line_wrap_mode (labelHandle, OS.PANGO_WRAP_WORD_CHAR);
+			}
+		}
 	}
 	OS.gtk_container_add (fixedHandle, handle);
 	
@@ -646,6 +717,68 @@ void setBackgroundColor (GdkColor color) {
 	if (imageHandle != 0) setBackgroundColor(imageHandle, color);
 }
 
+int setBounds (int x, int y, int width, int height, boolean move, boolean resize) {
+	/*
+	* Bug in GTK.  For some reason, when the label is
+	* wrappable and its container is resized, it does not
+	* cause the label to be wrapped.  The fix is to
+	* determine the size that will wrap the label
+	* and expilictly set that size to force the label
+	* to wrap.
+	* 
+	* This part of the fix causes the label to be
+	* resized to the preferred size but it still
+	* won't draw properly.
+	*/
+	boolean wrap = labelHandle != 0 && (style & SWT.WRAP) != 0 && (OS.GTK_WIDGET_FLAGS (labelHandle) & OS.GTK_VISIBLE) != 0;
+	if (wrap) OS.gtk_widget_set_size_request (boxHandle, -1, -1);
+	int result = super.setBounds (x, y, width, height, move, resize);
+	/*
+	* Bug in GTK.  For some reason, when the label is
+	* wrappable and its container is resized, it does not
+	* cause the label to be wrapped.  The fix is to
+	* determine the size that will wrap the label
+	* and expilictly set that size to force the label
+	* to wrap.
+	* 
+	* This part of the fix forces the label to be
+	* resized so that it will draw wrapped.
+	*/
+	if (wrap) {
+		int boxWidth = OS.GTK_WIDGET_WIDTH (boxHandle);
+		int boxHeight = OS.GTK_WIDGET_HEIGHT (boxHandle);
+		int /*long*/ labelLayout = OS.gtk_label_get_layout (labelHandle);
+		int pangoWidth = OS.pango_layout_get_width (labelLayout);
+		OS.pango_layout_set_width (labelLayout, -1);
+		int [] w = new int [1], h = new int [1];
+		OS.pango_layout_get_size (labelLayout, w, h);
+		OS.pango_layout_set_width (labelLayout, pangoWidth);
+		int imageWidth = 0;
+		if (OS.GTK_WIDGET_VISIBLE (imageHandle)) {
+			GtkRequisition requisition = new GtkRequisition ();
+			OS.gtk_widget_size_request (imageHandle, requisition);
+			imageWidth = requisition.width;
+			int [] spacing = new int [1];
+			OS.g_object_get (boxHandle, OS.spacing, spacing, 0);
+			imageWidth += spacing [0];
+		}
+		OS.gtk_widget_set_size_request (labelHandle, Math.min(OS.PANGO_PIXELS(w [0]), boxWidth - imageWidth), -1);
+		/*
+		* Bug in GTK.  Setting the size request should invalidate the label's
+		* layout, but it does not.  The fix is to resize the label directly. 
+		*/
+		GtkRequisition requisition = new GtkRequisition ();
+		OS.gtk_widget_size_request (boxHandle, requisition);
+		GtkAllocation allocation = new GtkAllocation ();
+		allocation.x = OS.GTK_WIDGET_X (boxHandle);
+		allocation.y = OS.GTK_WIDGET_Y (boxHandle);
+		allocation.width = boxWidth;
+		allocation.height = boxHeight;
+		OS.gtk_widget_size_allocate (boxHandle, allocation);
+	}
+	return result;
+}
+
 void setFontDescription (int /*long*/ font) {
 	super.setFontDescription (font);
 	if (labelHandle != 0) OS.gtk_widget_modify_font (labelHandle, font);
@@ -734,16 +867,18 @@ public void setImage (Image image) {
 	_setAlignment (style);
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, OS.GTK_TEXT_DIR_RTL);
-		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL);
-		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, dir);
+		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, dir);
+		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, dir);
 		if (arrowHandle != 0) {
+			dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_ARROW_RIGHT : OS.GTK_ARROW_LEFT;
 			switch (style & (SWT.LEFT | SWT.RIGHT)) {
-				case SWT.LEFT: OS.gtk_arrow_set (arrowHandle, OS.GTK_ARROW_RIGHT, OS.GTK_SHADOW_OUT); break;
-				case SWT.RIGHT: OS.gtk_arrow_set (arrowHandle, OS.GTK_ARROW_LEFT, OS.GTK_SHADOW_OUT); break;
+				case SWT.LEFT: OS.gtk_arrow_set (arrowHandle, dir, OS.GTK_SHADOW_OUT); break;
+				case SWT.RIGHT: OS.gtk_arrow_set (arrowHandle, dir, OS.GTK_SHADOW_OUT); break;
 			}
 		}
 	}
diff --git a/org/eclipse/swt/widgets/Caret.java b/org/eclipse/swt/widgets/Caret.java
index 8bfa82f..b5034c6 100644
--- a/org/eclipse/swt/widgets/Caret.java
+++ b/org/eclipse/swt/widgets/Caret.java
@@ -25,8 +25,7 @@ import org.eclipse.swt.graphics.*;
  * <dd>(none)</dd>
  * </dl>
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/snippets/#caret">Caret snippets</a>
diff --git a/org/eclipse/swt/widgets/ColorDialog.java b/org/eclipse/swt/widgets/ColorDialog.java
index 1605c49..0a0c735 100644
--- a/org/eclipse/swt/widgets/ColorDialog.java
+++ b/org/eclipse/swt/widgets/ColorDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -26,8 +26,7 @@ import org.eclipse.swt.graphics.*;
  * <dd>(none)</dd>
  * </dl>
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample, Dialog tab</a>
@@ -153,6 +152,13 @@ public RGB open () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
diff --git a/org/eclipse/swt/widgets/Combo.java b/org/eclipse/swt/widgets/Combo.java
index 389aa23..0b279c4 100644
--- a/org/eclipse/swt/widgets/Combo.java
+++ b/org/eclipse/swt/widgets/Combo.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -571,10 +571,10 @@ boolean filterKey (int keyval, int /*long*/ event) {
 }
 
 int /*long*/ findPopupHandle (int /*long*/ oldList) {
-	int /*long*/ hdl = 0;
+	int /*long*/ result = 0;
 	int /*long*/ currentList = OS.gtk_window_list_toplevels();
 	int /*long*/ oldFromList = oldList;
-	int /*long*/ newFromList = currentList;
+	int /*long*/ newFromList = OS.g_list_last(currentList);
 	boolean isFound;
 	while (newFromList != 0) {
 		int /*long*/ newToplevel = OS.g_list_data(newFromList);
@@ -589,14 +589,14 @@ int /*long*/ findPopupHandle (int /*long*/ oldList) {
 			oldFromList = OS.g_list_next(oldFromList);
 		}
 		if (!isFound) {
-			hdl = newToplevel;
+			result = newToplevel;
 			break;
 		}
-		newFromList = OS.g_list_next(newFromList);
+		newFromList = OS.g_list_previous(newFromList);
 	}
 	OS.g_list_free(oldList);
 	OS.g_list_free(currentList);
-	return hdl;
+	return result;
 }
 
 
@@ -808,7 +808,7 @@ public void deselectAll () {
 	}
 }
 
-boolean dragDetect(int x, int y, boolean filter, boolean[] consume) {
+boolean dragDetect(int x, int y, boolean filter, boolean dragOnTimeout, boolean[] consume) {
 	if (filter && entryHandle != 0) {
 		int [] index = new int [1];
 		int [] trailing = new int [1];
@@ -816,16 +816,18 @@ boolean dragDetect(int x, int y, boolean filter, boolean[] consume) {
 		OS.pango_layout_xy_to_index (layout, x * OS.PANGO_SCALE, y * OS.PANGO_SCALE, index, trailing);
 		int /*long*/ ptr = OS.pango_layout_get_text (layout);
 		int position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
-		Point selection = getSelection ();
-		if (selection.x <= position && position < selection.y) {
-			if (super.dragDetect (x, y, filter, consume)) {
+		int [] start = new int [1];
+		int [] end = new int [1];
+		OS.gtk_editable_get_selection_bounds (entryHandle, start, end);
+		if (start [0] <= position && position < end [0]) {
+			if (super.dragDetect (x, y, filter, dragOnTimeout, consume)) {
 				if (consume != null) consume [0] = true;
 				return true;
 			}
 		}
 		return false;
 	}
-	return super.dragDetect (x, y, filter, consume);
+	return super.dragDetect (x, y, filter, dragOnTimeout, consume);
 }
 
 int /*long*/ enterExitHandle () {
@@ -966,8 +968,7 @@ String getNameText () {
  * @since 2.1.2
  */
 public int getOrientation () {
-	checkWidget();
-	return style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
+	return super.getOrientation ();
 }
 
 /**
@@ -998,7 +999,7 @@ public Point getSelection () {
 			if (index != -1) length = getItem (index).length ();
 		} else {
 			int /*long*/ str = OS.gtk_entry_get_text (entryHandle);
-			if (str != 0) length = (int)/*64*/OS.g_utf8_strlen (str, -1);
+			if (str != 0) length = (int)/*64*/OS.g_utf16_strlen (str, -1);
 		}
 		return new Point (0, length);
 	}
@@ -1006,6 +1007,9 @@ public Point getSelection () {
 	int [] end = new int [1];
 	if (entryHandle != 0) {
 		OS.gtk_editable_get_selection_bounds (entryHandle, start, end);
+		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
+		start[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start[0]);
+		end[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end[0]);
 	}
 	return new Point(start [0], end [0]);
 }
@@ -1269,8 +1273,11 @@ int /*long*/ gtk_delete_text (int /*long*/ widget, int /*long*/ start_pos, int /
 		return 0;
 	}
 	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
-	if (end_pos == -1) end_pos = OS.g_utf8_strlen (OS.gtk_entry_get_text (entryHandle), -1);
-	String newText = verifyText ("", (int)/*64*/start_pos, (int)/*64*/end_pos);
+	int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
+	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+	String newText = verifyText ("", start, end);
 	if (newText == null) {
 		OS.g_signal_stop_emission_by_name (entryHandle, OS.delete_text);
 	} else {
@@ -1372,11 +1379,10 @@ int /*long*/ gtk_insert_text (int /*long*/ widget, int /*long*/ new_text, int /*
 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
 	int [] pos = new int [1];
 	OS.memmove (pos, position, 4);
-	if (pos [0] == -1) {
-		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
-		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
-	}
-	String newText = verifyText (oldText, pos [0], pos [0]);
+	int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
+	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
+	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, pos [0]);
+	String newText = verifyText (oldText, start, start);
 	if (newText != oldText) {
 		int [] newStart = new int [1], newEnd = new int [1];
 		OS.gtk_editable_get_selection_bounds (entryHandle, newStart, newEnd);
@@ -2050,12 +2056,28 @@ public void setListVisible (boolean visible) {
 	}
 }
 
-void setOrientation() {
-	super.setOrientation();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (listHandle != 0) OS.gtk_widget_set_direction (listHandle, OS.GTK_TEXT_DIR_RTL);
-		if (entryHandle != 0) OS.gtk_widget_set_direction (entryHandle, OS.GTK_TEXT_DIR_RTL);
-		if (cellHandle != 0) OS.gtk_widget_set_direction (cellHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		if (listHandle != 0) OS.gtk_widget_set_direction (listHandle, dir);
+		if (entryHandle != 0) OS.gtk_widget_set_direction (entryHandle, dir);
+		if (cellHandle != 0) OS.gtk_widget_set_direction (cellHandle, dir);
+		if (!create) {
+			if (listHandle != 0) {
+				OS.gtk_widget_set_direction (listHandle, dir);
+				int /*long*/ itemsList = OS.gtk_container_get_children (listHandle);
+				if (itemsList != 0) {
+					int count = OS.g_list_length (itemsList);
+					for (int i=count - 1; i>=0; i--) {
+						int /*long*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
+						OS.gtk_widget_set_direction (widget, dir);
+					}
+					OS.g_list_free (itemsList);
+				}
+			}
+			if (popupHandle != 0) OS.gtk_container_forall (popupHandle, display.setDirectionProc, dir);
+		}
 	}
 }
 
@@ -2074,31 +2096,7 @@ void setOrientation() {
  * @since 2.1.2
  */
 public void setOrientation (int orientation) {
-	if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) {
-		checkWidget();
-		int flags = SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT;
-		if ((orientation & flags) == 0 || (orientation & flags) == flags) return;
-		style &= ~flags;
-		style |= orientation & flags;
-		int dir = (orientation & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
-		OS.gtk_widget_set_direction (fixedHandle, dir);
-		OS.gtk_widget_set_direction (handle, dir);
-		if (entryHandle != 0) OS.gtk_widget_set_direction (entryHandle, dir);
-		if (listHandle != 0) {
-			OS.gtk_widget_set_direction (listHandle, dir);
-			int /*long*/ itemsList = OS.gtk_container_get_children (listHandle);
-			if (itemsList != 0) {
-				int count = OS.g_list_length (itemsList);
-				for (int i=count - 1; i>=0; i--) {
-					int /*long*/ widget = OS.gtk_bin_get_child (OS.g_list_nth_data (itemsList, i));
-					OS.gtk_widget_set_direction (widget, dir);
-				}
-				OS.g_list_free (itemsList);
-			}
-		}
-		if (cellHandle != 0) OS.gtk_widget_set_direction (cellHandle, dir);
-		if (popupHandle != 0) OS.gtk_container_forall (popupHandle, display.setDirectionProc, dir);
-	}
+	super.setOrientation (orientation);
 }
 
 /**
@@ -2122,8 +2120,11 @@ public void setSelection (Point selection) {
 	if (selection == null) error (SWT.ERROR_NULL_ARGUMENT);
 	if ((style & SWT.READ_ONLY) != 0) return;
 	if (entryHandle != 0) {
-		OS.gtk_editable_set_position (entryHandle, selection.x);
-		OS.gtk_editable_select_region (entryHandle, selection.x, selection.y);
+		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
+		int start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, selection.x);
+		int end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, selection.y);
+		OS.gtk_editable_set_position (entryHandle, start);
+		OS.gtk_editable_select_region (entryHandle, start, end);
 	}
 }
 
@@ -2178,7 +2179,7 @@ public void setText (String string) {
 	*/
 	if (hooks (SWT.Verify) || filters (SWT.Verify)) {
 		int /*long*/ ptr = OS.gtk_entry_get_text (entryHandle);
-		string = verifyText (string, 0, (int)/*64*/OS.g_utf8_strlen (ptr, -1));
+		string = verifyText (string, 0, (int)/*64*/OS.g_utf16_strlen (ptr, -1));
 		if (string == null) return;
 	}
 	byte [] buffer = Converter.wcsToMbcs (null, string, true);
diff --git a/org/eclipse/swt/widgets/Composite.java b/org/eclipse/swt/widgets/Composite.java
index 483032f..4aaf4d3 100644
--- a/org/eclipse/swt/widgets/Composite.java
+++ b/org/eclipse/swt/widgets/Composite.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -224,9 +224,9 @@ public Point computeSize (int wHint, int hHint, boolean changed) {
 		}
 	} else {
 		size = minimumSize (wHint, hHint, changed);
+		if (size.x == 0) size.x = DEFAULT_WIDTH;
+		if (size.y == 0) size.y = DEFAULT_HEIGHT;
 	}
-	if (size.x == 0) size.x = DEFAULT_WIDTH;
-	if (size.y == 0) size.y = DEFAULT_HEIGHT;
 	if (wHint != SWT.DEFAULT) size.x = wHint;
 	if (hHint != SWT.DEFAULT) size.y = hHint;
 	Rectangle trim = computeTrim (0, 0, size.x, size.y);
@@ -1197,7 +1197,7 @@ void moveChildren(int oldWidth) {
 		int x = OS.GTK_WIDGET_X (topHandle);
 		int y = OS.GTK_WIDGET_Y (topHandle);
 		int controlWidth = (child.state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle);
-		x = oldWidth - controlWidth - x; 
+		if (oldWidth > 0) x = oldWidth - controlWidth - x; 
 		int clientWidth = getClientWidth ();
 		x = clientWidth - controlWidth - x;
 		if (child.enableWindow != 0) {
@@ -1226,11 +1226,12 @@ void moveChildren(int oldWidth) {
 
 Point minimumSize (int wHint, int hHint, boolean changed) {
 	Control [] children = _getChildren ();
+	Rectangle clientArea = getClientArea ();
 	int width = 0, height = 0;
 	for (int i=0; i<children.length; i++) {
 		Rectangle rect = children [i].getBounds ();
-		width = Math.max (width, rect.x + rect.width);
-		height = Math.max (height, rect.y + rect.height);
+		width = Math.max (width, rect.x - clientArea.x + rect.width);
+		height = Math.max (height, rect.y - clientArea.y + rect.height);
 	}
 	return new Point (width, height);
 }
@@ -1411,6 +1412,7 @@ public void setLayout (Layout layout) {
  * @since 3.1
  */
 public void setLayoutDeferred (boolean defer) {
+	checkWidget();
 	if (!defer) {
 		if (--layoutCount == 0) {
 			if ((state & LAYOUT_CHILD) != 0 || (state & LAYOUT_NEEDED) != 0) {
@@ -1422,6 +1424,21 @@ public void setLayoutDeferred (boolean defer) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if (!create) {
+		int flags = SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT;
+		int orientation = style & flags;	
+		Control [] children = _getChildren ();
+		for (int i=0; i<children.length; i++) {
+			children[i].setOrientation (orientation);
+		}
+		if (((style & SWT.RIGHT_TO_LEFT) != 0) != ((style & SWT.MIRRORED) != 0)) {
+			moveChildren (-1);
+		}
+	}
+}
+
 boolean setScrollBarVisible (ScrollBar bar, boolean visible) {
 	boolean changed = super.setScrollBarVisible (bar, visible);
 	if (changed && layout != null) {
diff --git a/org/eclipse/swt/widgets/Control.java b/org/eclipse/swt/widgets/Control.java
index a69add3..c3a9f8a 100644
--- a/org/eclipse/swt/widgets/Control.java
+++ b/org/eclipse/swt/widgets/Control.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -163,6 +163,8 @@ void fixFocus (Control focusControl) {
 	int /*long*/ focusHandle = shell.vboxHandle;
 	OS.GTK_WIDGET_SET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
 	OS.gtk_widget_grab_focus (focusHandle);
+	// widget could be disposed at this point
+	if (isDisposed ()) return;
 	OS.GTK_WIDGET_UNSET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS);
 }
 
@@ -200,6 +202,24 @@ int /*long*/ fontHandle () {
 	return handle;
 }
 
+/**
+ * Returns the orientation of the receiver, which will be one of the
+ * constants <code>SWT.LEFT_TO_RIGHT</code> or <code>SWT.RIGHT_TO_LEFT</code>.
+ *
+ * @return the orientation style
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public int getOrientation () {
+	checkWidget();
+	return style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
+}
+
 boolean hasFocus () {
 	return this == display.getFocusControl();
 }
@@ -259,7 +279,14 @@ void hookEvents () {
 	int paintMask = OS.GDK_EXPOSURE_MASK | OS.GDK_VISIBILITY_NOTIFY_MASK;
 	OS.gtk_widget_add_events (paintHandle, paintMask);
 	OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, display.closures [EXPOSE_EVENT_INVERSE], false);
-	OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [VISIBILITY_NOTIFY_EVENT], 0, display.closures [VISIBILITY_NOTIFY_EVENT], false);
+	/*
+	* As of GTK 2.17.11, obscured controls no longer send expose 
+	* events. It is no longer necessary to track visiblity notify
+	* events.
+	*/
+	if (OS.GTK_VERSION < OS.VERSION (2, 17, 11)) {
+		OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [VISIBILITY_NOTIFY_EVENT], 0, display.closures [VISIBILITY_NOTIFY_EVENT], false);
+	}
 	OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, display.closures [EXPOSE_EVENT], true);
 
 	/* Connect the Input Method signals */
@@ -632,8 +659,11 @@ void forceResize () {
 
 /**
  * Returns the accessible object for the receiver.
+ * <p>
  * If this is the first time this object is requested,
- * then the object is created and returned.
+ * then the object is created and returned. The object
+ * returned by getAccessible() does not need to be disposed.
+ * </p>
  *
  * @return the accessible object
  *
@@ -1383,6 +1413,41 @@ public void addFocusListener(FocusListener listener) {
 
 /**
  * Adds the listener to the collection of listeners who will
+ * be notified when gesture events are generated for the control,
+ * by sending it one of the messages defined in the
+ * <code>GestureListener</code> interface.
+ * <p>
+ * NOTE: If <code>setTouchEnabled(true)</code> has previously been
+ * invoked on the receiver then <code>setTouchEnabled(false)</code>
+ * must be invoked on it to specify that gesture events should be
+ * sent instead of touch events.
+ * </p>
+ * 
+ * @param listener the listener which should be notified
+ *
+ * @exception IllegalArgumentException <ul>
+ *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+ * </ul>
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see GestureListener
+ * @see #removeGestureListener
+ * @see #setTouchEnabled
+ * 
+ * @since 3.7
+ */
+public void addGestureListener (GestureListener listener) {
+	checkWidget();
+	if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
+	TypedListener typedListener = new TypedListener (listener);
+	addListener (SWT.Gesture, typedListener);
+}
+
+/**
+ * Adds the listener to the collection of listeners who will
  * be notified when help events are generated for the control,
  * by sending it one of the messages defined in the
  * <code>HelpListener</code> interface.
@@ -1614,6 +1679,40 @@ void addRelation (Control control) {
 
 /**
  * Adds the listener to the collection of listeners who will
+ * be notified when touch events occur, by sending it
+ * one of the messages defined in the <code>TouchListener</code>
+ * interface.
+ * <p>
+ * NOTE: You must also call <code>setTouchEnabled(true)</code> to 
+ * specify that touch events should be sent, which will cause gesture
+ * events to not be sent.
+ * </p>
+ * 
+ * @param listener the listener which should be notified
+ *
+ * @exception IllegalArgumentException <ul>
+ *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+ * </ul>
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see TouchListener
+ * @see #removeTouchListener
+ * @see #setTouchEnabled
+ * 
+ * @since 3.7
+ */
+public void addTouchListener (TouchListener listener) {
+	checkWidget();
+	if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
+	TypedListener typedListener = new TypedListener (listener);
+	addListener (SWT.Touch,typedListener);
+}
+
+/**
+ * Adds the listener to the collection of listeners who will
  * be notified when traversal events occur, by sending it
  * one of the messages defined in the <code>TraverseListener</code>
  * interface.
@@ -1715,6 +1814,31 @@ public void removeFocusListener(FocusListener listener) {
 }
 /**
  * Removes the listener from the collection of listeners who will
+ * be notified when gesture events are generated for the control.
+ *
+ * @param listener the listener which should no longer be notified
+ *
+ * @exception IllegalArgumentException <ul>
+ *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+ * </ul>
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see GestureListener
+ * @see #addGestureListener
+ * 
+ * @since 3.7
+ */
+public void removeGestureListener (GestureListener listener) {
+	checkWidget();
+	if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
+	if (eventTable == null) return;
+	eventTable.unhook(SWT.Gesture, listener);
+}
+/**
+ * Removes the listener from the collection of listeners who will
  * be notified when the help events are generated for the control.
  *
  * @param listener the listener which should no longer be notified
@@ -1924,6 +2048,32 @@ void removeRelation () {
 
 /**
  * Removes the listener from the collection of listeners who will
+ * be notified when touch events occur.
+ *
+ * @param listener the listener which should no longer be notified
+ *
+ * @exception IllegalArgumentException <ul>
+ *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
+ * </ul>
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see TouchListener
+ * @see #addTouchListener
+ * 
+ * @since 3.7
+ */
+public void removeTouchListener(TouchListener listener) {
+	checkWidget();
+	if (listener == null) error (SWT.ERROR_NULL_ARGUMENT);
+	if (eventTable == null) return;
+	eventTable.unhook (SWT.Touch, listener);
+}
+
+/**
+ * Removes the listener from the collection of listeners who will
  * be notified when traversal events occur.
  *
  * @param listener the listener which should no longer be notified
@@ -2032,11 +2182,11 @@ public boolean dragDetect (MouseEvent event) {
 
 boolean dragDetect (int button, int count, int stateMask, int x, int y) {
 	if (button != 1 || count != 1) return false;
-	if (!dragDetect (x, y, false, null)) return false;
+	if (!dragDetect (x, y, false, true, null)) return false;
 	return sendDragEvent (button, stateMask, x, y, true);
 }
 
-boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
 	boolean quit = false, dragging = false;
 	while (!quit) {
 		int /*long*/ eventPtr = 0;
@@ -2054,7 +2204,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 				try {Thread.sleep(50);} catch (Exception ex) {}
 			}
 		}
-		if (eventPtr == 0) return false;
+		if (eventPtr == 0) return dragOnTimeout;
 		switch (OS.GDK_EVENT_TYPE (eventPtr)) {
 			case OS.GDK_MOTION_NOTIFY: {
 				GdkEventMotion gdkMotionEvent = new GdkEventMotion ();
@@ -2168,6 +2318,8 @@ boolean forceFocus (int /*long*/ focusHandle) {
 	/* When the control is zero sized it must be realized */
 	OS.gtk_widget_realize (focusHandle);
 	OS.gtk_widget_grab_focus (focusHandle);
+	// widget could be disposed at this point
+	if (isDisposed ()) return false;
 	Shell shell = getShell ();
 	int /*long*/ shellHandle = shell.shellHandle;
 	int /*long*/ handle = OS.gtk_window_get_focus (shellHandle);
@@ -2555,6 +2707,32 @@ public String getToolTipText () {
 	checkWidget();
 	return toolTipText;
 }
+
+/**
+ * Returns <code>true</code> if this control is set to send touch events, or
+ * <code>false</code> if it is set to send gesture events instead.  This method
+ * also returns <code>false</code> if a touch-based input device is not detected
+ * (this can be determined with <code>Display#getTouchEnabled()</code>).  Use
+ * {@link #setTouchEnabled(boolean)} to switch the events that a control sends
+ * between touch events and gesture events.
+ *
+ * @return <code>true</code> if the control is set to send touch events, or <code>false</code> otherwise
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @see #setTouchEnabled
+ * @see Display#getTouchEnabled
+ *
+ * @since 3.7
+ */
+public boolean getTouchEnabled() {
+	checkWidget();
+	return false;
+}
+
 /**
  * Returns <code>true</code> if the receiver is visible, and
  * <code>false</code> otherwise.
@@ -2610,7 +2788,7 @@ int /*long*/ gtk_button_press_event (int /*long*/ widget, int /*long*/ event, bo
 		if ((state & DRAG_DETECT) != 0 && hooks (SWT.DragDetect)) {
 			if (gdkEvent.button == 1) {
 				boolean [] consume = new boolean [1];
-				if (dragDetect ((int) gdkEvent.x, (int) gdkEvent.y, true, consume)) {
+				if (dragDetect ((int) gdkEvent.x, (int) gdkEvent.y, true, true, consume)) {
 					dragging = true;
 					if (consume [0]) result = 1;
 				}
@@ -2965,6 +3143,12 @@ int /*long*/ gtk_unrealize (int /*long*/ widget) {
 }
 
 int /*long*/ gtk_visibility_notify_event (int /*long*/ widget, int /*long*/ event) {
+	/*
+	* As of GTK 2.17.11, obscured controls no longer send expose 
+	* events. It is no longer necessary to track visiblity notify
+	* events.
+	*/
+	if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) return 0;
 	GdkEventVisibility gdkEvent = new GdkEventVisibility ();
 	OS.memmove (gdkEvent, event, GdkEventVisibility.sizeof);
 	int /*long*/ paintWindow = paintWindow();
@@ -3526,11 +3710,11 @@ void setBackgroundColor (int /*long*/ handle, GdkColor color) {
 	int flags = OS.gtk_rc_style_get_color_flags (style, index);
 	if (color != null) {
 		flags |= OS.GTK_RC_BG;
-		pixmapName = "<none>";
+		pixmapName = "<none>"; //$NON-NLS-1$
 	} else {
 		flags &= ~OS.GTK_RC_BG;
 		if (backgroundImage == null && (state & PARENT_BACKGROUND) != 0) {
-			pixmapName = "<parent>";
+			pixmapName = "<parent>"; //$NON-NLS-1$
 		}
 	}
 	if (pixmapName != null) {
@@ -3904,14 +4088,41 @@ public void setMenu (Menu menu) {
 	this.menu = menu;
 }
 
-void setOrientation () {
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (handle != 0) OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
-		if (fixedHandle != 0) OS.gtk_widget_set_direction (fixedHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		if (handle != 0) OS.gtk_widget_set_direction (handle, dir);
+		if (fixedHandle != 0) OS.gtk_widget_set_direction (fixedHandle, dir);
 	}
 }
 
 /**
+ * Sets the orientation of the receiver, which must be one
+ * of the constants <code>SWT.LEFT_TO_RIGHT</code> or <code>SWT.RIGHT_TO_LEFT</code>.
+ * <p>
+ *
+ * @param orientation new orientation style
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public void setOrientation (int orientation) {
+	checkWidget ();
+	if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) return;
+	int flags = SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT;
+	if ((orientation & flags) == 0 || (orientation & flags) == flags) return;
+	style &= ~flags;
+	style |= orientation & flags;
+	setOrientation (false);
+	style &= ~SWT.MIRRORED;
+	checkMirrored ();
+}
+
+/**
  * Changes the parent of the widget to be the one provided if
  * the underlying operating system supports this feature.
  * Returns <code>true</code> if the parent is successfully changed.
@@ -4004,18 +4215,10 @@ public void setRedraw (boolean redraw) {
 		if (--drawCount == 0) {
 			if (redrawWindow != 0) {
 				int /*long*/ window = paintWindow ();
-				/*
-				* Bug in GTK. For some reason, the window does not
-				* redraw in versions of GTK greater than 2.18. The fix
-				* is to hide and show it (without changing the z order).
-			    */
-				boolean fixRedraw = OS.GTK_VERSION >= OS.VERSION (2, 17, 0) && OS.gdk_window_is_visible(window);
-				if (fixRedraw) OS.gdk_window_hide(window);
 				/* Explicitly hiding the window avoids flicker on GTK+ >= 2.6 */
 				OS.gdk_window_hide (redrawWindow);
 				OS.gdk_window_destroy (redrawWindow);
 				OS.gdk_window_set_events (window, OS.gtk_widget_get_events (paintHandle ()));
-				if (fixRedraw) OS.gdk_window_show_unraised(window);
 				redrawWindow = 0;
 			}
 		}
@@ -4038,9 +4241,6 @@ public void setRedraw (boolean redraw) {
 						OS.GDK_BUTTON2_MOTION_MASK | OS.GDK_BUTTON3_MOTION_MASK;
 					OS.gdk_window_set_events (window, OS.gdk_window_get_events (window) & ~mouseMask);
 					OS.gdk_window_set_back_pixmap (redrawWindow, 0, false);
-					//System.out.println("Redraw " + redrawWindow + " WIndow " + window);
-//					OS.gdk_x11_drawable_get_xid(redrawWindow);
-//					OS.gdk_x11_drawable_get_xid(window);
 					OS.gdk_window_show (redrawWindow);
 				}
 			}
@@ -4102,6 +4302,26 @@ void setToolTipText (Shell shell, String newString) {
 }
 
 /**
+ * Sets whether this control should send touch events (by default controls do not).
+ * Setting this to <code>false</code> causes the receiver to send gesture events
+ * instead.  No exception is thrown if a touch-based input device is not
+ * detected (this can be determined with <code>Display#getTouchEnabled()</code>).
+ * 
+ * @param enabled the new touch-enabled state
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ *
+ * @see Display#getTouchEnabled
+ *
+ * @since 3.7
+ */
+public void setTouchEnabled(boolean enabled) {
+	checkWidget();
+}
+
+/**
  * Marks the receiver as visible if the argument is <code>true</code>,
  * and marks it invisible otherwise. 
  * <p>
diff --git a/org/eclipse/swt/widgets/CoolBar.java b/org/eclipse/swt/widgets/CoolBar.java
index 44e878d..a427a10 100644
--- a/org/eclipse/swt/widgets/CoolBar.java
+++ b/org/eclipse/swt/widgets/CoolBar.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1156,6 +1156,19 @@ public void setItemLayout (int[] itemOrder, int[] wrapIndices, Point[] sizes) {
 	setItemSizes(sizes);	
 	relayout();
 }
+public void setOrientation (int orientation) {
+	super.setOrientation(orientation);
+	for (int row = 0; row < items.length; row++) {
+		for (int column = 0; column < items[row].length; column++) {
+			CoolItem item = items[row][column];
+			if (item.arrowImage != null) {
+				item.arrowImage.dispose();
+				item.arrowImage = null;
+			}
+			item.updateChevron();
+		}
+	}
+}
 void wrapItems (int maxWidth) {
 	int itemCount = originalItems.length;
 	if (itemCount < 2) return;
diff --git a/org/eclipse/swt/widgets/DateTime.java b/org/eclipse/swt/widgets/DateTime.java
index e69a998..948762c 100644
--- a/org/eclipse/swt/widgets/DateTime.java
+++ b/org/eclipse/swt/widgets/DateTime.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -16,6 +16,7 @@ import java.util.Calendar;
 import org.eclipse.swt.*;
 import org.eclipse.swt.events.*;
 import org.eclipse.swt.graphics.*;
+import org.eclipse.swt.accessibility.*;
 import org.eclipse.swt.internal.gtk.OS;
 
 /**
@@ -50,10 +51,7 @@ import org.eclipse.swt.internal.gtk.OS;
 public class DateTime extends Composite {
 	int day, month, year, hours, minutes, seconds;
 	
-	static final int MIN_YEAR = 1752; // Gregorian switchover in North America: September 19, 1752
-	static final int MAX_YEAR = 9999;
-
-	/* Emulated DATE and TIME variables */
+	/* Emulated DATE and TIME fields */
 	Calendar calendar;
 	DateFormatSymbols formatSymbols;
 	Button down, up;
@@ -63,12 +61,23 @@ public class DateTime extends Composite {
 	int[] fieldNames;
 	int fieldCount, currentField = 0, characterCount = 0;
 	boolean ignoreVerify = false;
+	
+	/* DROP_DOWN calendar fields for DATE */
+	Color fg, bg;
+	boolean hasFocus, monthChanged, calendarDisplayed;
+	int savedYear, savedMonth, savedDay;
+	Shell popupShell;
+	DateTime popupCalendar;
+	Listener popupListener, popupFilter, clickListener;
+	
 	static final String DEFAULT_SHORT_DATE_FORMAT = "MM/YYYY";
 	static final String DEFAULT_MEDIUM_DATE_FORMAT = "MM/DD/YYYY";
 	static final String DEFAULT_LONG_DATE_FORMAT = "MM/DD/YYYY";
 	static final String DEFAULT_SHORT_TIME_FORMAT = "HH:MM AM";
 	static final String DEFAULT_MEDIUM_TIME_FORMAT = "HH:MM:SS AM";
 	static final String DEFAULT_LONG_TIME_FORMAT = "HH:MM:SS AM";
+	static final int MIN_YEAR = 1752; // Gregorian switchover in North America: September 19, 1752
+	static final int MAX_YEAR = 9999;
 
 /**
  * Constructs a new instance of this class given its parent
@@ -108,38 +117,56 @@ public DateTime (Composite parent, int style) {
 	super (parent, checkStyle (style));
 	if ((this.style & SWT.CALENDAR) == 0) {
 		/* SWT.DATE and SWT.TIME */
-		calendar = Calendar.getInstance();
-		formatSymbols = new DateFormatSymbols();
-		text = new Text(this, SWT.SINGLE);
-		/* disable the native drag and drop for the date/time text field */
-		OS.gtk_drag_dest_unset(text.handle);
-		if ((this.style & SWT.DATE) != 0) {
-			setFormat((this.style & SWT.SHORT) != 0 ? DEFAULT_SHORT_DATE_FORMAT : (this.style & SWT.LONG) != 0 ? DEFAULT_LONG_DATE_FORMAT : DEFAULT_MEDIUM_DATE_FORMAT);
-		} else { // SWT.TIME
-			setFormat((this.style & SWT.SHORT) != 0 ? DEFAULT_SHORT_TIME_FORMAT : (this.style & SWT.LONG) != 0 ? DEFAULT_LONG_TIME_FORMAT : DEFAULT_MEDIUM_TIME_FORMAT);
+		createText((this.style & SWT.DROP_DOWN) != 0);
+	}
+	initAccessible ();
+}
+
+void createText(boolean dropDown) {
+	calendar = Calendar.getInstance();
+	formatSymbols = new DateFormatSymbols();
+	text = new Text(this, SWT.SINGLE);
+	/* disable the native drag and drop for the date/time text field */
+	OS.gtk_drag_dest_unset(text.handle);
+	if ((style & SWT.DATE) != 0) {
+		setFormat((style & SWT.SHORT) != 0 ? DEFAULT_SHORT_DATE_FORMAT : (style & SWT.LONG) != 0 ? DEFAULT_LONG_DATE_FORMAT : DEFAULT_MEDIUM_DATE_FORMAT);
+	} else { /* SWT.TIME */
+		setFormat((style & SWT.SHORT) != 0 ? DEFAULT_SHORT_TIME_FORMAT : (style & SWT.LONG) != 0 ? DEFAULT_LONG_TIME_FORMAT : DEFAULT_MEDIUM_TIME_FORMAT);
+	}
+	text.setText(getFormattedString(style));
+	
+	addListener(SWT.Resize, new Listener() {
+		public void handleEvent(Event event) {
+			onResize(event);
 		}
-		text.setText(getFormattedString(this.style));
-		Listener listener = new Listener() {
-			public void handleEvent(Event event) {
-				switch(event.type) {
-					case SWT.KeyDown: onKeyDown(event); break;
-					case SWT.FocusIn: onFocusIn(event); break;
-					case SWT.FocusOut: onFocusOut(event); break;
-					case SWT.MouseDown: onMouseClick(event); break;
-					case SWT.MouseUp: onMouseClick(event); break;
-					case SWT.Verify: onVerify(event); break;
-				}
+	});
+	Listener listener = new Listener() {
+		public void handleEvent(Event event) {
+			switch(event.type) {
+				case SWT.KeyDown: onTextKeyDown(event); break;
+				case SWT.FocusIn: onTextFocusIn(event); break;
+				case SWT.FocusOut: onTextFocusOut(event); break;
+				case SWT.MouseDown: // Fall through
+				case SWT.MouseUp: onTextMouseClick(event); break;
+				case SWT.MenuDetect: notifyListeners(SWT.MenuDetect, event); break;
+				case SWT.Verify: onTextVerify(event); break;
 			}
-		};
-		text.addListener(SWT.KeyDown, listener);
-		text.addListener(SWT.FocusIn, listener);
-		text.addListener(SWT.FocusOut, listener);
-		text.addListener(SWT.MouseDown, listener);
-		text.addListener(SWT.MouseUp, listener);
-		text.addListener(SWT.Verify, listener);
+		}
+	};
+	int [] listeners = new int [] {SWT.KeyDown, SWT.FocusIn, SWT.FocusOut, SWT.MouseDown, SWT.MouseUp, SWT.MenuDetect, SWT.Verify};
+	for (int i = 0; i < listeners.length; i++) {
+		text.addListener(listeners [i], listener);
+	}
+	
+	if ((style & SWT.DATE) != 0 && dropDown) {
+		createDropDownButton();
+		createPopupShell(-1, -1, -1);
+	} else {
 		up = new Button(this, SWT.ARROW | SWT.UP);
+		OS.GTK_WIDGET_UNSET_FLAGS(up.handle, OS.GTK_CAN_FOCUS);
 		//up.setToolTipText(SWT.getMessage ("SWT_Up")); //$NON-NLS-1$
 		down = new Button(this, SWT.ARROW | SWT.DOWN);
+		OS.GTK_WIDGET_UNSET_FLAGS(down.handle, OS.GTK_CAN_FOCUS);
 		//down.setToolTipText(SWT.getMessage ("SWT_Down")); //$NON-NLS-1$
 		up.addListener(SWT.Selection, new Listener() {
 			public void handleEvent(Event event) {
@@ -153,12 +180,82 @@ public DateTime (Composite parent, int style) {
 				text.setFocus();
 			}
 		});
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event event) {
-				onResize(event);
+	}
+}
+
+void createDropDownButton() {
+	down = new Button(this, SWT.ARROW  | SWT.DOWN);
+	OS.GTK_WIDGET_UNSET_FLAGS(down.handle, OS.GTK_CAN_FOCUS);
+	down.addListener(SWT.Selection, new Listener() {
+		public void handleEvent(Event event) {
+			boolean dropped = isDropped();
+			popupCalendar.calendarDisplayed = !dropped;
+			setFocus();
+			dropDownCalendar (!dropped);
+		}
+	});
+
+	popupListener = new Listener () {
+		public void handleEvent (Event event) {
+			if (event.widget == popupShell) {
+				popupShellEvent (event);
+				return;
 			}
-		});
+			if (event.widget == popupCalendar) {
+				popupCalendarEvent (event);
+				return;
+			}
+			if (event.widget == DateTime.this) {
+				onDispose (event);
+				return;
+			}
+			if (event.widget == getShell ()) {
+				getDisplay().asyncExec(new Runnable() {
+					public void run() {
+						if (isDisposed()) return;
+						handleFocus (SWT.FocusOut);
+					}
+				});
+			}
+		}
+	};
+	popupFilter = new Listener() {
+		public void handleEvent(Event event) {
+			Shell shell = ((Control)event.widget).getShell ();
+			if (shell == DateTime.this.getShell ()) {
+				handleFocus (SWT.FocusOut);
+			}
+		}
+	};
+}
+
+void createPopupShell(int year, int month, int day) {	
+	popupShell = new Shell (getShell(), SWT.NO_TRIM | SWT.ON_TOP);
+	popupCalendar = new DateTime (popupShell, SWT.CALENDAR);
+	if (font != null) popupCalendar.setFont (font);
+	if (fg != null) popupCalendar.setForeground (fg);
+	if (bg != null) popupCalendar.setBackground (bg);
+	
+	clickListener = new Listener() {
+		public void handleEvent(Event event) {
+			if (event.widget instanceof Control) {
+				Control c = (Control)event.widget;
+				if (c != down && c.getShell() != popupShell)
+					dropDownCalendar(false);
+			}
+		}
+	};
+
+	int [] listeners = {SWT.Close, SWT.MouseUp, SWT.Paint};
+	for (int i=0; i < listeners.length; i++) {
+		popupShell.addListener (listeners [i], popupListener);
 	}
+	listeners = new int [] {SWT.MouseDown, SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut, SWT.Dispose};
+	for (int i=0; i < listeners.length; i++) {
+		popupCalendar.addListener (listeners [i], popupListener);
+	}
+	addListener(SWT.Dispose, popupListener);
+	if (year != -1) popupCalendar.setDate(year, month, day);
 }
 
 static int checkStyle (int style) {
@@ -171,6 +268,7 @@ static int checkStyle (int style) {
 	*/
 	style &= ~(SWT.H_SCROLL | SWT.V_SCROLL);
 	style = checkBits (style, SWT.DATE, SWT.TIME, SWT.CALENDAR, 0, 0, 0);
+	if ((style & SWT.DATE) == 0) style &=~ SWT.DROP_DOWN;
 	return checkBits (style, SWT.MEDIUM, SWT.SHORT, SWT.LONG, 0, 0, 0);
 }
 
@@ -215,16 +313,15 @@ public Point computeSize (int wHint, int hHint, boolean changed) {
 	int width = 0, height = 0;
 	if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {
 		if ((style & SWT.CALENDAR) != 0) {
-			// TODO: CALENDAR computeSize
-			width = 300;
-			height = 200;
-		} else {
-			/* SWT.DATE and SWT.TIME */
+			Point size = computeNativeSize(handle, wHint, hHint, changed);
+			width = size.x;
+			height = size.y;
+		} else { /* SWT.DATE and SWT.TIME */
 			GC gc = new GC(text);
 			Point textSize = gc.stringExtent(getComputeSizeString(style));
 			gc.dispose();
 			Rectangle trim = text.computeTrim(0, 0, textSize.x, textSize.y);
-			Point buttonSize = up.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
+			Point buttonSize = down.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed);
 			width = trim.width + buttonSize.x;
 			height = Math.max(trim.height, buttonSize.y);
 		}
@@ -233,9 +330,8 @@ public Point computeSize (int wHint, int hHint, boolean changed) {
 	if (height == 0) height = DEFAULT_HEIGHT;
 	if (wHint != SWT.DEFAULT) width = wHint;
 	if (hHint != SWT.DEFAULT) height = hHint;
-	int border = getBorderWidth ();
-	width += border * 2; height += border * 2;
-	return new Point (width, height);
+	int borderWidth = getBorderWidth ();
+	return new Point (width + 2*borderWidth, height+ 2*borderWidth);
 }
 
 void createHandle (int index) {
@@ -282,6 +378,72 @@ void commitCurrentField() {
 	}
 }
 
+void onDispose (Event event) {
+	if (popupShell != null && !popupShell.isDisposed ()) {
+		popupCalendar.removeListener (SWT.Dispose, popupListener);
+		popupShell.dispose ();
+	}
+	Shell shell = getShell ();
+	shell.removeListener (SWT.Deactivate, popupListener);
+	Display display = getDisplay ();
+	display.removeFilter (SWT.FocusIn, popupFilter);
+	popupShell = null;  
+	text = null;  
+	popupCalendar = null;  
+	down = null;
+	up = null;
+}
+
+void dropDownCalendar(boolean drop) {
+	if (drop == isDropped ()) return;
+	if (!drop) {
+		popupShell.setVisible (false);
+		OS.gtk_calendar_clear_marks(popupCalendar.handle);
+		display.removeFilter(SWT.MouseDown, clickListener);
+		return;
+	}
+	savedYear = getYear ();
+	savedMonth = getMonth ();
+	savedDay = getDay ();
+	if (getShell() != popupShell.getParent ()) {
+		int year = popupCalendar.getYear ();
+		int month = popupCalendar.getMonth ();
+		int day = popupCalendar.getDay ();
+		popupCalendar.removeListener (SWT.Dispose, popupListener);
+		popupShell.dispose();
+		popupShell = null;
+		popupCalendar = null;
+		createPopupShell (year, month, day);
+	}
+	Point dateBounds = getSize ();
+	Point calendarSize = popupCalendar.computeSize (SWT.DEFAULT, SWT.DEFAULT, false);
+	popupCalendar.setBounds (1, 1, Math.max (dateBounds.x - 2, calendarSize.x), calendarSize.y);
+
+	popupCalendar.setDate(savedYear, savedMonth, savedDay);
+	if (savedYear == Calendar.getInstance().get(Calendar.YEAR) && savedMonth == Calendar.getInstance().get(Calendar.MONTH))
+		OS.gtk_calendar_mark_day(popupCalendar.handle, Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
+	Display display = getDisplay ();
+	Rectangle parentRect = display.map (getParent (), null, getBounds ());
+	Rectangle displayRect = getMonitor ().getClientArea ();
+	int width = Math.max (dateBounds.x, calendarSize.x + 2);
+	int height = calendarSize.y + 2;
+	int x = parentRect.x;
+	int y = parentRect.y + dateBounds.y;
+	if (y + height > displayRect.y + displayRect.height) y = parentRect.y - height;
+	if (x + width > displayRect.x + displayRect.width) x = displayRect.x + displayRect.width - calendarSize.x;
+	popupShell.setBounds (x, y, width, height);
+	popupShell.setVisible (true);
+	if (isFocusControl()) {
+		popupCalendar.setFocus ();
+	}
+	display.addFilter(SWT.MouseDown, clickListener);
+}
+	
+int /*long*/ focusHandle () {
+	if (text != null) return text.handle;
+	return super.focusHandle ();
+}
+
 String formattedStringValue(int fieldName, int value, boolean adjust) {
 	if (fieldName == Calendar.AM_PM) {
 		String[] ampm = formatSymbols.getAmPmStrings();
@@ -460,6 +622,44 @@ public int getSeconds () {
 	}
 }
 
+/*
+ * Returns a textual representation of the receiver,
+ * intended for speaking the text aloud.
+ */
+String getSpokenText () {
+	// TODO: needs more work for locale
+	StringBuffer result = new StringBuffer ();
+	if ((style & SWT.TIME) != 0) {
+		int h = calendar.get(Calendar.HOUR); if (h == 0) h = 12;
+		result.append(h);
+		int m = calendar.get(Calendar.MINUTE);
+		result.append(":" + (m < 10 ? "0" : "") + m);
+		if ((style & SWT.SHORT) == 0) {
+			int s = calendar.get(Calendar.SECOND);
+			result.append(":" + (s < 10 ? "0" : "") + s);
+		}
+		result.append(" " + formatSymbols.getAmPmStrings()[calendar.get(Calendar.AM_PM)]);
+	} else {
+		/* SWT.DATE or SWT.CALENDAR */
+		Calendar cal = calendar;
+	    if ((style & SWT.CALENDAR) != 0) {
+	        formatSymbols = new DateFormatSymbols();
+	        cal = Calendar.getInstance();
+	        getDate();
+	        cal.set(year, month, day);
+	    }
+	    if ((style & SWT.SHORT) == 0) {
+	    	result.append(formatSymbols.getWeekdays()[cal.get(Calendar.DAY_OF_WEEK)] + ", ");
+	    }
+	    result.append(formatSymbols.getMonths()[cal.get(Calendar.MONTH)] + " ");
+	    if ((style & SWT.SHORT) == 0) {
+	        result.append(cal.get(Calendar.DAY_OF_MONTH) + ", ");
+	    }
+	    result.append(cal.get(Calendar.YEAR));
+	}
+	return result.toString();
+}
+
 /**
  * Returns the receiver's year.
  * <p>
@@ -494,10 +694,28 @@ int /*long*/ gtk_day_selected_double_click (int /*long*/ widget) {
 }
 
 int /*long*/ gtk_month_changed (int /*long*/ widget) {
+	/*
+	* Feature in GTK. "month-changed" signal is emitted when the
+	* calendar is displayed though the day/month is not changed.
+	* The popup has to remain when the month/year is changed
+	* through the arrow keys, and the popup has to be called-off
+	* only when the day is selected. The fix is to detect the
+	* difference between the user changing the month/year, or
+	* choosing the day.
+	*/
+	if (calendarDisplayed) calendarDisplayed = false;
+	else monthChanged = true;
 	sendSelectionEvent ();
 	return 0;
 }
 
+boolean hasFocus () {
+	if (super.hasFocus ()) return true;
+	Control focusControl = display.getFocusControl();
+	if (focusControl != null && focusControl == text) return true;
+	return false;
+}
+
 void hookEvents () {
 	super.hookEvents();
 	if ((style & SWT.CALENDAR) != 0) {
@@ -507,6 +725,82 @@ void hookEvents () {
 	}
 }
 
+void incrementField(int amount) {
+	int fieldName = fieldNames[currentField];
+	int value = calendar.get(fieldName);
+	if (fieldName == Calendar.HOUR) {
+		int max = calendar.getMaximum(Calendar.HOUR);
+		int min = calendar.getMinimum(Calendar.HOUR);
+		if ((value == max && amount == 1) || (value == min && amount == -1)) {
+			int temp = currentField;
+			currentField = getFieldIndex(Calendar.AM_PM);
+			setTextField(Calendar.AM_PM, (calendar.get(Calendar.AM_PM) + 1) % 2, true, true);
+			currentField = temp;
+		}
+	}
+	setTextField(fieldName, value + amount, true, true);
+}
+
+boolean isDropped () {
+	return popupShell.getVisible ();
+}
+
+public boolean isFocusControl () {
+	checkWidget();
+	if ((style & SWT.DROP_DOWN) != 0 && (text.isFocusControl () || popupShell.isFocusControl () || popupCalendar.isFocusControl())) {
+		return true;
+	} 
+	return super.isFocusControl ();
+}
+
+void initAccessible() {
+	Accessible accessible = getAccessible ();
+	accessible.addAccessibleListener (new AccessibleAdapter () {
+		public void getName (AccessibleEvent e) {
+			e.result = getSpokenText ();
+		}
+
+		public void getHelp(AccessibleEvent e) {
+			e.result = getToolTipText ();
+		}
+	});
+
+	accessible.addAccessibleControlListener (new AccessibleControlAdapter () {
+		public void getChildAtPoint (AccessibleControlEvent e) {
+			e.childID = ACC.CHILDID_SELF;
+		}
+
+		public void getLocation (AccessibleControlEvent e) {
+			Rectangle rect = display.map (getParent (), null, getBounds ());
+			e.x = rect.x;
+			e.y = rect.y;
+			e.width = rect.width;
+			e.height = rect.height;
+		}
+
+		public void getChildCount (AccessibleControlEvent e) {
+			e.detail = 0;
+		}
+
+		public void getRole (AccessibleControlEvent e) {
+			e.detail = ((style & SWT.CALENDAR) != 0) ? ACC.ROLE_LABEL : ACC.ROLE_TEXT;
+		}
+
+		public void getState (AccessibleControlEvent e) {
+			e.detail = ACC.STATE_FOCUSABLE;
+			if (hasFocus ()) e.detail |= ACC.STATE_FOCUSED;
+		}
+
+		public void getSelection (AccessibleControlEvent e) {
+			if (hasFocus ()) e.childID = ACC.CHILDID_SELF;
+		}
+
+		public void getFocus (AccessibleControlEvent e) {
+			if (hasFocus ()) e.childID = ACC.CHILDID_SELF;
+		}
+	});
+}
+
 boolean isValidTime(int fieldName, int value) {
 	Calendar validCalendar;
 	if ((style & SWT.CALENDAR) != 0) {
@@ -528,162 +822,178 @@ boolean isValidDate(int year, int month, int day) {
 		&& valid.get(Calendar.DAY_OF_MONTH) == day;
 }
 
-void incrementField(int amount) {
-	int fieldName = fieldNames[currentField];
-	int value = calendar.get(fieldName);
-	if (fieldName == Calendar.HOUR) {
-		int max = calendar.getMaximum(Calendar.HOUR);
-		int min = calendar.getMinimum(Calendar.HOUR);
-		if ((value == max && amount == 1) || (value == min && amount == -1)) {
-			int temp = currentField;
-			currentField = getFieldIndex(Calendar.AM_PM);
-			setTextField(Calendar.AM_PM, (calendar.get(Calendar.AM_PM) + 1) % 2, true, true);
-			currentField = temp;
-		}
-	}
-	setTextField(fieldName, value + amount, true, true);
-}
-
-void onKeyDown(Event event) {
-	int fieldName;
-	switch (event.keyCode) {
-		case SWT.ARROW_RIGHT:
-		case SWT.KEYPAD_DIVIDE:
-			// a right arrow or a valid separator navigates to the field on the right, with wraping
-			selectField((currentField + 1) % fieldCount);
+void popupCalendarEvent (Event event) {
+	switch (event.type) {
+		case SWT.Dispose:
+			if (popupShell != null && !popupShell.isDisposed () && !isDisposed() && getShell () != popupShell.getParent ()) {
+				int year = popupCalendar.getYear ();
+				int month = popupCalendar.getMonth ();
+				int day = popupCalendar.getDay ();
+				popupShell = null;
+				popupCalendar = null;
+				createPopupShell (year, month, day);
+			}
 			break;
-		case SWT.ARROW_LEFT:
-			// navigate to the field on the left, with wrapping
-			int index = currentField - 1;
-			selectField(index < 0 ? fieldCount - 1 : index);
+		case SWT.FocusIn: {
+			handleFocus (SWT.FocusIn);
 			break;
-		case SWT.ARROW_UP:
-		case SWT.KEYPAD_ADD:
-			// set the value of the current field to value + 1, with wrapping
-			commitCurrentField();
-			incrementField(+1);
+		}
+		case SWT.FocusOut: {
+			Point point = down.toControl(getDisplay().getCursorLocation());
+			Point size = down.getSize();
+			Rectangle rect = new Rectangle(0, 0, size.x, size.y);
+			if (rect.contains(point)) {
+				boolean popupShellActivated = getDisplay().getActiveShell() == getShell();
+				if (!popupShellActivated) dropDownCalendar(false);
+				break;
+			}
+			dropDownCalendar(false);
 			break;
-		case SWT.ARROW_DOWN:
-		case SWT.KEYPAD_SUBTRACT:
-			// set the value of the current field to value - 1, with wrapping
-			commitCurrentField();
-			incrementField(-1);
+		}
+		case SWT.MouseUp: {
+			if (event.button != 1) return;
+			/*
+			* The drop-down should stay visible when the year/month 
+			* is changed.
+			*/
+			if (popupCalendar.monthChanged) {
+				popupCalendar.monthChanged = false;
+				OS.gtk_calendar_clear_marks(popupCalendar.handle);
+			} else {
+				dropDownCalendar (false);
+			}
 			break;
-		case SWT.HOME:
-			// set the value of the current field to its minimum
-			fieldName = fieldNames[currentField];
-			setTextField(fieldName, calendar.getActualMinimum(fieldName), true, true);
+		}
+		case SWT.Selection: {
+			int year = popupCalendar.getYear ();
+			int month = popupCalendar.getMonth ();
+			int day = popupCalendar.getDay ();
+			setDate(year, month, day);
+			Event e = new Event ();
+			e.time = event.time;
+			e.stateMask = event.stateMask;
+			e.doit = event.doit;
+			notifyListeners (SWT.Selection, e);
+			event.doit = e.doit;
 			break;
-		case SWT.END:
-			// set the value of the current field to its maximum
-			fieldName = fieldNames[currentField];
-			setTextField(fieldName, calendar.getActualMaximum(fieldName), true, true);
+		}
+		case SWT.Traverse: {
+			switch (event.detail) {
+				case SWT.TRAVERSE_RETURN:
+				case SWT.TRAVERSE_ESCAPE:
+				case SWT.TRAVERSE_ARROW_PREVIOUS:
+				case SWT.TRAVERSE_ARROW_NEXT:
+					event.doit = false;
+					break;
+				case SWT.TRAVERSE_TAB_NEXT:
+				case SWT.TRAVERSE_TAB_PREVIOUS:
+					event.doit = text.traverse(event.detail);
+					event.detail = SWT.TRAVERSE_NONE;
+					if (event.doit) dropDownCalendar (false);
+					return;
+				case SWT.TRAVERSE_PAGE_NEXT:
+				case SWT.TRAVERSE_PAGE_PREVIOUS:
+					return;
+			}
+			Event e = new Event ();
+			e.time = event.time;
+			e.detail = event.detail;
+			e.doit = event.doit;
+			e.character = event.character;
+			e.keyCode = event.keyCode;
+			notifyListeners (SWT.Traverse, e);
+			event.doit = e.doit;
+			event.detail = e.detail;
 			break;
-		case SWT.CR:
-			sendSelectionEvent (SWT.DefaultSelection);
+		}
+		case SWT.KeyUp: {		
+			Event e = new Event ();
+			e.time = event.time;
+			e.character = event.character;
+			e.keyCode = event.keyCode;
+			e.stateMask = event.stateMask;
+			notifyListeners (SWT.KeyUp, e);
 			break;
-		default:
-			switch (event.character) {
-				case '/':
-				case ':':
-				case '-':
-				case '.':
-					// a valid separator navigates to the field on the right, with wraping
-					selectField((currentField + 1) % fieldCount);
-					break;
+		}
+		case SWT.KeyDown: {
+			if (event.character == SWT.ESC) {
+				/* Escape key cancels popupCalendar and reverts date */
+				popupCalendar.setDate (savedYear, savedMonth, savedDay);
+				setDate(savedYear, savedMonth, savedDay);
+				dropDownCalendar (false);
 			}
-	}
-}
-
-void onFocusIn(Event event) {
-	selectField(currentField);
-}
-
-void onFocusOut(Event event) {
-	commitCurrentField();
-}
-
-void onMouseClick(Event event) {
-	if (event.button != 1) return;
-	Point sel = text.getSelection();
-	for (int i = 0; i < fieldCount; i++) {
-		if (fieldIndices[i].x <= sel.x && sel.x <= fieldIndices[i].y) {
-			selectField(i);
+			if (event.keyCode == SWT.CR || (event.stateMask & SWT.ALT) != 0 && (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN)) {
+				/* Return, Alt+Down, and Alt+Up cancel popupCalendar and select date. */
+				dropDownCalendar (false);
+			}
+			if (event.keyCode == SWT.SPACE) {
+				dropDownCalendar(false);
+			}
+			/* At this point the widget may have been disposed.
+			 * If so, do not continue. */
+			if (isDisposed ()) break;
+			Event e = new Event();
+			e.time = event.time;
+			e.character = event.character;
+			e.keyCode = event.keyCode;
+			e.stateMask = event.stateMask;
+			notifyListeners(SWT.KeyDown, e);
 			break;
 		}
 	}
 }
 
-void onResize(Event event) {
-	Rectangle rect = getClientArea ();
-	int width = rect.width;
-	int height = rect.height;
-	Point buttonSize = up.computeSize(SWT.DEFAULT, height);
-	int buttonHeight = buttonSize.y / 2;
-	text.setBounds(0, 0, width - buttonSize.x, height);
-	up.setBounds(width - buttonSize.x, 0, buttonSize.x, buttonHeight);
-	down.setBounds(width - buttonSize.x, buttonHeight, buttonSize.x, buttonHeight);
-}
-
-void onVerify(Event event) {
-	if (ignoreVerify) return;
-	event.doit = false;
-	int fieldName = fieldNames[currentField];
-	int start = fieldIndices[currentField].x;
-	int end = fieldIndices[currentField].y;
-	int length = end - start;
-	String newText = event.text;
-	if (fieldName == Calendar.AM_PM) {
-		String[] ampm = formatSymbols.getAmPmStrings();
-		if (newText.equalsIgnoreCase(ampm[Calendar.AM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.AM])) {
-			setTextField(fieldName, Calendar.AM, true, false);
-		} else if (newText.equalsIgnoreCase(ampm[Calendar.PM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.PM])) {
-			setTextField(fieldName, Calendar.PM, true, false);
-		}
-		return;
-	}
-	if (characterCount > 0) {
-		try {
-			Integer.parseInt(newText);
-		} catch (NumberFormatException ex) {
-			return;
+void handleFocus (int type) {
+	if (isDisposed ()) return;
+	switch (type) {
+		case SWT.FocusIn: {
+			if (hasFocus) return;
+			text.selectAll ();
+			hasFocus = true;
+			Shell shell = getShell ();
+			shell.removeListener (SWT.Deactivate, popupListener);
+			shell.addListener (SWT.Deactivate, popupListener);
+			Display display = getDisplay ();
+			display.removeFilter (SWT.FocusIn, popupFilter);
+			display.addFilter (SWT.FocusIn, popupFilter);
+			Event e = new Event ();
+			notifyListeners (SWT.FocusIn, e);
+			break;
 		}
-		String value = text.getText(start, end - 1);
-		int s = value.lastIndexOf(' ');
-		if (s != -1) value = value.substring(s + 1);
-		newText = "" + value + newText;
-	}
-	int newTextLength = newText.length();
-	boolean first = characterCount == 0;
-	characterCount = (newTextLength < length) ? newTextLength : 0;
-	int max = calendar.getActualMaximum(fieldName);
-	int min = calendar.getActualMinimum(fieldName);
-	int newValue = unformattedIntValue(fieldName, newText, characterCount == 0, max);
-	if (newValue == -1) {
-		characterCount = 0;
-		return;
-	}
-	if (first && newValue == 0 && length > 1) {
-		setTextField(fieldName, newValue, false, false);
-	} else if (min <= newValue && newValue <= max) {
-		setTextField(fieldName, newValue, characterCount == 0, characterCount == 0);
-	} else {
-		if (newTextLength >= length) {
-			newText = newText.substring(newTextLength - length + 1);
-			newValue = unformattedIntValue(fieldName, newText, characterCount == 0, max);
-			if (newValue != -1) {
-				characterCount = length - 1;
-				if (min <= newValue && newValue <= max) {
-					setTextField(fieldName, newValue, characterCount == 0, true);
-				}
-			}
+		case SWT.FocusOut: {
+			if (!hasFocus) return;
+			Control focusControl = getDisplay ().getFocusControl ();
+			if (focusControl == down || focusControl == popupCalendar || focusControl == text) return;
+			hasFocus = false;
+			Shell shell = getShell ();
+			shell.removeListener(SWT.Deactivate, popupListener);
+			Display display = getDisplay ();
+			display.removeFilter (SWT.FocusIn, popupFilter);
+			display.removeFilter(SWT.MouseDown, clickListener);
+			Event e = new Event ();
+			notifyListeners (SWT.FocusOut, e);
+			break;
 		}
 	}
 }
 
-void releaseWidget () {
-	super.releaseWidget();
-	//TODO: need to do anything here?
+void popupShellEvent(Event event) {
+	switch (event.type) {
+		case SWT.Paint:
+			/* Draw black rectangle around popupCalendar */
+			Rectangle bounds = popupCalendar.getBounds();
+			Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);
+			event.gc.setForeground(black);
+			event.gc.drawRectangle(0, 0, bounds.width + 1, bounds.height + 1);
+			break;
+		case SWT.Close:
+			event.doit = false;
+			dropDownCalendar (false);
+			break;
+		case SWT.MouseUp:
+			dropDownCalendar (false);
+			break;
+	}
 }
 
 /**
@@ -750,26 +1060,37 @@ void sendSelectionEvent () {
 }
 
 public void setBackground(Color color) {
-	checkWidget();
 	super.setBackground(color);
+	bg = color;
 	if (text != null) text.setBackground(color);
+	if (popupCalendar != null) popupCalendar.setBackground(color);
+}
+
+public void setEnabled (boolean enabled){
+	super.setEnabled(enabled);
+	if ((style & SWT.CALENDAR) == 0) {
+		text.setEnabled(enabled);
+		down.setEnabled(enabled);
+		if (up != null) up.setEnabled(enabled);
+	}
 }
 
 public void setFont(Font font) {
-	checkWidget();
 	super.setFont(font);
+	this.font = font;
 	if (text != null) text.setFont(font);
+	if (popupCalendar != null) popupCalendar.setFont(font);
 	redraw();
 }
 
 public void setForeground(Color color) {
-	checkWidget();
 	super.setForeground(color);
+	fg = color;
 	if (text != null) text.setForeground(color);
+	if (popupCalendar != null) popupCalendar.setForeground(color);
 }
 
-/*public*/ void setFormat(String string) {
-	checkWidget();
+void setFormat(String string) {
 	// TODO: this needs to be locale sensitive
 	fieldCount = (style & SWT.DATE) != 0 ? ((style & SWT.SHORT) != 0 ? 2 : 3) : ((style & SWT.SHORT) != 0 ? 3 : 4);
 	fieldIndices = new Point[fieldCount];
@@ -837,13 +1158,13 @@ void setTextField(int fieldName, int value, boolean commit, boolean adjust) {
 	int prependCount = end - start - buffer.length();
 	for (int i = 0; i < prependCount; i++) {
 		switch (fieldName) {
-		case Calendar.MINUTE:
-		case Calendar.SECOND:
-			buffer.insert(0, 0);
-		break;
-		default:
-			buffer.insert(0, ' ');
-		break;
+			case Calendar.MINUTE:
+			case Calendar.SECOND:
+				buffer.insert(0, 0);
+				break;
+			default:
+				buffer.insert(0, ' ');
+				break;
 		}
 	}		
 	newValue = buffer.toString();
@@ -939,6 +1260,13 @@ public void setHours (int hours) {
 	}
 }
 
+public void setMenu (Menu menu) {
+	super.setMenu(menu);
+	if (up != null) up.setMenu(menu);
+	if (down != null) down.setMenu(menu);
+	if (text != null) text.setMenu(menu);
+}
+
 /**
  * Sets the receiver's minutes.
  * <p>
@@ -1074,6 +1402,171 @@ public void setYear (int year) {
 	}
 }
 
+void onTextFocusIn(Event event) {
+	selectField(currentField);
+	if ((style & SWT.DROP_DOWN) == 0) {
+		sendFocusEvent(SWT.FocusIn);
+	} else {
+		handleFocus(SWT.FocusIn);
+	}
+}
+
+void onTextFocusOut(Event event) {
+	commitCurrentField();
+	if ((style & SWT.DROP_DOWN) == 0) {
+		sendFocusEvent(SWT.FocusOut);
+	} else {
+		handleFocus(SWT.FocusOut);
+	}
+}
+
+void onTextKeyDown(Event event) {
+	if ((style & SWT.DROP_DOWN) != 0 && (event.stateMask & SWT.ALT) != 0 && (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN)) {
+		boolean dropped = isDropped ();
+		if (!dropped) {
+			popupCalendar.calendarDisplayed = true;
+			setFocus ();
+		}
+		dropDownCalendar(!dropped);
+		return;
+	}
+	int fieldName;
+	switch (event.keyCode) {
+		case SWT.ARROW_RIGHT:
+		case SWT.KEYPAD_DIVIDE:
+			/* A right arrow or a valid separator navigates to the field on the right, with wraping */
+			selectField((currentField + 1) % fieldCount);
+			sendEvent(SWT.Traverse);
+			break;
+		case SWT.ARROW_LEFT:
+			/* Navigate to the field on the left, with wrapping */
+			int index = currentField - 1;
+			selectField(index < 0 ? fieldCount - 1 : index);
+			sendEvent(SWT.Traverse);
+			break;
+		case SWT.ARROW_UP:
+		case SWT.KEYPAD_ADD:
+			/* Set the value of the current field to value + 1, with wrapping */
+			commitCurrentField();
+			incrementField(+1);
+			break;
+		case SWT.ARROW_DOWN:
+		case SWT.KEYPAD_SUBTRACT:
+			/* Set the value of the current field to value - 1, with wrapping */
+			commitCurrentField();
+			incrementField(-1);
+			break;
+		case SWT.HOME:
+			/* Set the value of the current field to its minimum */
+			fieldName = fieldNames[currentField];
+			setTextField(fieldName, calendar.getActualMinimum(fieldName), true, true);
+			break;
+		case SWT.END:
+			/* Set the value of the current field to its maximum */
+			fieldName = fieldNames[currentField];
+			setTextField(fieldName, calendar.getActualMaximum(fieldName), true, true);
+			break;
+		default:
+			switch (event.character) {
+				case '/':
+				case ':':
+				case '-':
+				case '.':
+					/* A valid separator navigates to the field on the right, with wraping */
+					selectField((currentField + 1) % fieldCount);
+					sendEvent(SWT.Traverse);
+					break;
+				case SWT.CR:
+					/* Enter causes default selection */
+					postEvent (SWT.DefaultSelection);
+					break;
+			}
+	}
+}
+
+void onTextMouseClick(Event event) {
+	if (event.button != 1) return;
+	Point sel = text.getSelection();
+	for (int i = 0; i < fieldCount; i++) {
+		if (sel.x >= fieldIndices[i].x && sel.x <= fieldIndices[i].y) {
+			currentField = i;
+			break;
+		}
+	}
+	selectField(currentField);
+}
+
+void onResize(Event event) {
+	Rectangle rect = getClientArea ();
+	int width = rect.width;
+	int height = rect.height;
+	Point buttonSize = down.computeSize(SWT.DEFAULT, height);
+	text.setBounds(0, 0, width - buttonSize.x, height);
+	if ((style & SWT.DROP_DOWN) != 0) {
+		down.setBounds(width - buttonSize.x, 0, buttonSize.x, height);
+	} else {
+		int buttonHeight = height / 2;
+		up.setBounds(width - buttonSize.x, 0, buttonSize.x, buttonHeight);
+		down.setBounds(width - buttonSize.x, buttonHeight, buttonSize.x, buttonHeight);
+	}
+}
+
+void onTextVerify(Event event) {
+	if (ignoreVerify) return;
+	event.doit = false;
+	int fieldName = fieldNames[currentField];
+	int start = fieldIndices[currentField].x;
+	int end = fieldIndices[currentField].y;
+	int length = end - start;
+	String newText = event.text;
+	if (fieldName == Calendar.AM_PM) {
+		String[] ampm = formatSymbols.getAmPmStrings();
+		if (newText.equalsIgnoreCase(ampm[Calendar.AM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.AM])) {
+			setTextField(fieldName, Calendar.AM, true, false);
+		} else if (newText.equalsIgnoreCase(ampm[Calendar.PM].substring(0, 1)) || newText.equalsIgnoreCase(ampm[Calendar.PM])) {
+			setTextField(fieldName, Calendar.PM, true, false);
+		}
+		return;
+	}
+	if (characterCount > 0) {
+		try {
+			Integer.parseInt(newText);
+		} catch (NumberFormatException ex) {
+			return;
+		}
+		String value = text.getText(start, end - 1);
+		int s = value.lastIndexOf(' ');
+		if (s != -1) value = value.substring(s + 1);
+		newText = "" + value + newText;
+	}
+	int newTextLength = newText.length();
+	boolean first = characterCount == 0;
+	characterCount = (newTextLength < length) ? newTextLength : 0;
+	int max = calendar.getActualMaximum(fieldName);
+	int min = calendar.getActualMinimum(fieldName);
+	int newValue = unformattedIntValue(fieldName, newText, characterCount == 0, max);
+	if (newValue == -1) {
+		characterCount = 0;
+		return;
+	}
+	if (first && newValue == 0 && length > 1) {
+		setTextField(fieldName, newValue, false, false);
+	} else if (min <= newValue && newValue <= max) {
+		setTextField(fieldName, newValue, characterCount == 0, characterCount == 0);
+	} else {
+		if (newTextLength >= length) {
+			newText = newText.substring(newTextLength - length + 1);
+			newValue = unformattedIntValue(fieldName, newText, characterCount == 0, max);
+			if (newValue != -1) {
+				characterCount = length - 1;
+				if (min <= newValue && newValue <= max) {
+					setTextField(fieldName, newValue, characterCount == 0, true);
+				}
+			}
+		}
+	}
+}
+
 int unformattedIntValue(int fieldName, String newText, boolean adjust, int max) {
 	int newValue;
 	try {
@@ -1100,4 +1593,4 @@ void updateControl() {
 	}
 	redraw();	
 }
-}
+}
\ No newline at end of file
diff --git a/org/eclipse/swt/widgets/Decorations.java b/org/eclipse/swt/widgets/Decorations.java
index 2e570bf..97f3422 100644
--- a/org/eclipse/swt/widgets/Decorations.java
+++ b/org/eclipse/swt/widgets/Decorations.java
@@ -694,6 +694,13 @@ public void setMinimized (boolean minimized) {
 	this.minimized = minimized;
 }
 
+void setOrientation (boolean create) {
+    super.setOrientation (create);
+    if (!create) {
+        if (menuBar != null) menuBar._setOrientation (style & (SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT));
+    }
+}
+
 void setSavedFocus (Control control) {
 	if (this == control) return;
 	savedFocus = control;
diff --git a/org/eclipse/swt/widgets/DirectoryDialog.java b/org/eclipse/swt/widgets/DirectoryDialog.java
index 06e08e1..92ac09f 100644
--- a/org/eclipse/swt/widgets/DirectoryDialog.java
+++ b/org/eclipse/swt/widgets/DirectoryDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -25,8 +25,7 @@ import org.eclipse.swt.internal.gtk.*;
  * <dd>(none)</dd>
  * </dl>
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/snippets/#directorydialog">DirectoryDialog snippets</a>
@@ -133,6 +132,7 @@ String openChooserDialog () {
 	} else {
 		handle = OS.gtk_file_chooser_dialog_new (titleBytes, shellHandle, OS.GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, OS.GTK_STOCK_OK (), OS.GTK_RESPONSE_OK, OS.GTK_STOCK_CANCEL (), OS.GTK_RESPONSE_CANCEL, 0);
 	}
+	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
 	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
 		int /*long*/ group = OS.gtk_window_get_group(0);
 		OS.gtk_window_group_add_window (group, handle);
@@ -188,6 +188,13 @@ String openChooserDialog () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
@@ -276,6 +283,13 @@ String openClassicDialog () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
diff --git a/org/eclipse/swt/widgets/Display.java b/org/eclipse/swt/widgets/Display.java
index d8ca0ab..74d016e 100644
--- a/org/eclipse/swt/widgets/Display.java
+++ b/org/eclipse/swt/widgets/Display.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -167,6 +167,7 @@ public class Display extends Device {
 
 	/* System Tray */
 	Tray tray;
+	TrayItem currentTrayItem;
 	
 	/* Timers */
 	int [] timerIds;
@@ -767,6 +768,12 @@ int /*long*/ checkIfEventProc (int /*long*/ display, int /*long*/ xEvent, int /*
 	int type = OS.X_EVENT_TYPE (xEvent);
 	switch (type) {
 		case OS.VisibilityNotify:
+			/*
+			* As of GTK 2.17.11, obscured controls no longer send expose 
+			* events. It is no longer necessary to track visiblity notify
+			* events.
+			*/
+			if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) return 0;
 		case OS.Expose:
 		case OS.GraphicsExpose:
 			break;
@@ -1443,7 +1450,7 @@ int getCaretBlinkTime () {
  * over top of, or null if it is not currently over one of the
  * controls built by the currently running application.
  *
- * @return the control under the cursor
+ * @return the control under the cursor or <code>null</code>
  *
  * @exception SWTException <ul>
  *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
@@ -1646,25 +1653,6 @@ public Object getData () {
 	return data;
 }
 
-/**
- * Returns a point whose x coordinate is the horizontal
- * dots per inch of the display, and whose y coordinate
- * is the vertical dots per inch of the display.
- *
- * @return the horizontal and vertical DPI
- *
- * @exception SWTException <ul>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public Point getDPI () {
-	checkDevice ();
-	int widthMM = OS.gdk_screen_width_mm ();
-	int width = OS.gdk_screen_width ();
-	int dpi = Compatibility.round (254 * width, widthMM * 10);
-	return new Point (dpi, dpi);
-}
-
 int /*long*/ gtk_fixed_get_type () {
 	return fixed_type;
 }
@@ -1702,6 +1690,23 @@ static boolean isValidClass (Class clazz) {
 }
 
 /**
+ * Returns the single instance of the application menu bar, or
+ * <code>null</code> if there is no application menu bar for the platform.
+ *
+ * @return the application menu bar, or <code>null</code>
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li>
+ * </ul>
+ *
+ * @since 3.7
+ */
+public Menu getMenuBar () {
+	checkDevice ();
+	return null;
+}
+
+/**
  * Returns the button dismissal alignment, one of <code>LEFT</code> or <code>RIGHT</code>.
  * The button dismissal alignment is the ordering that should be used when positioning the
  * default dismissal button for a dialog.  For example, in a dialog that contains an OK and
@@ -1754,7 +1759,7 @@ public int getDoubleClickTime () {
  * any of the controls built by the currently running
  * application.
  *
- * @return the control under the cursor
+ * @return the focus control or <code>null</code>
  *
  * @exception SWTException <ul>
  *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
@@ -2199,6 +2204,24 @@ public Image getSystemImage (int id) {
 	return null;
 }
 
+/**
+ * Returns the single instance of the system-provided menu for the application, or
+ * <code>null</code> on platforms where no menu is provided for the application.
+ *
+ * @return the system menu, or <code>null</code>
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ *    <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li>
+ * </ul>
+ *
+ * @since 3.7
+ */
+public Menu getSystemMenu () {
+	checkDevice();
+	return null;
+}
+
 void initializeSystemColors () {
 	GdkColor gdkColor;
 	
@@ -2355,6 +2378,24 @@ public Thread getThread () {
 	}
 }
 
+/**	 
+ * Returns a boolean indicating whether a touch-aware input device is
+ * attached to the system and is ready for use.
+ *
+ * @return <code>true</code> if a touch-aware input device is detected, or <code>false</code> otherwise
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ *    <li>ERROR_DEVICE_DISPOSED - if the receiver has been disposed</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public boolean getTouchEnabled() {
+	checkDevice();
+	return false;
+}
+
 Widget getWidget (int /*long*/ handle) {
 	if (handle == 0) return null;
 	if (lastWidget != null && lastHandle == handle) return lastWidget;
@@ -3156,6 +3197,13 @@ public boolean readAndDispatch () {
 	boolean events = false;
 	events |= runSettings ();
 	events |= runPopups ();
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock before calling the function below. 
+	*/
+	OS.gdk_threads_leave();
 	events |= OS.g_main_context_iteration (0, false);
 	if (events) {
 		runDeferredEvents ();
diff --git a/org/eclipse/swt/widgets/Event.java b/org/eclipse/swt/widgets/Event.java
index d67ea3d..73ddf52 100644
--- a/org/eclipse/swt/widgets/Event.java
+++ b/org/eclipse/swt/widgets/Event.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -215,6 +215,45 @@ public class Event {
 	 */
 	public Object data;
 	
+	/**
+	 * An array of the touch states for the current touch event.
+	 *
+	 * @since 3.7
+	 */
+	public Touch[] touches;
+	
+	/**
+	 * If nonzero, a positive value indicates a swipe to the right,
+	 * and a negative value indicates a swipe to the left.
+	 *
+	 * @since 3.7
+	 */
+	public int xDirection;
+	
+	/**
+	 * If nonzero, a positive value indicates a swipe in the up direction,
+	 * and a negative value indicates a swipe in the down direction.
+	 *
+	 * @since 3.7
+	 */
+	public int yDirection;
+	
+	/**
+	 * The change in magnification. This value should be added to the current 
+	 * scaling of an item to get the new scale factor.
+	 *
+	 * @since 3.7
+	 */
+	public double magnification;
+	
+	/**
+	 * The number of degrees rotated on the track pad.
+	 *
+	 * @since 3.7
+	 */
+	public double rotation;
+	
+
 /**
  * Gets the bounds.
  * 
diff --git a/org/eclipse/swt/widgets/ExpandBar.java b/org/eclipse/swt/widgets/ExpandBar.java
index ec6e586..44c5ffc 100644
--- a/org/eclipse/swt/widgets/ExpandBar.java
+++ b/org/eclipse/swt/widgets/ExpandBar.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -651,6 +651,15 @@ void setForegroundColor (GdkColor color) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if (items != null) {
+		for (int i=0; i<items.length; i++) {
+			if (items[i] != null) items[i].setOrientation (create);
+		}
+	}
+}
+
 void setScrollbar () {
 	if (itemCount == 0) return;
 	if ((style & SWT.V_SCROLL) == 0) return;
diff --git a/org/eclipse/swt/widgets/ExpandItem.java b/org/eclipse/swt/widgets/ExpandItem.java
index e141b60..4ac69e4 100644
--- a/org/eclipse/swt/widgets/ExpandItem.java
+++ b/org/eclipse/swt/widgets/ExpandItem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -513,6 +513,8 @@ boolean setFocus () {
 	if (!OS.gtk_widget_get_child_visible (handle)) return false;
 	OS.GTK_WIDGET_SET_FLAGS (handle, OS.GTK_CAN_FOCUS);
 	OS.gtk_widget_grab_focus (handle);
+	// widget could be disposed at this point
+	if (isDisposed ()) return false;
 	boolean result = OS.gtk_widget_is_focus (handle);
 	if (!result) OS.GTK_WIDGET_UNSET_FLAGS (handle, OS.GTK_CAN_FOCUS);
 	return result;
@@ -589,11 +591,12 @@ public void setImage (Image image) {
 	}
 }
 
-void setOrientation() {
-	super.setOrientation ();
-	if ((parent.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);	
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		OS.gtk_widget_set_direction (handle, dir);
+		OS.gtk_container_forall (handle, display.setDirectionProc, dir);
 	}
 }
 	
diff --git a/org/eclipse/swt/widgets/FileDialog.java b/org/eclipse/swt/widgets/FileDialog.java
index 1dd6921..c20f9c5 100644
--- a/org/eclipse/swt/widgets/FileDialog.java
+++ b/org/eclipse/swt/widgets/FileDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -27,8 +27,7 @@ import org.eclipse.swt.internal.gtk.*;
  * <p>
  * Note: Only one of the styles SAVE and OPEN may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/snippets/#filedialog">FileDialog snippets</a>
@@ -413,6 +412,7 @@ String openChooserDialog () {
 	} else {
 		handle = OS.gtk_file_chooser_dialog_new (titleBytes, shellHandle, action, OS.GTK_STOCK_OK (), OS.GTK_RESPONSE_OK, OS.GTK_STOCK_CANCEL (), OS.GTK_RESPONSE_CANCEL, 0);
 	}
+	if (handle == 0) error (SWT.ERROR_NO_HANDLES);
 	OS.gtk_window_set_modal (handle, true);
 	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0)) {
 		int /*long*/ group = OS.gtk_window_get_group(0);
@@ -441,6 +441,13 @@ String openChooserDialog () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
@@ -483,6 +490,13 @@ String openClassicDialog () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
diff --git a/org/eclipse/swt/widgets/FontDialog.java b/org/eclipse/swt/widgets/FontDialog.java
index 8ba5db6..8658c40 100644
--- a/org/eclipse/swt/widgets/FontDialog.java
+++ b/org/eclipse/swt/widgets/FontDialog.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -26,8 +26,7 @@ import org.eclipse.swt.graphics.*;
  * <dd>(none)</dd>
  * </dl>
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  * 
  * @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample, Dialog tab</a>
@@ -176,6 +175,13 @@ public FontData open () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
diff --git a/org/eclipse/swt/widgets/Group.java b/org/eclipse/swt/widgets/Group.java
index f2b75d0..40e6c20 100644
--- a/org/eclipse/swt/widgets/Group.java
+++ b/org/eclipse/swt/widgets/Group.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -237,10 +237,11 @@ void setForegroundColor (GdkColor color) {
 	setForegroundColor (labelHandle, color);
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
-		OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		OS.gtk_widget_set_direction (labelHandle, dir);
 	}
 }
 
diff --git a/org/eclipse/swt/widgets/IME.java b/org/eclipse/swt/widgets/IME.java
index cc0036e..4a4e2c0 100644
--- a/org/eclipse/swt/widgets/IME.java
+++ b/org/eclipse/swt/widgets/IME.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
+ * Copyright (c) 2007, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -309,8 +309,8 @@ int /*long*/ gtk_preedit_changed (int /*long*/ imcontext) {
 			int [] end = new int [1];
 			for (int i = 0; i < count; i++) {
 				OS.pango_attr_iterator_range (iterator, start, end);
-				ranges [i * 2] = (int)/*64*/OS.g_utf8_pointer_to_offset (preeditString [0], preeditString [0] + start [0]);
-				ranges [i * 2 + 1] = (int)/*64*/OS.g_utf8_pointer_to_offset (preeditString [0], preeditString [0] + end [0]) - 1;
+				ranges [i * 2] = (int)/*64*/OS.g_utf16_pointer_to_offset (preeditString [0], preeditString [0] + start [0]);
+				ranges [i * 2 + 1] = (int)/*64*/OS.g_utf16_pointer_to_offset (preeditString [0], preeditString [0] + end [0]) - 1;
 				styles [i] = new TextStyle (null, null, null);
 				int /*long*/ attr = OS.pango_attr_iterator_get (iterator, OS.PANGO_ATTR_FOREGROUND);
 				if (attr != 0) {
diff --git a/org/eclipse/swt/widgets/Label.java b/org/eclipse/swt/widgets/Label.java
index 7d5b03a..40f1cb9 100644
--- a/org/eclipse/swt/widgets/Label.java
+++ b/org/eclipse/swt/widgets/Label.java
@@ -41,8 +41,7 @@ import org.eclipse.swt.graphics.*;
  * SHADOW_NONE is a HINT. Only one of HORIZONTAL and VERTICAL may be specified.
  * Only one of CENTER, LEFT and RIGHT may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#label">Label snippets</a>
@@ -498,11 +497,12 @@ void setForegroundColor (GdkColor color) {
 	if (imageHandle != 0) setForegroundColor (imageHandle, color);
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL);
-		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;	
+		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, dir);
+		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, dir);
 	}
 }
 
diff --git a/org/eclipse/swt/widgets/Link.java b/org/eclipse/swt/widgets/Link.java
index 6495b79..e9321cc 100644
--- a/org/eclipse/swt/widgets/Link.java
+++ b/org/eclipse/swt/widgets/Link.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -148,7 +148,6 @@ void createHandle(int index) {
 	OS.gtk_fixed_set_has_window (handle, true);
 	OS.GTK_WIDGET_SET_FLAGS (handle, OS.GTK_CAN_FOCUS);
 	layout = new TextLayout (display);
-	layout.setOrientation((style & SWT.RIGHT_TO_LEFT) != 0? SWT.RIGHT_TO_LEFT : SWT.LEFT_TO_RIGHT);
 	linkColor = new Color (display, LINK_FOREGROUND);
 	disabledColor = new Color (display, LINK_DISABLED_FOREGROUND);
 	offsets = new Point [0];
@@ -699,6 +698,12 @@ void setFontDescription (int /*long*/ font) {
 	layout.setFont (Font.gtk_new (display, font));
 }
 
+void setOrientation (boolean create) {
+    super.setOrientation (create);
+    layout.setOrientation (style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT));
+    if (!create) redraw (true);
+}
+
 /**
  * Sets the receiver's text.
  * <p>
diff --git a/org/eclipse/swt/widgets/List.java b/org/eclipse/swt/widgets/List.java
index 064475d..3ee619b 100644
--- a/org/eclipse/swt/widgets/List.java
+++ b/org/eclipse/swt/widgets/List.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -368,7 +368,7 @@ public void deselectAll () {
 	OS.g_signal_handlers_unblock_matched (selection, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
 }
 
-boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
 	boolean selected = false;
 	if (filter) {
 		int /*long*/ [] path = new int /*long*/ [1];
@@ -382,7 +382,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 			return false;
 		}
 	}
-	boolean dragDetect = super.dragDetect (x, y, filter, consume);
+	boolean dragDetect = super.dragDetect (x, y, filter, false, consume);
 	if (dragDetect && selected && consume != null) consume [0] = true;
 	return dragDetect;
 }
@@ -719,6 +719,25 @@ int /*long*/ gtk_changed (int /*long*/ widget) {
 	return 0;
 }
 
+int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
+	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+		case OS.GDK_EXPOSE: {
+			/*
+			* Bug in GTK. SWT connects the expose-event 'after' the default 
+			* handler of the signal. If the tree has no children, then GTK 
+			* sends expose signal only 'before' the default signal handler.
+			* The fix is to detect this case in 'event_after' and send the
+			* expose event.
+			*/
+			if (OS.gtk_tree_model_iter_n_children (modelHandle, 0) == 0) {
+				gtk_expose_event (widget, gdkEvent);
+			}
+			break;
+		}
+	}
+	return super.gtk_event_after (widget, gdkEvent);
+}
+
 int /*long*/ gtk_button_press_event (int /*long*/ widget, int /*long*/ event) {
 	int /*long*/ result = super.gtk_button_press_event (widget, event);
 	if (result != 0) return result;
diff --git a/org/eclipse/swt/widgets/Menu.java b/org/eclipse/swt/widgets/Menu.java
index e585ee1..b69ac67 100644
--- a/org/eclipse/swt/widgets/Menu.java
+++ b/org/eclipse/swt/widgets/Menu.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -210,13 +210,28 @@ void _setVisible (boolean visible) {
 				}
 			}
 			int /*long*/ address = hasLocation ? display.menuPositionProc: 0;
+			int /*long*/ data = 0;
+			if ((OS.GTK_VERSION >=  OS.VERSION (2, 10, 0))) {
+				/*
+				* Popup-menu to the status icon should be aligned to  
+				* Tray rather than to cursor position. There is a 
+				* possibility (unlikely) that TrayItem might have  
+				* been disposed in the listener, for which case  
+				* the menu should be shown in the cursor position. 
+				*/
+				TrayItem item = display.currentTrayItem;
+				if (item != null && !item.isDisposed()) {
+					 data = item.handle;
+					 address = OS.gtk_status_icon_position_menu_func ();
+				}
+			}
 			/*
 			* Bug in GTK.  The timestamp passed into gtk_menu_popup is used
 			* to perform an X pointer grab.  It cannot be zero, else the grab
 			* will fail.  The fix is to ensure that the timestamp of the last
 			* event processed is used.
 			*/
-			OS.gtk_menu_popup (handle, 0, 0, address, 0, 0, display.getLastEventTime ());
+			OS.gtk_menu_popup (handle, 0, 0, address, data, 0, display.getLastEventTime ());
 		} else {
 			sendEvent (SWT.Hide);
 		}
@@ -301,9 +316,15 @@ void createHandle (int index) {
 }
 
 void createIMMenu (int /*long*/ imHandle) {
-	if (this.imHandle == imHandle) return;
-	this.imHandle = imHandle;
-	if (imHandle == 0) {
+	boolean showInputMethod = false;
+	int /*long*/ settings = OS.gtk_settings_get_default ();
+	if (settings != 0) {
+		int [] buffer = new int [1];
+		OS.g_object_get (settings, OS.gtk_show_input_method_menu, buffer, 0);
+		showInputMethod = buffer[0] != 0;
+	}
+	if (imHandle == 0 || !showInputMethod) {
+		this.imHandle = 0;
 		if (imItem != 0) {
 			OS.gtk_widget_destroy (imItem);
 			imItem = 0;
@@ -313,7 +334,10 @@ void createIMMenu (int /*long*/ imHandle) {
 			imSeparator = 0;
 		}
 		return;
-	} 
+	}
+	if (this.imHandle == imHandle) return;
+	this.imHandle = imHandle;
+	
 	if (imSeparator == 0) {
 		imSeparator = OS.gtk_separator_menu_item_new ();
 		OS.gtk_widget_show (imSeparator);
@@ -501,6 +525,24 @@ String getNameText () {
 }
 
 /**
+ * Returns the orientation of the receiver, which will be one of the
+ * constants <code>SWT.LEFT_TO_RIGHT</code> or <code>SWT.RIGHT_TO_LEFT</code>.
+ *
+ * @return the orientation style
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public int getOrientation () {
+	checkWidget();
+	return style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
+}
+
+/**
  * Returns the receiver's parent, which must be a <code>Decorations</code>.
  *
  * @return the receiver's parent
@@ -955,10 +997,44 @@ public void setLocation (Point location) {
 	setLocation (location.x, location.y);
 }
 
-void setOrientation() {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (handle != 0) OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
-	}
+/**
+ * Sets the orientation of the receiver, which must be one
+ * of the constants <code>SWT.LEFT_TO_RIGHT</code> or <code>SWT.RIGHT_TO_LEFT</code>.
+ * <p>
+ *
+ * @param orientation new orientation style
+ * 
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7  
+ */
+public void setOrientation (int orientation) {
+    checkWidget ();    
+    if ((style & (SWT.BAR | SWT.DROP_DOWN)) != 0) return;
+    _setOrientation (orientation);
+}
+
+void _setOrientation (int orientation) {
+    if (OS.GTK_VERSION < OS.VERSION (2, 4, 0)) return;
+    int flags = SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT;
+    if ((orientation & flags) == 0 || (orientation & flags) == flags) return;
+    style &= ~flags;
+    style |= orientation & flags;
+    setOrientation (false);
+}
+
+void setOrientation (boolean create) {
+    if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+    	int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+        if (handle != 0) OS.gtk_widget_set_direction (handle, dir);
+        MenuItem [] items = getItems ();
+        for (int i = 0; i < items.length; i++) {
+            items [i].setOrientation (create);
+        }
+    }
 }
 
 /**
diff --git a/org/eclipse/swt/widgets/MenuItem.java b/org/eclipse/swt/widgets/MenuItem.java
index d98c282..8ce0cde 100644
--- a/org/eclipse/swt/widgets/MenuItem.java
+++ b/org/eclipse/swt/widgets/MenuItem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -39,7 +39,7 @@ import org.eclipse.swt.events.*;
 public class MenuItem extends Item {
 	Menu parent, menu;
 	int /*long*/ groupHandle;
-	int accelerator;
+	int accelerator, userId;
 	
 /**
  * Constructs a new instance of this class given its parent
@@ -349,6 +349,23 @@ public boolean getEnabled () {
 }
 
 /**
+ * Gets the identifier associated with the receiver.
+ *
+ * @return the receiver's identifier
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public int getID () {
+	checkWidget();
+	return userId;
+}
+
+/**
  * Returns the receiver's cascade menu if it has one or null
  * if it does not. Only <code>CASCADE</code> menu items can have
  * a pull down menu. The sequence of key strokes, button presses 
@@ -644,6 +661,25 @@ public void setEnabled (boolean enabled) {
 }
 
 /**
+ * Sets the identifier associated with the receiver to the argument.
+ *
+ * @param id the new identifier. This must be a non-negative value. System-defined identifiers are negative values.
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ *    <li>ERROR_INVALID_ARGUMENT - if called with an negative-valued argument.</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public void setID (int id) {
+	checkWidget();
+	if (id < 0) error(SWT.ERROR_INVALID_ARGUMENT);
+	userId = id;
+}
+
+/**
  * Sets the image the receiver will display to the argument.
  * <p>
  * Note: This operation is a hint and is not supported on
@@ -745,13 +781,14 @@ public void setMenu (Menu menu) {
 	if (accelGroup != 0) addAccelerators (accelGroup);
 }
 
-void setOrientation() {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (handle != 0) {
-			OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
-			OS.gtk_container_forall (handle, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);		
-		}
-	}
+void setOrientation (boolean create) {
+    super.setOrientation (create);
+    if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+    	int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+        OS.gtk_widget_set_direction (handle, dir);
+        OS.gtk_container_forall (handle, display.setDirectionProc, dir);
+        if (menu != null) menu._setOrientation (parent.style & (SWT.RIGHT_TO_LEFT | SWT.LEFT_TO_RIGHT));
+    }
 }
 
 boolean setRadioSelection (boolean value) {
diff --git a/org/eclipse/swt/widgets/MessageBox.java b/org/eclipse/swt/widgets/MessageBox.java
index 2a74df6..953fe2a 100644
--- a/org/eclipse/swt/widgets/MessageBox.java
+++ b/org/eclipse/swt/widgets/MessageBox.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -31,8 +31,7 @@ import org.eclipse.swt.internal.gtk.*;
  * Note: Only one of the styles ICON_ERROR, ICON_INFORMATION, ICON_QUESTION,
  * ICON_WARNING and ICON_WORKING may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample, Dialog tab</a>
@@ -188,6 +187,13 @@ public int open () {
 		hookId = OS.g_signal_add_emission_hook (signalId, 0, display.emissionProc, handle, 0);
 	}	
 	int response = OS.gtk_dialog_run (handle);
+	/*
+	* This call to gdk_threads_leave() is a temporary work around
+	* to avoid deadlocks when gdk_threads_init() is called by native
+	* code outside of SWT (i.e AWT, etc). It ensures that the current
+	* thread leaves the GTK lock acquired by the function above. 
+	*/
+	OS.gdk_threads_leave();
 	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
 		OS.g_signal_remove_emission_hook (signalId, hookId);
 	}
diff --git a/org/eclipse/swt/widgets/ProgressBar.java b/org/eclipse/swt/widgets/ProgressBar.java
index 34f3886..7b4d23e 100644
--- a/org/eclipse/swt/widgets/ProgressBar.java
+++ b/org/eclipse/swt/widgets/ProgressBar.java
@@ -27,8 +27,7 @@ import org.eclipse.swt.internal.gtk.*;
  * <p>
  * Note: Only one of the styles HORIZONTAL and VERTICAL may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#progressbar">ProgressBar snippets</a>
diff --git a/org/eclipse/swt/widgets/Sash.java b/org/eclipse/swt/widgets/Sash.java
index b2747da..3b2fe88 100644
--- a/org/eclipse/swt/widgets/Sash.java
+++ b/org/eclipse/swt/widgets/Sash.java
@@ -29,8 +29,7 @@ import org.eclipse.swt.events.*;
  * <p>
  * Note: Only one of the styles HORIZONTAL and VERTICAL may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#sash">Sash snippets</a>
diff --git a/org/eclipse/swt/widgets/Scale.java b/org/eclipse/swt/widgets/Scale.java
index 8784f03..fa13766 100644
--- a/org/eclipse/swt/widgets/Scale.java
+++ b/org/eclipse/swt/widgets/Scale.java
@@ -30,8 +30,7 @@ import org.eclipse.swt.events.*;
  * Note: Only one of the styles HORIZONTAL and VERTICAL may be specified.
  * </p><p>
  * <p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#scale">Scale snippets</a>
diff --git a/org/eclipse/swt/widgets/ScrollBar.java b/org/eclipse/swt/widgets/ScrollBar.java
index 07580ec..a8e5063 100644
--- a/org/eclipse/swt/widgets/ScrollBar.java
+++ b/org/eclipse/swt/widgets/ScrollBar.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -490,7 +490,6 @@ int /*long*/ gtk_value_changed (int /*long*/ adjustment) {
 		case OS.GTK_SCROLL_STEP_LEFT:
 		case OS.GTK_SCROLL_STEP_BACKWARD:	event.detail = SWT.ARROW_UP; break;
 	}
-	detail = OS.GTK_SCROLL_NONE;
 	if (!dragSent) detail = OS.GTK_SCROLL_NONE;
 	sendSelectionEvent (SWT.Selection, event, false);
 	parent.updateScrollBarValue (this);
@@ -504,7 +503,7 @@ int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
 		case OS.GDK_BUTTON_RELEASE: {
 			GdkEventButton gdkEventButton = new GdkEventButton ();
 			OS.memmove (gdkEventButton, gdkEvent, GdkEventButton.sizeof);
-			if (gdkEventButton.button == 1 && detail == SWT.DRAG) {
+			if (gdkEventButton.button == 1 && detail == OS.GTK_SCROLL_JUMP) {
 				if (!dragSent) {
 					Event event = new Event ();
 					event.detail = SWT.DRAG;
@@ -715,12 +714,12 @@ public void setMinimum (int value) {
 	OS.g_signal_handlers_unblock_matched (adjustmentHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((parent.style & SWT.MIRRORED) != 0) {
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((parent.style & SWT.MIRRORED) != 0 || !create) {
 		if ((parent.state & CANVAS) != 0) {
 			if ((style & SWT.HORIZONTAL) != 0) {
-				OS.gtk_range_set_inverted (handle, true);
+				OS.gtk_range_set_inverted (handle, (parent.style & SWT.RIGHT_TO_LEFT) != 0);
 			}
 		}
 	}
diff --git a/org/eclipse/swt/widgets/Scrollable.java b/org/eclipse/swt/widgets/Scrollable.java
index e349be0..8c94163 100644
--- a/org/eclipse/swt/widgets/Scrollable.java
+++ b/org/eclipse/swt/widgets/Scrollable.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -142,7 +142,7 @@ ScrollBar createScrollBar (int style) {
 		bar.handle = OS.GTK_SCROLLED_WINDOW_VSCROLLBAR (scrolledHandle);
 		bar.adjustmentHandle = OS.gtk_scrolled_window_get_vadjustment (scrolledHandle);
 	}
-	bar.setOrientation();
+	bar.setOrientation (true);
 	bar.hookEvents ();
 	bar.register ();
 	return bar;
@@ -286,13 +286,16 @@ boolean sendLeaveNotify () {
 	return scrolledHandle != 0;
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
 		if (scrolledHandle != 0) {
-			OS.gtk_widget_set_direction (scrolledHandle, OS.GTK_TEXT_DIR_RTL);
+			OS.gtk_widget_set_direction (scrolledHandle, dir);
 		}
 	}
+	if (horizontalBar != null) horizontalBar.setOrientation (create);
+	if (verticalBar != null) verticalBar.setOrientation (create);	
 }
 
 boolean setScrollBarVisible (ScrollBar bar, boolean visible) {
diff --git a/org/eclipse/swt/widgets/Shell.java b/org/eclipse/swt/widgets/Shell.java
index b1d93b6..6c18baf 100644
--- a/org/eclipse/swt/widgets/Shell.java
+++ b/org/eclipse/swt/widgets/Shell.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -107,7 +107,7 @@ import org.eclipse.swt.events.*;
  * Note: Only one of the styles APPLICATION_MODAL, MODELESS, 
  * PRIMARY_MODAL and SYSTEM_MODAL may be specified.
  * </p><p>
- * IMPORTANT: This class is not intended to be subclassed.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see Decorations
@@ -115,6 +115,7 @@ import org.eclipse.swt.events.*;
  * @see <a href="http://www.eclipse.org/swt/snippets/#shell">Shell snippets</a>
  * @see <a href="http://www.eclipse.org/swt/examples.php">SWT Example: ControlExample</a>
  * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ * @noextend This class is not intended to be subclassed by clients.
  */
 public class Shell extends Decorations {
 	int /*long*/ shellHandle, tooltipsHandle, tooltipWindow, group, modalGroup;
@@ -770,6 +771,27 @@ Composite findDeferredControl () {
 	return layoutCount > 0 ? this : null;
 }
 
+/**
+ * Returns a ToolBar object representing the tool bar that can be shown in the receiver's
+ * trim. This will return <code>null</code> if the platform does not support tool bars that
+ * are not part of the content area of the shell, or if the Shell's style does not support 
+ * having a tool bar. 
+ * <p>
+ * 
+ * @return a ToolBar object representing the Shell's tool bar, or <ocde>null</code>.
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ * 
+ * @since 3.7
+ */
+public ToolBar getToolBar() {
+	checkWidget ();
+	return null;
+}
+
 boolean hasBorder () {
 	return false;
 }
@@ -1015,7 +1037,8 @@ Shell getModalShell () {
 /**
  * Gets the receiver's modified state.
  *
- * </ul>
+ * @return <code>true</code> if the receiver is marked as modified, or <code>false</code> otherwise
+ * 
  * @exception SWTException <ul>
  *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
  *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
@@ -1046,9 +1069,9 @@ public boolean getVisible () {
 
 /** 
  * Returns the region that defines the shape of the shell,
- * or null if the shell has the default shape.
+ * or <code>null</code> if the shell has the default shape.
  *
- * @return the region that defines the shape of the shell (or null)
+ * @return the region that defines the shape of the shell, or <code>null</code>
  *	
  * @exception SWTException <ul>
  *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
@@ -1320,9 +1343,33 @@ int /*long*/ gtk_motion_notify_event (int /*long*/ widget, int /*long*/ event) {
 }
 
 int /*long*/ gtk_key_press_event (int /*long*/ widget, int /*long*/ event) {
-	/* Stop menu mnemonics when the shell is disabled */
 	if (widget == shellHandle) {
-		return (state & DISABLED) != 0 ? 1 : 0;
+		/* Stop menu mnemonics when the shell is disabled */
+		if ((state & DISABLED) != 0) return 1;
+		
+		if (menuBar != null && !menuBar.isDisposed ()) {
+			Control focusControl = display.getFocusControl ();
+			if (focusControl != null && (focusControl.hooks (SWT.KeyDown) || focusControl.filters (SWT.KeyDown))) {
+				int /*long*/ [] accel = new int /*long*/ [1];
+				int /*long*/ setting = OS.gtk_settings_get_default ();
+				OS.g_object_get (setting, OS.gtk_menu_bar_accel, accel, 0);
+				if (accel [0] != 0) {
+					int [] keyval = new int [1];
+					int [] mods = new int [1];
+					OS.gtk_accelerator_parse (accel [0], keyval, mods);
+					OS.g_free (accel [0]);
+					if (keyval [0] != 0) {
+						GdkEventKey keyEvent = new GdkEventKey ();
+						OS.memmove (keyEvent, event, GdkEventKey.sizeof);
+						int mask = OS.gtk_accelerator_get_default_mod_mask ();
+						if (keyEvent.keyval == keyval [0] && (keyEvent.state & mask) == (mods [0] & mask)) {
+							return focusControl.gtk_key_press_event (focusControl.focusHandle (), event);
+						}
+					}
+				}
+			}
+		}
+		return 0;
 	}
 	return super.gtk_key_press_event (widget, event);
 }
@@ -1994,6 +2041,13 @@ public void setVisible (boolean visible) {
 			boolean iconic = false;
 			Shell shell = parent != null ? parent.getShell() : null;
 			do {
+				/*
+				* This call to gdk_threads_leave() is a temporary work around
+				* to avoid deadlocks when gdk_threads_init() is called by native
+				* code outside of SWT (i.e AWT, etc). It ensures that the current
+				* thread leaves the GTK lock before calling the function below. 
+				*/
+				OS.gdk_threads_leave();
 				OS.g_main_context_iteration (0, false);
 				if (isDisposed ()) break;
 				iconic = minimized || (shell != null && shell.minimized);
@@ -2169,13 +2223,24 @@ void updateModal () {
 		} else {
 			shell = modal;
 		}
+		Composite topModalShell = shell;
 		while (shell != null) {
 			if ((shell.style & mask) == 0) {
 				group = shell.getShell ().group;
 				break;
 			}
+			topModalShell = shell;
 			shell = shell.parent;
 		}
+		/*
+		* If a modal shell doesn't have any parent (or modal shell as it's parent), 
+		* then we incorrectly add the modal shell to the default group, due to which 
+		* children of that modal shell are not interactive. The fix is to ensure 
+		* that whenever there is a modal shell in the hierarchy, then we always
+		* add the modal shell's group to that modal shell and it's modelless children
+		* in a different group.
+		*/
+		if (group == 0 && topModalShell != null) group = topModalShell.getShell ().group;
 	}
 	if (OS.GTK_VERSION >= OS.VERSION (2, 10, 0) && group == 0) { 
 		/*
diff --git a/org/eclipse/swt/widgets/Slider.java b/org/eclipse/swt/widgets/Slider.java
index 957b792..8b20f25 100644
--- a/org/eclipse/swt/widgets/Slider.java
+++ b/org/eclipse/swt/widgets/Slider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -487,11 +487,11 @@ public void setMinimum (int value) {
 	OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
 }
 
-void setOrientation () {
-	super.setOrientation ();
-	if ((style & SWT.RIGHT_TO_LEFT) != 0) {
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if ((style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
 		if ((style & SWT.HORIZONTAL) != 0) {
-			OS.gtk_range_set_inverted (handle, true);
+			OS.gtk_range_set_inverted (handle, (style & SWT.RIGHT_TO_LEFT) != 0);
 		}
 	}
 }
diff --git a/org/eclipse/swt/widgets/Spinner.java b/org/eclipse/swt/widgets/Spinner.java
index d8c0dd1..51315b5 100644
--- a/org/eclipse/swt/widgets/Spinner.java
+++ b/org/eclipse/swt/widgets/Spinner.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -647,8 +647,11 @@ int /*long*/ gtk_commit (int /*long*/ imContext, int /*long*/ text) {
 
 int /*long*/ gtk_delete_text (int /*long*/ widget, int /*long*/ start_pos, int /*long*/ end_pos) {
 	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
-	if (end_pos == -1) end_pos = OS.g_utf8_strlen (OS.gtk_entry_get_text (handle), -1);
-	String newText = verifyText ("", (int)/*64*/start_pos, (int)/*64*/end_pos);
+	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+	String newText = verifyText ("", start, end);
 	if (newText == null) {
 		OS.g_signal_stop_emission_by_name (handle, OS.delete_text);
 	} else {
@@ -685,11 +688,10 @@ int /*long*/ gtk_insert_text (int /*long*/ widget, int /*long*/ new_text, int /*
 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
 	int [] pos = new int [1];
 	OS.memmove (pos, position, 4);
-	if (pos [0] == -1) {
-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
-	}
-	String newText = verifyText (oldText, pos [0], pos [0]);
+	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
+	int start = (int)/*64*/OS.g_utf16_pointer_to_offset (ptr, pos [0]);
+	String newText = verifyText (oldText, start, start);
 	if (newText != oldText) {
 		int [] newStart = new int [1], newEnd = new int [1];
 		OS.gtk_editable_get_selection_bounds (handle, newStart, newEnd);
@@ -1089,7 +1091,9 @@ public void setDigits (int value) {
 		climbRate /= factor;
 	}
 	OS.memmove (hAdjustment, adjustment);
+	OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
 	OS.gtk_spin_button_configure (handle, hAdjustment, climbRate, value);
+	OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, VALUE_CHANGED);
 }
 
 /**
diff --git a/org/eclipse/swt/widgets/Synchronizer.java b/org/eclipse/swt/widgets/Synchronizer.java
index 5bcf914..080871c 100644
--- a/org/eclipse/swt/widgets/Synchronizer.java
+++ b/org/eclipse/swt/widgets/Synchronizer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -44,6 +44,7 @@ public class Synchronizer {
 
 	//TEMPORARY CODE
 	static final boolean IS_CARBON = "carbon".equals (SWT.getPlatform ());
+	static final boolean IS_COCOA = "cocoa".equals (SWT.getPlatform ());
 	static final boolean IS_GTK = "gtk".equals (SWT.getPlatform ());
 
 /**
@@ -84,7 +85,7 @@ void addLast (RunnableLock lock) {
 protected void asyncExec (Runnable runnable) {
 	if (runnable == null) {
 		//TEMPORARY CODE
-		if (!(IS_CARBON || IS_GTK)) {
+		if (!(IS_CARBON || IS_GTK || IS_COCOA)) {
 			display.wake ();
 			return;
 		}
diff --git a/org/eclipse/swt/widgets/TabFolder.java b/org/eclipse/swt/widgets/TabFolder.java
index 81846bc..e09761c 100644
--- a/org/eclipse/swt/widgets/TabFolder.java
+++ b/org/eclipse/swt/widgets/TabFolder.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -637,6 +637,15 @@ void setForegroundColor (GdkColor color) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if (items != null) {
+		for (int i=0; i<items.length; i++) {
+			if (items[i] != null) items[i].setOrientation (create);
+		}
+	}
+}
+
 /**
  * Selects the item at the given zero-relative index in the receiver. 
  * If the item at the index was already selected, it remains selected.
diff --git a/org/eclipse/swt/widgets/TabItem.java b/org/eclipse/swt/widgets/TabItem.java
index a19d175..59aea1b 100644
--- a/org/eclipse/swt/widgets/TabItem.java
+++ b/org/eclipse/swt/widgets/TabItem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -119,7 +119,7 @@ protected void checkSubclass () {
 
 void createWidget (int index) {
 	parent.createItem (this, index);
-	setOrientation ();
+	setOrientation (true);
 	hookEvents ();
 	register ();
 	text = "";
@@ -313,12 +313,13 @@ public void setImage (Image image) {
 	}
 }
 
-void setOrientation () {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (handle != 0) OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
-		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL);
-		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, OS.GTK_TEXT_DIR_RTL);
-		if (pageHandle != 0) OS.gtk_widget_set_direction (pageHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		if (handle != 0) OS.gtk_widget_set_direction (handle, dir);
+		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, dir);
+		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, dir);
+		if (pageHandle != 0) OS.gtk_widget_set_direction (pageHandle, dir);
 	}
 }
 
diff --git a/org/eclipse/swt/widgets/Table.java b/org/eclipse/swt/widgets/Table.java
index d0dfe65..771173e 100644
--- a/org/eclipse/swt/widgets/Table.java
+++ b/org/eclipse/swt/widgets/Table.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1084,7 +1084,7 @@ void destroyItem (TableItem item) {
 	if (itemCount == 0) resetCustomDraw ();
 }
 
-boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
 	boolean selected = false;
 	if (filter) {
 		int /*long*/ [] path = new int /*long*/ [1];
@@ -1098,7 +1098,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 			return false;
 		}
 	}
-	boolean dragDetect = super.dragDetect (x, y, filter, consume);
+	boolean dragDetect = super.dragDetect (x, y, filter, false, consume);
 	if (dragDetect && selected && consume != null) consume [0] = true;
 	return dragDetect;
 }
@@ -1933,6 +1933,25 @@ int /*long*/ gtk_changed (int /*long*/ widget) {
 	return 0;
 }
 
+int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
+	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+		case OS.GDK_EXPOSE: {
+			/*
+			* Bug in GTK. SWT connects the expose-event 'after' the default 
+			* handler of the signal. If the tree has no children, then GTK 
+			* sends expose signal only 'before' the default signal handler.
+			* The fix is to detect this case in 'event_after' and send the
+			* expose event.
+			*/
+			if (OS.gtk_tree_model_iter_n_children (modelHandle, 0) == 0) {
+				gtk_expose_event (widget, gdkEvent);
+			}
+			break;
+		}
+	}
+	return super.gtk_event_after (widget, gdkEvent);
+}
+
 int /*long*/ gtk_expose_event (int /*long*/ widget, int /*long*/ eventPtr) {
 	if ((state & OBSCURED) != 0) return 0;
 	if ((state & PARENT_BACKGROUND) != 0 || backgroundImage != null) {
@@ -2529,12 +2548,15 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
 	if (!ignoreSize && OS.GTK_IS_CELL_RENDERER_TEXT (cell)) {
 		int /*long*/ iter = OS.g_object_get_qdata (cell, Display.SWT_OBJECT_INDEX2);
 		TableItem item = null;
+		boolean isSelected = false;
 		if (iter != 0) {
 			int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
 			int [] buffer = new int [1];
 			OS.memmove (buffer, OS.gtk_tree_path_get_indices (path), 4);
 			int index = buffer [0];
 			item = _getItem (index);
+			int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
+			isSelected = OS.gtk_tree_selection_path_is_selected (selection, path);
 			OS.gtk_tree_path_free (path);
 		}
 		if (item != null) {
@@ -2567,6 +2589,7 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
 				event.gc = gc;
 				event.width = contentWidth [0];
 				event.height = contentHeight [0];
+				if (isSelected) event.detail = SWT.SELECTED;
 				sendEvent (SWT.MeasureItem, event);
 				gc.dispose ();
 				contentWidth [0] = event.width - imageWidth;
@@ -3135,6 +3158,16 @@ public void setLinesVisible (boolean show) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	for (int i=0; i<itemCount; i++) {
+		if (items[i] != null) items[i].setOrientation (create);
+	}
+	for (int i=0; i<columnCount; i++) {
+		if (columns[i] != null) columns[i].setOrientation (create);
+	}
+}
+
 void setParentBackground () {
 	ownerDraw = true;
 	recreateRenderers ();
diff --git a/org/eclipse/swt/widgets/TableColumn.java b/org/eclipse/swt/widgets/TableColumn.java
index e0ab44f..e1a78e1 100644
--- a/org/eclipse/swt/widgets/TableColumn.java
+++ b/org/eclipse/swt/widgets/TableColumn.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -192,7 +192,7 @@ protected void checkSubclass () {
 
 void createWidget (int index) {
 	parent.createItem (this, index);
-	setOrientation ();
+	setOrientation (true);
 	hookEvents ();
 	register ();
 	text = "";
@@ -614,11 +614,12 @@ public void setMoveable (boolean moveable) {
 	OS.gtk_tree_view_column_set_reorderable (handle, moveable);
 }
 
-void setOrientation() {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
+void setOrientation (boolean create) {
+	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
 		if (buttonHandle != 0) {
-			OS.gtk_widget_set_direction (buttonHandle, OS.GTK_TEXT_DIR_RTL);
-			OS.gtk_container_forall (buttonHandle, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);	
+			int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+			OS.gtk_widget_set_direction (buttonHandle, dir);
+			OS.gtk_container_forall (buttonHandle, display.setDirectionProc, dir);
 		}
 	}
 }
diff --git a/org/eclipse/swt/widgets/Text.java b/org/eclipse/swt/widgets/Text.java
index c62de00..25c926a 100644
--- a/org/eclipse/swt/widgets/Text.java
+++ b/org/eclipse/swt/widgets/Text.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -495,7 +495,7 @@ void deregister () {
 	if (imContext != 0) display.removeWidget (imContext);
 }
 
-boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
 	if (filter) {
 		int start = 0, end = 0;
 		if ((style & SWT.SINGLE) != 0) {
@@ -529,7 +529,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 				position = OS.gtk_text_iter_get_offset (p);
 			}
 			if (start <= position && position < end) {
-				if (super.dragDetect (x, y, filter, consume)) {
+				if (super.dragDetect (x, y, filter, dragOnTimeout, consume)) {
 					if (consume != null) consume [0] = true;
 					return true;
 				}
@@ -537,7 +537,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 		}
 		return false;
 	}
-	return super.dragDetect (x, y, filter, consume);
+	return super.dragDetect (x, y, filter, dragOnTimeout, consume);
 }
 
 int /*long*/ eventWindow () {
@@ -670,12 +670,18 @@ public Point getCaretLocation () {
 public int getCaretPosition () {
 	checkWidget ();
 	if ((style & SWT.SINGLE) != 0)  {
-		return OS.gtk_editable_get_position (handle);
+		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+		return (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_editable_get_position (handle));
 	}
 	byte [] position = new byte [ITER_SIZEOF];
 	int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
 	OS.gtk_text_buffer_get_iter_at_mark (bufferHandle, position, mark);
-	return OS.gtk_text_iter_get_offset (position);
+	byte [] zero = new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
+	int result = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (position));
+	OS.g_free (ptr);
+	return result;
 }
 
 /**
@@ -692,9 +698,15 @@ public int getCharCount () {
 	checkWidget ();
 	if ((style & SWT.SINGLE) != 0) {
 		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-		return (int)/*64*/OS.g_utf8_strlen (ptr, -1);
+		return (int)/*64*/OS.g_utf16_strlen (ptr, -1);
 	}
-	return OS.gtk_text_buffer_get_char_count (bufferHandle);
+	byte [] startIter =  new byte [ITER_SIZEOF];
+	byte [] endIter =  new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+	int result = (int)/*64*/OS.g_utf16_strlen(ptr, -1);
+	OS.g_free (ptr);
+	return result;
 }
 
 /**
@@ -849,8 +861,7 @@ public String getMessage () {
  * @since 2.1.2
  */
 public int getOrientation () {
-	checkWidget();
-	return style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
+	return super.getOrientation ();
 }
 
 /*public*/ int getPosition (Point point) {
@@ -863,11 +874,15 @@ public int getOrientation () {
 		int /*long*/ layout = OS.gtk_entry_get_layout (handle);
 		OS.pango_layout_xy_to_index (layout, point.x * OS.PANGO_SCALE, point.y * OS.PANGO_SCALE, index, trailing);
 		int /*long*/ ptr = OS.pango_layout_get_text (layout);
-		position = (int)/*64*/OS.g_utf8_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
+		position = (int)/*64*/OS.g_utf16_pointer_to_offset (ptr, ptr + index[0]) + trailing[0];
 	} else {
 		byte [] p = new byte [ITER_SIZEOF];
 		OS.gtk_text_view_get_iter_at_location (handle, p, point.x, point.y);
-		position = OS.gtk_text_iter_get_offset (p);
+		byte [] zero = new byte [ITER_SIZEOF];
+		OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, p, true);
+		position = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (p));
+		OS.g_free (ptr);
 	}
 	return position;
 }
@@ -896,12 +911,21 @@ public Point getSelection () {
 		int [] start = new int [1];
 		int [] end = new int [1];
 		OS.gtk_editable_get_selection_bounds (handle, start, end);
+		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+		start[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start[0]);
+		end[0] = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end[0]);
 		return new Point (start [0], end [0]);
 	}
-	byte [] start =  new byte [ITER_SIZEOF];
-	byte [] end =  new byte [ITER_SIZEOF];
-	OS.gtk_text_buffer_get_selection_bounds (bufferHandle, start, end);
-	return new Point (OS.gtk_text_iter_get_offset (start), OS.gtk_text_iter_get_offset (end));
+	byte [] startIter =  new byte [ITER_SIZEOF];
+	byte [] endIter =  new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_selection_bounds (bufferHandle, startIter, endIter);
+	byte [] zero = new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
+	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (startIter));
+	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, OS.gtk_text_iter_get_offset (endIter));
+	OS.g_free (ptr);
+	return new Point (start, end);
 }
 
 /**
@@ -981,22 +1005,7 @@ int getTabWidth (int tabs) {
  * </ul>
  */
 public String getText () {
-	checkWidget ();
-	int /*long*/ address;
-	if ((style & SWT.SINGLE) != 0) {
-		address = OS.gtk_entry_get_text (handle);
-	} else {
-		byte [] start =  new byte [ITER_SIZEOF];
-		byte [] end =  new byte [ITER_SIZEOF];
-		OS.gtk_text_buffer_get_bounds (bufferHandle, start, end);
-		address = OS.gtk_text_buffer_get_text (bufferHandle, start, end, true);
-	}
-	if (address == 0) return "";
-	int length = OS.strlen (address);
-	byte [] buffer = new byte [length];
-	OS.memmove (buffer, address, length);
-	if ((style & SWT.MULTI) != 0) OS.g_free (address);
-	return new String (Converter.mbcsToWcs (null, buffer));
+	return new String (getTextChars());
 }
 
 /**
@@ -1020,27 +1029,54 @@ public String getText () {
 public String getText (int start, int end) {
 	checkWidget ();
 	if (!(start <= end && 0 <= end)) return "";
+	String str = getText ();
+	int length = str.length ();
+	end = Math.min (end, length - 1);
+	if (start > end) return "";
+	start = Math.max (0, start);
+	/*
+	* NOTE: The current implementation uses substring ()
+	* which can reference a potentially large character
+	* array.
+	*/
+	return str.substring (start, end + 1);
+}
+
+/**
+ * Returns the widget's text as a character array.
+ * <p>
+ * The text for a text widget is the characters in the widget, or
+ * a zero-length array if this has never been set.
+ * </p>
+ *
+ * @return a character array that contains the widget's text
+ *
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see #setTextChars(char[])
+ *
+ * @since 3.7
+ */
+public char [] getTextChars () {
+	checkWidget ();
 	int /*long*/ address;
 	if ((style & SWT.SINGLE) != 0) {
-		start = Math.max (0, start);
-		address = OS.gtk_editable_get_chars (handle, start, end + 1);
+		address = OS.gtk_entry_get_text (handle);
 	} else {
-		int length = OS.gtk_text_buffer_get_char_count (bufferHandle);
-		end = Math.min (end, length - 1);
-		if (start > end) return "";
-		start = Math.max (0, start);
-		byte [] startIter =  new byte [ITER_SIZEOF];
-		byte [] endIter =  new byte [ITER_SIZEOF];
-		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
-		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, endIter, end + 1);
-		address = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+		byte [] start =  new byte [ITER_SIZEOF];
+		byte [] end =  new byte [ITER_SIZEOF];
+		OS.gtk_text_buffer_get_bounds (bufferHandle, start, end);
+		address = OS.gtk_text_buffer_get_text (bufferHandle, start, end, true);
 	}
-	if (address == 0) error (SWT.ERROR_CANNOT_GET_TEXT);
+	if (address == 0) return new char[0];
 	int length = OS.strlen (address);
 	byte [] buffer = new byte [length];
 	OS.memmove (buffer, address, length);
-	OS.g_free (address);
-	return new String (Converter.mbcsToWcs (null, buffer));
+	if ((style & SWT.MULTI) != 0) OS.g_free (address);
+	return Converter.mbcsToWcs (null, buffer);
 }
 
 /**
@@ -1170,7 +1206,7 @@ int /*long*/ gtk_changed (int /*long*/ widget) {
 	if ((style & SWT.SEARCH) != 0) {
 		if ((style & SWT.ICON_CANCEL) != 0) {
 			int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-			OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, OS.g_utf8_strlen (ptr, -1) > 0);
+			OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, OS.g_utf16_strlen (ptr, -1) > 0);
 		}
 	}
 	return 0;
@@ -1226,6 +1262,12 @@ int /*long*/ gtk_delete_range (int /*long*/ widget, int /*long*/ iter1, int /*lo
 	OS.memmove (endIter, iter2, endIter.length);
 	int start = OS.gtk_text_iter_get_offset (startIter);
 	int end = OS.gtk_text_iter_get_offset (endIter);
+	byte [] zero = new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, endIter, true);
+	start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start);
+	end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end);
+	OS.g_free (ptr);
 	String newText = verifyText ("", start, end);
 	if (newText == null) {
 		/* Remember the selection when the text was deleted */
@@ -1256,8 +1298,11 @@ int /*long*/ gtk_delete_range (int /*long*/ widget, int /*long*/ iter1, int /*lo
 
 int /*long*/ gtk_delete_text (int /*long*/ widget, int /*long*/ start_pos, int /*long*/ end_pos) {
 	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return 0;
-	if (end_pos == -1) end_pos = OS.g_utf8_strlen (OS.gtk_entry_get_text (handle), -1);
-	String newText = verifyText ("", (int)/*64*/start_pos, (int)/*64*/end_pos);
+	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+	if (end_pos == -1) end_pos = OS.g_utf8_strlen (ptr, -1);
+	int start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start_pos);
+	int end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end_pos);
+	String newText = verifyText ("", start, end);
 	if (newText == null) {
 		/* Remember the selection when the text was deleted */
 		int [] newStart = new int [1], newEnd = new int [1];
@@ -1408,10 +1453,8 @@ int /*long*/ gtk_insert_text (int /*long*/ widget, int /*long*/ new_text, int /*
 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
 	int [] pos = new int [1];
 	OS.memmove (pos, position, 4);
-	if (pos [0] == -1) {
-		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
-		pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
-	}
+	int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+	if (pos [0] == -1) pos [0] = (int)/*64*/OS.g_utf8_strlen (ptr, -1);
 	/* Use the selection when the text was deleted */
 	int start = pos [0], end = pos [0];
 	if (fixStart != -1 && fixEnd != -1) {
@@ -1419,6 +1462,8 @@ int /*long*/ gtk_insert_text (int /*long*/ widget, int /*long*/ new_text, int /*
 		end = fixEnd;
 		fixStart = fixEnd = -1;
 	}
+	start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start);
+	end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end);
 	String newText = verifyText (oldText, start, end);
 	if (newText != oldText) {
 		int [] newStart = new int [1], newEnd = new int [1];
@@ -1475,6 +1520,12 @@ int /*long*/ gtk_text_buffer_insert_text (int /*long*/ widget, int /*long*/ iter
 		end = fixEnd;
 		fixStart = fixEnd = -1;
 	}
+	byte [] zero = new byte [ITER_SIZEOF];
+	OS.gtk_text_buffer_get_iter_at_offset(bufferHandle, zero, 0);
+	int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, zero, position, true);
+	start = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, start);
+	end = (int)/*64*/OS.g_utf8_offset_to_utf16_offset (ptr, end);
+	OS.g_free(ptr);
 	byte [] buffer = new byte [(int)/*64*/length];
 	OS.memmove (buffer, text, buffer.length);
 	String oldText = new String (Converter.mbcsToWcs (null, buffer));
@@ -1895,11 +1946,18 @@ public void setOrientation (int orientation) {
 public void setSelection (int start) {
 	checkWidget ();
 	if ((style & SWT.SINGLE) != 0) {
+		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
 		OS.gtk_editable_set_position (handle, start);
 	} else {
-		byte [] position =  new byte [ITER_SIZEOF];
-		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, position, start);
-		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
+		byte [] startIter =  new byte [ITER_SIZEOF];
+		byte [] endIter =  new byte [ITER_SIZEOF];
+		OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+		OS.g_free (ptr);
+		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
+		OS.gtk_text_buffer_place_cursor (bufferHandle, startIter);
 		int /*long*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
 		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
 	}
@@ -1932,12 +1990,20 @@ public void setSelection (int start) {
  */
 public void setSelection (int start, int end) {
 	checkWidget ();
-	if ((style & SWT.SINGLE) != 0) { 
+	if ((style & SWT.SINGLE) != 0) {
+		int /*long*/ ptr = OS.gtk_entry_get_text (handle);
+		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+		end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, end);
 		OS.gtk_editable_set_position (handle, start);
 		OS.gtk_editable_select_region (handle, start, end);
 	} else {
 		byte [] startIter =  new byte [ITER_SIZEOF];
 		byte [] endIter =  new byte [ITER_SIZEOF];
+		OS.gtk_text_buffer_get_bounds (bufferHandle, startIter, endIter);
+		int /*long*/ ptr = OS.gtk_text_buffer_get_text (bufferHandle, startIter, endIter, true);
+		start = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, start);
+		end = (int)/*64*/OS.g_utf16_offset_to_utf8_offset (ptr, end);
+		OS.g_free (ptr);
 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, endIter, end);
 		int /*long*/ insertMark = OS.gtk_text_buffer_get_insert (bufferHandle);
@@ -2040,8 +2106,50 @@ public void setText (String string) {
 		string = verifyText (string, 0, getCharCount ());
 		if (string == null) return;
 	}
+	char [] text = new char [string.length()];
+	string.getChars(0, text.length, text, 0);
+	setText (text);
+}
+
+/**
+ * Sets the contents of the receiver to the characters in the array. If the receiver
+ * has style <code>SWT.SINGLE</code> and the argument contains multiple lines of text
+ * then the result of this operation is undefined and may vary between platforms.
+ *
+ * @param text a character array that contains the new text
+ *
+ * @exception IllegalArgumentException <ul>
+ *    <li>ERROR_NULL_ARGUMENT - if the array is null</li>
+ * </ul>
+ * @exception SWTException <ul>
+ *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
+ *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
+ * </ul>
+ *
+ * @see #getTextChars()
+ *
+ * @since 3.7
+ */
+public void setTextChars (char [] text) {
+	checkWidget ();
+	if (text == null) error (SWT.ERROR_NULL_ARGUMENT);
+	/*
+	* Feature in gtk.  When text is set in gtk, separate events are fired for the deletion and 
+	* insertion of the text.  This is not wrong, but is inconsistent with other platforms.  The
+	* fix is to block the firing of these events and fire them ourselves in a consistent manner. 
+	*/
+	if (hooks (SWT.Verify) || filters (SWT.Verify)) {
+		String string = verifyText (new String(text), 0, getCharCount ());
+		if (string == null) return;
+		text = new char [string.length()];
+		string.getChars (0, text.length, text, 0);
+	}
+	setText (text);
+}
+
+void setText (char [] text) {
 	if ((style & SWT.SINGLE) != 0) {
-		byte [] buffer = Converter.wcsToMbcs (null, string, true);
+		byte [] buffer = Converter.wcsToMbcs (null, text, true);
 		OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
 		OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_TEXT);
 		OS.g_signal_handlers_block_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, INSERT_TEXT);
@@ -2050,7 +2158,7 @@ public void setText (String string) {
 		OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_TEXT);
 		OS.g_signal_handlers_unblock_matched (handle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, INSERT_TEXT);
 	} else {
-		byte [] buffer = Converter.wcsToMbcs (null, string, false);
+		byte [] buffer = Converter.wcsToMbcs (null, text, false);
 		byte [] position =  new byte [ITER_SIZEOF];
 		OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, CHANGED);
 		OS.g_signal_handlers_block_matched (bufferHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, DELETE_RANGE);
@@ -2065,6 +2173,11 @@ public void setText (String string) {
 		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
 	}
 	sendEvent (SWT.Modify);
+	if ((style & SWT.SEARCH) != 0) {
+		if ((style & SWT.ICON_CANCEL) != 0) {
+			OS.gtk_entry_set_icon_sensitive (handle, OS.GTK_ENTRY_ICON_SECONDARY, true);
+		}
+	}
 }
 
 /**
@@ -2175,7 +2288,7 @@ int traversalCode (int key, GdkEventKey event) {
 }
 
 String verifyText (String string, int start, int end) {
-	if (string.length () == 0 && start == end) return null;
+	if (string != null && string.length () == 0 && start == end) return null;
 	Event event = new Event ();
 	event.text = string;
 	event.start = start;
diff --git a/org/eclipse/swt/widgets/ToolBar.java b/org/eclipse/swt/widgets/ToolBar.java
index a87565f..420ab48 100644
--- a/org/eclipse/swt/widgets/ToolBar.java
+++ b/org/eclipse/swt/widgets/ToolBar.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -532,6 +532,14 @@ void setForegroundColor (GdkColor color) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	ToolItem [] items = _getItems ();
+	for (int i = 0; i < items.length; i++) {
+		items[i].setOrientation (create);
+	}
+}
+
 /*public*/ void setTabItemList (ToolItem [] tabList) {
 	checkWidget ();
 	if (tabList != null) {
diff --git a/org/eclipse/swt/widgets/ToolItem.java b/org/eclipse/swt/widgets/ToolItem.java
index 4c5c7d9..681e6a5 100644
--- a/org/eclipse/swt/widgets/ToolItem.java
+++ b/org/eclipse/swt/widgets/ToolItem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -880,6 +880,8 @@ boolean setFocus () {
 	if (!OS.gtk_widget_get_child_visible (handle)) return false;
 	OS.GTK_WIDGET_SET_FLAGS (handle, OS.GTK_CAN_FOCUS);
 	OS.gtk_widget_grab_focus (handle);
+	// widget could be disposed at this point
+	if (isDisposed ()) return false;
 	boolean result = OS.gtk_widget_is_focus (handle);
 	if (!result) OS.GTK_WIDGET_UNSET_FLAGS (handle, OS.GTK_CAN_FOCUS);
 	return result;
@@ -954,15 +956,16 @@ public void setImage (Image image) {
 	parent.relayout ();
 }
 
-void setOrientation () {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
-		if (handle != 0) OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL);
-		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, OS.GTK_TEXT_DIR_RTL);
-		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, OS.GTK_TEXT_DIR_RTL);
-		if (separatorHandle != 0) OS.gtk_widget_set_direction (separatorHandle, OS.GTK_TEXT_DIR_RTL);
-		if (arrowHandle != 0) OS.gtk_widget_set_direction (arrowHandle, OS.GTK_TEXT_DIR_RTL);
-		if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, OS.GTK_TEXT_DIR_RTL);
-		if (arrowBoxHandle != 0) OS.gtk_widget_set_direction (arrowBoxHandle, OS.GTK_TEXT_DIR_RTL);
+void setOrientation (boolean create) {
+	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
+		int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+		if (handle != 0) OS.gtk_widget_set_direction (handle, dir);
+		if (labelHandle != 0) OS.gtk_widget_set_direction (labelHandle, dir);
+		if (imageHandle != 0) OS.gtk_widget_set_direction (imageHandle, dir);
+		if (separatorHandle != 0) OS.gtk_widget_set_direction (separatorHandle, dir);
+		if (arrowHandle != 0) OS.gtk_widget_set_direction (arrowHandle, dir);
+		if (boxHandle != 0) OS.gtk_widget_set_direction (boxHandle, dir);
+		if (arrowBoxHandle != 0) OS.gtk_widget_set_direction (arrowBoxHandle, dir);
 	}
 }
 
@@ -1080,7 +1083,14 @@ void setToolTipText (Shell shell, String newString) {
 /**
  * Sets the width of the receiver, for <code>SEPARATOR</code> ToolItems.
  *
- * @param width the new width
+ * @param width the new width. If the new value is <code>SWT.DEFAULT</code>,
+ * the width is a fixed-width area whose amount is determined by the platform.
+ * If the new value is 0 a vertical or horizontal line will be drawn, depending
+ * on the setting of the corresponding style bit (<code>SWT.VERTICAL</code> or 
+ * <code>SWT.HORIZONTAL</code>). If the new value is <code>SWT.SEPARATOR_FILL</code>
+ * a variable-width space is inserted that acts as a spring between the two adjoining
+ * items which will push them out to the extent of the containing ToolBar.
+ * 
  *
  * @exception SWTException <ul>
  *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
diff --git a/org/eclipse/swt/widgets/ToolTip.java b/org/eclipse/swt/widgets/ToolTip.java
index 34b765f..ebc7219 100644
--- a/org/eclipse/swt/widgets/ToolTip.java
+++ b/org/eclipse/swt/widgets/ToolTip.java
@@ -31,8 +31,7 @@ import org.eclipse.swt.events.*;
  * Note: Only one of the styles ICON_ERROR, ICON_INFORMATION,
  * and ICON_WARNING may be specified.
  * </p><p>
- * IMPORTANT: This class is intended to be subclassed <em>only</em>
- * within the SWT implementation.
+ * IMPORTANT: This class is <em>not</em> intended to be subclassed.
  * </p>
  *
  * @see <a href="http://www.eclipse.org/swt/snippets/#tooltips">Tool Tips snippets</a>
diff --git a/org/eclipse/swt/widgets/Touch.java b/org/eclipse/swt/widgets/Touch.java
new file mode 100644
index 0000000..515c12f
--- /dev/null
+++ b/org/eclipse/swt/widgets/Touch.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.widgets;
+
+/**
+ * Instances of this class are created in response to a
+ * touch-based input device being touched. They are found
+ * in the <code>touches</code> field of an Event or TouchEvent.
+ *
+ * @see org.eclipse.swt.events.TouchEvent
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ * 
+ * @since 3.7
+ */
+public final class Touch {
+
+	/**
+	 * The unique identity of the touch. Use this value to track changes to a touch
+	 * during the touch's life. Two touches may have the same identity even if they
+	 * come from different sources.
+	 */
+	public long id;
+
+	/**
+	 * The object representing the input source that generated the touch.
+	 */
+	public TouchSource source;
+
+	/**
+	 * The state of this touch at the time it was generated. If this field is 0
+	 * then the finger is still touching the device but has not moved
+	 * since the last <code>TouchEvent</code> was generated.
+	 * 
+	 * @see org.eclipse.swt.SWT#TOUCHSTATE_DOWN
+	 * @see org.eclipse.swt.SWT#TOUCHSTATE_MOVE
+	 * @see org.eclipse.swt.SWT#TOUCHSTATE_UP
+	 */
+	public int state;
+
+	/**
+	 * A flag indicating that the touch is the first touch from a previous
+	 * state of no touch points. Once designated as such, the touch remains
+	 * the primary touch until all fingers are removed from the device. 
+	 */
+	public boolean primary;
+	
+	/** 
+	 * The x location of the touch in TouchSource coordinates.
+	 */
+	public int x;
+	
+	/**
+	 * The y location of the touch in TouchSource coordinates.
+	 */
+	public int y;
+
+/**
+ * Constructs a new touch state from the given inputs.
+ * 
+ * @param identity Identity of the touch
+ * @param source Object representing the device that generated the touch 
+ * @param state One of the state constants representing the state of this touch
+ * @param primary Whether or not the touch is the primary touch
+ * @param x X location of the touch in screen coordinates
+ * @param y Y location of the touch in screen coordinates
+ */
+Touch (long identity, TouchSource source, int state, boolean primary, int x, int y) {
+	this.id = identity;
+	this.source = source;
+	this.state = state;
+	this.primary = primary;
+	this.x = x;
+	this.y = y;
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public String toString() {
+	return "Touch {id=" + id
+	+ " source=" + source
+	+ " state=" + state
+	+ " primary=" + primary
+	+ " x=" + x
+	+ " y=" + y
+	+ "}";
+}
+
+}
diff --git a/org/eclipse/swt/widgets/TouchSource.java b/org/eclipse/swt/widgets/TouchSource.java
new file mode 100644
index 0000000..7caf92a
--- /dev/null
+++ b/org/eclipse/swt/widgets/TouchSource.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.widgets;
+
+
+import org.eclipse.swt.graphics.*;
+
+/**
+ * Instances of this class represent sources of touch input that generate <code>Touch</code> objects.
+ * They also provide information about the input source, which is important for interpreting the
+ * information in the <code>Touch</code> object.
+ * <p>
+ * Instances of this class can be marked as direct or indirect:
+ * <ul>
+ * <li>When an instance is <em>direct</em>, the touch source is a touch-sensitive digitizer surface such
+ * as a tablet or a touch screen. There is a one-to-one mapping between a touch point and a location in
+ * a window.
+ * </li><li>
+ * When an instance is <em>indirect</em> (more precisely, not direct), the touch source is a track pad or 
+ * other device that normally moves the cursor, but is also able to interpret multiple touches on its surface.
+ * In this case there is not a one-to-one mapping between the location of the touch on the device and a
+ * location on the display because the user can remove their finger or stylus and touch another part of
+ * the device and resume what they were doing.
+ * </li>
+ * </ul>
+ *
+ * @see Touch
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ * 
+ * @since 3.7
+ */
+public final class TouchSource {
+	int /*long*/ handle;
+	boolean direct;	
+	Rectangle bounds;
+
+/**
+ * Constructs a new touch source from the given inputs.
+ * 
+ * @param direct Is the touch source direct or indirect? 
+ * @param height height of the source in pixels.
+ * @param width width of the source in pixels.
+ */
+TouchSource (int /*long*/ handle, boolean direct, Rectangle bounds) {
+	this.handle = handle;
+	this.direct = direct;
+	this.bounds = bounds;
+}
+
+/**
+ * Returns the type of touch input this source generates, <code>true</code> for direct or <code>false</code> for indirect.
+ *
+ * @return <code>true</code> if the input source is direct, or <code>false</code> otherwise
+ */
+public boolean isDirect () {
+	return direct;
+}
+
+/**
+ * Returns the bounding rectangle of the device. For a direct source, this corresponds to the bounds of
+ * the display device in pixels. For an indirect source, this contains the size of the device in pixels.
+ * <p>
+ * Note that the x and y values may not necessarily be 0 if the TouchSource is a direct source.
+ *
+ * @return the bounding rectangle of the input source
+ */
+public Rectangle getBounds () {
+	return new Rectangle (bounds.x, bounds.y, bounds.width, bounds.height);
+}
+
+/**
+ * Returns a string containing a concise, human-readable
+ * description of the receiver.
+ *
+ * @return a string representation of the event
+ */
+public String toString () {
+	return "TouchSource {handle=" + handle + " direct=" + direct + " bounds=" + bounds + "}";
+}
+
+}
\ No newline at end of file
diff --git a/org/eclipse/swt/widgets/TrayItem.java b/org/eclipse/swt/widgets/TrayItem.java
index ca2e9be..b9558a4 100644
--- a/org/eclipse/swt/widgets/TrayItem.java
+++ b/org/eclipse/swt/widgets/TrayItem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -329,7 +329,15 @@ int /*long*/ gtk_size_allocate (int /*long*/ widget, int /*long*/ allocation) {
 }
 
 int /*long*/ gtk_status_icon_popup_menu (int /*long*/ widget, int /*long*/ button, int /*long*/ activate_time) {
+	/*
+	* GTK provides a MenuPositionFunc for GtkStatusIcon in order
+	* to set the popup-menu aligned to the tray.
+	*/
+	Display display = this.display;
+	display.currentTrayItem = this;
 	sendEvent (SWT.MenuDetect);
+	if (!isDisposed ()) display.runPopups();
+	display.currentTrayItem = null;
 	return 0;
 }
 
diff --git a/org/eclipse/swt/widgets/Tree.java b/org/eclipse/swt/widgets/Tree.java
index db619d7..5136227 100644
--- a/org/eclipse/swt/widgets/Tree.java
+++ b/org/eclipse/swt/widgets/Tree.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1108,7 +1108,7 @@ void destroyItem (TreeItem item) {
 	modelChanged = true;
 }
 
-boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
+boolean dragDetect (int x, int y, boolean filter, boolean dragOnTimeout, boolean [] consume) {
 	boolean selected = false;
 	if (filter) {
 		int /*long*/ [] path = new int /*long*/ [1];
@@ -1122,7 +1122,7 @@ boolean dragDetect (int x, int y, boolean filter, boolean [] consume) {
 			return false;
 		}
 	}
-	boolean dragDetect = super.dragDetect (x, y, filter, consume);
+	boolean dragDetect = super.dragDetect (x, y, filter, false, consume);
 	if (dragDetect && selected && consume != null) consume [0] = true;
 	return dragDetect;
 }
@@ -1499,8 +1499,11 @@ public TreeItem getItem (Point point) {
 	if (point == null) error (SWT.ERROR_NULL_ARGUMENT);
 	int /*long*/ [] path = new int /*long*/ [1];
 	OS.gtk_widget_realize (handle);
+	int x = point.x;
+	int y = point.y;
+	if ((style & SWT.MIRRORED) != 0) x = getClientWidth () - x;
 	int /*long*/ [] columnHandle = new int /*long*/ [1];
-	if (!OS.gtk_tree_view_get_path_at_pos (handle, point.x, point.y, path, columnHandle, null, null)) return null;
+	if (!OS.gtk_tree_view_get_path_at_pos (handle, x, y, path, columnHandle, null, null)) return null;
 	if (path [0] == 0) return null;
 	TreeItem item = null;
 	int /*long*/ iter = OS.g_malloc (OS.GtkTreeIter_sizeof ());
@@ -1513,9 +1516,12 @@ public TreeItem getItem (Point point) {
 			if (OS.GTK_VERSION < OS.VERSION (2, 8, 18)) {
 				OS.gtk_widget_style_get (handle, OS.expander_size, buffer, 0);
 				int expanderSize = buffer [0] + TreeItem.EXPANDER_EXTRA_PADDING;
-				overExpander = point.x < rect.x + expanderSize;
+				rect.x += expanderSize;
+			}
+			if ((style & SWT.MIRRORED) != 0) {
+				overExpander = x > rect.x + rect.width;
 			} else {
-				overExpander = point.x < rect.x;
+				overExpander = x < rect.x;
 			}
 		}
 		if (!overExpander) {
@@ -1931,6 +1937,25 @@ int /*long*/ gtk_changed (int /*long*/ widget) {
 	return 0;
 }
 
+int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) {
+	switch (OS.GDK_EVENT_TYPE (gdkEvent)) {
+		case OS.GDK_EXPOSE: {
+			/*
+			* Bug in GTK. SWT connects the expose-event 'after' the default 
+			* handler of the signal. If the tree has no children, then GTK 
+			* sends expose signal only 'before' the default signal handler.
+			* The fix is to detect this case in 'event_after' and send the
+			* expose event.
+			*/
+			if (OS.gtk_tree_model_iter_n_children (modelHandle, 0) == 0) {
+				gtk_expose_event (widget, gdkEvent);
+			}
+			break;
+		}
+	}
+	return super.gtk_event_after (widget, gdkEvent);
+}
+
 int /*long*/ gtk_expand_collapse_cursor_row (int /*long*/ widget, int /*long*/ logical, int /*long*/ expand, int /*long*/ open_all) {
 	// FIXME - this flag is never cleared.  It should be cleared when the expand all operation completes.
 	if (expand != 0 && open_all != 0) expandAll = true;
@@ -2564,6 +2589,12 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
 				event.gc = gc;
 				event.width = contentWidth [0];
 				event.height = contentHeight [0];
+				int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
+				int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
+				if (OS.gtk_tree_selection_path_is_selected (selection, path)) {
+					event.detail = SWT.SELECTED;
+				}
+				OS.gtk_tree_path_free (path);
 				sendEvent (SWT.MeasureItem, event);
 				gc.dispose ();
 				contentWidth [0] = event.width - imageWidth;
@@ -3063,6 +3094,20 @@ public void setLinesVisible (boolean show) {
 	}
 }
 
+void setOrientation (boolean create) {
+	super.setOrientation (create);
+	if (items != null) {
+		for (int i=0; i<items.length; i++) {
+			if (items[i] != null) items[i].setOrientation (create);
+		}
+	}
+	if (columns != null) {
+		for (int i=0; i<columns.length; i++) {
+			if (columns[i] != null) columns[i].setOrientation (create);
+		}
+	}
+}
+
 void setParentBackground () {
 	ownerDraw = true;
 	recreateRenderers ();
diff --git a/org/eclipse/swt/widgets/TreeColumn.java b/org/eclipse/swt/widgets/TreeColumn.java
index 115c7f8..8e835e8 100644
--- a/org/eclipse/swt/widgets/TreeColumn.java
+++ b/org/eclipse/swt/widgets/TreeColumn.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -194,7 +194,7 @@ protected void checkSubclass () {
 
 void createWidget (int index) {
 	parent.createItem (this, index);
-	setOrientation ();
+	setOrientation (true);
 	hookEvents ();
 	register ();
 	text = "";
@@ -592,11 +592,12 @@ public void setMoveable (boolean moveable) {
 	OS.gtk_tree_view_column_set_reorderable (handle, moveable);
 }
 
-void setOrientation() {
-	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0) {
+void setOrientation (boolean create) {
+	if ((parent.style & SWT.RIGHT_TO_LEFT) != 0 || !create) {
 		if (buttonHandle != 0) {
-			OS.gtk_widget_set_direction (buttonHandle, OS.GTK_TEXT_DIR_RTL);
-			OS.gtk_container_forall (buttonHandle, display.setDirectionProc, OS.GTK_TEXT_DIR_RTL);	
+			int dir = (parent.style & SWT.RIGHT_TO_LEFT) != 0 ? OS.GTK_TEXT_DIR_RTL : OS.GTK_TEXT_DIR_LTR;
+			OS.gtk_widget_set_direction (buttonHandle, dir);
+			OS.gtk_container_forall (buttonHandle, display.setDirectionProc, dir);
 		}
 	}
 }
diff --git a/org/eclipse/swt/widgets/TypedListener.java b/org/eclipse/swt/widgets/TypedListener.java
index db4fb1d..354be9d 100644
--- a/org/eclipse/swt/widgets/TypedListener.java
+++ b/org/eclipse/swt/widgets/TypedListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -143,6 +143,12 @@ public void handleEvent (Event e) {
 			((FocusListener) eventListener).focusLost(new FocusEvent(e));
 			break;
 		}
+		case SWT.Gesture: {
+			GestureEvent event = new GestureEvent(e);
+			((GestureListener)eventListener).gesture(event);
+			e.doit = event.doit;
+			break;
+		}
 		case SWT.Help: {
 			((HelpListener) eventListener).helpRequested (new HelpEvent (e));
 			break;
@@ -241,6 +247,10 @@ public void handleEvent (Event e) {
 			((MenuListener) eventListener).menuShown(new MenuEvent(e));
 			break;
 		}
+		case SWT.Touch: {
+			((TouchListener)eventListener).touch(new TouchEvent(e));
+			break;
+		}
 		case SWT.Traverse: {
 			/* Fields set by Control */
 			TraverseEvent event = new TraverseEvent (e);
diff --git a/org/eclipse/swt/widgets/Widget.java b/org/eclipse/swt/widgets/Widget.java
index 48e0601..6285902 100644
--- a/org/eclipse/swt/widgets/Widget.java
+++ b/org/eclipse/swt/widgets/Widget.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -410,7 +410,7 @@ void createHandle (int index) {
 
 void createWidget (int index) {
 	createHandle (index);
-	setOrientation ();
+	setOrientation (true);
 	hookEvents ();
 	register ();
 }
@@ -1287,7 +1287,7 @@ void sendEvent (int eventType, Event event, boolean send) {
 
 boolean sendKeyEvent (int type, GdkEventKey keyEvent) {
 	int length = keyEvent.length;
-	if (keyEvent.string == 0 || OS.g_utf8_strlen (keyEvent.string, length) <= 1) {
+	if (keyEvent.string == 0 || OS.g_utf16_strlen (keyEvent.string, length) <= 1) {
 		Event event = new Event ();
 		event.time = keyEvent.time;
 		if (!setKeyState (event, keyEvent)) return true;
@@ -1550,7 +1550,7 @@ boolean setInputState (Event event, int state) {
 }
 
 boolean setKeyState (Event event, GdkEventKey keyEvent) {
-	if (keyEvent.string != 0 && OS.g_utf8_strlen (keyEvent.string, keyEvent.length) > 1) return false;
+	if (keyEvent.string != 0 && OS.g_utf16_strlen (keyEvent.string, keyEvent.length) > 1) return false;
 	boolean isNull = false;
 	event.keyCode = Display.translateKey (keyEvent.keyval);
 	switch (keyEvent.keyval) {
@@ -1633,7 +1633,7 @@ void setLocationState (Event event, GdkEventKey keyEvent) {
 	}
 }
 
-void setOrientation () {
+void setOrientation (boolean create) {
 }
 
 boolean setTabGroupFocus (boolean next) {
diff --git a/os.c b/os.c
index 04527a3..b852989 100644
--- a/os.c
+++ b/os.c
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -3343,6 +3343,18 @@ JNIEXPORT void JNICALL OS_NATIVE(_1g_1list_1free_11)
 }
 #endif
 
+#ifndef NO__1g_1list_1last
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1list_1last)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1list_1last_FUNC);
+	rc = (jintLong)g_list_last((GList *)arg0);
+	OS_NATIVE_EXIT(env, that, _1g_1list_1last_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1g_1list_1length
 JNIEXPORT jint JNICALL OS_NATIVE(_1g_1list_1length)
 	(JNIEnv *env, jclass that, jintLong arg0)
@@ -3669,20 +3681,59 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1malloc)
 }
 #endif
 
-#ifndef NO__1g_1object_1get
-JNIEXPORT void JNICALL OS_NATIVE(_1g_1object_1get)
-	(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jintArray arg2, jintLong arg3)
+#if (!defined(NO__1g_1object_1get__I_3B_3II) && !defined(JNI64)) || (!defined(NO__1g_1object_1get__J_3B_3IJ) && defined(JNI64))
+#ifndef JNI64
+JNIEXPORT void JNICALL OS_NATIVE(_1g_1object_1get__I_3B_3II)(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jintArray arg2, jintLong arg3)
+#else
+JNIEXPORT void JNICALL OS_NATIVE(_1g_1object_1get__J_3B_3IJ)(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jintArray arg2, jintLong arg3)
+#endif
 {
 	jbyte *lparg1=NULL;
 	jint *lparg2=NULL;
-	OS_NATIVE_ENTER(env, that, _1g_1object_1get_FUNC);
+#ifndef JNI64
+	OS_NATIVE_ENTER(env, that, _1g_1object_1get__I_3B_3II_FUNC);
+#else
+	OS_NATIVE_ENTER(env, that, _1g_1object_1get__J_3B_3IJ_FUNC);
+#endif
 	if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
 	if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
 	g_object_get((GObject *)arg0, (const gchar *)lparg1, lparg2, (const gchar *)NULL);
 fail:
 	if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
 	if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, JNI_ABORT);
-	OS_NATIVE_EXIT(env, that, _1g_1object_1get_FUNC);
+#ifndef JNI64
+	OS_NATIVE_EXIT(env, that, _1g_1object_1get__I_3B_3II_FUNC);
+#else
+	OS_NATIVE_EXIT(env, that, _1g_1object_1get__J_3B_3IJ_FUNC);
+#endif
+}
+#endif
+
+#if (!defined(NO__1g_1object_1get__I_3B_3JI) && !defined(JNI64)) || (!defined(NO__1g_1object_1get__J_3B_3JJ) && defined(JNI64))
+#ifndef JNI64
+JNIEXPORT void JNICALL OS_NATIVE(_1g_1object_1get__I_3B_3JI)(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jlongArray arg2, jintLong arg3)
+#else
+JNIEXPORT void JNICALL OS_NATIVE(_1g_1object_1get__J_3B_3JJ)(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jlongArray arg2, jintLong arg3)
+#endif
+{
+	jbyte *lparg1=NULL;
+	jlong *lparg2=NULL;
+#ifndef JNI64
+	OS_NATIVE_ENTER(env, that, _1g_1object_1get__I_3B_3JI_FUNC);
+#else
+	OS_NATIVE_ENTER(env, that, _1g_1object_1get__J_3B_3JJ_FUNC);
+#endif
+	if (arg1) if ((lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL)) == NULL) goto fail;
+	if (arg2) if ((lparg2 = (*env)->GetLongArrayElements(env, arg2, NULL)) == NULL) goto fail;
+	g_object_get((GObject *)arg0, (const gchar *)lparg1, lparg2, (const gchar *)NULL);
+fail:
+	if (arg2 && lparg2) (*env)->ReleaseLongArrayElements(env, arg2, lparg2, 0);
+	if (arg1 && lparg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, JNI_ABORT);
+#ifndef JNI64
+	OS_NATIVE_EXIT(env, that, _1g_1object_1get__I_3B_3JI_FUNC);
+#else
+	OS_NATIVE_EXIT(env, that, _1g_1object_1get__J_3B_3JJ_FUNC);
+#endif
 }
 #endif
 
@@ -4507,6 +4558,54 @@ fail:
 }
 #endif
 
+#ifndef NO__1g_1utf16_1offset_1to_1pointer
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf16_1offset_1to_1pointer)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1utf16_1offset_1to_1pointer_FUNC);
+	rc = (jintLong)g_utf16_offset_to_pointer((const gchar *)arg0, arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1utf16_1offset_1to_1pointer_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO__1g_1utf16_1offset_1to_1utf8_1offset
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf16_1offset_1to_1utf8_1offset)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1utf16_1offset_1to_1utf8_1offset_FUNC);
+	rc = (jintLong)g_utf16_offset_to_utf8_offset((const gchar *)arg0, arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1utf16_1offset_1to_1utf8_1offset_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO__1g_1utf16_1pointer_1to_1offset
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf16_1pointer_1to_1offset)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1utf16_1pointer_1to_1offset_FUNC);
+	rc = (jintLong)g_utf16_pointer_to_offset((const gchar *)arg0, (const gchar *)arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1utf16_1pointer_1to_1offset_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO__1g_1utf16_1strlen
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf16_1strlen)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1utf16_1strlen_FUNC);
+	rc = (jintLong)g_utf16_strlen((const gchar *)arg0, arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1utf16_1strlen_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1g_1utf16_1to_1utf8
 JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf16_1to_1utf8)
 	(JNIEnv *env, jclass that, jcharArray arg0, jintLong arg1, jintLongArray arg2, jintLongArray arg3, jintLongArray arg4)
@@ -4564,6 +4663,18 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf8_1offset_1to_1pointer)
 }
 #endif
 
+#ifndef NO__1g_1utf8_1offset_1to_1utf16_1offset
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf8_1offset_1to_1utf16_1offset)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1g_1utf8_1offset_1to_1utf16_1offset_FUNC);
+	rc = (jintLong)g_utf8_offset_to_utf16_offset((const gchar *)arg0, arg1);
+	OS_NATIVE_EXIT(env, that, _1g_1utf8_1offset_1to_1utf16_1offset_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1g_1utf8_1pointer_1to_1offset
 JNIEXPORT jintLong JNICALL OS_NATIVE(_1g_1utf8_1pointer_1to_1offset)
 	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
@@ -6851,6 +6962,18 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1invalidate_1region)
 }
 #endif
 
+#ifndef NO__1gdk_1window_1is_1viewable
+JNIEXPORT jboolean JNICALL OS_NATIVE(_1gdk_1window_1is_1viewable)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	jboolean rc = 0;
+	OS_NATIVE_ENTER(env, that, _1gdk_1window_1is_1viewable_FUNC);
+	rc = (jboolean)gdk_window_is_viewable((GdkWindow *)arg0);
+	OS_NATIVE_EXIT(env, that, _1gdk_1window_1is_1viewable_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1gdk_1window_1is_1visible
 JNIEXPORT jboolean JNICALL OS_NATIVE(_1gdk_1window_1is_1visible)
 	(JNIEnv *env, jclass that, jintLong arg0)
@@ -7298,6 +7421,35 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1accel_1label_1set_1accel_1widget)
 }
 #endif
 
+#ifndef NO__1gtk_1accelerator_1get_1default_1mod_1mask
+JNIEXPORT jint JNICALL OS_NATIVE(_1gtk_1accelerator_1get_1default_1mod_1mask)
+	(JNIEnv *env, jclass that)
+{
+	jint rc = 0;
+	OS_NATIVE_ENTER(env, that, _1gtk_1accelerator_1get_1default_1mod_1mask_FUNC);
+	rc = (jint)gtk_accelerator_get_default_mod_mask();
+	OS_NATIVE_EXIT(env, that, _1gtk_1accelerator_1get_1default_1mod_1mask_FUNC);
+	return rc;
+}
+#endif
+
+#ifndef NO__1gtk_1accelerator_1parse
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1accelerator_1parse)
+	(JNIEnv *env, jclass that, jintLong arg0, jintArray arg1, jintArray arg2)
+{
+	jint *lparg1=NULL;
+	jint *lparg2=NULL;
+	OS_NATIVE_ENTER(env, that, _1gtk_1accelerator_1parse_FUNC);
+	if (arg1) if ((lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL)) == NULL) goto fail;
+	if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
+	gtk_accelerator_parse((const gchar *)arg0, (guint *)lparg1, (GdkModifierType *)lparg2);
+fail:
+	if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
+	if (arg1 && lparg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
+	OS_NATIVE_EXIT(env, that, _1gtk_1accelerator_1parse_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1adjustment_1changed
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1adjustment_1changed)
 	(JNIEnv *env, jclass that, jintLong arg0)
@@ -7448,6 +7600,24 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1button_1set_1relief)
 }
 #endif
 
+#ifndef NO__1gtk_1calendar_1clear_1marks
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1calendar_1clear_1marks)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1calendar_1clear_1marks_FUNC);
+/*
+	gtk_calendar_clear_marks((GtkCalendar *)arg0);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_calendar_clear_marks)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(GtkCalendar *))fp)((GtkCalendar *)arg0);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1calendar_1clear_1marks_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1calendar_1display_1options
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1calendar_1display_1options)
 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
@@ -7494,6 +7664,24 @@ fail:
 }
 #endif
 
+#ifndef NO__1gtk_1calendar_1mark_1day
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1calendar_1mark_1day)
+	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1calendar_1mark_1day_FUNC);
+/*
+	gtk_calendar_mark_day((GtkCalendar *)arg0, (guint)arg1);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_calendar_mark_day)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(GtkCalendar *, guint))fp)((GtkCalendar *)arg0, (guint)arg1);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1calendar_1mark_1day_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1calendar_1new
 JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1calendar_1new)
 	(JNIEnv *env, jclass that)
@@ -7752,6 +7940,24 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1clipboard_1get)
 }
 #endif
 
+#ifndef NO__1gtk_1clipboard_1set_1can_1store
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1clipboard_1set_1can_1store)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1clipboard_1set_1can_1store_FUNC);
+/*
+	gtk_clipboard_set_can_store((GtkClipboard *)arg0, (const GtkTargetEntry *)arg1, (gint)arg2);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_clipboard_set_can_store)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(GtkClipboard *, const GtkTargetEntry *, gint))fp)((GtkClipboard *)arg0, (const GtkTargetEntry *)arg1, (gint)arg2);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1clipboard_1set_1can_1store_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1clipboard_1set_1with_1data
 JNIEXPORT jboolean JNICALL OS_NATIVE(_1gtk_1clipboard_1set_1with_1data)
 	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2, jintLong arg3, jintLong arg4, jintLong arg5)
@@ -7776,6 +7982,24 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(_1gtk_1clipboard_1set_1with_1owner)
 }
 #endif
 
+#ifndef NO__1gtk_1clipboard_1store
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1clipboard_1store)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1clipboard_1store_FUNC);
+/*
+	gtk_clipboard_store((GtkClipboard *)arg0);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_clipboard_store)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(GtkClipboard *))fp)((GtkClipboard *)arg0);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1clipboard_1store_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1clipboard_1wait_1for_1contents
 JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1clipboard_1wait_1for_1contents)
 	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
@@ -11822,6 +12046,26 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(_1gtk_1print_1settings_1get_1collate)
 }
 #endif
 
+#ifndef NO__1gtk_1print_1settings_1get_1duplex
+JNIEXPORT jint JNICALL OS_NATIVE(_1gtk_1print_1settings_1get_1duplex)
+	(JNIEnv *env, jclass that, jintLong arg0)
+{
+	jint rc = 0;
+	OS_NATIVE_ENTER(env, that, _1gtk_1print_1settings_1get_1duplex_FUNC);
+/*
+	rc = (jint)gtk_print_settings_get_duplex(arg0);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_print_settings_get_duplex)
+		if (fp) {
+			rc = (jint)((jint (CALLING_CONVENTION*)(jintLong))fp)(arg0);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1print_1settings_1get_1duplex_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1gtk_1print_1settings_1get_1n_1copies
 JNIEXPORT jint JNICALL OS_NATIVE(_1gtk_1print_1settings_1get_1n_1copies)
 	(JNIEnv *env, jclass that, jintLong arg0)
@@ -12049,6 +12293,24 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1settings_1set_1collate)
 }
 #endif
 
+#ifndef NO__1gtk_1print_1settings_1set_1duplex
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1settings_1set_1duplex)
+	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1print_1settings_1set_1duplex_FUNC);
+/*
+	gtk_print_settings_set_duplex(arg0, arg1);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_print_settings_set_duplex)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(jintLong, jint))fp)(arg0, arg1);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1print_1settings_1set_1duplex_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1print_1settings_1set_1n_1copies
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1settings_1set_1n_1copies)
 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
@@ -12269,6 +12531,24 @@ JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1unix_1dialog_1set_1current_1page)
 }
 #endif
 
+#ifndef NO__1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup)
+	(JNIEnv *env, jclass that, jintLong arg0, jboolean arg1)
+{
+	OS_NATIVE_ENTER(env, that, _1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup_FUNC);
+/*
+	gtk_print_unix_dialog_set_embed_page_setup(arg0, arg1);
+*/
+	{
+		LOAD_FUNCTION(fp, gtk_print_unix_dialog_set_embed_page_setup)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(jintLong, jboolean))fp)(arg0, arg1);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, _1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup_FUNC);
+}
+#endif
+
 #ifndef NO__1gtk_1print_1unix_1dialog_1set_1manual_1capabilities
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1print_1unix_1dialog_1set_1manual_1capabilities)
 	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
@@ -13013,6 +13293,18 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1status_1icon_1new)
 }
 #endif
 
+#ifndef NO__1gtk_1status_1icon_1position_1menu_1func
+JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1status_1icon_1position_1menu_1func)
+	(JNIEnv *env, jclass that)
+{
+	jintLong rc = 0;
+	OS_NATIVE_ENTER(env, that, _1gtk_1status_1icon_1position_1menu_1func_FUNC);
+	rc = (jintLong)gtk_status_icon_position_menu_func();
+	OS_NATIVE_EXIT(env, that, _1gtk_1status_1icon_1position_1menu_1func_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO__1gtk_1status_1icon_1set_1from_1pixbuf
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1status_1icon_1set_1from_1pixbuf)
 	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
@@ -17513,6 +17805,16 @@ JNIEXPORT void JNICALL OS_NATIVE(_1pango_1font_1description_1set_1style)
 }
 #endif
 
+#ifndef NO__1pango_1font_1description_1set_1variant
+JNIEXPORT void JNICALL OS_NATIVE(_1pango_1font_1description_1set_1variant)
+	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
+{
+	OS_NATIVE_ENTER(env, that, _1pango_1font_1description_1set_1variant_FUNC);
+	pango_font_description_set_variant((PangoFontDescription *)arg0, (PangoVariant)arg1);
+	OS_NATIVE_EXIT(env, that, _1pango_1font_1description_1set_1variant_FUNC);
+}
+#endif
+
 #ifndef NO__1pango_1font_1description_1set_1weight
 JNIEXPORT void JNICALL OS_NATIVE(_1pango_1font_1description_1set_1weight)
 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1)
@@ -18401,6 +18703,54 @@ JNIEXPORT void JNICALL OS_NATIVE(g_1value_1unset)
 }
 #endif
 
+#ifndef NO_gdk_1threads_1enter
+JNIEXPORT void JNICALL OS_NATIVE(gdk_1threads_1enter)
+	(JNIEnv *env, jclass that)
+{
+	OS_NATIVE_ENTER(env, that, gdk_1threads_1enter_FUNC);
+	gdk_threads_enter();
+	OS_NATIVE_EXIT(env, that, gdk_1threads_1enter_FUNC);
+}
+#endif
+
+#ifndef NO_gdk_1threads_1init
+JNIEXPORT void JNICALL OS_NATIVE(gdk_1threads_1init)
+	(JNIEnv *env, jclass that)
+{
+	OS_NATIVE_ENTER(env, that, gdk_1threads_1init_FUNC);
+	gdk_threads_init();
+	OS_NATIVE_EXIT(env, that, gdk_1threads_1init_FUNC);
+}
+#endif
+
+#ifndef NO_gdk_1threads_1leave
+JNIEXPORT void JNICALL OS_NATIVE(gdk_1threads_1leave)
+	(JNIEnv *env, jclass that)
+{
+	OS_NATIVE_ENTER(env, that, gdk_1threads_1leave_FUNC);
+	gdk_threads_leave();
+	OS_NATIVE_EXIT(env, that, gdk_1threads_1leave_FUNC);
+}
+#endif
+
+#ifndef NO_gdk_1threads_1set_1lock_1functions
+JNIEXPORT void JNICALL OS_NATIVE(gdk_1threads_1set_1lock_1functions)
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
+{
+	OS_NATIVE_ENTER(env, that, gdk_1threads_1set_1lock_1functions_FUNC);
+/*
+	gdk_threads_set_lock_functions(arg0, arg1);
+*/
+	{
+		LOAD_FUNCTION(fp, gdk_threads_set_lock_functions)
+		if (fp) {
+			((void (CALLING_CONVENTION*)(jintLong, jintLong))fp)(arg0, arg1);
+		}
+	}
+	OS_NATIVE_EXIT(env, that, gdk_1threads_1set_1lock_1functions_FUNC);
+}
+#endif
+
 #ifndef NO_localeconv_1decimal_1point
 JNIEXPORT jintLong JNICALL OS_NATIVE(localeconv_1decimal_1point)
 	(JNIEnv *env, jclass that)
diff --git a/os_custom.c b/os_custom.c
index 704af6c..c964103 100644
--- a/os_custom.c
+++ b/os_custom.c
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000, 2008 IBM Corporation and others. All rights reserved.
+* Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
 * The contents of this file are made available under the terms
 * of the GNU Lesser General Public License (LGPL) Version 2.1 that
 * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -118,3 +118,72 @@ fail:
 }
 #endif
 
+glong g_utf16_strlen(const gchar *str, glong max) {
+	const gchar *s = str;
+	guchar ch;
+	glong offset = 0;
+	if (!s || max == 0) return 0;
+	if (max < 0) {
+		while (*s) {
+			if (0xf0 <= *(guchar*)s && *(guchar*)s <= 0xfd) offset++;
+			s = g_utf8_next_char (s);
+			offset++;
+		}
+		
+	} else {
+		while (*s) {
+			ch = *(guchar*)s;
+			s = g_utf8_next_char (s);
+			if (s - str > max) break;
+			if (0xf0 <= ch && ch <= 0xfd) offset++;
+			offset++;
+		}
+	}
+	return offset;
+}
+
+glong g_utf16_pointer_to_offset(const gchar *str, const gchar * pos) {
+	const gchar *s = str;
+	glong offset = 0;
+	if (!s || !pos) return 0; 
+	while (s < pos && *s) {
+		if (0xf0 <= *(guchar*)s && *(guchar*)s <= 0xfd) offset++;
+		s = g_utf8_next_char (s);
+		offset++;
+	}
+	return offset;
+}
+
+gchar* g_utf16_offset_to_pointer(const gchar* str, glong offset) {
+	const gchar *s = str;
+	if (!s) return 0; 
+	while (offset-- > 0 && *s) {
+		if (0xf0 <= *(guchar*)s && *(guchar*)s <= 0xfd) offset--;
+		s = g_utf8_next_char (s);
+	}
+	return (gchar *)s;
+}
+
+glong g_utf16_offset_to_utf8_offset(const gchar* str, glong offset) {
+	glong r = 0;
+	const gchar *s = str;
+	if (!s) return 0;
+	while (offset-- > 0 && *s) {
+		if (0xf0 <= *(guchar*)s && *(guchar*)s <= 0xfd) offset--;
+		s = g_utf8_next_char (s);
+		r++;
+	}
+	return r;
+}
+
+glong g_utf8_offset_to_utf16_offset(const gchar* str, glong offset) {
+	glong r = 0;
+	const gchar *s = str;
+	if (!s) return 0;
+	while (offset-- > 0 && *s) {
+		if (0xf0 <= *(guchar*)s && *(guchar*)s <= 0xfd) r++;
+		s = g_utf8_next_char (s);
+		r++;
+	}
+	return r;
+}
diff --git a/os_custom.h b/os_custom.h
index 1f2b7de..ecf7d7b 100644
--- a/os_custom.h
+++ b/os_custom.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+* Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
 * The contents of this file are made available under the terms
 * of the GNU Lesser General Public License (LGPL) Version 2.1 that
 * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -68,8 +68,12 @@
 #define gtk_calendar_get_date_LIB LIB_GTK
 #define gtk_calendar_new_LIB LIB_GTK
 #define gtk_calendar_select_day_LIB LIB_GTK
+#define gtk_calendar_mark_day_LIB LIB_GTK
+#define gtk_calendar_clear_marks_LIB LIB_GTK
 #define gtk_calendar_select_month_LIB LIB_GTK
 #define gtk_calendar_set_display_options_LIB LIB_GTK
+#define gtk_clipboard_store_LIB LIB_GTK
+#define gtk_clipboard_set_can_store_LIB LIB_GTK
 #define gtk_cell_layout_set_attributes_LIB LIB_GTK
 #define gtk_cell_layout_clear_LIB LIB_GTK
 #define gtk_cell_layout_pack_start_LIB LIB_GTK
@@ -145,6 +149,7 @@
 #define gtk_status_icon_set_from_pixbuf_LIB LIB_GTK
 #define gtk_status_icon_set_visible_LIB LIB_GTK
 #define gtk_status_icon_set_tooltip_LIB LIB_GTK
+#define gtk_status_icon_position_menu_LIB LIB_GTK
 #define gtk_window_get_group_LIB LIB_GTK
 #define gtk_window_get_opacity_LIB LIB_GTK
 #define gdk_window_restack_LIB LIB_GDK
@@ -156,6 +161,7 @@
 #define gtk_widget_set_tooltip_text_LIB LIB_GTK
 #define gdk_x11_screen_get_window_manager_name_LIB LIB_GDK
 #define gdk_x11_screen_lookup_visual_LIB LIB_GDK
+#define gdk_threads_set_lock_functions_LIB LIB_GDK
 
 #define atk_object_add_relationship_LIB LIB_ATK
 #define atk_object_remove_relationship_LIB LIB_ATK
@@ -217,6 +223,7 @@
 #define gtk_print_settings_foreach_LIB LIB_GTK
 #define gtk_print_settings_get_LIB LIB_GTK
 #define gtk_print_settings_get_collate_LIB LIB_GTK
+#define gtk_print_settings_get_duplex_LIB LIB_GTK
 #define gtk_print_settings_get_n_copies_LIB LIB_GTK
 #define gtk_print_settings_get_orientation_LIB LIB_GTK
 #define gtk_print_settings_get_page_ranges_LIB LIB_GTK
@@ -228,6 +235,7 @@
 #define gtk_print_settings_new_LIB LIB_GTK
 #define gtk_print_settings_set_LIB LIB_GTK
 #define gtk_print_settings_set_collate_LIB LIB_GTK
+#define gtk_print_settings_set_duplex_LIB LIB_GTK
 #define gtk_print_settings_set_n_copies_LIB LIB_GTK
 #define gtk_print_settings_set_orientation_LIB LIB_GTK
 #define gtk_print_settings_set_page_ranges_LIB LIB_GTK
@@ -240,6 +248,7 @@
 #define gtk_print_unix_dialog_new_LIB LIB_GTK
 #define gtk_print_unix_dialog_set_current_page_LIB LIB_GTK
 #define gtk_print_unix_dialog_set_manual_capabilities_LIB LIB_GTK
+#define gtk_print_unix_dialog_set_embed_page_setup_LIB LIB_GTK
 #define gtk_print_unix_dialog_set_page_setup_LIB LIB_GTK
 #define gtk_print_unix_dialog_set_settings_LIB LIB_GTK
 #define gtk_printer_get_backend_LIB LIB_GTK
@@ -343,3 +352,12 @@
 #define gtk_style_get_white_gc(arg0, arg1) *arg1 = (arg0)->white_gc
 #define localeconv_decimal_point() localeconv()->decimal_point
 
+#define gtk_status_icon_position_menu_func() 0; \
+LOAD_FUNCTION(fp, gtk_status_icon_position_menu) \
+rc = (jintLong)fp;
+
+glong g_utf16_pointer_to_offset(const gchar*, const gchar*);
+gchar* g_utf16_offset_to_pointer(const gchar*, glong);
+glong g_utf16_strlen(const gchar*, glong max);
+glong g_utf16_offset_to_utf8_offset(const gchar*, glong);
+glong g_utf8_offset_to_utf16_offset(const gchar*, glong);
diff --git a/os_stats.c b/os_stats.c
index 9e17829..a835169 100644
--- a/os_stats.c
+++ b/os_stats.c
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -18,8 +18,8 @@
 
 #ifdef NATIVE_STATS
 
-int OS_nativeFunctionCount = 1370;
-int OS_nativeFunctionCallCount[1370];
+int OS_nativeFunctionCount = 1393;
+int OS_nativeFunctionCallCount[1393];
 char * OS_nativeFunctionNames[] = {
 #ifndef JNI64
 	"Call__IIII",
@@ -265,6 +265,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1g_1list_1data",
 	"_1g_1list_1free",
 	"_1g_1list_1free_11",
+	"_1g_1list_1last",
 	"_1g_1list_1length",
 	"_1g_1list_1next",
 	"_1g_1list_1nth",
@@ -290,7 +291,16 @@ char * OS_nativeFunctionNames[] = {
 	"_1g_1main_1context_1query",
 	"_1g_1main_1context_1release",
 	"_1g_1malloc",
-	"_1g_1object_1get",
+#ifndef JNI64
+	"_1g_1object_1get__I_3B_3II",
+#else
+	"_1g_1object_1get__J_3B_3IJ",
+#endif
+#ifndef JNI64
+	"_1g_1object_1get__I_3B_3JI",
+#else
+	"_1g_1object_1get__J_3B_3JJ",
+#endif
 	"_1g_1object_1get_1qdata",
 	"_1g_1object_1new",
 	"_1g_1object_1notify",
@@ -389,8 +399,13 @@ char * OS_nativeFunctionNames[] = {
 	"_1g_1type_1parent",
 	"_1g_1type_1query",
 	"_1g_1type_1register_1static",
+	"_1g_1utf16_1offset_1to_1pointer",
+	"_1g_1utf16_1offset_1to_1utf8_1offset",
+	"_1g_1utf16_1pointer_1to_1offset",
+	"_1g_1utf16_1strlen",
 	"_1g_1utf16_1to_1utf8",
 	"_1g_1utf8_1offset_1to_1pointer",
+	"_1g_1utf8_1offset_1to_1utf16_1offset",
 	"_1g_1utf8_1pointer_1to_1offset",
 	"_1g_1utf8_1strlen",
 #ifndef JNI64
@@ -556,6 +571,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1gdk_1window_1hide",
 	"_1gdk_1window_1invalidate_1rect",
 	"_1gdk_1window_1invalidate_1region",
+	"_1gdk_1window_1is_1viewable",
 	"_1gdk_1window_1is_1visible",
 	"_1gdk_1window_1lookup",
 	"_1gdk_1window_1lower",
@@ -594,6 +610,8 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1accel_1group_1new",
 	"_1gtk_1accel_1groups_1activate",
 	"_1gtk_1accel_1label_1set_1accel_1widget",
+	"_1gtk_1accelerator_1get_1default_1mod_1mask",
+	"_1gtk_1accelerator_1parse",
 	"_1gtk_1adjustment_1changed",
 	"_1gtk_1adjustment_1new",
 	"_1gtk_1adjustment_1set_1value",
@@ -608,8 +626,10 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1button_1get_1relief",
 	"_1gtk_1button_1new",
 	"_1gtk_1button_1set_1relief",
+	"_1gtk_1calendar_1clear_1marks",
 	"_1gtk_1calendar_1display_1options",
 	"_1gtk_1calendar_1get_1date",
+	"_1gtk_1calendar_1mark_1day",
 	"_1gtk_1calendar_1new",
 	"_1gtk_1calendar_1select_1day",
 	"_1gtk_1calendar_1select_1month",
@@ -628,8 +648,10 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1check_1version",
 	"_1gtk_1clipboard_1clear",
 	"_1gtk_1clipboard_1get",
+	"_1gtk_1clipboard_1set_1can_1store",
 	"_1gtk_1clipboard_1set_1with_1data",
 	"_1gtk_1clipboard_1set_1with_1owner",
+	"_1gtk_1clipboard_1store",
 	"_1gtk_1clipboard_1wait_1for_1contents",
 	"_1gtk_1color_1selection_1dialog_1new",
 	"_1gtk_1color_1selection_1get_1current_1color",
@@ -930,6 +952,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1print_1settings_1foreach",
 	"_1gtk_1print_1settings_1get",
 	"_1gtk_1print_1settings_1get_1collate",
+	"_1gtk_1print_1settings_1get_1duplex",
 	"_1gtk_1print_1settings_1get_1n_1copies",
 	"_1gtk_1print_1settings_1get_1orientation",
 	"_1gtk_1print_1settings_1get_1page_1ranges",
@@ -941,6 +964,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1print_1settings_1new",
 	"_1gtk_1print_1settings_1set",
 	"_1gtk_1print_1settings_1set_1collate",
+	"_1gtk_1print_1settings_1set_1duplex",
 	"_1gtk_1print_1settings_1set_1n_1copies",
 	"_1gtk_1print_1settings_1set_1orientation",
 	"_1gtk_1print_1settings_1set_1page_1ranges",
@@ -952,6 +976,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1print_1unix_1dialog_1get_1settings",
 	"_1gtk_1print_1unix_1dialog_1new",
 	"_1gtk_1print_1unix_1dialog_1set_1current_1page",
+	"_1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup",
 	"_1gtk_1print_1unix_1dialog_1set_1manual_1capabilities",
 	"_1gtk_1print_1unix_1dialog_1set_1page_1setup",
 	"_1gtk_1print_1unix_1dialog_1set_1settings",
@@ -1011,6 +1036,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1gtk_1status_1icon_1get_1geometry",
 	"_1gtk_1status_1icon_1get_1visible",
 	"_1gtk_1status_1icon_1new",
+	"_1gtk_1status_1icon_1position_1menu_1func",
 	"_1gtk_1status_1icon_1set_1from_1pixbuf",
 	"_1gtk_1status_1icon_1set_1tooltip",
 	"_1gtk_1status_1icon_1set_1visible",
@@ -1407,6 +1433,7 @@ char * OS_nativeFunctionNames[] = {
 	"_1pango_1font_1description_1set_1size",
 	"_1pango_1font_1description_1set_1stretch",
 	"_1pango_1font_1description_1set_1style",
+	"_1pango_1font_1description_1set_1variant",
 	"_1pango_1font_1description_1set_1weight",
 	"_1pango_1font_1description_1to_1string",
 	"_1pango_1font_1face_1describe",
@@ -1476,6 +1503,10 @@ char * OS_nativeFunctionNames[] = {
 	"g_1value_1set_1int",
 	"g_1value_1set_1int64",
 	"g_1value_1unset",
+	"gdk_1threads_1enter",
+	"gdk_1threads_1init",
+	"gdk_1threads_1leave",
+	"gdk_1threads_1set_1lock_1functions",
 	"localeconv_1decimal_1point",
 #ifndef JNI64
 	"memmove__ILorg_eclipse_swt_internal_gtk_GInterfaceInfo_2I",
diff --git a/os_stats.h b/os_stats.h
index 6901aa2..4f42ff4 100644
--- a/os_stats.h
+++ b/os_stats.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -273,6 +273,7 @@ typedef enum {
 	_1g_1list_1data_FUNC,
 	_1g_1list_1free_FUNC,
 	_1g_1list_1free_11_FUNC,
+	_1g_1list_1last_FUNC,
 	_1g_1list_1length_FUNC,
 	_1g_1list_1next_FUNC,
 	_1g_1list_1nth_FUNC,
@@ -298,7 +299,16 @@ typedef enum {
 	_1g_1main_1context_1query_FUNC,
 	_1g_1main_1context_1release_FUNC,
 	_1g_1malloc_FUNC,
-	_1g_1object_1get_FUNC,
+#ifndef JNI64
+	_1g_1object_1get__I_3B_3II_FUNC,
+#else
+	_1g_1object_1get__J_3B_3IJ_FUNC,
+#endif
+#ifndef JNI64
+	_1g_1object_1get__I_3B_3JI_FUNC,
+#else
+	_1g_1object_1get__J_3B_3JJ_FUNC,
+#endif
 	_1g_1object_1get_1qdata_FUNC,
 	_1g_1object_1new_FUNC,
 	_1g_1object_1notify_FUNC,
@@ -397,8 +407,13 @@ typedef enum {
 	_1g_1type_1parent_FUNC,
 	_1g_1type_1query_FUNC,
 	_1g_1type_1register_1static_FUNC,
+	_1g_1utf16_1offset_1to_1pointer_FUNC,
+	_1g_1utf16_1offset_1to_1utf8_1offset_FUNC,
+	_1g_1utf16_1pointer_1to_1offset_FUNC,
+	_1g_1utf16_1strlen_FUNC,
 	_1g_1utf16_1to_1utf8_FUNC,
 	_1g_1utf8_1offset_1to_1pointer_FUNC,
+	_1g_1utf8_1offset_1to_1utf16_1offset_FUNC,
 	_1g_1utf8_1pointer_1to_1offset_FUNC,
 	_1g_1utf8_1strlen_FUNC,
 #ifndef JNI64
@@ -564,6 +579,7 @@ typedef enum {
 	_1gdk_1window_1hide_FUNC,
 	_1gdk_1window_1invalidate_1rect_FUNC,
 	_1gdk_1window_1invalidate_1region_FUNC,
+	_1gdk_1window_1is_1viewable_FUNC,
 	_1gdk_1window_1is_1visible_FUNC,
 	_1gdk_1window_1lookup_FUNC,
 	_1gdk_1window_1lower_FUNC,
@@ -602,6 +618,8 @@ typedef enum {
 	_1gtk_1accel_1group_1new_FUNC,
 	_1gtk_1accel_1groups_1activate_FUNC,
 	_1gtk_1accel_1label_1set_1accel_1widget_FUNC,
+	_1gtk_1accelerator_1get_1default_1mod_1mask_FUNC,
+	_1gtk_1accelerator_1parse_FUNC,
 	_1gtk_1adjustment_1changed_FUNC,
 	_1gtk_1adjustment_1new_FUNC,
 	_1gtk_1adjustment_1set_1value_FUNC,
@@ -616,8 +634,10 @@ typedef enum {
 	_1gtk_1button_1get_1relief_FUNC,
 	_1gtk_1button_1new_FUNC,
 	_1gtk_1button_1set_1relief_FUNC,
+	_1gtk_1calendar_1clear_1marks_FUNC,
 	_1gtk_1calendar_1display_1options_FUNC,
 	_1gtk_1calendar_1get_1date_FUNC,
+	_1gtk_1calendar_1mark_1day_FUNC,
 	_1gtk_1calendar_1new_FUNC,
 	_1gtk_1calendar_1select_1day_FUNC,
 	_1gtk_1calendar_1select_1month_FUNC,
@@ -636,8 +656,10 @@ typedef enum {
 	_1gtk_1check_1version_FUNC,
 	_1gtk_1clipboard_1clear_FUNC,
 	_1gtk_1clipboard_1get_FUNC,
+	_1gtk_1clipboard_1set_1can_1store_FUNC,
 	_1gtk_1clipboard_1set_1with_1data_FUNC,
 	_1gtk_1clipboard_1set_1with_1owner_FUNC,
+	_1gtk_1clipboard_1store_FUNC,
 	_1gtk_1clipboard_1wait_1for_1contents_FUNC,
 	_1gtk_1color_1selection_1dialog_1new_FUNC,
 	_1gtk_1color_1selection_1get_1current_1color_FUNC,
@@ -938,6 +960,7 @@ typedef enum {
 	_1gtk_1print_1settings_1foreach_FUNC,
 	_1gtk_1print_1settings_1get_FUNC,
 	_1gtk_1print_1settings_1get_1collate_FUNC,
+	_1gtk_1print_1settings_1get_1duplex_FUNC,
 	_1gtk_1print_1settings_1get_1n_1copies_FUNC,
 	_1gtk_1print_1settings_1get_1orientation_FUNC,
 	_1gtk_1print_1settings_1get_1page_1ranges_FUNC,
@@ -949,6 +972,7 @@ typedef enum {
 	_1gtk_1print_1settings_1new_FUNC,
 	_1gtk_1print_1settings_1set_FUNC,
 	_1gtk_1print_1settings_1set_1collate_FUNC,
+	_1gtk_1print_1settings_1set_1duplex_FUNC,
 	_1gtk_1print_1settings_1set_1n_1copies_FUNC,
 	_1gtk_1print_1settings_1set_1orientation_FUNC,
 	_1gtk_1print_1settings_1set_1page_1ranges_FUNC,
@@ -960,6 +984,7 @@ typedef enum {
 	_1gtk_1print_1unix_1dialog_1get_1settings_FUNC,
 	_1gtk_1print_1unix_1dialog_1new_FUNC,
 	_1gtk_1print_1unix_1dialog_1set_1current_1page_FUNC,
+	_1gtk_1print_1unix_1dialog_1set_1embed_1page_1setup_FUNC,
 	_1gtk_1print_1unix_1dialog_1set_1manual_1capabilities_FUNC,
 	_1gtk_1print_1unix_1dialog_1set_1page_1setup_FUNC,
 	_1gtk_1print_1unix_1dialog_1set_1settings_FUNC,
@@ -1019,6 +1044,7 @@ typedef enum {
 	_1gtk_1status_1icon_1get_1geometry_FUNC,
 	_1gtk_1status_1icon_1get_1visible_FUNC,
 	_1gtk_1status_1icon_1new_FUNC,
+	_1gtk_1status_1icon_1position_1menu_1func_FUNC,
 	_1gtk_1status_1icon_1set_1from_1pixbuf_FUNC,
 	_1gtk_1status_1icon_1set_1tooltip_FUNC,
 	_1gtk_1status_1icon_1set_1visible_FUNC,
@@ -1415,6 +1441,7 @@ typedef enum {
 	_1pango_1font_1description_1set_1size_FUNC,
 	_1pango_1font_1description_1set_1stretch_FUNC,
 	_1pango_1font_1description_1set_1style_FUNC,
+	_1pango_1font_1description_1set_1variant_FUNC,
 	_1pango_1font_1description_1set_1weight_FUNC,
 	_1pango_1font_1description_1to_1string_FUNC,
 	_1pango_1font_1face_1describe_FUNC,
@@ -1484,6 +1511,10 @@ typedef enum {
 	g_1value_1set_1int_FUNC,
 	g_1value_1set_1int64_FUNC,
 	g_1value_1unset_FUNC,
+	gdk_1threads_1enter_FUNC,
+	gdk_1threads_1init_FUNC,
+	gdk_1threads_1leave_FUNC,
+	gdk_1threads_1set_1lock_1functions_FUNC,
 	localeconv_1decimal_1point_FUNC,
 #ifndef JNI64
 	memmove__ILorg_eclipse_swt_internal_gtk_GInterfaceInfo_2I_FUNC,
diff --git a/swt.h b/swt.h
index 55756a6..67b75b6 100644
--- a/swt.h
+++ b/swt.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/version.txt b/version.txt
index 2e1a874..9c3c4c6 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-version 3.659
\ No newline at end of file
+version 3.735
\ No newline at end of file
diff --git a/webkitgtk.h b/webkitgtk.h
index 05b9a2e..90685cf 100644
--- a/webkitgtk.h
+++ b/webkitgtk.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2009, 2011 IBM Corporation and others. All rights reserved.
  * The contents of this file are made available under the terms
  * of the GNU Lesser General Public License (LGPL) Version 2.1 that
  * accompanies this distribution (lgpl-v21.txt).  The LGPL is also
@@ -31,4 +31,9 @@
 #include <webkit/webkitwebpolicydecision.h>
 #include <webkit/webkitwebsettings.h>
 #include <webkit/webkitwebview.h>
+
+#if WEBKIT_CHECK_VERSION(1,4,0)
+#include <webkit/webkitglobals.h>
+#endif
+
 #endif /* INC_webkitgtk_H */
diff --git a/xpcom_custom.cpp b/xpcom_custom.cpp
index 32741cf..78e2a00 100644
--- a/xpcom_custom.cpp
+++ b/xpcom_custom.cpp
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/xpcom_custom.h b/xpcom_custom.h
index 21bc338..5bfb56e 100644
--- a/xpcom_custom.h
+++ b/xpcom_custom.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2010 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/xpcominit.cpp b/xpcominit.cpp
index 45b342c..ac77109 100644
--- a/xpcominit.cpp
+++ b/xpcominit.cpp
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -15,6 +15,19 @@
 
 #define XPCOMInit_NATIVE(func) Java_org_eclipse_swt_internal_mozilla_init_XPCOMInit_##func
 
+#ifndef NO_GREProperty_1sizeof
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREProperty_1sizeof)(JNIEnv *env, jclass that);
+JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREProperty_1sizeof)
+	(JNIEnv *env, jclass that)
+{
+	jint rc = 0;
+	XPCOMInit_NATIVE_ENTER(env, that, GREProperty_1sizeof_FUNC);
+	rc = (jint)GREProperty_sizeof();
+	XPCOMInit_NATIVE_EXIT(env, that, GREProperty_1sizeof_FUNC);
+	return rc;
+}
+#endif
+
 #ifndef NO_GREVersionRange_1sizeof
 extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREVersionRange_1sizeof)(JNIEnv *env, jclass that);
 JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREVersionRange_1sizeof)
@@ -29,16 +42,19 @@ JNIEXPORT jint JNICALL XPCOMInit_NATIVE(GREVersionRange_1sizeof)
 #endif
 
 #ifndef NO__1GRE_1GetGREPathWithProperties
-extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1GRE_1GetGREPathWithProperties)(JNIEnv *env, jclass that, jobject arg0, jint arg1, jintLong arg2, jint arg3, jintLong arg4, jint arg5);
+extern "C" JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1GRE_1GetGREPathWithProperties)(JNIEnv *env, jclass that, jobject arg0, jint arg1, jobject arg2, jint arg3, jintLong arg4, jint arg5);
 JNIEXPORT jint JNICALL XPCOMInit_NATIVE(_1GRE_1GetGREPathWithProperties)
-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jintLong arg2, jint arg3, jintLong arg4, jint arg5)
+	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jobject arg2, jint arg3, jintLong arg4, jint arg5)
 {
 	GREVersionRange _arg0, *lparg0=NULL;
+	GREProperty _arg2, *lparg2=NULL;
 	jint rc = 0;
 	XPCOMInit_NATIVE_ENTER(env, that, _1GRE_1GetGREPathWithProperties_FUNC);
 	if (arg0) if ((lparg0 = getGREVersionRangeFields(env, arg0, &_arg0)) == NULL) goto fail;
-	rc = (jint)GRE_GetGREPathWithProperties((const GREVersionRange *)lparg0, arg1, (const GREProperty *)arg2, arg3, (char *)arg4, arg5);
+	if (arg2) if ((lparg2 = getGREPropertyFields(env, arg2, &_arg2)) == NULL) goto fail;
+	rc = (jint)GRE_GetGREPathWithProperties((const GREVersionRange *)lparg0, arg1, (const GREProperty *)lparg2, arg3, (char *)arg4, arg5);
 fail:
+	if (arg2 && lparg2) setGREPropertyFields(env, arg2, lparg2);
 	if (arg0 && lparg0) setGREVersionRangeFields(env, arg0, lparg0);
 	XPCOMInit_NATIVE_EXIT(env, that, _1GRE_1GetGREPathWithProperties_FUNC);
 	return rc;
diff --git a/xpcominit_stats.cpp b/xpcominit_stats.cpp
index 687a29a..84eb84c 100644
--- a/xpcominit_stats.cpp
+++ b/xpcominit_stats.cpp
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,9 +14,10 @@
 
 #ifdef NATIVE_STATS
 
-int XPCOMInit_nativeFunctionCount = 4;
-int XPCOMInit_nativeFunctionCallCount[4];
+int XPCOMInit_nativeFunctionCount = 5;
+int XPCOMInit_nativeFunctionCallCount[5];
 char * XPCOMInit_nativeFunctionNames[] = {
+	"GREProperty_1sizeof",
 	"GREVersionRange_1sizeof",
 	"_1GRE_1GetGREPathWithProperties",
 	"_1XPCOMGlueShutdown",
diff --git a/xpcominit_stats.h b/xpcominit_stats.h
index 048e3d7..20a17e9 100644
--- a/xpcominit_stats.h
+++ b/xpcominit_stats.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -25,6 +25,7 @@ extern char* XPCOMInit_nativeFunctionNames[];
 #endif
 
 typedef enum {
+	GREProperty_1sizeof_FUNC,
 	GREVersionRange_1sizeof_FUNC,
 	_1GRE_1GetGREPathWithProperties_FUNC,
 	_1XPCOMGlueShutdown_FUNC,
diff --git a/xpcominit_structs.cpp b/xpcominit_structs.cpp
index e9edfd6..31dff97 100644
--- a/xpcominit_structs.cpp
+++ b/xpcominit_structs.cpp
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,40 @@
 #include "swt.h"
 #include "xpcominit_structs.h"
 
+#ifndef NO_GREProperty
+typedef struct GREProperty_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID property, value;
+} GREProperty_FID_CACHE;
+
+GREProperty_FID_CACHE GREPropertyFc;
+
+void cacheGREPropertyFields(JNIEnv *env, jobject lpObject)
+{
+	if (GREPropertyFc.cached) return;
+	GREPropertyFc.clazz = env->GetObjectClass(lpObject);
+	GREPropertyFc.property = env->GetFieldID(GREPropertyFc.clazz, "property", I_J);
+	GREPropertyFc.value = env->GetFieldID(GREPropertyFc.clazz, "value", I_J);
+	GREPropertyFc.cached = 1;
+}
+
+GREProperty *getGREPropertyFields(JNIEnv *env, jobject lpObject, GREProperty *lpStruct)
+{
+	if (!GREPropertyFc.cached) cacheGREPropertyFields(env, lpObject);
+	lpStruct->property = (const char *)env->GetIntLongField(lpObject, GREPropertyFc.property);
+	lpStruct->value = (const char *)env->GetIntLongField(lpObject, GREPropertyFc.value);
+	return lpStruct;
+}
+
+void setGREPropertyFields(JNIEnv *env, jobject lpObject, GREProperty *lpStruct)
+{
+	if (!GREPropertyFc.cached) cacheGREPropertyFields(env, lpObject);
+	env->SetIntLongField(lpObject, GREPropertyFc.property, (jintLong)lpStruct->property);
+	env->SetIntLongField(lpObject, GREPropertyFc.value, (jintLong)lpStruct->value);
+}
+#endif
+
 #ifndef NO_GREVersionRange
 typedef struct GREVersionRange_FID_CACHE {
 	int cached;
diff --git a/xpcominit_structs.h b/xpcominit_structs.h
index 096a9da..1918384 100644
--- a/xpcominit_structs.h
+++ b/xpcominit_structs.h
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,6 +11,18 @@
 
 #include "xpcominit.h"
 
+#ifndef NO_GREProperty
+void cacheGREPropertyFields(JNIEnv *env, jobject lpObject);
+GREProperty *getGREPropertyFields(JNIEnv *env, jobject lpObject, GREProperty *lpStruct);
+void setGREPropertyFields(JNIEnv *env, jobject lpObject, GREProperty *lpStruct);
+#define GREProperty_sizeof() sizeof(GREProperty)
+#else
+#define cacheGREPropertyFields(a,b)
+#define getGREPropertyFields(a,b,c) NULL
+#define setGREPropertyFields(a,b,c)
+#define GREProperty_sizeof() 0
+#endif
+
 #ifndef NO_GREVersionRange
 void cacheGREVersionRangeFields(JNIEnv *env, jobject lpObject);
 GREVersionRange *getGREVersionRangeFields(JNIEnv *env, jobject lpObject, GREVersionRange *lpStruct);


hooks/post-receive
-- 
Debian packaging for swt-gtk.



More information about the pkg-java-commits mailing list