]> git.lyx.org Git - features.git/commitdiff
Fix problem with synchronous export.
authorRichard Kimberly Heck <rikiheck@lyx.org>
Sat, 21 Apr 2018 23:48:59 +0000 (19:48 -0400)
committerRichard Kimberly Heck <rikiheck@lyx.org>
Sat, 21 Apr 2018 23:50:22 +0000 (19:50 -0400)
It surprises me a bit that the code is different in this case
from the case when EXPORT_in_THREAD is not set. I should check
to see if there's a problem in the other case, too.

src/frontends/qt4/GuiView.cpp

index 48908d59a97024fb286619e6790a6d2115ae392e..c1e28869b888477faf58d16f286f4d09d55b8683 100644 (file)
@@ -3632,12 +3632,9 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
                // We are asynchronous, so we don't know here anything about the success
                return true;
        } else {
-#endif
-               // this will be run unconditionally in case EXPORT_in_THREAD
-               // is not defined.
                Buffer::ExportStatus status;
                if (syncFunc) {
-                       status = (used_buffer->*syncFunc)(format, true);
+                       status = (used_buffer->*syncFunc)(format, false);
                } else if (previewFunc) {
                        status = (used_buffer->*previewFunc)(format);
                } else
@@ -3646,9 +3643,19 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
                (void) asyncFunc;
                return (status == Buffer::ExportSuccess
                                || status == Buffer::PreviewSuccess);
-#if EXPORT_in_THREAD
-       // the end of the else clause in that case.
        }
+#else
+       Buffer::ExportStatus status;
+       if (syncFunc) {
+               status = (used_buffer->*syncFunc)(format, true);
+       } else if (previewFunc) {
+               status = (used_buffer->*previewFunc)(format);
+       } else
+               return false;
+       handleExportStatus(gv_, status, format);
+       (void) asyncFunc;
+       return (status == Buffer::ExportSuccess
+                       || status == Buffer::PreviewSuccess);
 #endif
 }