diff options
Diffstat (limited to 'libjava/gnu/java/awt')
| -rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java index e51b7f09856..e8881728434 100644 --- a/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java +++ b/libjava/gnu/java/awt/peer/gtk/GtkContainerPeer.java @@ -39,6 +39,8 @@ exception statement from your version. */  package gnu.java.awt.peer.gtk;  import java.awt.AWTEvent; +import java.awt.Color; +import java.awt.Component;  import java.awt.Container;  import java.awt.Graphics;  import java.awt.Insets; @@ -136,4 +138,23 @@ public class GtkContainerPeer extends GtkComponentPeer    public void beginLayout () { }    public void endLayout () { }    public boolean isPaintPending () { return false; } + +  public void setBackground (Color c) +  { +    super.setBackground(c); +   +    Object components[] = ((Container) awtComponent).getComponents(); +    for (int i = 0; i < components.length; i++) +      { +        Component comp = (Component) components[i]; + +        // If the child's background has not been explicitly set yet, +        // it should inherit this container's background. This makes the +        // child component appear as if it has a transparent background. +        // Note that we do not alter the background property of the child, +        // but only repaint the child with the parent's background color. +        if (!comp.isBackgroundSet() && comp.getPeer() != null) +          comp.getPeer().setBackground(c); +      } +  }  }  | 

