Ignore:
Timestamp:
07/04/08 17:30:09 (16 years ago)
Author:
bjn8
Message:

Fixed popups with widgets. Added custom popup support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/gui/FrameGraphics.java

    r125 r128  
    22
    33import java.awt.Color;
    4 import java.awt.Component;
    5 import java.awt.Container;
    64import java.awt.Dimension;
    75import java.awt.EventQueue;
     
    108import java.awt.GraphicsEnvironment;
    119import java.awt.Image;
    12 import java.awt.Point;
    1310import java.awt.Rectangle;
    1411import java.awt.RenderingHints;
     
    2118import java.util.LinkedList;
    2219import java.util.List;
    23 
    24 import javax.swing.JComponent;
    25 import javax.swing.JPopupMenu;
    26 import javax.swing.SwingUtilities;
    2720
    2821import org.expeditee.items.Circle;
     
    429422                                PaintNonLinesNonPicture(bg, freeItemsToPaint);
    430423
    431                         // BROOK: Ensure popups are repainted
    432                         if (Browser._theBrowser != null)
    433                                 repaintPopups(Browser._theBrowser.getLayeredPane(), bg);
     424                        // Repaint popups / drags...
     425                        if (isActualFrame)
     426                                PopupManager.paintLayeredPane(bg, clip);
    434427
    435428                        bg.dispose();
    436429                }
    437430
     431               
     432               
    438433                return toPaint.getBuffer();
    439434        }
     
    698693        }
    699694
    700         private static void repaintPopups(Container parent, Graphics g) {
    701                 for (Component c : parent.getComponents()) {
    702                         if (c instanceof JPopupMenu && ((JPopupMenu) c).isVisible()) {
    703                                 Point p = SwingUtilities.convertPoint(c, c.getLocation(),
    704                                                 Browser._theBrowser.getContentPane());
    705 
    706                                 c.setIgnoreRepaint(true);
    707                                 ((JComponent)c).setDoubleBuffered(false);
    708                                 g.translate(p.x, p.y);
    709                                 c.paint(g);
    710                                 g.translate(-p.x, -p.y);
    711                         } else if (c instanceof Container
    712                                         && c != Browser._theBrowser.getContentPane()) {
    713                                 repaintPopups((Container) c, g);
    714                         }
    715                 }
    716         }
    717 
     695       
    718696        public static int getMode() {
    719697                return _Mode;
     
    805783                                damagedAreas.clear();
    806784                        }
    807                         //System.out.println("FULLSCREEN REFRESH"); // TODO: REMOVE
     785                        System.out.println("FULLSCREEN REFRESH"); // TODO: REMOVE
    808786                }
    809787
Note: See TracChangeset for help on using the changeset viewer.