Commit 4b7c450
committed
[Win32] Process DPI change events via OS instead of Display#asyncExec
Asynchronous processing of DPI change events is currently done by
processing the event for each control via Display#asyncExec. This has
several drawbacks:
- the events are processed rather late (even after earlier scheduled,
lower-priority business events
- the events may not be processed while dragging a shell to another
monitor in case a browser currently has focus
- the events are not processed at all if a Synchronizer is used that
does not process async events (such as for an Eclipse workspace during
startup)
This change replaces the usage of Display#asyncExec for asynchronous
processing of DPI events with the a timer message beings sent with a
callback to the processed operation via the OS. WM_TIMER
events are used as they are processed with low priority by the OS but
still with higher priority by SWT than any business-logic-side tasks
scheduled at a Display instance.1 parent de56a75 commit 4b7c450
File tree
1 file changed
+45
-1
lines changed- bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets
1 file changed
+45
-1
lines changedLines changed: 45 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
5992 | 5993 | | |
5993 | 5994 | | |
5994 | 5995 | | |
5995 | | - | |
| 5996 | + | |
5996 | 5997 | | |
5997 | 5998 | | |
5998 | 5999 | | |
| |||
6010 | 6011 | | |
6011 | 6012 | | |
6012 | 6013 | | |
| 6014 | + | |
| 6015 | + | |
| 6016 | + | |
| 6017 | + | |
| 6018 | + | |
| 6019 | + | |
| 6020 | + | |
| 6021 | + | |
| 6022 | + | |
| 6023 | + | |
| 6024 | + | |
| 6025 | + | |
| 6026 | + | |
| 6027 | + | |
| 6028 | + | |
| 6029 | + | |
| 6030 | + | |
| 6031 | + | |
| 6032 | + | |
| 6033 | + | |
| 6034 | + | |
| 6035 | + | |
| 6036 | + | |
| 6037 | + | |
| 6038 | + | |
| 6039 | + | |
| 6040 | + | |
| 6041 | + | |
| 6042 | + | |
| 6043 | + | |
| 6044 | + | |
| 6045 | + | |
| 6046 | + | |
| 6047 | + | |
| 6048 | + | |
| 6049 | + | |
| 6050 | + | |
| 6051 | + | |
| 6052 | + | |
| 6053 | + | |
| 6054 | + | |
| 6055 | + | |
| 6056 | + | |
6013 | 6057 | | |
6014 | 6058 | | |
6015 | 6059 | | |
| |||
0 commit comments