Bug 11549 fixed: Prefs window changed its dimension when hitting Default 50/10550/2
Calixte DENIZET [Wed, 20 Feb 2013 14:15:13 +0000 (15:15 +0100)]
Change-Id: I22c9404ca7c7aab308c990d99b3f10b246758d87

scilab/CHANGES_5.4.X
scilab/modules/preferences/src/java/org/scilab/modules/preferences/XCommonManager.java

index 97d1c41..7d536ab 100644 (file)
@@ -233,6 +233,8 @@ Bug fixes
 * Bug #11501 fixed - Use $$..$$ for LaTeX in SciNotes comments to avoid
                      confusion with Scilab code.
 
+* Bug #11549 fixed - Prefs window changed its dimension when hitting Default.
+
 * Bug #11711 fixed - xclick and xgetmouse did not work under Mac OS X.
 
 * Bug #11778 fixed - Bad color_map dims did not return an error.
index d255914..724bab0 100644 (file)
@@ -199,8 +199,10 @@ public abstract class XCommonManager {
         //    TODO top layout changes
         visitor = new XUpdateVisitor(correspondance);
         visitor.visit(topSwing, topDOM);
-        setDimension(dialog, topDOM);
-        dialog.pack();
+        boolean changed = setDimension(dialog, topDOM);
+       if (changed) {
+           dialog.pack();
+       }
 
         return true;
     }
@@ -818,12 +820,18 @@ public abstract class XCommonManager {
      * @param component : the resized component.
      * @param peer : the node having the dimension information.
      */
-    public static void setDimension(final Component component, final Node peer) {
+    public static boolean setDimension(final Component component, final Node peer) {
         int height = XConfigManager.getInt(peer, "height", 0);
         int width = XConfigManager.getInt(peer, "width",  0);
         if (height > 0 && width > 0) {
-            component.setPreferredSize(new Dimension(width, height));
-        }
+           Dimension old = component.getPreferredSize();
+           if (old.width != width || old.height != height) {
+               component.setPreferredSize(new Dimension(width, height));
+               return true;
+           }
+       }
+       
+       return false;
     }
 
     /**