In the meantime I have made a minimal widget, and it also has the problem. When a button gets focus, a failure occurs:
- Code: Select all
gui.widgets.TestWidget = {
new: func(parent, style, cfg)
{
var m = gui.Widget.new(gui.widgets.TestWidget);
m._vbox = VBoxLayout.new();
append(m.parents, m._vbox);
m._cfg = Config.new(cfg);
m._focus_policy = m.NoFocus;
var w = {
parents: [TestWidgetFactory],
_style: style,
_vbox: m._vbox
};
call(TestWidgetFactory.new, [parent, m._cfg], w, var err = []);
if(size(err)) {
debug.dump(err);
}
m._setView(w);
return m;
}
};
TestWidgetFactory = {
new: func(parent, cfg)
{
me._root = parent.createChild("group", "testing-panel");
me._tab_bar = HBoxLayout.new();
me._vbox.addItem(me._tab_bar);
me._tab_failures = gui.widgets.Button.new(me._root, me._style, {})
.setCheckable(1)
.setChecked(1)
.setFixedSize(75,25)
.setText("Button 1");
me._tab_random = gui.widgets.Button.new(me._root, me._style, {})
.setCheckable(1)
.setChecked(0)
.setFixedSize(75,25)
.setText("Button 2");
me._tab_failures.listen("toggled", func (e) {
if( e.detail.checked ) {
me._tab_random.setChecked(0);
}
});
me._tab_random.listen("toggled", func (e) {
if( e.detail.checked ) {
me._tab_failures.setChecked(0);
}
});
me._tab_bar.addStretch(1);
me._tab_bar.addItem(me._tab_failures);
me._tab_bar.addItem(me._tab_random);
me._tab_bar.addStretch(1);
return me;
},
setSize: func(model, w, h)
{
me._vbox.setGeometry([0,0,w,h]);
return me;
},
update: func(model)
{
},
};