Bug 141018 - Bootloader configuration rendering issue
Summary: Bootloader configuration rendering issue
Status: RESOLVED DUPLICATE of bug 134386
Alias: None
Product: SUSE Linux 10.1
Classification: openSUSE
Component: Installation (show other bugs)
Version: Alpha 4
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Joachim Plack
QA Contact: Klaus Kämpf
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-24 23:22 UTC by Michael Stather
Modified: 2006-09-28 13:25 UTC (History)
1 user (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Stather 2005-12-24 23:22:46 UTC
When I go into the configuration of the bootloader (in "expert" mode) and I click one of the buttons in the second tab which show me advanced options, when I close that window I get back to the bootloader configuration, but the first tab is selected with no widgets inside it. This bug isn´t therre in 10.0
Comment 1 Ladislav Slezák 2006-01-06 08:02:46 UTC
I have observed the same problem.
Comment 2 Joachim Plack 2006-01-10 12:00:48 UTC
I think this is ppc only, will check
Comment 3 Ladislav Slezák 2006-01-10 12:04:27 UTC
No, I have reproduced it on i386.
Comment 4 Joachim Plack 2006-01-10 13:55:37 UTC
Thats bad to hear. There was almost no change in i386 code since then.
May be a change in CWMTab and such is the cause
Comment 5 Joachim Plack 2006-01-11 14:24:58 UTC
Yes it´s in  CWMTab

    bootloader/routines/dialogs.ycp:115 return_tab set to nil

Problem is somewhere here in CWMTab.ycp:

global define symbol Handle (map<string,any> widget, string key, map event) {
    list<string> all_tabs = widget["tabs_list"]:[];
    symbol h_ret = TabHandle (current_tab_map, event);
    if (h_ret != nil)
        return h_ret;
    any ret = event["ID"]:nil;
    if (is (ret, string) && contains (all_tabs, (string)ret) &&
        // At initialization, qt thinks it has switched to the same tab
        // So prevent unnecessary double initialization
        ret != current_tab_id)
    {
        if (! TabValidate (current_tab_map, event))
        {
            MarkCurrentTab ();
            return nil;
        }
        TabStore (current_tab_map, event);

        InitNewTab ((string) ret, widget);
    }
    return nil;
}

It looks like there are two events and the second has a bad "ID". 
Comment 6 Joachim Plack 2006-01-11 14:29:25 UTC
mvidner: Could you have a look. please? May be the Hnadle function needs some more
event filtering?
I do not fully understand the code but maybe it´s related to the new fake event:

r26170 | mvidner | 2005-11-15 18:52:45 +0100 (Tue, 15 Nov 2005) | 12 lines

CWM:
- added `menu_button
- explicitly specifying an empty help produces no errors, like no_help
- actually implemented validate_help
- added validate_type: `function_no_popup so that the function bodies
  can be shared and only validate_help needs to differ
CWMTab:
- widget_names is now optional
- generate a fake event when switching to a new tab to allow a handler
  to enabled/disable widgets before the first real UserInput takes place
- prevent double tab initialization at tab set initialization

Comment 7 Martin Vidner 2006-01-11 16:08:27 UTC
Actually the cause is the new CleanUp function of Nov 2. It was needlessly smashing current_tab_id. But thanks for the hint!

I'll join this one to the original report.

*** This bug has been marked as a duplicate of 134136 ***
Comment 8 Martin Vidner 2006-01-11 16:18:56 UTC
wrong number
Comment 9 Martin Vidner 2006-01-11 16:19:28 UTC

*** This bug has been marked as a duplicate of 134386 ***