diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index f72c17f..ab4babe 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -1042,7 +1042,14 @@ Result huagao_ds::pendingXfersGet(const Identity&, PendingXfers& data) // 显示设置界面时,不能阻塞在EndXfer,否则最后一张图片传输后显示不出来,故在此做阻塞调用 // int cnt = get_scanned_image_count(-1); - int cnt = show_setting_ ? 1 : get_scanned_image_count(-1); + // FIX-2023-05-29: 是否保持设置界面显示,由APP决定,此处不再由是否显示UI来决定,保持一个扫描流程正常结束 + int cnt = /*show_setting_ ? 1 :*/ get_scanned_image_count(10); + while (cnt == 0) + { + if (scanner_status_ == SCANNER_STATUS_STOPPED) + break; + cnt = get_scanned_image_count(10); + } data.setCount(cnt); return success(); diff --git a/twain/twain/huagaods.hpp b/twain/twain/huagaods.hpp index cf83b6b..c92a3e1 100644 --- a/twain/twain/huagaods.hpp +++ b/twain/twain/huagaods.hpp @@ -50,7 +50,7 @@ class huagao_ds : public Twpp::SourceFromThis { Twpp::Compression m_compression = Twpp::Compression::None; SANE_Parameters* cur_head_; int dpi_; - int scanner_status_; + volatile int scanner_status_; bool xfer_ready_failed_; bool log_all_triple_; bool app_trigger_event_;