There have been an error in text buffer access in javax.swing.text which
cause the bug https://savannah.gnu.org/bugs/?func=detailitem&item_id=13262
This is fixed by the attached patch.
2005-06-03 Roman Kennke <[EMAIL PROTECTED]>
* javax/swing/text/PlainDocument.java
(removeUpdate): Fixed indices in text buffer access.
* javax/swing/text/PlainView.java
(drawLine): Simplified element access.
/Roman
Index: PlainDocument.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainDocument.java,v
retrieving revision 1.10
diff -u -r1.10 PlainDocument.java
--- PlainDocument.java 1 Jun 2005 09:28:24 -0000 1.10
+++ PlainDocument.java 3 Jun 2005 14:25:24 -0000
@@ -117,8 +117,8 @@
super.removeUpdate(event);
int p0 = event.getOffset();
- int p1 = event.getLength() + p0;
int len = event.getLength();
+ int p1 = len + p0;
// check if we must collapse some elements
int i1 = rootElement.getElementIndex(p0);
@@ -133,7 +133,7 @@
Element newEl = createLeafElement(rootElement,
SimpleAttributeSet.EMPTY,
start, end - len);
- rootElement.replace(i1, i1 - i1, new Element[]{ newEl });
+ rootElement.replace(i1, i2 - i1, new Element[]{ newEl });
}
else
{
Index: PlainView.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v
retrieving revision 1.7
diff -u -r1.7 PlainView.java
--- PlainView.java 6 May 2005 10:31:59 -0000 1.7
+++ PlainView.java 3 Jun 2005 14:25:25 -0000
@@ -123,7 +123,7 @@
{
metrics = g.getFontMetrics();
// FIXME: Selected text are not drawn yet.
- Element line =
getDocument().getDefaultRootElement().getElement(lineIndex);
+ Element line = getElement().getElement(lineIndex);
drawUnselectedText(g, x, y, line.getStartOffset(), line.getEndOffset());
//drawSelectedText(g, , , , );
}
_______________________________________________
Classpath-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/classpath-patches