Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added news/4.34/images/hidpi-setting-preference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added news/4.34/images/rescaling_disabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added news/4.34/images/rescaling_enabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions news/4.34/platform.html
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,48 @@ <h2>Themes and Styling </h2>
<td id="GeneralUpdates" class="section" colspan="2">
<h2>General Updates </h2>
</td>
<tr id="rescale-on-runtime-preference"> <!-- https://github.com/eclipse-platform/eclipse.platform.ui/pull/2461 -->
<td class="title">Monitor-Specific UI Rescaling (Experimental, Windows only)</td>
<td class="content">
<p>
This update introduces a preference to enable an improved, monitor- and resolution-specific UI scaling on Windows.
The feature makes each window adapt its scaling to the monitor it is currently placed on in a sharp,
resolution-specific way and without requiring the application to restart.
When using multiple windows, each of them will adapt its scaling to the monitor it is placed on.
When enabling the feature, it replaces the existing scaling support for high-resolution monitors that is limited to
initializing the application's window according to the scaling of the primary monitor at startup and adapting to
monitors with other scale values only via blurry scaling or via an application restart.
</p>
<p>
To enable this feature, check the <i>Monitor-specific UI scaling</i> box on the <b>Appearance</b> preference page
(<b>Window > Preferences > General > Appearance</b>), as shown in the image below.
In addition to the enhanced UI scaling, this preference also enables the Edge browser as default for an improved
browser scaling experience.
The feature is still under development, thus marked as <i>experimental</i> and disabled by default. We encourage users
to <b>explore this feature</b> and <b>share their feedback</b> to help us improve the functionality.
</p>
<p>
<img src="images/hidpi-setting-preference.png" alt="Monitor-Specific UI Rescaling Preference" width="600">
</p>
<p>
The functionality can also be used in pure SWT applications. See <a
href="platform.php#rescale-on-runtime-preference">this news</a> on the according SWT API changes.
</p>
<p>
The images below demonstrate the scaling behavior in an extract of an Eclipse application when moving the window
from a primary monitor with 100% scaling to another monitor with 200% scaling, first having the feature disabled and
second having it enabled.
</p>
<p>
With monitor-specific UI rescaling <b>disabled</b>:
<img src="images/rescaling_disabled.png" alt="Monitor-Specific UI Rescaling Disabled" width="600">
</p>
<p>
With monitor-specific UI rescaling <b>enabled</b>:
<img src="images/rescaling_enabled.png" alt="Monitor-Specific UI Rescaling Enabled" width="600">
</p>
</td>
</tr>
</tr>
<!-- ******************* End of General Updates ************************************* -->
<tr><td colspan="2"/></tr>
Expand Down
29 changes: 29 additions & 0 deletions news/4.34/platform_isv.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,35 @@ <h2>Platform and Equinox API</h2>
<tr>
<td id="SWT" class="section" colspan="2"><h2>SWT Changes</h2></td>
</tr>
<tr id="display_rescaling_windows"> <!-- https://github.com/eclipse-platform/eclipse.platform.swt/pull/1358 -->
<td class="title">Monitor-Specific UI Rescaling in Display Class (Windows only)</td>
<td class="content">
<p>
The API methods
<code>org.eclipse.swt.widgets.Display#setRescalingAtRuntime(boolean)</code> and
<code>org.eclipse.swt.widgets.Display#isRescalingAtRuntime()</code> have been added to SWT.
These methods allow to enable, disable, and retrieve the state of the "rescaling at runtime" functionality.
When enabled, it makes shells and their contents sharply rescale according to the current monitor they are placed on
or moved to.
<p>
<p>
Note that in order to work as expected, enabling the rescaling at runtime functionality will also set the DPI
awareness of the Display's thread to <a
href="https://learn.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process">PerMonitorV2</a>.
This happens even if the DPI awareness of the Java process itself is set to some different value.
</p>
<p>
To ensure backwards compatibility, this feature is disabled by default. The feature has to be enabled for a
<code>Display</code> it is supposed to be used for. It needs to be activated before a shell is created to take
proper effect.
As an example, the feature can be enabled in Eclipse applications via a preference, see <a
href="platform.php#rescale-on-runtime-preference">this news</a>.
</p>
<p>
<b>Note:</b> Those methods will currently only have an effect on Windows.
</p>
</td>
</tr>
<!-- *********************** End of SWT *********************** -->
<tr><td colspan="2"/></tr>
</tbody>
Expand Down