+ if (isFullScreen()) {
+ if (menuBar()->isVisible())
+ menuBar()->hide();
+ if (statusBar()->isVisible())
+ statusBar()->hide();
+ }
+
+ return dispatched;
+}
+
+
+void GuiView::lfunUiToggle(FuncRequest const & cmd)
+{
+ string const arg = cmd.getArg(0);
+ if (arg == "scrollbar") {
+ // hide() is of no help
+ if (d.current_work_area_->verticalScrollBarPolicy() ==
+ Qt::ScrollBarAlwaysOff)
+
+ d.current_work_area_->setVerticalScrollBarPolicy(
+ Qt::ScrollBarAsNeeded);
+ else
+ d.current_work_area_->setVerticalScrollBarPolicy(
+ Qt::ScrollBarAlwaysOff);
+ return;
+ }
+ if (arg == "statusbar") {
+ statusBar()->setVisible(!statusBar()->isVisible());
+ return;
+ }
+ if (arg == "menubar") {
+ menuBar()->setVisible(!menuBar()->isVisible());
+ return;
+ }
+#if QT_VERSION >= 0x040300
+ if (arg == "frame") {
+ int l, t, r, b;
+ getContentsMargins(&l, &t, &r, &b);
+ //are the frames in default state?
+ d.current_work_area_->setFrameStyle(QFrame::NoFrame);
+ if (l == 0) {
+ setContentsMargins(-2, -2, -2, -2);
+ } else {
+ setContentsMargins(0, 0, 0, 0);
+ }
+ return;
+ }
+#endif
+ if (arg != "fullscreen") {
+ message(bformat("LFUN_UI_TOGGLE " + _("%1$s unknown command!"), from_utf8(arg)));
+ return;
+ }
+
+ if (lyxrc.full_screen_toolbars)
+ d.toolbars_->toggleFullScreen(!isFullScreen());
+
+ if (isFullScreen()) {
+ for (int i = 0; i != d.splitter_->count(); ++i)
+ d.tabWorkArea(i)->setFullScreen(false);
+#if QT_VERSION >= 0x040300
+ setContentsMargins(0, 0, 0, 0);
+#endif
+ setWindowState(windowState() ^ Qt::WindowFullScreen);
+ menuBar()->show();
+ statusBar()->show();
+ } else {
+ for (int i = 0; i != d.splitter_->count(); ++i)
+ d.tabWorkArea(i)->setFullScreen(true);
+#if QT_VERSION >= 0x040300
+ setContentsMargins(-2, -2, -2, -2);
+#endif
+ setWindowState(windowState() ^ Qt::WindowFullScreen);
+ statusBar()->hide();
+ menuBar()->hide();
+ }