menubar autoshowing: go back to r24786

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24794 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2008-05-15 23:26:31 +00:00
parent 001c77d65b
commit 34dc63da87

View File

@ -276,17 +276,6 @@ public:
TocModels toc_models_; TocModels toc_models_;
}; };
namespace {
class MenuBar : public QMenuBar
{
public:
///
MenuBar() : QMenuBar(0) {}
void keyPressEvent(QKeyEvent * e) { QMenuBar::keyPressEvent(e); }
};
} // anon
GuiView::GuiView(int id) GuiView::GuiView(int id)
: d(*new GuiViewPrivate), id_(id) : d(*new GuiViewPrivate), id_(id)
@ -299,10 +288,6 @@ GuiView::GuiView(int id)
// they are greyed out. // they are greyed out.
theLyXFunc().setLyXView(this); theLyXFunc().setLyXView(this);
#ifndef Q_WS_MACX
setMenuBar(new MenuBar());
#endif
// Fill up the menu bar. // Fill up the menu bar.
guiApp->menus().fillMenuBar(menuBar(), this, true); guiApp->menus().fillMenuBar(menuBar(), this, true);
@ -657,31 +642,20 @@ bool GuiView::event(QEvent * e)
case QEvent::ShortcutOverride: { case QEvent::ShortcutOverride: {
#ifndef Q_WS_MACX
if (isFullScreen() && menuBar()->isHidden()) { if (isFullScreen() && menuBar()->isHidden()) {
QKeyEvent * ke = static_cast<QKeyEvent*>(e); QKeyEvent * ke = static_cast<QKeyEvent*>(e);
if (!(ke->modifiers() & Qt::AltModifier) // FIXME: we should also try to detect special LyX shortcut such as
|| ke->key() == Qt::Key_Alt) // Alt-P and Alt-M
return QMainWindow::event(e); if (ke->modifiers() & Qt::AltModifier || ke->key() == Qt::Key_Alt)
MenuBar * menu_bar = static_cast<MenuBar *>(menuBar()); menuBar()->show();
menu_bar->keyPressEvent(ke);
menu_bar->show();
if (ke->isAccepted())
return true;
// Showing and hiding the menubar has the potential to create a bad
// flickering due to the window resizing. On Windows Vista, this flicker
// is not visible at all.
menu_bar->hide();
// Otherwise continue with even.
return QMainWindow::event(e); return QMainWindow::event(e);
} }
#endif
QKeyEvent * ke = static_cast<QKeyEvent*>(e);
if (d.current_work_area_) if (d.current_work_area_)
// Nothing special to do. // Nothing special to do.
return QMainWindow::event(e); return QMainWindow::event(e);
QKeyEvent * ke = static_cast<QKeyEvent*>(e);
// Let Qt handle menu access and the Tab keys to navigate keys to navigate // Let Qt handle menu access and the Tab keys to navigate keys to navigate
// between controls. // between controls.
if (ke->modifiers() & Qt::AltModifier || ke->key() == Qt::Key_Tab if (ke->modifiers() & Qt::AltModifier || ke->key() == Qt::Key_Tab