diff --git a/scribus/actionmanager.cpp b/scribus/actionmanager.cpp
index 424f909db..c28ce46d4 100644
--- a/scribus/actionmanager.cpp
+++ b/scribus/actionmanager.cpp
@@ -707,6 +707,11 @@ void ActionManager::initViewMenuActions()
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
 	name="viewShowContextMenu";
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	name="viewFullScreen";
+	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
+	// attach shortcut also to the mainwindow: the one in the menu does not work when the menu is hidden
+	mainWindow->addAction((*scrActions)[name]);
+
 	name="showMouseCoordinates";
 	scrActions->insert(name, new ScrAction("", defaultKey(name), mainWindow));
 
@@ -739,6 +744,7 @@ void ActionManager::initViewMenuActions()
 	(*scrActions)["viewSnapToGrid"]->setToggleAction(true);
 	(*scrActions)["viewSnapToGuides"]->setToggleAction(true);
 	(*scrActions)["viewSnapToElements"]->setToggleAction(true);
+	(*scrActions)["viewFullScreen"]->setToggleAction(true);
 	(*scrActions)["showMouseCoordinates"]->setToggleAction(true);
 
 	(*scrActions)["viewPreviewMode"]->setChecked(false);
@@ -753,6 +759,7 @@ void ActionManager::initViewMenuActions()
 	(*scrActions)["viewShowColumnBorders"]->setChecked(false);
 	(*scrActions)["viewShowRulers"]->setChecked(true);
 	(*scrActions)["viewRulerMode"]->setChecked(true);
+	(*scrActions)["viewFullScreen"]->setChecked(false);
 	(*scrActions)["showMouseCoordinates"]->setChecked(true);
 
 	connect( (*scrActions)["viewFitInWindow"], SIGNAL(triggeredData(double)), mainWindow, SLOT(slotZoom(double)) );
@@ -778,6 +785,7 @@ void ActionManager::initViewMenuActions()
 	connect( (*scrActions)["viewSnapToGrid"], SIGNAL(triggered()), mainWindow, SLOT(toggleSnapGrid()) );
 	connect( (*scrActions)["viewSnapToGuides"], SIGNAL(triggered()), mainWindow, SLOT(toggleSnapGuides()) );
 	connect( (*scrActions)["viewSnapToElements"], SIGNAL(triggered()), mainWindow, SLOT(toggleSnapElements()) );
+	connect( (*scrActions)["viewFullScreen"], SIGNAL(triggered()), mainWindow, SLOT(toggleFullScreen()) );
 	connect( (*scrActions)["showMouseCoordinates"], SIGNAL(triggered()), mainWindow, SLOT(ToggleMouseTips()) );
 //	connect( (*scrActions)["viewNewView"], SIGNAL(triggered()), mainWindow, SLOT(newView()) );
 
@@ -908,6 +916,7 @@ void ActionManager::initToolsMenuActions()
 	(*scrActions)["toolsAlignDistribute"]->setShortcutContext(Qt::ApplicationShortcut);
 	(*scrActions)["toolsSymbols"]->setShortcutContext(Qt::ApplicationShortcut);
 	(*scrActions)["toolsInline"]->setShortcutContext(Qt::ApplicationShortcut);
+	(*scrActions)["viewFullScreen"]->setShortcutContext(Qt::ApplicationShortcut);
 
 
 	(*scrActions)["toolsProperties"]->setToggleAction(true);
@@ -1676,6 +1685,7 @@ void ActionManager::languageChange()
 	(*scrActions)["viewSnapToElements"]->setTexts( tr("Snap to Items"));
 	(*scrActions)["viewShowContextMenu"]->setTexts( tr("Show Context Menu"));
 //	(*scrActions)["viewNewView"]->setTexts( tr("New View"));
+	(*scrActions)["viewFullScreen"]->setTexts( tr("&Full Screen"));
 
 	//Tool menu
 	(*scrActions)["toolsProperties"]->setTexts( tr("&Properties"));
