summaryrefslogtreecommitdiffstats
path: root/libjava
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-01 20:23:50 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-01 20:23:50 +0000
commit1e2e4c80921d7ea214262a3bb0cb45ad3180390a (patch)
tree10ba7b5a79c3ddf7355b304a8ab24880141f025b /libjava
parenta460972d4622c8de0f4df4ec67416a331cbf7099 (diff)
downloadppe42-gcc-1e2e4c80921d7ea214262a3bb0cb45ad3180390a.tar.gz
ppe42-gcc-1e2e4c80921d7ea214262a3bb0cb45ad3180390a.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74124 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog10
-rw-r--r--libjava/java/awt/TextComponent.java4
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c20
3 files changed, 32 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 0b541eb2a21..28c4a204e46 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,13 @@
+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.
+
2003-12-01 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/awt/gtk/GtkButtonPeer.java, gnu/awt/gtk/gtkcommon.cc,
diff --git a/libjava/java/awt/TextComponent.java b/libjava/java/awt/TextComponent.java
index cbe7dc9169d..c193b9ef8b3 100644
--- a/libjava/java/awt/TextComponent.java
+++ b/libjava/java/awt/TextComponent.java
@@ -163,7 +163,7 @@ getSelectedText()
/**
* Returns the starting position of the selected text region.
- * // FIXME: What is returned if there is no selected text?
+ * If the text is not selected then caret position is returned.
*
* @return The starting position of the selected text region.
*/
@@ -196,7 +196,7 @@ setSelectionStart(int selectionStart)
/**
* Returns the ending position of the selected text region.
- * // FIXME: What is returned if there is no selected text.
+ * If the text is not selected, then caret position is returned
*
* @return The ending position of the selected text region.
*/
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 95e114ebd10..7e6d02f178a 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);
+ }
}
}
OpenPOWER on IntegriCloud