diff options
author | Olga Rodimina <rodimina@redhat.com> | 2003-12-01 20:23:50 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-12-01 20:23:50 +0000 |
commit | ea91ed098968dcee6c6e0bd028b8f2e2c9870547 (patch) | |
tree | 10ba7b5a79c3ddf7355b304a8ab24880141f025b /libjava/jni | |
parent | bde5dd25209b94a212a95f5ac15cc8d0d7156d45 (diff) | |
download | gcc-ea91ed098968dcee6c6e0bd028b8f2e2c9870547.zip gcc-ea91ed098968dcee6c6e0bd028b8f2e2c9870547.tar.gz gcc-ea91ed098968dcee6c6e0bd028b8f2e2c9870547.tar.bz2 |
2003-12-01 Olga Rodimina <rodimina@redhat.com>
* java/awt/TextComponent.java:
(getSelectionStart): Updated javadocs.
(getSelectionEnd): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer:
(getSelectionStart): Changed to return caret position if no
text is selected
(getSelectionEnd): Ditto.
From-SVN: r74124
Diffstat (limited to 'libjava/jni')
-rw-r--r-- | libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c index 95e114e..7e6d02f 100644 --- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c +++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c @@ -194,6 +194,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart GtkTextIter start; GtkTextIter end; int starti, endi; + GtkTextMark *mark; + GtkTextIter iter; ptr = NSA_GET_PTR (env, obj); @@ -204,6 +206,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart editable = GTK_EDITABLE (ptr); if (gtk_editable_get_selection_bounds (editable, &starti, &endi)) pos = starti; + else + pos = gtk_editable_get_position (editable); } else { @@ -221,6 +225,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); if (gtk_text_buffer_get_selection_bounds(buf, &start, &end)) pos = gtk_text_iter_get_offset (&start); + else + { + mark = gtk_text_buffer_get_insert (buf); + gtk_text_buffer_get_iter_at_mark (buf, &iter, mark); + pos = gtk_text_iter_get_offset (&iter); + } } } @@ -241,6 +251,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd GtkTextIter start; GtkTextIter end; int starti, endi; + GtkTextMark *mark; + GtkTextIter iter; ptr = NSA_GET_PTR (env, obj); @@ -251,6 +263,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd editable = GTK_EDITABLE (ptr); if (gtk_editable_get_selection_bounds (editable, &starti, &endi)) pos = endi; + else + pos = gtk_editable_get_position (editable); } else { @@ -268,6 +282,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); if (gtk_text_buffer_get_selection_bounds(buf, &start, &end)) pos = gtk_text_iter_get_offset (&end); + else + { + mark = gtk_text_buffer_get_insert (buf); + gtk_text_buffer_get_iter_at_mark (buf, &iter, mark); + pos = gtk_text_iter_get_offset (&iter); + } } } |