commit 1437ae3f9cf78ffd5c639cb4e70a0b1fba9f600e
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sun Feb 11 09:50:38 2018 +0100

    Disable BUFFER_EXPORT and BUFFER_EXPORT_AS while buffer is processed
    
    I am rather irritated we didn't do this already, since synchronous runs
    with BUFFER_VIEW or BUFFER_UPDATE leads to all sorts of problems,
    including crashes.
    
    Fixes the crash in #8338 (but not the bug itself).
---
 src/frontends/qt4/GuiView.cpp |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
index 6f5441c..cc5a3df 100644
--- a/src/frontends/qt4/GuiView.cpp
+++ b/src/frontends/qt4/GuiView.cpp
@@ -1913,8 +1913,22 @@ bool GuiView::getStatus(FuncRequest const & cmd, 
FuncStatus & flag)
                enable = doc_buffer && 
doc_buffer->notifiesExternalModification();
                break;
 
-       case LFUN_BUFFER_WRITE_AS:
+       case LFUN_BUFFER_EXPORT: {
+               if (!doc_buffer || d.processing_thread_watcher_.isRunning()) {
+                       enable = false;
+                       break;
+               }
+               return doc_buffer->getStatus(cmd, flag);
+               break;
+       }
+
        case LFUN_BUFFER_EXPORT_AS:
+               if (!doc_buffer || d.processing_thread_watcher_.isRunning()) {
+                       enable = false;
+                       break;
+               }
+               // fall through
+       case LFUN_BUFFER_WRITE_AS:
                enable = doc_buffer != 0;
                break;
 

Reply via email to