ToolbarSection::ToolbarInfo & info = LyX::ref().session().toolbars().load(tbb.name);
unsigned int flags = static_cast<unsigned int>(tbb.flags);
- // remove position
+
+ // Remove default.ui positions. Only when a valid postion is stored
+ // in the session file the default.ui value will be overwritten
+ unsigned int save = flags;
TurnOffFlag(TOP);
TurnOffFlag(BOTTOM);
TurnOffFlag(RIGHT);
else if (info.location == ToolbarSection::ToolbarInfo::LEFT)
TurnOnFlag(LEFT);
else {
- TurnOnFlag(TOP);
+ // use setting from default.ui
+ flags = save;
valid_location = false;
}
lyxerr[Debug::GUI] << "Toolbar::display: no toolbar named "
<< name << endl;
+
+ // return dummy for msvc
+ return ToolbarBackend::OFF;
}
for (; cit != end; ++cit) {
if (cit->name == name) {
int flags = cit->flags;
- if (flags & ToolbarBackend::ON) {
- TurnOffFlag(ON);
- TurnOnFlag(OFF);
+ // off -> on
+ if (flags & ToolbarBackend::OFF) {
+ TurnOffFlag(OFF);
+ TurnOnFlag(ON);
+ // auto -> off
} else if (flags & ToolbarBackend::AUTO) {
TurnOffFlag(AUTO);
- TurnOnFlag(ON);
+ TurnOnFlag(OFF);
} else if ((flags & ToolbarBackend::MATH) || (flags & ToolbarBackend::TABLE)
|| (flags & ToolbarBackend::REVIEW)) {
- // for math etc, toggle from off -> auto
- TurnOffFlag(OFF);
+ // for math etc, toggle from on -> auto
+ TurnOffFlag(ON);
TurnOnFlag(AUTO);
} else {
- // for others, toggle from off -> on
- TurnOffFlag(OFF);
- TurnOnFlag(ON);
+ // for others, toggle from on -> off
+ TurnOffFlag(ON);
+ TurnOnFlag(OFF);
}
cit->flags = static_cast<lyx::ToolbarBackend::Flags>(flags);
return;
// Yes, the lyx::to_utf8(_()) is correct
if (lyx::to_utf8(_(itname)) == name) {
FuncRequest const func(LFUN_LAYOUT, itname,
- FuncRequest::UI);
+ FuncRequest::TOOLBAR);
lv.dispatch(func);
return;
}