Mercurial Hosting > luan
changeset 1909:474f7ab2d1c2
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 15 Apr 2025 22:12:54 -0600 |
parents | 1d60e0ac3b97 |
children | bb58f0d24f22 |
files | src/luan/modules/swing/TextAreaLuan.java src/luan/modules/swing/TextFieldLuan.java src/luan/modules/swing/Text_area.luan src/luan/modules/swing/Text_component.luan |
diffstat | 4 files changed, 20 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/modules/swing/TextAreaLuan.java Tue Apr 15 21:51:41 2025 -0600 +++ b/src/luan/modules/swing/TextAreaLuan.java Tue Apr 15 22:12:54 2025 -0600 @@ -11,7 +11,6 @@ import javax.swing.UIManager; import javax.swing.Timer; import javax.swing.text.DefaultCaret; -import javax.swing.text.AbstractDocument; import javax.swing.text.BadLocationException; import goodjava.logging.Logger; import goodjava.logging.LoggerFactory; @@ -110,24 +109,4 @@ undo.endTransaction(); } } - - @Override public void setText(String t) { - UndoManagerLuan undo = getUndoManagerLuan(); - undo.beginTransaction(); - try { - super.setText(t); - } finally { - undo.endTransaction(); - } - } - - public void replace(int offset, int length, String text) throws BadLocationException { - UndoManagerLuan undo = getUndoManagerLuan(); - undo.beginTransaction(); - try { - ((AbstractDocument)getDocument()).replace(offset,length,text,null); - } finally { - undo.endTransaction(); - } - } }
--- a/src/luan/modules/swing/TextFieldLuan.java Tue Apr 15 21:51:41 2025 -0600 +++ b/src/luan/modules/swing/TextFieldLuan.java Tue Apr 15 22:12:54 2025 -0600 @@ -46,4 +46,18 @@ g.drawString( symbol, r.x, r.y + ascent ); } } + + private UndoManagerLuan getUndoManagerLuan() { + return (UndoManagerLuan)getDocument().getProperty("undo"); + } + + @Override public void paste() { + UndoManagerLuan undo = getUndoManagerLuan(); + undo.beginTransaction(); + try { + super.paste(); + } finally { + undo.endTransaction(); + } + } }
--- a/src/luan/modules/swing/Text_area.luan Tue Apr 15 21:51:41 2025 -0600 +++ b/src/luan/modules/swing/Text_area.luan Tue Apr 15 22:12:54 2025 -0600 @@ -99,7 +99,9 @@ return jtext_area.insert(text,pos-1) end function text_area.replace(start_pos,length,text) - return jtext_area.replace(start_pos-1,length,text) + text_area._document.run_in_transaction(function() + return jtext_area.getDocument().replace(start_pos-1,length,text) + end) end set_metatable(text_area,mt) return text_area
--- a/src/luan/modules/swing/Text_component.luan Tue Apr 15 21:51:41 2025 -0600 +++ b/src/luan/modules/swing/Text_component.luan Tue Apr 15 22:12:54 2025 -0600 @@ -40,7 +40,9 @@ if rtn ~= fail then return end local jcomponent = component.java if key == "text" then - jcomponent.setText(value) + component._document.run_in_transaction(function() + jcomponent.setText(value) + end) return end if key == "document" then