src/macosx/classes/sun/lwawt/LWTextComponentPeer.java

Print this page

        

*** 29,38 **** --- 29,39 ---- import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.Insets; import java.awt.SystemColor; import java.awt.TextComponent; + import java.awt.event.FocusEvent; import java.awt.event.TextEvent; import java.awt.event.InputMethodListener; import java.awt.event.InputMethodEvent; import java.awt.im.InputMethodRequests; import java.awt.peer.TextComponentPeer;
*** 208,225 **** public final void removeUpdate(final DocumentEvent e) { sendTextEvent(e); } @Override ! public void inputMethodTextChanged(InputMethodEvent event) { synchronized (getDelegateLock()) { AWTAccessor.getComponentAccessor().processEvent(getTextComponent(), event); } } @Override ! public void caretPositionChanged(InputMethodEvent event) { synchronized (getDelegateLock()) { AWTAccessor.getComponentAccessor().processEvent(getTextComponent(), event); } } } --- 209,241 ---- public final void removeUpdate(final DocumentEvent e) { sendTextEvent(e); } @Override ! public final void inputMethodTextChanged(final InputMethodEvent event) { synchronized (getDelegateLock()) { AWTAccessor.getComponentAccessor().processEvent(getTextComponent(), event); } } @Override ! public final void caretPositionChanged(final InputMethodEvent event) { synchronized (getDelegateLock()) { AWTAccessor.getComponentAccessor().processEvent(getTextComponent(), event); } } + + /** + * Restoring native behavior. We should sets the selection range to zero, + * when component lost its focus. + * + * @param e the focus event + */ + @Override + protected final void handleJavaFocusEvent(final FocusEvent e) { + if (e.getID() == FocusEvent.FOCUS_LOST) { + // In order to de-select the selection + setCaretPosition(getCaretPosition()); + } + super.handleJavaFocusEvent(e); + } }