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