Don't enable `WS_EX_COMPOSITED` by default in wxMSW any longer (PR #25808)

53 views
Skip to first unread message

VZ

unread,
Sep 17, 2025, 7:23:01 PM (7 days ago) Sep 17
to wx-...@googlegroups.com, Subscribed

This restores pre-3.3 behaviour of not using composition (native double buffering) for all windows and removes many workarounds that are not necessary any more. It wasn't simple to find all such workarounds and I'm not sure if I found all of them, please let me know anything else that could/should be reverted now.

This should fix #25025, #25797 and maybe others I'm forgetting around.

Please test this if you can, TIA!


You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/25808

Commit Summary

  • 4a8a4f5 Revert "Restore the use of WS_EX_COMPOSITED by default"
  • 2d48742 Revert "Disable use of composition for top most windows"
  • 4e611e6 Revert "Fix MSWDisableComposited() compilation in wxUniv/MSW"
  • 0454e85 Revert "Fix wxStaticBox drawing after disabling composition for parent"
  • a17682e Revert "Force wxFULL_REPAINT_ON_RESIZE for windows using WS_EX_COMPOSITED"
  • 936fe18 Revert "Don't try to clear WS_EX_COMPOSITED for TLWs"
  • 0884cdf Revert "Add msw.window.no-composited system option"
  • 6a99988 Revert "Document WS_EX_COMPOSITED impact on wxClientDC"
  • 0d2c0d4 Revert "Disable use of composition in forty demo under MSW"
  • 1b6adc1 Revert "Disable compositing when using wxDragImage"
  • 3376d5f Revert "Enable double buffering for all generic windows in wxMSW"
  • ff6f871 Revert "samples/mfc: disable composition to allow wxClientDC to work"
  • 1666101 Remove now unnecessary calls to MSWDisableComposited()
  • 8edcfe1 Reset wxALWAYS_NATIVE_DOUBLE_BUFFER to 0 for wxMSW
  • 35f63a3 Revert "Fix wxDateTimePickerCtrl arrows redrawing with WS_EX_COMPOSITED"
  • 265b563 Don't draw wxSpinButton manually in light mode

File Changes

(20 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808@github.com>

VZ

unread,
Sep 18, 2025, 7:56:36 AM (7 days ago) Sep 18
to wx-...@googlegroups.com, Push

@vadz pushed 13 commits.

  • 3152ac4 Revert "Fix wxStaticBox drawing after disabling composition for parent"
  • 166133d Revert "Force wxFULL_REPAINT_ON_RESIZE for windows using WS_EX_COMPOSITED"
  • 5d63c76 Revert "Don't try to clear WS_EX_COMPOSITED for TLWs"
  • 4f99419 Revert "Add msw.window.no-composited system option"
  • 08f62de Revert "Document WS_EX_COMPOSITED impact on wxClientDC"
  • b21df12 Revert "Disable use of composition in forty demo under MSW"
  • 6073ac7 Revert "Disable compositing when using wxDragImage"
  • 56bd4a6 Revert "Enable double buffering for all generic windows in wxMSW"
  • 9ee71a7 Revert "samples/mfc: disable composition to allow wxClientDC to work"
  • c128e88 Remove now unnecessary calls to MSWDisableComposited()
  • bd668fd Reset wxALWAYS_NATIVE_DOUBLE_BUFFER to 0 for wxMSW
  • ad90b17 Revert "Fix wxDateTimePickerCtrl arrows redrawing with WS_EX_COMPOSITED"
  • f2a068d Don't draw wxSpinButton manually in light mode


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/before/265b563c3ba9a976ec7f2b563b07a0a9c5a39cc7/after/f2a068d9323d06562ddf9c55770a9a16042f827a@github.com>

AliKet

unread,
Sep 18, 2025, 9:58:03 AM (7 days ago) Sep 18
to wx-...@googlegroups.com, Subscribed
AliKet left a comment (wxWidgets/wxWidgets#25808)

I'm just wondering if the wxGrid control will be affected by these changes. I don't have time to check it myself, as I'm preparing a pull request to add RTL support to the wxQt port, and also trying to complete #25426.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/c3307612701@github.com>

VZ

unread,
Sep 18, 2025, 12:31:26 PM (7 days ago) Sep 18
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25808)

At first glance the grid sample seems to work fine, is there anything more concrete you think should be tested in it? I've checked selection, editing, scrolling.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/c3308443411@github.com>

Bill Su

unread,
Sep 18, 2025, 11:35:39 PM (6 days ago) Sep 18
to wx-...@googlegroups.com, Subscribed
wsu-cb left a comment (wxWidgets/wxWidgets#25808)

If I understand correctly, wxMSW behaves more like other ports when this PR is NOT applied. Is that correct? If so, with this PR applied, how should I configure my wxMSW application to go back to the more-portable behavior?


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/c3310406115@github.com>

VZ

unread,
Sep 19, 2025, 7:31:35 AM (6 days ago) Sep 19
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25808)

If I understand correctly, wxMSW behaves more like other ports when this PR is NOT applied. Is that correct? If so, with this PR applied, how should I configure my wxMSW application to go back to the more-portable behavior?

You'll just have to avoid the use of wxClientDC. Maybe we could add some wxNO_CLIENT_DC preprocessor symbol that could be predefined by the application to make its declaration inaccessible to them, in order to prevent them from accidentally relying on it working.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/c3311843135@github.com>

VZ

unread,
Sep 22, 2025, 9:40:51 AM (3 days ago) Sep 22
to wx-...@googlegroups.com, Subscribed
vadz left a comment (wxWidgets/wxWidgets#25808)

I'm going to merge this soon if there are no other comments.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/c3319111740@github.com>

VZ

unread,
Sep 23, 2025, 9:40:50 AM (2 days ago) Sep 23
to wx-...@googlegroups.com, Subscribed

Merged #25808 into master.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25808/issue_event/19866965785@github.com>

Reply all
Reply to author
Forward
0 new messages