jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
changeset 21270 8a0fc12b81a2
parent 20465 b08b3909ee92
child 21278 ef8a3a2a72f2
equal deleted inserted replaced
21269:4113e17e5db3 21270:8a0fc12b81a2
    59 import java.awt.peer.ComponentPeer;
    59 import java.awt.peer.ComponentPeer;
    60 import java.awt.peer.ContainerPeer;
    60 import java.awt.peer.ContainerPeer;
    61 import java.lang.reflect.*;
    61 import java.lang.reflect.*;
    62 import java.security.*;
    62 import java.security.*;
    63 import java.util.Collection;
    63 import java.util.Collection;
       
    64 import java.util.Objects;
    64 import java.util.Set;
    65 import java.util.Set;
    65 import sun.util.logging.PlatformLogger;
    66 import sun.util.logging.PlatformLogger;
    66 import sun.awt.*;
    67 import sun.awt.*;
    67 import sun.awt.event.IgnorePaintEvent;
    68 import sun.awt.event.IgnorePaintEvent;
    68 import sun.awt.image.SunVolatileImage;
    69 import sun.awt.image.SunVolatileImage;
   633         g.setColor(topShadow ? lightShadow : darkShadow );
   634         g.setColor(topShadow ? lightShadow : darkShadow );
   634         g.drawLine(x+1, y+height, x+width, y+height); // bottom
   635         g.drawLine(x+1, y+height, x+width, y+height); // bottom
   635         g.drawLine(x+width, y+height, x+width, y+1);  // right
   636         g.drawLine(x+width, y+height, x+width, y+1);  // right
   636     }
   637     }
   637 
   638 
       
   639     @Override
   638     public void setBackground(Color c) {
   640     public void setBackground(Color c) {
   639         if (log.isLoggable(PlatformLogger.Level.FINE)) {
   641         if (log.isLoggable(PlatformLogger.Level.FINE)) {
   640             log.fine("Set background to " + c);
   642             log.fine("Set background to " + c);
   641         }
   643         }
   642         synchronized (getStateLock()) {
   644         synchronized (getStateLock()) {
       
   645             if (Objects.equals(background, c)) {
       
   646                 return;
       
   647             }
   643             background = c;
   648             background = c;
   644         }
   649         }
   645         super.setBackground(c);
   650         super.setBackground(c);
   646         repaint();
   651         repaint();
   647     }
   652     }
   648 
   653 
       
   654     @Override
   649     public void setForeground(Color c) {
   655     public void setForeground(Color c) {
   650         if (log.isLoggable(PlatformLogger.Level.FINE)) {
   656         if (log.isLoggable(PlatformLogger.Level.FINE)) {
   651             log.fine("Set foreground to " + c);
   657             log.fine("Set foreground to " + c);
   652         }
   658         }
   653         synchronized (getStateLock()) {
   659         synchronized (getStateLock()) {
       
   660             if (Objects.equals(foreground, c)) {
       
   661                 return;
       
   662             }
   654             foreground = c;
   663             foreground = c;
   655         }
   664         }
   656         repaint();
   665         repaint();
   657     }
   666     }
   658 
   667 
   672             fontLog.fine("Getting font metrics for " + font);
   681             fontLog.fine("Getting font metrics for " + font);
   673         }
   682         }
   674         return sun.font.FontDesignMetrics.getMetrics(font);
   683         return sun.font.FontDesignMetrics.getMetrics(font);
   675     }
   684     }
   676 
   685 
       
   686     @Override
   677     public void setFont(Font f) {
   687     public void setFont(Font f) {
       
   688         if (f == null) {
       
   689             f = XWindow.getDefaultFont();
       
   690         }
   678         synchronized (getStateLock()) {
   691         synchronized (getStateLock()) {
   679             if (f == null) {
   692             if (f.equals(font)) {
   680                 f = XWindow.getDefaultFont();
   693                 return;
   681             }
   694             }
   682             font = f;
   695             font = f;
   683         }
   696         }
   684         // as it stands currently we dont need to do layout or repaint since
   697         // as it stands currently we dont need to do layout since
   685         // layout is done in the Component upon setFont.
   698         // layout is done in the Component upon setFont.
   686         //layout();
   699         //layout();
   687         // target.repaint();
   700         repaint();
   688         //repaint()?
       
   689     }
   701     }
   690 
   702 
   691     public Font getFont() {
   703     public Font getFont() {
   692         return font;
   704         return font;
   693     }
   705     }