@@ -1942,7 +1952,8 @@ void ActionManager::createDefaultShortcuts()
 	defKeys.insert("viewFit100", Qt::CTRL+Qt::Key_1);
 	defKeys.insert("viewPreviewMode", Qt::CTRL+Qt::ALT+Qt::Key_P);
 	defKeys.insert("viewShowRulers", Qt::CTRL+Qt::SHIFT+Qt::Key_R);
+	defKeys.insert("viewFullScreen", Qt::CTRL+Qt::SHIFT+Qt::Key_J);
 
 	//Tool menu
 	defKeys.insert("toolsProperties", Qt::Key_F2);
@@ -2323,6 +2334,7 @@ void ActionManager::createDefaultMenus()
 		<< "viewShowTextControls"
 		<< "viewShowRulers"
 		<< "viewRulerMode"
+		<< "viewFullScreen"
 		<< "showMouseCoordinates";
 	++itmenu;
 	itmenu->second
diff --git a/scribus/scribus.cpp b/scribus/scribus.cpp
index e491ae039..affc10543 100644
--- a/scribus/scribus.cpp
+++ b/scribus/scribus.cpp
@@ -1109,6 +1109,7 @@ void ScribusMainWindow::initMenuBar()
 	scrMenuMgr->addMenuItemString("ViewGrids", "View");
 	scrMenuMgr->addMenuItemString("viewShowGrid", "ViewGrids");
 	scrMenuMgr->addMenuItemString("viewShowGuides", "ViewGrids");
+	scrMenuMgr->addMenuItemString("viewFullScreen", "View");
 
 	//CB If this is viewNewView imeplemented, it should be on the windows menu
 //	scrMenuMgr->addMenuItem(scrActions["viewNewView"], "View");
@@ -5744,6 +5746,37 @@ void ScribusMainWindow::toggleBleeds()
 	view->DrawNew();
 }
 
+void ScribusMainWindow::toggleFullScreen()
+{
+    // TODO: make sure that toggleFullScreen() is called before quit
+    if (scrActions["viewFullScreen"]->isChecked())
+    {
+        if (editToolBar->isVisible())
+            hiddenToolbar.push_back(static_cast<QWidget*>(editToolBar));
+        if (fileToolBar->isVisible())
+            hiddenToolbar.push_back(static_cast<QWidget*>(fileToolBar));
+        if (modeToolBar->isVisible())
+            hiddenToolbar.push_back(static_cast<QWidget*>(modeToolBar));
+        if (pdfToolBar->isVisible())
+            hiddenToolbar.push_back(static_cast<QWidget*>(pdfToolBar));
+        hiddenToolbar.push_back(static_cast<QWidget*>(menuBar()));
+        hiddenToolbar.push_back(static_cast<QWidget*>(statusBar()));
+        setWindowState( windowState() & ~Qt::WindowFullScreen);
+        for (QWidget* toolbar: hiddenToolbar) {
+            toolbar->hide();
+        }
+    }
+    else
+    {
+        setWindowState(windowState() & Qt::WindowFullScreen);
+        for (QWidget* toolbar: hiddenToolbar) {
+            toolbar->show();
+        }
+        hiddenToolbar.clear();
+    }
+}
+
+
 void ScribusMainWindow::toggleFrames()
 {
 	if (!doc)
diff --git a/scribus/scribus.h b/scribus/scribus.h
index 9161f4778..676a89c31 100644
--- a/scribus/scribus.h
+++ b/scribus/scribus.h
@@ -427,6 +427,8 @@ public slots:
 	/** \brief Schaltet Raender ein/aus */
 	void toggleMarks();
 	void toggleBleeds();
+	/** \brief toggles Full Screen on/off */
+	void toggleFullScreen();
 	void toggleFrames();
 	void toggleLayerMarkers();
 	void toggleTextLinks();
@@ -667,6 +669,8 @@ private:
 	bool m_WasAutoSave;
 	bool m_pagePalVisible;
 
+	QList<QWidget*> hiddenToolbar;
+
 	//QQuickView *m_qqview;
 };
 
