[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cp-patches] java.awt.Choice selection behaviour when when no peer i
From: |
Mark Wielaard |
Subject: |
Re: [cp-patches] java.awt.Choice selection behaviour when when no peer is set |
Date: |
Mon, 25 Oct 2004 13:08:01 +0200 |
Hi Noa,
On Mon, 2004-10-25 at 11:13, Noa Resare wrote:
> > 2004-10-22 Noa Resare <address@hidden>
> >
> > * java/awt/Choice.java (add):
> > Implement correct selection behavior when peer == null.
> > (insert): Likewise.
> > (remove): Likewise.
> > [...]
> > So I think something like the following (untested) needs to be added:
> >
> > * gnu/java/awt/peer/gtk/GtkChoicePeer.java (GtkChoicePeer):
> > Call select() when Choice has a selected item.
>
> I have tested your code with the attached very simple case, and it seems
> to work like expected.
Great. Thanks for testing.
I have committed it as follows:
2004-10-25 Noa Resare <address@hidden>
* java/awt/Choice.java (add):
Implement correct selection behavior when peer == null.
(insert): Likewise.
(remove): Likewise.
2004-10-25 Mark Wielaard <address@hidden>
* gnu/java/awt/peer/gtk/GtkChoicePeer.java (GtkChoicePeer):
Call select() when Choice has a selected item.
Cheers,
Mark
Index: java/awt/Choice.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/Choice.java,v
retrieving revision 1.15
diff -u -r1.15 Choice.java
--- java/awt/Choice.java 3 Feb 2004 17:17:29 -0000 1.15
+++ java/awt/Choice.java 25 Oct 2004 11:09:57 -0000
@@ -1,5 +1,5 @@
/* Choice.java -- Java choice button widget.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -169,6 +169,8 @@
ChoicePeer cp = (ChoicePeer) peer;
cp.add (item, i);
}
+ else if (selectedIndex == -1)
+ select(0);
}
/*************************************************************************/
@@ -218,6 +220,8 @@
ChoicePeer cp = (ChoicePeer) peer;
cp.add (item, index);
}
+ else if (selectedIndex == -1 || selectedIndex >= index)
+ select(0);
}
/*************************************************************************/
@@ -261,6 +265,13 @@
ChoicePeer cp = (ChoicePeer) peer;
cp.remove (index);
}
+ else
+ {
+ if (getItemCount() == 0)
+ selectedIndex = -1;
+ else if (index == selectedIndex)
+ select(0);
+ }
if (selectedIndex > index)
--selectedIndex;
Index: gnu/java/awt/peer/gtk/GtkChoicePeer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkChoicePeer.java,v
retrieving revision 1.17
diff -u -r1.17 GtkChoicePeer.java
--- gnu/java/awt/peer/gtk/GtkChoicePeer.java 31 Jul 2004 21:15:06 -0000
1.17
+++ gnu/java/awt/peer/gtk/GtkChoicePeer.java 25 Oct 2004 11:09:57 -0000
@@ -59,6 +59,10 @@
append (items);
}
+
+ int selected = c.getSelectedIndex();
+ if (selected >= 0)
+ select(selected);
}
native void create ();
signature.asc
Description: This is a digitally signed message part