]> git.lyx.org Git - features.git/commitdiff
- using Alt key in fullscreen mode: don't autoshow the menubar but popup directly...
authorAbdelrazak Younes <younes@lyx.org>
Thu, 15 May 2008 10:18:49 +0000 (10:18 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Thu, 15 May 2008 10:18:49 +0000 (10:18 +0000)
- remove autohide of menu and status bar.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24787 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiView.cpp

index c6312ea4b8177a6b7e40968f7ede3f6472c81026..10a7a57a969fda6198cddec29228b565279bea6e 100644 (file)
@@ -276,6 +276,17 @@ public:
        TocModels toc_models_;
 };
 
+namespace {
+
+class MenuBar : public QMenuBar
+{
+public:
+       ///
+       MenuBar() : QMenuBar(0) {}
+       void keyPressEvent(QKeyEvent * e) { QMenuBar::keyPressEvent(e); }
+};
+
+} // anon
 
 GuiView::GuiView(int id)
        : d(*new GuiViewPrivate), id_(id)
@@ -288,6 +299,10 @@ GuiView::GuiView(int id)
        // they are greyed out.
        theLyXFunc().setLyXView(this);
        
+#ifndef Q_WS_MACX
+       setMenuBar(new MenuBar());
+#endif
+
        // Fill up the menu bar.
        guiApp->menus().fillMenuBar(menuBar(), this, true);
 
@@ -642,17 +657,19 @@ bool GuiView::event(QEvent * e)
 
        case QEvent::ShortcutOverride: {
 
+#ifndef Q_WS_MACX
                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
                        if (!(ke->modifiers() & Qt::AltModifier)
                                || ke->key() == Qt::Key_Alt)
                                return QMainWindow::event(e);                   
-                       menuBar()->show();
-                       // Continue with even.
+                       static_cast<MenuBar *>(menuBar())->keyPressEvent(ke);
+                       if (ke->isAccepted())
+                               return true;
+                       // Otherwise continue with even.
                        return QMainWindow::event(e);
                }
+#endif
 
                QKeyEvent * ke = static_cast<QKeyEvent*>(e);
                if (d.current_work_area_)
@@ -1920,13 +1937,6 @@ bool GuiView::dispatch(FuncRequest const & cmd)
                        break;
        }
 
-       if (isFullScreen()) {
-               if (menuBar()->isVisible())
-                       menuBar()->hide();
-               if (statusBar()->isVisible())
-                       statusBar()->hide();
-       }
-
        return dispatched;
 }