From c838a6dc47354bd214d55215a5bbd100c6c60554 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 21 Nov 2023 17:49:07 +0800 Subject: [PATCH] =?UTF-8?q?start=E6=97=B6=E9=98=BB=E5=A1=9E=E5=88=B0?= =?UTF-8?q?=E6=9C=89=E5=9B=BE=E7=89=87=E8=BF=94=E5=9B=9E=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=BB=93=E6=9D=9F=E6=89=8D=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E3=80=82fix=20bug-726?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/scanner.cpp | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/sane/scanner.cpp b/sane/scanner.cpp index 73fd089..fa53683 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -807,26 +807,23 @@ void scanner::scan_done(void) else if (ui_notify) ui_notify(SANE_EVENT_SCAN_FINISHED, &msg[0], err_); else - is_scanning_ = false; - //else - //{ - // if (err_) - // { - // if (callback::show_messagebox_ui) - // { - // callback::show_messagebox_ui(app_wnd_, SANE_EVENT_SCAN_FINISHED, (void*)&msg[0], 0); - // } - // else // windows message box ... - // { - // std::wstring text(local_trans::a2u(msg.c_str(), CP_UTF8)); - // if (!IsWindow(app_wnd_)) - // callback::bring_message_box_topmost(local_trans::lang_trans_between_hz936(CONST_STRING_ERROR).c_str()); - // MessageBoxW(app_wnd_, text.c_str(), local_trans::lang_trans_between_hz936(CONST_STRING_ERROR).c_str(), MB_OK); - // } - // } - // on_ui_event(SANE_EVENT_SCAN_FINISHED, (void*)SANE_EVENT_SCAN_FINISHED); - //} - // is_scanning_ = false; + { + if (err_) + { + if (callback::show_messagebox_ui) + { + callback::show_messagebox_ui(app_wnd_, SANE_EVENT_SCAN_FINISHED, (void*)&msg[0], 0); + } + else // windows message box ... + { + std::wstring text(local_trans::a2u(msg.c_str(), CP_UTF8)); + if (!IsWindow(app_wnd_)) + callback::bring_message_box_topmost(local_trans::lang_trans_between_hz936(CONST_STRING_ERROR).c_str()); + MessageBoxW(app_wnd_, text.c_str(), local_trans::lang_trans_between_hz936(CONST_STRING_ERROR).c_str(), MB_OK); + } + } + on_ui_event(SANE_EVENT_SCAN_FINISHED, (void*)SANE_EVENT_SCAN_FINISHED); + } is_in_working_thread_ = false; } @@ -2781,12 +2778,15 @@ COM_API_IMPLEMENT(scanner, int, start(void)) user_cancel_ = false; fetch_imgs_ = 0; is_scanning_ = true; + err_ = SANE_STATUS_GOOD; app_wnd_ = setting_ ? setting_->hwnd() : callback::find_main_wnd(); if (thread_starting_.get() && thread_starting_->joinable()) thread_starting_->join(); #ifdef START_SCAN_IN_THREAD thread_starting_.reset(new std::thread(&scanner::thread_start, this)); + get_scanned_images(-1); // block until image arrived or scan finished + ret = err_; #else ret = thread_start(); #endif