Bug 785307

Summary: libyui ncurses: nested CheckBoxFrames are falsely activated
Product: [openSUSE] openSUSE 12.2 Reporter: J. Daniel Schmidt <jdsn>
Component: YaST2Assignee: Gabriele Mohr <gs>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Minor    
Priority: P5 - None CC: tgoettlicher
Version: Final   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description J. Daniel Schmidt 2012-10-16 14:43:53 UTC
Assume we have a ycp dialog with nested CheckBoxFrames (like in the small reproducer below), which are all disabled at the start.

When the outer CheckBoxFrame (A) is enabled all inner elements become active. But also the elements inside the inner CheckBoxFrame (B) become active, which is not wanted. Jumping with TAB to the CheckBoxFrame (B) (not clicking on it), disables its inner elements again. Jumping back with TAB reenables its inner elements.

This behaviour in ncurses mode is unintuitive, misleading and not consistent with the qt and qtk UIs. With both other UIs the elements of a nested CheckBoxFrame remain disabled.


{

term nestedCheckboxFrame = `VBox(
  `CheckBoxFrame( `id(`foo), "Selection A", false,
    `VBox(
      `CheckBox("Enable Foo"),
      `HBox(
        `HSpacing(2),
        `Left (`CheckBoxFrame( `id(`bar), "Selection B", false,
          `VBox(`CheckBox("Enable Bar"), `SelectionBox(`id(`sel), "Select", ["Foo", "Bar", "Baz"]) )
        ))
      )
    )
  ),
  `PushButton(`id(`ok), "OK")
);

UI::OpenDialog(nestedCheckboxFrame);
UI::UserInput();
UI::CloseDialog();

}
Comment 1 Gabriele Mohr 2012-10-18 09:25:53 UTC
The bug-fix will be available in libyui-ncurses-2.43.1.