mirror of
https://github.com/winapps-org/winapps.git
synced 2025-07-31 16:06:45 +02:00
Added warnings when changing RDP_SCALE automatically to prevent user confusion.
This commit is contained in:
40
bin/winapps
40
bin/winapps
@@ -116,28 +116,34 @@ function dprint() {
|
||||
# Role: Since FreeRDP only supports '/scale' values of 100, 140 or 180, find the closest supported argument to the user's configuration.
|
||||
function waFixScale() {
|
||||
# Define variables.
|
||||
local USER_CONFIG_SCALE="$1"
|
||||
local CLOSEST_SCALE=100
|
||||
local OLD_SCALE=100
|
||||
local VALID_SCALE_1=100
|
||||
local VALID_SCALE_2=140
|
||||
local VALID_SCALE_3=180
|
||||
|
||||
# Calculate the absolute differences.
|
||||
local DIFF_1=$(( USER_CONFIG_SCALE > VALID_SCALE_1 ? USER_CONFIG_SCALE - VALID_SCALE_1 : VALID_SCALE_1 - USER_CONFIG_SCALE ))
|
||||
local DIFF_2=$(( USER_CONFIG_SCALE > VALID_SCALE_2 ? USER_CONFIG_SCALE - VALID_SCALE_2 : VALID_SCALE_2 - USER_CONFIG_SCALE ))
|
||||
local DIFF_3=$(( USER_CONFIG_SCALE > VALID_SCALE_3 ? USER_CONFIG_SCALE - VALID_SCALE_3 : VALID_SCALE_3 - USER_CONFIG_SCALE ))
|
||||
# Check for an unsupported value.
|
||||
if [ "$RDP_SCALE" != "$VALID_SCALE_1" ] && [ "$RDP_SCALE" != "$VALID_SCALE_2" ] && [ "$RDP_SCALE" != "$VALID_SCALE_3" ]; then
|
||||
# Save the unsupported scale.
|
||||
OLD_SCALE="$RDP_SCALE"
|
||||
|
||||
# Set the final scale to the valid scale value with the smallest absolute difference.
|
||||
if (( DIFF_1 <= DIFF_2 && DIFF_1 <= DIFF_3 )); then
|
||||
CLOSEST_SCALE="$VALID_SCALE_1"
|
||||
elif (( DIFF_2 <= DIFF_1 && DIFF_2 <= DIFF_3 )); then
|
||||
CLOSEST_SCALE="$VALID_SCALE_2"
|
||||
else
|
||||
CLOSEST_SCALE="$VALID_SCALE_3"
|
||||
# Calculate the absolute differences.
|
||||
local DIFF_1=$(( RDP_SCALE > VALID_SCALE_1 ? RDP_SCALE - VALID_SCALE_1 : VALID_SCALE_1 - RDP_SCALE ))
|
||||
local DIFF_2=$(( RDP_SCALE > VALID_SCALE_2 ? RDP_SCALE - VALID_SCALE_2 : VALID_SCALE_2 - RDP_SCALE ))
|
||||
local DIFF_3=$(( RDP_SCALE > VALID_SCALE_3 ? RDP_SCALE - VALID_SCALE_3 : VALID_SCALE_3 - RDP_SCALE ))
|
||||
|
||||
# Set the final scale to the valid scale value with the smallest absolute difference.
|
||||
if (( DIFF_1 <= DIFF_2 && DIFF_1 <= DIFF_3 )); then
|
||||
RDP_SCALE="$VALID_SCALE_1"
|
||||
elif (( DIFF_2 <= DIFF_1 && DIFF_2 <= DIFF_3 )); then
|
||||
RDP_SCALE="$VALID_SCALE_2"
|
||||
else
|
||||
RDP_SCALE="$VALID_SCALE_3"
|
||||
fi
|
||||
|
||||
# Print feedback.
|
||||
dprint "WARNING: Unsupported RDP_SCALE value '${OLD_SCALE}'. Defaulting to '${RDP_SCALE}'."
|
||||
echo "WARNING: Unsupported RDP_SCALE value '${OLD_SCALE}' detected. Defaulting to '${RDP_SCALE}'."
|
||||
fi
|
||||
|
||||
# Return the final scale value.
|
||||
echo "$CLOSEST_SCALE"
|
||||
}
|
||||
|
||||
# Name: 'waLoadConfig'
|
||||
@@ -155,7 +161,7 @@ function waLoadConfig() {
|
||||
MULTI_FLAG=$([[ $MULTIMON == "true" ]] && echo "/multimon" || echo "+span")
|
||||
|
||||
# Update $RDP_SCALE.
|
||||
RDP_SCALE=$(waFixScale "$RDP_SCALE")
|
||||
waFixScale
|
||||
|
||||
# Append additional flags or parameters to FreeRDP.
|
||||
[[ -n $RDP_FLAGS ]] && FREERDP_COMMAND="${FREERDP_COMMAND} ${RDP_FLAGS}"
|
||||
|
Reference in New Issue
Block a user