From e69785eee110cf4a300b521cc79847efc1325dd4 Mon Sep 17 00:00:00 2001 From: Ilia Docin Date: Sun, 6 Aug 2023 18:57:29 +0300 Subject: [PATCH] sane.ds: Add maximum scanning dimensions setting support. --- dlls/sane.ds/capability.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/sane.ds/capability.c b/dlls/sane.ds/capability.c index 312876cd8e6..349126f6b95 100644 --- a/dlls/sane.ds/capability.c +++ b/dlls/sane.ds/capability.c @@ -823,6 +823,7 @@ static TW_UINT16 SANE_ICAPSupportedSizes (pTW_CAPABILITY pCapability, TW_UINT16 static TW_UINT32 possible_values[ARRAY_SIZE(supported_sizes)]; unsigned int i; TW_UINT32 val; + double max_width, max_height; TW_UINT16 default_size = get_default_paper_size(supported_sizes, ARRAY_SIZE(supported_sizes)); TW_UINT16 current_size = get_current_paper_size(supported_sizes, ARRAY_SIZE(supported_sizes)); @@ -849,7 +850,10 @@ static TW_UINT16 SANE_ICAPSupportedSizes (pTW_CAPABILITY pCapability, TW_UINT16 for (i = 1; i < ARRAY_SIZE(supported_sizes); i++) if (supported_sizes[i].size == val) return set_width_height(supported_sizes[i].x, supported_sizes[i].y); - + /* TWAIN: For devices that support physical dimensions TWSS_NONE indicates that the maximum + image size supported by the device is to be used. */ + if (val == TWSS_NONE && get_width_height(&max_width, &max_height, TRUE) == TWCC_SUCCESS) + return set_width_height(max_width, max_height); ERR("Unsupported size %ld\n", val); twCC = TWCC_BADCAP; break;