* Bug #13185 fixed - When the "checked" option of an uimenu was set to "on" for 23/13623/1 uiwidget
Vincent COUVERT [Tue, 28 Jan 2014 13:38:22 +0000 (14:38 +0100)]
                     the first time, the display order of others uimenus was changed.

Change-Id: Ibe9ad74d7c1b630753fc1d7c4397e5a26130ca4f

scilab/CHANGES_5.5.X
scilab/modules/core/includes/machine.h.in
scilab/modules/gui/src/java/org/scilab/modules/gui/SwingView.java
scilab/modules/gui/tests/nonreg_tests/bug_13185.tst [new file with mode: 0644]

index 9ec0683..169706b 100644 (file)
@@ -330,6 +330,15 @@ Scilab Bug Fixes
 
 * Bug #13152 fixed - Typo fixed in syslin french help page.
 
+* Bug #13174 fixed - Scilab crashed after XML element removal.
+
+* Bug #13185 fixed - When the "checked" option of an uimenu was set to "on" for
+                     the first time, the display order of others uimenus was changed.
+
+* Bug #13188 fixed - The output argument of eomday function was not pre-dimensioned.
+
+* Bug #13191 fixed - isempty(rational) returned an error message.
+
 
 Xcos Bug Fixes
 ==============
index b11401b..fd5a145 100644 (file)
 /* Define to 1 if you have the `bzero' function. */
 #undef HAVE_BZERO
 
-/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
 
-/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
index 7267b2b..1a71efd 100644 (file)
@@ -761,9 +761,8 @@ public final class SwingView implements GraphicView {
                         parent.add(meAsAMenuItem);
                         break;
                     case UiChildMenu:
-                        Integer parentId = (Integer) GraphicController.getController().getProperty(id, __GO_PARENT__);
                         SwingScilabMenuItem childMenu = (SwingScilabMenuItem) allObjects.get(id).getValue();
-                        SwingScilabMenu parentMenu = (SwingScilabMenu) allObjects.get(parentId).getValue();
+                        JComponent parentMenu = (JComponent) childMenu.getParent();
 
                         int index = parentMenu.getComponentZOrder(childMenu);
                         parentMenu.remove(childMenu);
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_13185.tst b/scilab/modules/gui/tests/nonreg_tests/bug_13185.tst
new file mode 100644 (file)
index 0000000..c86f373
--- /dev/null
@@ -0,0 +1,54 @@
+// =============================================================================
+// 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 13185 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13185
+//
+// <-- Short Description -->
+//  When the "checked" option of an uimenu was set to "on" for
+//  the first time, the display order of others uimenus was changed.
+
+function f_menu1()
+    obj = findobj("tag", "menu1");
+    if obj.checked == "on" then
+        obj.checked = "off";
+    else
+        obj.checked = "on";
+    end
+endfunction
+
+function f_menu2()
+    obj = findobj("tag", "menu2");
+    if obj.checked == "on" then
+        obj.checked = "off";
+    else
+        obj.checked = "on";
+    end
+endfunction
+
+function f_menu3()
+    obj = findobj("tag", "menu3");
+    if obj.checked == "on" then
+        obj.checked = "off";
+    else
+        obj.checked = "on";
+    end
+endfunction
+
+
+f = gcf()
+main_menu = uimenu(f, "label", "Test")
+menu_1 = uimenu(main_menu, "label", "menu1", "callback", "f_menu1()", "tag", "menu1")
+menu_2 = uimenu(main_menu, "label", "menu2", "callback", "f_menu2()", "tag", "menu2")
+menu_3 = uimenu(main_menu, "label", "menu3", "callback", "f_menu3()", "tag", "menu3")
+
+// First, you click on the first menu: "menu1". The menus list must not change.
+// Idem for "menu2" and "menu3"