diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 99cb52d..105f385 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -4165,9 +4165,9 @@ int hg_scanner::wait_one_image_from_start(bool& handled) handled = false; if (!async_io_) // non-callback, async do this in upper level { + handled = true; while (is_running() != THREAD_RUNNING_IDLE) { - handled = true; if (final_imgs_.size()) { break; @@ -4195,8 +4195,9 @@ int hg_scanner::wait_one_image_from_start(bool& handled) } else if (handled) // overed normal or exception { + bool reserveDoubleImg = (double_paper_handle_) ? false : true; if (status_ == SCANNER_ERR_OK - || status_ == SCANNER_ERR_DEVICE_DOUBLE_FEEDING) // 双张特殊处理,视为成功 + || (reserveDoubleImg && status_ == SCANNER_ERR_DEVICE_DOUBLE_FEEDING)) // 双张校验时特殊处理,视为成功 { SANE_Bool has_paper = SANE_FALSE;