diff options
author | Sven de Marothy <sven@physto.se> | 2006-08-03 04:31:02 +0000 |
---|---|---|
committer | Sven de Marothy <sven@physto.se> | 2006-08-03 04:31:02 +0000 |
commit | 40df16749f761c1ba0d043a5e0d3ac73246229da (patch) | |
tree | 2493f52636f70fad8b9cc73fa94528286f24c5d4 | |
parent | a70104a340717ff09a0efe811c4f9306fdea1f66 (diff) | |
download | classpath-40df16749f761c1ba0d043a5e0d3ac73246229da.tar.gz |
2006-08-02 Sven de Marothy <sven@physto.se>
* gnu/java/awt/peer/gtk/GtkChoicePeer.java
(remove): Force event on removing item 0 when it's selected.
(handleEvent): Always call Choice.selected().
* java/awt/Choice.java:
(remove): Simplify and correct.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkChoicePeer.java | 8 | ||||
-rw-r--r-- | java/awt/Choice.java | 20 |
3 files changed, 20 insertions, 16 deletions
@@ -1,3 +1,11 @@ +2006-08-02 Sven de Marothy <sven@physto.se> + + * gnu/java/awt/peer/gtk/GtkChoicePeer.java + (remove): Force event on removing item 0 when it's selected. + (handleEvent): Always call Choice.selected(). + * java/awt/Choice.java: + (remove): Simplify and correct. + 2006-08-02 Mark Wielaard <mark@klomp.org> PR 28535 diff --git a/gnu/java/awt/peer/gtk/GtkChoicePeer.java b/gnu/java/awt/peer/gtk/GtkChoicePeer.java index 33632cbdf..f00461f3f 100644 --- a/gnu/java/awt/peer/gtk/GtkChoicePeer.java +++ b/gnu/java/awt/peer/gtk/GtkChoicePeer.java @@ -92,7 +92,10 @@ public class GtkChoicePeer extends GtkComponentPeer public void remove( int index ) { - selected = -1; // we do not want to trigger a select event here. + // Ensure the triggering of an event when removing item zero if zero is the + // selected item, even though the selected index doesn't change. + if( index == 0 && selected == 0 ) + selected = -1; nativeRemove( index ); } @@ -134,8 +137,7 @@ public class GtkChoicePeer extends GtkComponentPeer if( event instanceof ItemEvent ) if( ((ItemEvent)event).getItemSelectable() == awtComponent && ((ItemEvent)event).getStateChange() == ItemEvent.SELECTED ) - if( ((Choice)awtComponent).getSelectedIndex() != selected ) - ((Choice)awtComponent).select( selected ); + ((Choice)awtComponent).select( selected ); } } diff --git a/java/awt/Choice.java b/java/awt/Choice.java index cdd51b571..b3319af2f 100644 --- a/java/awt/Choice.java +++ b/java/awt/Choice.java @@ -329,20 +329,14 @@ public class Choice extends Component selectedIndex = -1; else { - if( index == selectedIndex ) - { - if( peer != null ) - ((ChoicePeer)peer).select( 0 ); // force an event here - selectedIndex = 0; - } - else if( selectedIndex > index ) - { - if ( peer != null) - ((ChoicePeer)peer).select(selectedIndex - 1); - select( selectedIndex - 1 ); - } - } + if( selectedIndex > index ) + selectedIndex--; + else if( selectedIndex == index ) + selectedIndex = 0; + if( peer != null ) + ((ChoicePeer)peer).select( selectedIndex ); + } } /** |