Browse Source

Fixes issue 3480: Restored windows need padding so they don't touch window decorations

Change-Id: I781cae23d5c531f3edbb1ec8793f3919aba3d32a
Reviewed-on: http://gerrit.dmdirc.com/416
Reviewed-by: Chris Smith <chris@dmdirc.com>
Tested-by: Chris Smith <chris@dmdirc.com>
tags/0.6.3
Gregory Holmes 14 years ago
parent
commit
c7c5456d4f
1 changed files with 21 additions and 1 deletions
  1. 21
    1
      src/com/dmdirc/addons/ui_swing/components/frames/TextFrame.java

+ 21
- 1
src/com/dmdirc/addons/ui_swing/components/frames/TextFrame.java View File

@@ -58,6 +58,7 @@ import com.dmdirc.ui.interfaces.Window;
58 58
 import com.dmdirc.ui.messages.Formatter;
59 59
 import com.dmdirc.util.URLHandler;
60 60
 
61
+import java.awt.Container;
61 62
 import java.awt.Dimension;
62 63
 import java.awt.Point;
63 64
 import java.awt.event.KeyEvent;
@@ -75,13 +76,13 @@ import java.nio.charset.UnsupportedCharsetException;
75 76
 import java.util.Date;
76 77
 import java.util.LinkedList;
77 78
 import java.util.List;
78
-
79 79
 import java.util.concurrent.atomic.AtomicBoolean;
80 80
 import javax.swing.BorderFactory;
81 81
 import javax.swing.JComponent;
82 82
 import javax.swing.JInternalFrame;
83 83
 import javax.swing.JMenu;
84 84
 import javax.swing.JMenuItem;
85
+import javax.swing.JPanel;
85 86
 import javax.swing.JPopupMenu;
86 87
 import javax.swing.JSeparator;
87 88
 import javax.swing.KeyStroke;
@@ -93,6 +94,9 @@ import javax.swing.event.InternalFrameListener;
93 94
 import javax.swing.plaf.basic.BasicInternalFrameUI;
94 95
 import javax.swing.plaf.synth.SynthLookAndFeel;
95 96
 
97
+import net.miginfocom.layout.PlatformDefaults;
98
+import net.miginfocom.swing.MigLayout;
99
+
96 100
 /**
97 101
  * Implements a generic (internal) frame.
98 102
  */
@@ -129,6 +133,8 @@ public abstract class TextFrame extends JInternalFrame implements Window,
129 133
     private SwingController controller;
130 134
     /** Are we maximising/restoring? */
131 135
     private AtomicBoolean maximiseRestoreInProgress = new AtomicBoolean(false);
136
+    /** Content pane. */
137
+    private final JPanel panel;
132 138
 
133 139
     /** Click types. */
134 140
     public enum MouseClickType {
@@ -208,6 +214,15 @@ public abstract class TextFrame extends JInternalFrame implements Window,
208 214
         config.addChangeListener("ui", "frameBufferSize", this);
209 215
 
210 216
         addPropertyChangeListener("maximum", this);
217
+
218
+        panel = new JPanel(new MigLayout("fill"));
219
+        super.getContentPane().add(panel);
220
+    }
221
+
222
+    /** {@inheritDoc} */
223
+    @Override
224
+    public Container getContentPane() {
225
+        return panel;
211 226
     }
212 227
 
213 228
     /**
@@ -567,6 +582,7 @@ public abstract class TextFrame extends JInternalFrame implements Window,
567 582
             /** {@inheritDoc} */
568 583
             @Override
569 584
             public void run() {
585
+                panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
570 586
                 setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
571 587
                 ((BasicInternalFrameUI) getUI()).setNorthPane(null);
572 588
             }
@@ -628,6 +644,10 @@ public abstract class TextFrame extends JInternalFrame implements Window,
628 644
                 }
629 645
 
630 646
                 setUI((BasicInternalFrameUI) temp);
647
+                final int size = (int) PlatformDefaults.getPanelInsets(0).
648
+                        getValue();
649
+                panel.setBorder(BorderFactory.createEmptyBorder(size, size,
650
+                        size, size));
631 651
             }
632 652
         });
633 653
     }

Loading…
Cancel
Save