All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.noos.xing.mydoggy.plaf.ui.translucent.TranslucentRepaintManager Maven / Gradle / Ivy

The newest version!
package org.noos.xing.mydoggy.plaf.ui.translucent;

import javax.swing.*;
import java.awt.*;

public class TranslucentRepaintManager extends javax.swing.RepaintManager {

    public void addDirtyRegion(JComponent c, int x, int y, int w, int h) {
        Rectangle dirtyRegion = getDirtyRegion(c);
        if (dirtyRegion.width == 0 && dirtyRegion.height == 0) {
            int lastDeltaX = c.getX();
            int lastDeltaY = c.getY();
            Container parent = c.getParent();
            while (parent instanceof JComponent) {
                if (!parent.isVisible() || !parent.isDisplayable())
                    return;

                if (parent instanceof TranslucentComponent &&
                    (((TranslucentComponent) parent).getAlphaModeEnabled() < 1f || !parent.isOpaque())) {
                    x += lastDeltaX;
                    y += lastDeltaY;
                    lastDeltaX = lastDeltaY = 0;
                    c = (JComponent) parent;
                }

                lastDeltaX += parent.getX();
                lastDeltaY += parent.getY();
                parent = parent.getParent();
            }
        }
        super.addDirtyRegion(c, x, y, w, h);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy