mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 23:07:15 -06:00
DesktopIcon: use derived color for icon background, based on background color of JDesktopPane
This commit is contained in:
@@ -16,10 +16,12 @@
|
||||
|
||||
package com.formdev.flatlaf.ui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Insets;
|
||||
@@ -33,6 +35,7 @@ import javax.swing.BorderFactory;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JDesktopPane;
|
||||
import javax.swing.event.MouseInputAdapter;
|
||||
import javax.swing.event.MouseInputListener;
|
||||
import javax.swing.JLabel;
|
||||
@@ -229,6 +232,21 @@ public class FlatDesktopIconUI
|
||||
return getPreferredSize( c );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update( Graphics g, JComponent c ) {
|
||||
if( c.isOpaque() ) {
|
||||
// fill background with color derived from desktop pane
|
||||
Color background = c.getBackground();
|
||||
JDesktopPane desktopPane = desktopIcon.getDesktopPane();
|
||||
g.setColor( (desktopPane != null)
|
||||
? FlatUIUtils.deriveColor( background, desktopPane.getBackground() )
|
||||
: background );
|
||||
g.fillRect( 0, 0, c.getWidth(), c.getHeight() );
|
||||
}
|
||||
|
||||
paint( g, c );
|
||||
}
|
||||
|
||||
void updateDockIcon() {
|
||||
// use invoke later to make sure that components are updated when switching LaF
|
||||
EventQueue.invokeLater( () -> {
|
||||
|
||||
@@ -166,7 +166,7 @@ Desktop.background = #3E434C
|
||||
|
||||
#---- DesktopIcon ----
|
||||
|
||||
DesktopIcon.background = lighten($Desktop.background,10%)
|
||||
DesktopIcon.background = lighten($Desktop.background,10%,derived)
|
||||
|
||||
|
||||
#---- InternalFrame ----
|
||||
|
||||
@@ -172,7 +172,7 @@ Desktop.background = #E6EBF0
|
||||
|
||||
#---- DesktopIcon ----
|
||||
|
||||
DesktopIcon.background = darken($Desktop.background,10%)
|
||||
DesktopIcon.background = darken($Desktop.background,10%,derived)
|
||||
|
||||
|
||||
#---- HelpButton ----
|
||||
|
||||
Reference in New Issue
Block a user