2a679db
From eec69d54257dd905a06e43fb705f40df9326414e Mon Sep 17 00:00:00 2001
2a679db
From: Alexander Kurtakov
2a679db
Date: Fri, 20 Nov 2015 13:24:54 +0200
2a679db
Subject: Bug 466314 - [GTK3] Text in Forms abbreviated
2a679db
2a679db
Switching from gtk_text_view_scroll_mark_onscreen to
2a679db
gtk_text_view_scroll_to_mark gives us total control over the alignment
2a679db
allowing us to alway position to the 0 0.
2a679db
2a679db
Change-Id: I4fc141980e96c81cf65ef076a0224f0e4eee47ba
2a679db
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2a679db
---
2a679db
 .../org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c  | 20 ++++++++++----------
2a679db
 .../Eclipse SWT PI/gtk/library/os_stats.c            |  2 +-
2a679db
 .../Eclipse SWT PI/gtk/library/os_stats.h            |  2 +-
2a679db
 .../gtk/org/eclipse/swt/internal/gtk/OS.java         | 10 +++++++---
2a679db
 .../gtk/org/eclipse/swt/widgets/Text.java            | 12 ++++++------
2a679db
 5 files changed, 25 insertions(+), 21 deletions(-)
2a679db
2a679db
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
2a679db
index 7e937f0..c0dff7f 100644
2a679db
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c	
2a679db
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c	
2a679db
@@ -16167,16 +16167,6 @@ JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1text_1view_1new)
2a679db
 }
2a679db
 #endif
2a679db
 
2a679db
-#ifndef NO__1gtk_1text_1view_1scroll_1mark_1onscreen
2a679db
-JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1text_1view_1scroll_1mark_1onscreen)
2a679db
-	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1)
2a679db
-{
2a679db
-	OS_NATIVE_ENTER(env, that, _1gtk_1text_1view_1scroll_1mark_1onscreen_FUNC);
2a679db
-	gtk_text_view_scroll_mark_onscreen((GtkTextView *)arg0, (GtkTextMark *)arg1);
2a679db
-	OS_NATIVE_EXIT(env, that, _1gtk_1text_1view_1scroll_1mark_1onscreen_FUNC);
2a679db
-}
2a679db
-#endif
2a679db
-
2a679db
 #ifndef NO__1gtk_1text_1view_1scroll_1to_1iter
2a679db
 JNIEXPORT jboolean JNICALL OS_NATIVE(_1gtk_1text_1view_1scroll_1to_1iter)
2a679db
 	(JNIEnv *env, jclass that, jintLong arg0, jbyteArray arg1, jdouble arg2, jboolean arg3, jdouble arg4, jdouble arg5)
2a679db
@@ -16193,6 +16183,16 @@ fail:
2a679db
 }
2a679db
 #endif
2a679db
 
2a679db
+#ifndef NO__1gtk_1text_1view_1scroll_1to_1mark
2a679db
+JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1text_1view_1scroll_1to_1mark)
2a679db
+	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jdouble arg2, jboolean arg3, jdouble arg4, jdouble arg5)
2a679db
+{
2a679db
+	OS_NATIVE_ENTER(env, that, _1gtk_1text_1view_1scroll_1to_1mark_FUNC);
2a679db
+	gtk_text_view_scroll_to_mark((GtkTextView *)arg0, (GtkTextMark *)arg1, (gdouble)arg2, (gboolean)arg3, (gdouble)arg4, (gdouble)arg5);
2a679db
+	OS_NATIVE_EXIT(env, that, _1gtk_1text_1view_1scroll_1to_1mark_FUNC);
2a679db
+}
2a679db
+#endif
2a679db
+
2a679db
 #ifndef NO__1gtk_1text_1view_1set_1editable
2a679db
 JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1text_1view_1set_1editable)
2a679db
 	(JNIEnv *env, jclass that, jintLong arg0, jboolean arg1)
2a679db
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
2a679db
index 82775bd..bd9d7b5 100644
2a679db
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c	
2a679db
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c	
2a679db
@@ -1183,8 +1183,8 @@ char * OS_nativeFunctionNames[] = {
2a679db
 	"_1gtk_1text_1view_1get_1visible_1rect",
2a679db
 	"_1gtk_1text_1view_1get_1window",
2a679db
 	"_1gtk_1text_1view_1new",
2a679db
-	"_1gtk_1text_1view_1scroll_1mark_1onscreen",
2a679db
 	"_1gtk_1text_1view_1scroll_1to_1iter",
2a679db
+	"_1gtk_1text_1view_1scroll_1to_1mark",
2a679db
 	"_1gtk_1text_1view_1set_1editable",
2a679db
 	"_1gtk_1text_1view_1set_1justification",
2a679db
 	"_1gtk_1text_1view_1set_1tabs",
2a679db
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
2a679db
index a1d68ed..016b472 100644
2a679db
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h	
2a679db
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h	
2a679db
@@ -1193,8 +1193,8 @@ typedef enum {
2a679db
 	_1gtk_1text_1view_1get_1visible_1rect_FUNC,
2a679db
 	_1gtk_1text_1view_1get_1window_FUNC,
2a679db
 	_1gtk_1text_1view_1new_FUNC,
2a679db
-	_1gtk_1text_1view_1scroll_1mark_1onscreen_FUNC,
2a679db
 	_1gtk_1text_1view_1scroll_1to_1iter_FUNC,
2a679db
+	_1gtk_1text_1view_1scroll_1to_1mark_FUNC,
2a679db
 	_1gtk_1text_1view_1set_1editable_FUNC,
2a679db
 	_1gtk_1text_1view_1set_1justification_FUNC,
2a679db
 	_1gtk_1text_1view_1set_1tabs_FUNC,
2a679db
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
2a679db
index cf8cda6..0ee6dda 100644
2a679db
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	
2a679db
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	
2a679db
@@ -12528,12 +12528,16 @@ public static final long /*int*/ gtk_text_view_new() {
2a679db
 /**
2a679db
  * @param text_view cast=(GtkTextView *)
2a679db
  * @param mark cast=(GtkTextMark *)
2a679db
+ * @param within_margin cast=(gdouble)
2a679db
+ * @param use_align cast=(gboolean)
2a679db
+ * @param xalign cast=(gdouble)
2a679db
+ * @param yalign cast=(gdouble)
2a679db
  */
2a679db
-public static final native void _gtk_text_view_scroll_mark_onscreen(long /*int*/ text_view, long /*int*/ mark);
2a679db
-public static final void gtk_text_view_scroll_mark_onscreen(long /*int*/ text_view, long /*int*/ mark) {
2a679db
+public static final native void _gtk_text_view_scroll_to_mark(long /*int*/ text_view, long /*int*/ mark, double within_margin, boolean use_align, double xalign, double yalign);
2a679db
+public static final void gtk_text_view_scroll_to_mark(long /*int*/ text_view, long /*int*/ mark, double within_margin, boolean use_align, double xalign, double yalign) {
2a679db
 	lock.lock();
2a679db
 	try {
2a679db
-		_gtk_text_view_scroll_mark_onscreen(text_view, mark);
2a679db
+		_gtk_text_view_scroll_to_mark(text_view, mark, within_margin, use_align, xalign, yalign);
2a679db
 	} finally {
2a679db
 		lock.unlock();
2a679db
 	}
2a679db
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java
2a679db
index 9aa3a52..2865cd5 100644
2a679db
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java	
2a679db
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Text.java	
2a679db
@@ -414,7 +414,7 @@ public void append (String string) {
2a679db
 		OS.gtk_text_buffer_insert (bufferHandle, position, buffer, buffer.length);
2a679db
 		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
2a679db
 		long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
2a679db
-		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+		OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 	}
2a679db
 	applySegments ();
2a679db
 }
2a679db
@@ -1947,7 +1947,7 @@ public void insert (String string) {
2a679db
 		OS.gtk_text_buffer_insert (bufferHandle, start, buffer, buffer.length);
2a679db
 		OS.gtk_text_buffer_place_cursor (bufferHandle, start);
2a679db
 		long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
2a679db
-		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+		OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 	}
2a679db
 	applySegments ();
2a679db
 }
2a679db
@@ -2340,7 +2340,7 @@ public void setSelection (int start) {
2a679db
 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, startIter, start);
2a679db
 		OS.gtk_text_buffer_place_cursor (bufferHandle, startIter);
2a679db
 		long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
2a679db
-		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+		OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 	}
2a679db
 }
2a679db
 
2a679db
@@ -2563,7 +2563,7 @@ void setText (char [] text) {
2a679db
 		OS.gtk_text_buffer_get_iter_at_offset (bufferHandle, position, 0);
2a679db
 		OS.gtk_text_buffer_place_cursor (bufferHandle, position);
2a679db
 		long /*int*/ mark = OS.gtk_text_buffer_get_insert (bufferHandle);
2a679db
-		OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+		OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 		Arrays.fill (buffer, (byte) 0);
2a679db
 	}
2a679db
 	sendEvent (SWT.Modify);
2a679db
@@ -2644,9 +2644,9 @@ public void showSelection () {
2a679db
 	checkWidget ();
2a679db
 	if ((style & SWT.SINGLE) != 0) return;
2a679db
 	long /*int*/ mark = OS.gtk_text_buffer_get_selection_bound (bufferHandle);
2a679db
-	OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+	OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 	mark = OS.gtk_text_buffer_get_insert (bufferHandle);
2a679db
-	OS.gtk_text_view_scroll_mark_onscreen (handle, mark);
2a679db
+	OS.gtk_text_view_scroll_to_mark (handle, mark, 0, true, 0, 0);
2a679db
 }
2a679db
 
2a679db
 int translateOffset (int offset) {
2a679db
-- 
2a679db
cgit v0.11.2-4-g4a35
2a679db
2a679db