172792 - Pressing Ctrl+PageUp or PageDown in Search Window crashes JVM
diff --git a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.OS.properties b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.OS.properties
index 9bb59c0..ac8b635 100644
--- a/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.OS.properties
+++ b/bundles/org.eclipse.swt.tools/JNI Generation/org/eclipse/swt/tools/internal/org.eclipse.swt.internal.gtk.OS.properties
@@ -2976,6 +2976,12 @@
OS__gtk_notebook_new=
+OS__gtk_notebook_next_page=
+OS__gtk_notebook_next_page_0=cast=(GtkNotebook *)
+
+OS__gtk_notebook_prev_page=
+OS__gtk_notebook_prev_page_0=cast=(GtkNotebook *)
+
OS__gtk_notebook_remove_page=
OS__gtk_notebook_remove_page_0=cast=(GtkNotebook *)
OS__gtk_notebook_remove_page_1=cast=(gint)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
index 0e0b897..5f8b03b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
@@ -9200,6 +9200,26 @@
}
#endif
+#ifndef NO__1gtk_1notebook_1next_1page
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1notebook_1next_1page)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ OS_NATIVE_ENTER(env, that, _1gtk_1notebook_1next_1page_FUNC);
+ gtk_notebook_next_page((GtkNotebook *)arg0);
+ OS_NATIVE_EXIT(env, that, _1gtk_1notebook_1next_1page_FUNC);
+}
+#endif
+
+#ifndef NO__1gtk_1notebook_1prev_1page
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1notebook_1prev_1page)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ OS_NATIVE_ENTER(env, that, _1gtk_1notebook_1prev_1page_FUNC);
+ gtk_notebook_prev_page((GtkNotebook *)arg0);
+ OS_NATIVE_EXIT(env, that, _1gtk_1notebook_1prev_1page_FUNC);
+}
+#endif
+
#ifndef NO__1gtk_1notebook_1remove_1page
JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1notebook_1remove_1page)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
index b935378..8060f32 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
@@ -18,8 +18,8 @@
#ifdef NATIVE_STATS
-int OS_nativeFunctionCount = 1208;
-int OS_nativeFunctionCallCount[1208];
+int OS_nativeFunctionCount = 1210;
+int OS_nativeFunctionCallCount[1210];
char * OS_nativeFunctionNames[] = {
"Call",
"GDK_1EVENT_1TYPE",
@@ -674,6 +674,8 @@
"_1gtk_1notebook_1get_1scrollable",
"_1gtk_1notebook_1insert_1page",
"_1gtk_1notebook_1new",
+ "_1gtk_1notebook_1next_1page",
+ "_1gtk_1notebook_1prev_1page",
"_1gtk_1notebook_1remove_1page",
"_1gtk_1notebook_1set_1current_1page",
"_1gtk_1notebook_1set_1scrollable",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
index 437f379..f076ef8 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
@@ -682,6 +682,8 @@
_1gtk_1notebook_1get_1scrollable_FUNC,
_1gtk_1notebook_1insert_1page_FUNC,
_1gtk_1notebook_1new_FUNC,
+ _1gtk_1notebook_1next_1page_FUNC,
+ _1gtk_1notebook_1prev_1page_FUNC,
_1gtk_1notebook_1remove_1page_FUNC,
_1gtk_1notebook_1set_1current_1page_FUNC,
_1gtk_1notebook_1set_1scrollable_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index 83ba87c..23fcfcf 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -5735,6 +5735,24 @@
lock.unlock();
}
}
+public static final native void _gtk_notebook_next_page(int /*long*/ notebook);
+public static final void gtk_notebook_next_page(int /*long*/ notebook) {
+ lock.lock();
+ try {
+ _gtk_notebook_next_page(notebook);
+ } finally {
+ lock.unlock();
+ }
+}
+public static final native void _gtk_notebook_prev_page(int /*long*/ notebook);
+public static final void gtk_notebook_prev_page(int /*long*/ notebook) {
+ lock.lock();
+ try {
+ _gtk_notebook_prev_page(notebook);
+ } finally {
+ lock.unlock();
+ }
+}
public static final native void _gtk_notebook_remove_page(int /*long*/ notebook, int page_num);
public static final void gtk_notebook_remove_page(int /*long*/ notebook, int page_num) {
lock.lock();
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
index 847f29f..90b5726 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TabFolder.java
@@ -679,8 +679,12 @@
}
}
-boolean traversePage (boolean next) {
- OS.g_signal_emit_by_name (handle, OS.change_current_page, next ? 1 : -1);
+boolean traversePage (final boolean next) {
+ if (next) {
+ OS.gtk_notebook_next_page (handle);
+ } else {
+ OS.gtk_notebook_prev_page (handle);
+ }
return true;
}