[LyX/master] Fix bug #11405.

Richard Kimberly Heck rikiheck at lyx.org
Mon May 18 03:43:13 UTC 2020


commit b2517d60b8d05ad68c007e120e3b10059d043845
Author: Richard Kimberly Heck <rikiheck at lyx.org>
Date:   Mon May 18 00:06:59 2020 -0400

    Fix bug #11405.
    
    We don't actually prevent hidden buffers from being dirty, so we need
    to save them if they are.
---
 src/frontends/qt/GuiView.cpp |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp
index ba2951e..87a4f32 100644
--- a/src/frontends/qt/GuiView.cpp
+++ b/src/frontends/qt/GuiView.cpp
@@ -3107,6 +3107,14 @@ void GuiView::writeSession() const {
 
 bool GuiView::closeBufferAll()
 {
+
+	for (auto & buf : theBufferList()) {
+		if (!saveBufferIfNeeded(*buf, false)) {
+			// Closing has been cancelled, so abort.
+			return false;
+		}
+	}
+
 	// Close the workareas in all other views
 	QList<int> const ids = guiApp->viewIds();
 	for (int i = 0; i != ids.size(); ++i) {
@@ -3118,9 +3126,6 @@ bool GuiView::closeBufferAll()
 	if (!closeWorkAreaAll())
 		return false;
 
-	// Now close the hidden buffers. We prevent hidden buffers from being
-	// dirty, so we can just close them.
-	theBufferList().closeAll();
 	return true;
 }
 


More information about the lyx-cvs mailing list