* Bug #12620 fixed - uicontextmenus size was wrong when children were created invisible. 79/15279/2
Vincent COUVERT [Fri, 26 Sep 2014 09:50:28 +0000 (11:50 +0200)]
Change-Id: I330ae52a60fa5babbdb29377e8dfaa946cc1256b

scilab/CHANGES_5.5.X
scilab/modules/graphics/tests/nonreg_tests/bug_12620.tst [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/bridge/menuitem/SwingScilabMenuItem.java

index 8da2293..5d6c7c7 100644 (file)
@@ -69,6 +69,8 @@ Scilab Bug Fixes
 * Bug #12580 fixed - Demonstration GUI now displays an arrow if a selected item
                      has sub-categories.
 
+* Bug #12620 fixed - uicontextmenus size was wrong when children were created invisible.
+
 * Bug #12700 fixed - edit_curv (used by CURV_f) was broken.
 
 * Bug #12834 fixed - Graphics did not work under Fedora (GLIBC issue).
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12620.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_12620.tst
new file mode 100644 (file)
index 0000000..369cc09
--- /dev/null
@@ -0,0 +1,35 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- INTERACTIVE TEST -->
+
+// <-- Non-regression test for bug 12620 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/12620
+//
+// <-- Short Description -->
+// Size of uicontextmenu is not correct when we want to display all uimenu
+// (which are in uicontextmenu) in the same time, in other words, when using
+// "visible" property.
+
+plot2d();
+[ibutton,xcoord,yxcoord,iwin,cbmenu]=xclick();
+if ibutton== 5 then //Right click on graph
+    hMenu = uicontextmenu();
+    hItem1 = uimenu("Label", "AAAAAAAAAAAAAAAA", "Parent", hMenu,"visible","off");
+    hItem2 = uimenu("Label", "BBBBBBBBBBBBBBBB", "Parent", hMenu,"visible","off");
+    hItem3 = uimenu("Label", "CCCCCCCCCCCCCCCC", "Parent", hMenu,"visible","off");
+    hItem4 = uimenu("Label", "DDDDDDDDDDDDDDDD", "Parent", hMenu,"visible","off");
+    hItem5 = uimenu("Label", "EEEEEEEEEEEEEEEE", "Parent", hMenu,"visible","off");
+    hItem6 = uimenu("Label", "FFFFFFFFFFFFFFFF", "Parent", hMenu,"visible","off");
+    set([hItem1;hItem2;hItem3;hItem4;hItem5;hItem6],"visible","on");
+end
+
+// Riht-clic in the figure
+
+// Check the menus in the context menu are OK.
index 91b1525..88622e3 100644 (file)
@@ -28,6 +28,7 @@ import org.scilab.modules.console.utils.ScilabSpecialTextUtilities;
 import org.scilab.modules.gui.SwingViewMenu;
 import org.scilab.modules.gui.SwingViewObject;
 import org.scilab.modules.gui.bridge.checkboxmenuitem.SwingScilabCheckBoxMenuItem;
+import org.scilab.modules.gui.bridge.contextmenu.SwingScilabContextMenu;
 import org.scilab.modules.gui.bridge.menu.SwingScilabMenu;
 import org.scilab.modules.gui.checkboxmenuitem.CheckBoxMenuItem;
 import org.scilab.modules.gui.checkboxmenuitem.ScilabCheckBoxMenuItem;
@@ -454,6 +455,11 @@ public class SwingScilabMenuItem extends JMenuItem implements SwingViewObject, S
      */
     public void setVisible(boolean status) {
         super.setVisible(status);
+
+        if (getParent() instanceof SwingScilabContextMenu) { // See bug #12620
+            ((SwingScilabContextMenu) getParent()).pack();
+        }
+
         if (meAsACheckBoxMenuItem != null) {
             meAsACheckBoxMenuItem.setVisible(status);
         }