-
Bug
-
Resolution: Fixed
-
P4
-
1.2.0, 6
-
b53
-
generic, x86
-
generic, windows_nt
Name: dbT83986 Date: 01/04/99
Steps to recreate::
Create an Internal Frame
set the cursor to predefined WAIT_CURSOR
make sure it's selected
move mouse, cursor appears briefly if you're lucky, then goes back to the default
Code snipppet of why:
Lines 867-908
of javax.swing.plaf.basic.BasicInternalFrameUI.java
section mouseMoved of inner class BorderListener
public void mouseMoved(MouseEvent e) {
if(!frame.isResizable())
return;
if(e.getSource() == frame) {
Insets i = frame.getInsets();
if(e.getX() <= i.left) {
if(e.getY() < resizeCornerSize + i.top)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));
else if(e.getY() > frame.getHeight() - resizeCornerSize - i.bottom)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
} else if(e.getX() >= frame.getWidth() - i.right) {
if(e.getY() < resizeCornerSize + i.top)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR));
else if(e.getY() > frame.getHeight() - resizeCornerSize - i.bottom)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR));
} else if(e.getY() <= i.top) {
if(e.getX() < resizeCornerSize + i.left)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));
else if(e.getX() > frame.getWidth() - resizeCornerSize - i.right)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));
} else if(e.getY() >= frame.getHeight() - i.bottom) {
if(e.getX() < resizeCornerSize + i.left)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR));
else if(e.getX() > frame.getWidth() - resizeCornerSize - i.right)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR));
}
return;
}
frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The BasicInternalFrameUI$BorderListener checks the mouse move
and sets the Cursor to a resizing if neccessary. If cursor's
(x,y) not near a border, it sets the cursor to CursorDefault
instead of the cursor set by JComponent's setCursor() method.
(Review ID: 49018)
======================================================================
Steps to recreate::
Create an Internal Frame
set the cursor to predefined WAIT_CURSOR
make sure it's selected
move mouse, cursor appears briefly if you're lucky, then goes back to the default
Code snipppet of why:
Lines 867-908
of javax.swing.plaf.basic.BasicInternalFrameUI.java
section mouseMoved of inner class BorderListener
public void mouseMoved(MouseEvent e) {
if(!frame.isResizable())
return;
if(e.getSource() == frame) {
Insets i = frame.getInsets();
if(e.getX() <= i.left) {
if(e.getY() < resizeCornerSize + i.top)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));
else if(e.getY() > frame.getHeight() - resizeCornerSize - i.bottom)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
} else if(e.getX() >= frame.getWidth() - i.right) {
if(e.getY() < resizeCornerSize + i.top)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR));
else if(e.getY() > frame.getHeight() - resizeCornerSize - i.bottom)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR));
} else if(e.getY() <= i.top) {
if(e.getX() < resizeCornerSize + i.left)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR));
else if(e.getX() > frame.getWidth() - resizeCornerSize - i.right)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));
} else if(e.getY() >= frame.getHeight() - i.bottom) {
if(e.getX() < resizeCornerSize + i.left)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR));
else if(e.getX() > frame.getWidth() - resizeCornerSize - i.right)
frame.setCursor(Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR));
else
frame.setCursor(Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR));
}
return;
}
frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The BasicInternalFrameUI$BorderListener checks the mouse move
and sets the Cursor to a resizing if neccessary. If cursor's
(x,y) not near a border, it sets the cursor to CursorDefault
instead of the cursor set by JComponent's setCursor() method.
(Review ID: 49018)
======================================================================
- duplicates
-
JDK-6329241 No appropriate CCC request for listed JDK 6.0 changes in javax.swing.plaf.basic package (b53)
-
- Closed
-