From 180eb073b23065e12c05105990530b6c1b630a15 Mon Sep 17 00:00:00 2001 From: Pavel Sanda Date: Thu, 28 Feb 2008 11:19:19 +0000 Subject: [PATCH] Fullscreen fixes (multiple windows & toolbar visibility). Workaround for http://bugzilla.lyx.org/show_bug.cgi?id=4588 . git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23309 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ToolbarBackend.cpp | 1 + src/ToolbarBackend.h | 4 ++++ src/frontends/qt4/GuiToolbars.cpp | 7 ++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ToolbarBackend.cpp b/src/ToolbarBackend.cpp index 34f3d5bac1..d90b5ed23b 100644 --- a/src/ToolbarBackend.cpp +++ b/src/ToolbarBackend.cpp @@ -200,6 +200,7 @@ ToolbarInfo & ToolbarInfo::read(Lexer & lex) ToolbarBackend::ToolbarBackend() { + fullScreenWindows = 0; } diff --git a/src/ToolbarBackend.h b/src/ToolbarBackend.h index cd4828efa4..8845b5ddb8 100644 --- a/src/ToolbarBackend.h +++ b/src/ToolbarBackend.h @@ -135,6 +135,10 @@ public: /// ToolbarInfo * getUsedToolbarInfo(std::string const & name); + // FIXME should be deleted when every window has its own toolbar config. + /// number of toggleFullScreen calls, i.e. number of FullScreen windows. + int fullScreenWindows; + private: /// all the defined toolbars Toolbars toolbars; diff --git a/src/frontends/qt4/GuiToolbars.cpp b/src/frontends/qt4/GuiToolbars.cpp index dd89ae6943..398c1fc830 100644 --- a/src/frontends/qt4/GuiToolbars.cpp +++ b/src/frontends/qt4/GuiToolbars.cpp @@ -225,6 +225,10 @@ void GuiToolbars::toggleToolbarState(string const & name, bool allowauto) void GuiToolbars::toggleFullScreen(bool start_full_screen) { + // we need to know number of fullscreens until every + // LyXView has its own toolbar configuration + toolbarbackend.fullScreenWindows += start_full_screen ? 1 : -1; + // extracts the toolbars from the backend ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin(); ToolbarBackend::Toolbars::iterator end = toolbarbackend.end(); @@ -233,7 +237,8 @@ void GuiToolbars::toggleFullScreen(bool start_full_screen) for (; cit != end; ++cit) { if (start_full_screen) { - flags = cit->before_fullscreen = cit->flags; + if (toolbarbackend.fullScreenWindows == 1) + flags = cit->before_fullscreen = cit->flags; TurnOffFlag(ON); TurnOffFlag(AUTO); TurnOnFlag(OFF); -- 2.39.5