mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
Merge pull request #12293 from akallabeth/size-percent
[client,x11] apply /size:xx% only once
This commit is contained in:
@@ -421,10 +421,11 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
|
|||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
rdpMonitor* monitor = &rdpmonitors[nmonitors];
|
rdpMonitor* monitor = &rdpmonitors[nmonitors];
|
||||||
|
const RECTANGLE_16* area = &vscreen->monitors[i].area;
|
||||||
monitor->x =
|
monitor->x =
|
||||||
WINPR_ASSERTING_INT_CAST(
|
WINPR_ASSERTING_INT_CAST(
|
||||||
int32_t,
|
int32_t,
|
||||||
vscreen->monitors[i].area.left*(
|
area->left*(
|
||||||
freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
||||||
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
||||||
: 100)) /
|
: 100)) /
|
||||||
@@ -432,7 +433,7 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
|
|||||||
monitor->y =
|
monitor->y =
|
||||||
WINPR_ASSERTING_INT_CAST(
|
WINPR_ASSERTING_INT_CAST(
|
||||||
int32_t,
|
int32_t,
|
||||||
vscreen->monitors[i].area.top*(
|
area->top*(
|
||||||
freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseHeight)
|
freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseHeight)
|
||||||
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
||||||
: 100)) /
|
: 100)) /
|
||||||
@@ -440,7 +441,7 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
|
|||||||
monitor->width =
|
monitor->width =
|
||||||
WINPR_ASSERTING_INT_CAST(
|
WINPR_ASSERTING_INT_CAST(
|
||||||
int32_t,
|
int32_t,
|
||||||
(vscreen->monitors[i].area.right - vscreen->monitors[i].area.left + 1) *
|
(area->right - area->left + 1) *
|
||||||
(freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
(freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
||||||
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
||||||
: 100)) /
|
: 100)) /
|
||||||
@@ -448,8 +449,8 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
|
|||||||
monitor->height =
|
monitor->height =
|
||||||
WINPR_ASSERTING_INT_CAST(
|
WINPR_ASSERTING_INT_CAST(
|
||||||
int32_t,
|
int32_t,
|
||||||
(vscreen->monitors[i].area.bottom - vscreen->monitors[i].area.top + 1) *
|
(area->bottom - area->top + 1) *
|
||||||
(freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
(freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseHeight)
|
||||||
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
? freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen)
|
||||||
: 100)) /
|
: 100)) /
|
||||||
100;
|
100;
|
||||||
@@ -573,19 +574,10 @@ BOOL xf_detect_monitors(xfContext* xfc, UINT32* pMaxWidth, UINT32* pMaxHeight)
|
|||||||
if (vB != destB)
|
if (vB != destB)
|
||||||
xfc->fullscreenMonitors.bottom = orig;
|
xfc->fullscreenMonitors.bottom = orig;
|
||||||
|
|
||||||
const UINT32 ps = freerdp_settings_get_uint32(settings, FreeRDP_PercentScreen);
|
vX = destX;
|
||||||
WINPR_ASSERT(ps <= 100);
|
vY = destY;
|
||||||
|
vR = destR;
|
||||||
const int psuw = freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseWidth)
|
vB = destB;
|
||||||
? (int)ps
|
|
||||||
: 100;
|
|
||||||
const int psuh = freerdp_settings_get_bool(settings, FreeRDP_PercentScreenUseHeight)
|
|
||||||
? (int)ps
|
|
||||||
: 100;
|
|
||||||
vX = (destX * psuw) / 100;
|
|
||||||
vY = (destY * psuh) / 100;
|
|
||||||
vR = (destR * psuw) / 100;
|
|
||||||
vB = (destB * psuh) / 100;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vscreen->area.left = 0;
|
vscreen->area.left = 0;
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ create_test_sourcelist(SRCS ${DRIVER} ${TESTS})
|
|||||||
|
|
||||||
add_executable(${MODULE_NAME} ${SRCS})
|
add_executable(${MODULE_NAME} ${SRCS})
|
||||||
|
|
||||||
|
if(WITH_RESOURCE_VERSIONING)
|
||||||
|
target_compile_definitions(${MODULE_NAME} PRIVATE WITH_RESOURCE_VERSIONING)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_compile_definitions(TESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}")
|
add_compile_definitions(TESTING_OUTPUT_DIRECTORY="${PROJECT_BINARY_DIR}")
|
||||||
add_compile_definitions(TESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}")
|
add_compile_definitions(TESTING_SRC_DIRECTORY="${PROJECT_SOURCE_DIR}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user