}
return QMainWindow::event(e);
}
+
case QEvent::ShortcutOverride: {
+ if (d.current_work_area_)
+ // Nothing special to do.
+ return QMainWindow::event(e);
+
+ // Allow processing of shortcuts that are allowed even when no Buffer
+ // is viewed.
QKeyEvent * ke = static_cast<QKeyEvent*>(e);
- if (!d.current_work_area_) {
- theLyXFunc().setLyXView(this);
- KeySymbol sym;
- setKeySymbol(&sym, ke);
- theLyXFunc().processKeySym(sym, q_key_state(ke->modifiers()));
- e->accept();
- return true;
- }
- if (ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) {
- KeySymbol sym;
- setKeySymbol(&sym, ke);
- d.current_work_area_->processKeySym(sym, NoModifier);
- e->accept();
- return true;
- }
+ theLyXFunc().setLyXView(this);
+ KeySymbol sym;
+ setKeySymbol(&sym, ke);
+ theLyXFunc().processKeySym(sym, q_key_state(ke->modifiers()));
+ e->accept();
+ return true;
}
+
default:
return QMainWindow::event(e);
}
e->accept();
return true;
}
+
+ case QEvent::ShortcutOverride: {
+ // We catch this event in order to catch the Tab or Shift+Tab key press
+ // which are otherwise reserved to focus switching between controls
+ // within a dialog.
+ QKeyEvent * ke = static_cast<QKeyEvent*>(e);
+ if (ke->key() != Qt::Key_Tab && ke->key() != Qt::Key_Backtab)
+ return QAbstractScrollArea::event(e);
+ keyPressEvent(ke);
+ return true;
+ }
+
default:
return QAbstractScrollArea::event(e);
}
KeySymbol sym;
setKeySymbol(&sym, ev);
processKeySym(sym, q_key_state(ev->modifiers()));
+ ev->accept();
}