summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven de Marothy <sven@physto.se>2006-08-03 04:31:02 +0000
committerSven de Marothy <sven@physto.se>2006-08-03 04:31:02 +0000
commit40df16749f761c1ba0d043a5e0d3ac73246229da (patch)
tree2493f52636f70fad8b9cc73fa94528286f24c5d4
parenta70104a340717ff09a0efe811c4f9306fdea1f66 (diff)
downloadclasspath-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--ChangeLog8
-rw-r--r--gnu/java/awt/peer/gtk/GtkChoicePeer.java8
-rw-r--r--java/awt/Choice.java20
3 files changed, 20 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 08bc25fd6..765e7bf9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 );
+ }
}
/**