提交 6c523868 编写于 作者: A alexp

7124210: [macosx] Replacing text in a TextField does generate an extra TextEvent

Reviewed-by: serb
上级 c71ae804
......@@ -210,6 +210,15 @@ final class LWTextAreaPeer
super();
}
@Override
public void replaceSelection(String content) {
getDocument().removeDocumentListener(LWTextAreaPeer.this);
super.replaceSelection(content);
// post only one text event in this case
postTextEvent();
getDocument().addDocumentListener(LWTextAreaPeer.this);
}
@Override
public boolean hasFocus() {
return getTarget().hasFocus();
......
......@@ -187,7 +187,7 @@ abstract class LWTextComponentPeer<T extends TextComponent, D extends JComponent
}
}
private void sendTextEvent(final DocumentEvent e) {
protected final void postTextEvent() {
postEvent(new TextEvent(getTarget(), TextEvent.TEXT_VALUE_CHANGED));
synchronized (getDelegateLock()) {
revalidate();
......@@ -196,17 +196,17 @@ abstract class LWTextComponentPeer<T extends TextComponent, D extends JComponent
@Override
public final void changedUpdate(final DocumentEvent e) {
sendTextEvent(e);
postTextEvent();
}
@Override
public final void insertUpdate(final DocumentEvent e) {
sendTextEvent(e);
postTextEvent();
}
@Override
public final void removeUpdate(final DocumentEvent e) {
sendTextEvent(e);
postTextEvent();
}
@Override
......
......@@ -95,7 +95,7 @@ final class LWTextFieldPeer
@Override
public void actionPerformed(final ActionEvent e) {
postEvent(new ActionEvent(getTarget(), ActionEvent.ACTION_PERFORMED,
getText(), e.getWhen(), e.getModifiers()));
getText(), e.getWhen(), e.getModifiers()));
}
/**
......@@ -121,6 +121,15 @@ final class LWTextFieldPeer
super();
}
@Override
public void replaceSelection(String content) {
getDocument().removeDocumentListener(LWTextFieldPeer.this);
super.replaceSelection(content);
// post only one text event in this case
postTextEvent();
getDocument().addDocumentListener(LWTextFieldPeer.this);
}
@Override
public boolean hasFocus() {
return getTarget().hasFocus();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册