JDK-4513720 : DefaultCaret visibility should be separate from blinking
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 1.4.0,1.4.1,1.4.2
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic,linux,windows_xp
  • CPU: generic,x86
  • Submitted: 2001-10-11
  • Updated: 2017-05-16
  • Resolved: 2003-04-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
5.0 tigerFixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
With the current implementation of DefaultCaret, it is impossible to distinguish between a DefaultCaret having its visibility set to false and the DefaultCaret blinking out temporarily. The problem is that the implementation for the blink uses the same visibility property that setVisible uses.

This is causing problems with DnD when we attempt to save, change, and then restore the caret visibility on a component when we enter it and exit it for a drag operation. Depending on when we enter the field, a truly visible caret may return false for its visibility because it is mid-blink. As a result, when we restore it, we may incorrectly set its visibility to false.

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger FIXED IN: tiger INTEGRATED IN: tiger tiger-b04 tiger-b19

EVALUATION Name: anR10225 Date: 02/07/2003 We should just add another field to store flasher state. visible field should be used only for Caret visiblity state (visible and blinking, not visible) ====================================================================== Name: anR10225 Date: 08/28/2003 Though isVisible() behavior is incorrect it should remain the same to avoid compatibility problems. Instead we should add a method isActive() indicating actual 'visible' property value. So the isVisible() indicates whether or not the caret is actually visible or not due to blinking on and off, and isActive() indicates whether the caret is currently in a blinking state. ====================================================================== The DnD code responsible for saving and restoring the caret visibility has been changed to check isActive() rather than isVisible() when the caret is an instance of DefaultCaret. ###@###.### 2003-08-28