Skip to content

Commit 6c7229e

Browse files
committed
[Win32] Improve parameterization of monitor-specific scaling enablement
Some parts of the implementation currently assume monitor-specific scaling to be disabled by default and autoscaling mode to default to "integer". With monitor-specific scaling becoming the default in the future, these assumptions will not hold anymore. In order to prepare for that, this change adapts some code to properly deal with monitor-specific scaling and autoscaling mode having arbitrary default values. # Conflicts: # bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/internal/DPIUtil.java # tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests_AutoscaleOsNonDefaults.java
1 parent 7934e5a commit 6c7229e

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -951,8 +951,8 @@ protected void create (DeviceData data) {
951951
checkDisplay (thread = Thread.currentThread (), true);
952952
if (DPIUtil.isMonitorSpecificScalingActive()) {
953953
setMonitorSpecificScaling(true);
954-
DPIUtil.setMonitorSpecificScaling(true);
955954
}
955+
DPIUtil.setMonitorSpecificScaling(DPIUtil.isMonitorSpecificScalingActive());
956956
Win32DPIUtils.initializeCustomDpiAwareness();
957957
createDisplay (data);
958958
register (this);

tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllNonBrowserTests_AutoscaleOsNonDefaults.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@
2222
@NonBrowserTestSuite
2323
public class AllNonBrowserTests_AutoscaleOsNonDefaults extends AllNonBrowserTests {
2424

25+
private static final String AUTO_SCALE_PROPERTY = "swt.autoScale";
2526
private static boolean originalMonitorSpecificScalingActive;
2627

2728
@SuppressWarnings("restriction")
2829
@BeforeSuite
2930
static void setNonDefaultAutoscale() {
3031
originalMonitorSpecificScalingActive = DPIUtil.isMonitorSpecificScalingActive();
31-
System.setProperty("swt.autoScale", "quarter");
32-
DPIUtil.setMonitorSpecificScaling(true);
32+
System.setProperty(AUTO_SCALE_PROPERTY, originalMonitorSpecificScalingActive ? "integer" : "quarter");
33+
DPIUtil.setMonitorSpecificScaling(!originalMonitorSpecificScalingActive);
3334
}
3435

3536
@SuppressWarnings("restriction")
3637
@AfterSuite
3738
static void restoreDefaultAutoscale() {
38-
System.clearProperty("swt.autoScale");
39+
System.clearProperty(AUTO_SCALE_PROPERTY);
3940
DPIUtil.setMonitorSpecificScaling(originalMonitorSpecificScalingActive);
4041
}
4142

0 commit comments

Comments
 (0)