Attached. I am not quite sure the first chunk in GuiWorkArea.cpp is needed.
Comments? Andre'
Index: LyXRC.h =================================================================== --- LyXRC.h (revision 29842) +++ LyXRC.h (working copy) @@ -82,6 +82,7 @@ RC_FULL_SCREEN_LIMIT, RC_FULL_SCREEN_SCROLLBAR, RC_FULL_SCREEN_TABBAR, + RC_FULL_SCREEN_MENUBAR, RC_FULL_SCREEN_TOOLBARS, RC_FULL_SCREEN_WIDTH, RC_GEOMETRY_SESSION, @@ -443,6 +444,8 @@ bool full_screen_scrollbar; /// Toggle tabbar in fullscreen mode? bool full_screen_tabbar; + /// Toggle menubar in fullscreen mode? + bool full_screen_menubar; /// Limit the text width? bool full_screen_limit; /// Width of limited screen (in pixels) in fullscreen mode Index: frontends/qt4/GuiView.cpp =================================================================== --- frontends/qt4/GuiView.cpp (revision 29842) +++ frontends/qt4/GuiView.cpp (working copy) @@ -2282,7 +2282,7 @@ // Part of automatic menu appearance feature. if (isFullScreen()) { - if (menuBar()->isVisible()) + if (menuBar()->isVisible() && !lyxrc.full_screen_menubar) menuBar()->hide(); if (statusBar()->isVisible()) statusBar()->hide(); @@ -2361,7 +2361,8 @@ saveLayout(); setWindowState(windowState() ^ Qt::WindowFullScreen); statusBar()->hide(); - menuBar()->hide(); + if (!lyxrc.full_screen_menubar) + menuBar()->hide(); if (lyxrc.full_screen_toolbars) { ToolbarMap::iterator end = d.toolbars_.end(); for (ToolbarMap::iterator it = d.toolbars_.begin(); it != end; ++it) Index: frontends/qt4/GuiWorkArea.cpp =================================================================== --- frontends/qt4/GuiWorkArea.cpp (revision 29842) +++ frontends/qt4/GuiWorkArea.cpp (working copy) @@ -367,6 +367,7 @@ setFrameStyle(QFrame::NoFrame); if (lyxrc.full_screen_scrollbar) setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + lyx_view_->menuBar()->setVisible(lyxrc.full_screen_menubar); } else { #ifdef Q_WS_MACX setFrameStyle(QFrame::NoFrame); @@ -374,6 +375,7 @@ setFrameStyle(QFrame::Box); #endif setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + lyx_view_->menuBar()->setVisible(true); } } @@ -447,7 +449,8 @@ void GuiWorkArea::processKeySym(KeySymbol const & key, KeyModifier mod) { - if (lyx_view_->isFullScreen() && lyx_view_->menuBar()->isVisible()) { + if (lyx_view_->isFullScreen() && lyx_view_->menuBar()->isVisible() + && !lyxrc.full_screen_menubar) { // FIXME HACK: we should not have to do this here. See related comment // in GuiView::event() (QEvent::ShortcutOverride) lyx_view_->menuBar()->hide(); @@ -1353,7 +1356,7 @@ } if (lyxrc.full_screen_tabbar) - showBar(!full_screen && count()>1); + showBar(!full_screen && count() > 1); } Index: frontends/qt4/GuiPrefs.cpp =================================================================== --- frontends/qt4/GuiPrefs.cpp (revision 29842) +++ frontends/qt4/GuiPrefs.cpp (working copy) @@ -2160,6 +2160,8 @@ this, SIGNAL(changed())); connect(toggleTabbarCB, SIGNAL(toggled(bool)), this, SIGNAL(changed())); + connect(toggleMenubarCB, SIGNAL(toggled(bool)), + this, SIGNAL(changed())); connect(toggleScrollbarCB, SIGNAL(toggled(bool)), this, SIGNAL(changed())); connect(toggleToolbarsCB, SIGNAL(toggled(bool)), @@ -2181,6 +2183,7 @@ rc.full_screen_toolbars = toggleToolbarsCB->isChecked(); rc.full_screen_scrollbar = toggleScrollbarCB->isChecked(); rc.full_screen_tabbar = toggleTabbarCB->isChecked(); + rc.full_screen_menubar = toggleMenubarCB->isChecked(); rc.full_screen_width = fullscreenWidthSB->value(); rc.full_screen_limit = fullscreenLimitGB->isChecked(); } @@ -2196,6 +2199,7 @@ toggleScrollbarCB->setChecked(rc.full_screen_scrollbar); toggleToolbarsCB->setChecked(rc.full_screen_toolbars); toggleTabbarCB->setChecked(rc.full_screen_tabbar); + toggleMenubarCB->setChecked(rc.full_screen_menubar); fullscreenWidthSB->setValue(rc.full_screen_width); fullscreenLimitGB->setChecked(rc.full_screen_limit); } Index: frontends/qt4/ui/PrefEditUi.ui =================================================================== --- frontends/qt4/ui/PrefEditUi.ui (revision 29842) +++ frontends/qt4/ui/PrefEditUi.ui (working copy) @@ -170,6 +170,13 @@ </property> </spacer> </item> + <item row="3" column="0" > + <widget class="QCheckBox" name="toggleMenubarCB" > + <property name="text" > + <string>Hide &menubar</string> + </property> + </widget> + </item> <item row="2" column="0" > <widget class="QCheckBox" name="toggleTabbarCB" > <property name="text" > Index: frontends/qt4/GuiPrintNomencl.cpp =================================================================== --- frontends/qt4/GuiPrintNomencl.cpp (revision 29842) +++ frontends/qt4/GuiPrintNomencl.cpp (working copy) @@ -129,11 +129,11 @@ } -bool GuiPrintNomencl::isValid() +bool GuiPrintNomencl::isValid() const { - return (setWidthCO->itemData( + return setWidthCO->itemData( setWidthCO->currentIndex()).toString() != "custom" - || !valueLE->text().isEmpty()); + || !valueLE->text().isEmpty(); } Index: frontends/qt4/GuiPrintNomencl.h =================================================================== --- frontends/qt4/GuiPrintNomencl.h (revision 29842) +++ frontends/qt4/GuiPrintNomencl.h (working copy) @@ -49,7 +49,7 @@ /// bool isBufferDependent() const { return true; } /// - bool isValid(); + bool isValid() const; /// InsetCommandParams params_; Index: LyXRC.cpp =================================================================== --- LyXRC.cpp (revision 29842) +++ LyXRC.cpp (working copy) @@ -92,6 +92,7 @@ { "\\font_encoding", LyXRC::RC_FONT_ENCODING }, { "\\format", LyXRC::RC_FORMAT }, { "\\fullscreen_limit", LyXRC::RC_FULL_SCREEN_LIMIT }, + { "\\fullscreen_menubar", LyXRC::RC_FULL_SCREEN_TABBAR }, { "\\fullscreen_scrollbar", LyXRC::RC_FULL_SCREEN_SCROLLBAR }, { "\\fullscreen_tabbar", LyXRC::RC_FULL_SCREEN_TABBAR }, { "\\fullscreen_toolbars", LyXRC::RC_FULL_SCREEN_TOOLBARS }, @@ -315,6 +316,7 @@ full_screen_limit = false; full_screen_toolbars = true; full_screen_tabbar = true; + full_screen_menubar = true; full_screen_scrollbar = true; full_screen_width = 700; @@ -1123,6 +1125,9 @@ case RC_FULL_SCREEN_TABBAR: lexrc >> full_screen_tabbar; break; + case RC_FULL_SCREEN_MENUBAR: + lexrc >> full_screen_menubar; + break; case RC_FULL_SCREEN_WIDTH: lexrc >> full_screen_width; break; @@ -1771,6 +1776,15 @@ } if (tag != RC_LAST) break; + case RC_FULL_SCREEN_MENUBAR: + if (ignore_system_lyxrc || + full_screen_menubar != system_lyxrc.full_screen_menubar) { + os << "\\fullscreen_menubar " + << convert<string>(full_screen_menubar) + << '\n'; + } + if (tag != RC_LAST) + break; case RC_FULL_SCREEN_WIDTH: if (ignore_system_lyxrc || full_screen_width != system_lyxrc.full_screen_width) {