continue;
}
- std::vector<int> const & ids = guiApp->viewIds();
- for (size_type i = 0; i != ids.size(); ++i) {
+ QVector<int> const ids = guiApp->viewIds();
+ for (int i = 0; i != ids.size(); ++i) {
if (id_ == ids[i])
continue;
if (guiApp->view(ids[i]).workArea(*b)) {
structureChanged();
+ // The document settings needs to be reinitialised.
+ updateDialog("document", "");
+
// Buffer-dependent dialogs must be updated. This is done here because
// some dialogs require buffer()->text.
updateDialogs();
}
#else
structureChanged();
+ // The document settings needs to be reinitialised.
+ updateDialog("document", "");
updateDialogs();
#endif
}
// The document structure, name and dialogs might have
// changed in another view.
structureChanged();
+ // The document settings needs to be reinitialised.
+ updateDialog("document", "");
updateDialogs();
} else {
setWindowTitle(qt_("LyX"));
}
case QEvent::ShortcutOverride: {
+
+ if (isFullScreen() && menuBar()->isHidden()) {
+ QKeyEvent * ke = static_cast<QKeyEvent*>(e);
+ // FIXME: we should also try to detect special LyX shortcut such as
+ // Alt-P and Alt-M. Right now there is a hack in
+ // GuiWorkArea::processKeySym() that hides again the menubar for
+ // those cases.
+ if (ke->modifiers() & Qt::AltModifier && ke->key() != Qt::Key_Alt)
+ menuBar()->show();
+ return QMainWindow::event(e);
+ }
+
if (d.current_work_area_)
// Nothing special to do.
return QMainWindow::event(e);
QKeyEvent * ke = static_cast<QKeyEvent*>(e);
-
// Let Qt handle menu access and the Tab keys to navigate keys to navigate
// between controls.
if (ke->modifiers() & Qt::AltModifier || ke->key() == Qt::Key_Tab
// Navigator needs more than a simple update in this case. It needs to be
// rebuilt.
updateDialog("toc", "");
- // Same for the document settings dialog.
- updateDialog("document", "");
}
}
-FuncStatus GuiView::getStatus(FuncRequest const & cmd)
+bool GuiView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
{
- FuncStatus flag;
bool enable = true;
Buffer * buf = buffer();
}
case LFUN_INSET_APPLY: {
- if (!buf) {
- enable = false;
- break;
- }
string const name = cmd.getArg(0);
Inset * inset = getOpenInset(name);
if (inset) {
flag |= fs;
} else {
FuncRequest fr(LFUN_INSET_INSERT, cmd.argument());
- flag |= getStatus(fr);
+ flag |= lyx::getStatus(fr);
}
enable = flag.enabled();
break;
break;
default:
- if (!view()) {
- enable = false;
- break;
- }
+ return false;
}
if (!enable)
flag.enabled(false);
- return flag;
+ return true;
}
bool GuiView::dispatch(FuncRequest const & cmd)
{
- BufferView * bv = view();
+ BufferView * bv = view();
// By default we won't need any update.
if (bv)
bv->cursor().updateFlags(Update::None);
+ bool dispatched = true;
switch(cmd.action) {
case LFUN_BUFFER_IMPORT:
}
case LFUN_INSET_APPLY: {
+ view()->cursor().recordUndoFullDocument();
string const name = cmd.getArg(0);
Inset * inset = getOpenInset(name);
if (inset) {
break;
default:
- return false;
+ dispatched = false;
+ break;
}
- return true;
+ if (isFullScreen()) {
+ if (menuBar()->isVisible())
+ menuBar()->hide();
+ if (statusBar()->isVisible())
+ statusBar()->hide();
+ }
+
+ return dispatched;
}