diff --git a/modules/sane_user/HGSaneImpl.cpp b/modules/sane_user/HGSaneImpl.cpp index f70a773b..cc4c2f46 100644 --- a/modules/sane_user/HGSaneImpl.cpp +++ b/modules/sane_user/HGSaneImpl.cpp @@ -1019,7 +1019,10 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param) if ((SCANNER_ERR_DEVICE_DOUBLE_FEEDING == stat && HGSANE_ERR_UI_RESERVE_CHECK != doubleImgStat)) { if (NULL != p->m_scanNotify) + { p->m_scanNotify((int)SANE_EVENT_SCAN_FINISHED, (void*)saneAPI.sane_strstatus_api(stat), (int)stat); + return; + } if (HGSANE_ERR_UI_DISCARD_STOP == doubleImgStat) return; @@ -1172,7 +1175,17 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param) if (!p->m_cancelScan) { - stat = saneAPI.sane_start_api(p->m_devHandle); + if (stat == SANE_STATUS_GOOD) + { + stat = saneAPI.sane_start_api(p->m_devHandle); + } + else if (stat != SANE_STATUS_GOOD) + { + stat = saneAPI.sane_start_api(p->m_devHandle); + if (stat == SANE_STATUS_NO_DOCS) + stat = saneAPI.sane_start_api(p->m_devHandle); + } + if (SANE_STATUS_NO_DOCS == stat) { if (NULL != p->m_scanNotify)