summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authorkho <kho@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-27 19:29:57 +0000
committerkho <kho@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-27 19:29:57 +0000
commit55e7bb5cc5290004556654cd1a4b310229835883 (patch)
treea3afb43550d8b4af2eb0c9d58281277ebf3e398d /libjava/java
parentf005e0cbd6972f817361b053bdda8cc308b11a98 (diff)
downloadppe42-gcc-55e7bb5cc5290004556654cd1a4b310229835883.tar.gz
ppe42-gcc-55e7bb5cc5290004556654cd1a4b310229835883.zip
2004-01-27 Kim Ho <kho@redhat.com>
* gnu/java/awt/peer/gtk/GtkFramePeer.java (removeMenuBarPeer): Remove MenuBarPeer argument. * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (dispose): Call native method. * java/awt/Frame.java (setMenuBar): Create and remove MenuBar peers only if the Frame has a peer. (addNotify): Create the MenuBar peer if one exists. (removeNotify): Remove MenuBar peer if one exists. * java/awt/Menu.java: Fix imports. (addNotify): Don't use full class name. (removeNotify): Call removeNotify on all children. * java/awt/MenuBar.java (removeNotify): Call removeNotify on all children. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (removeMenuBarPeer): Remove MenuBarPeer argument. Iterate through children to find the Frame's MenuBar. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c New file. (dispose): Remove references to the MenuComponent. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/awt/Frame.java19
-rw-r--r--libjava/java/awt/Menu.java9
-rw-r--r--libjava/java/awt/MenuBar.java6
3 files changed, 30 insertions, 4 deletions
diff --git a/libjava/java/awt/Frame.java b/libjava/java/awt/Frame.java
index 7a5c9d98f8e..c92585a6f6b 100644
--- a/libjava/java/awt/Frame.java
+++ b/libjava/java/awt/Frame.java
@@ -341,11 +341,15 @@ getMenuBar()
public synchronized void
setMenuBar(MenuBar menuBar)
{
- this.menuBar = menuBar;
- if (menuBar != null)
- menuBar.addNotify();
if (peer != null)
+ {
+ if (this.menuBar != null)
+ this.menuBar.removeNotify();
+ if (menuBar != null)
+ menuBar.addNotify();
((FramePeer) peer).setMenuBar(menuBar);
+ }
+ this.menuBar = menuBar;
}
/*************************************************************************/
@@ -432,11 +436,20 @@ remove(MenuComponent menu)
public void
addNotify()
{
+ if (menuBar != null)
+ menuBar.addNotify();
if (peer == null)
peer = getToolkit ().createFrame (this);
super.addNotify();
}
+public void removeNotify()
+{
+ if (menuBar != null)
+ menuBar.removeNotify();
+ super.removeNotify();
+}
+
/*************************************************************************/
/**
diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java
index 6fdc22c8ccd..7fb2931184e 100644
--- a/libjava/java/awt/Menu.java
+++ b/libjava/java/awt/Menu.java
@@ -41,6 +41,7 @@ package java.awt;
import java.awt.peer.MenuPeer;
import java.io.Serializable;
import java.util.Vector;
+import java.util.Enumeration;
/**
* This class represents a pull down or tear off menu in Java's AWT.
@@ -379,7 +380,7 @@ addNotify()
{
if (peer == null)
peer = getToolkit().createMenu(this);
- java.util.Enumeration e = items.elements();
+ Enumeration e = items.elements();
while (e.hasMoreElements())
{
MenuItem mi = (MenuItem)e.nextElement();
@@ -396,6 +397,12 @@ addNotify()
public void
removeNotify()
{
+ Enumeration e = items.elements();
+ while (e.hasMoreElements())
+ {
+ MenuItem mi = (MenuItem) e.nextElement();
+ mi.removeNotify();
+ }
super.removeNotify();
}
diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java
index af5c9121b21..9c278dfde0d 100644
--- a/libjava/java/awt/MenuBar.java
+++ b/libjava/java/awt/MenuBar.java
@@ -279,6 +279,12 @@ addNotify()
public void
removeNotify()
{
+ Enumeration e = menus.elements();
+ while (e.hasMoreElements())
+ {
+ Menu mi = (Menu) e.nextElement();
+ mi.removeNotify();
+ }
super.removeNotify();
}
OpenPOWER on IntegriCloud