We need to draw the whole non-client area ourselves #1184

Open
opened 2026-01-30 22:18:19 +00:00 by claunia · 0 comments
Owner

Originally created by @DHowett-MSFT on GitHub (May 17, 2019).

Originally assigned to: @zadjii-msft on GitHub.

If we want to be able to fully theme the window, we'll probably need to draw the theme parts ourselves. Right now the close button, minimize button and maximize/restore buttons are drawn by DWM/uxtheme if we don't tell it not to.
We don't get much say in where they are displayed (which is why there's a border on the right side of the window), and if we attempt to draw behind them we get an additive blend when the DWM splats the title bar down on top of us.

We probably need to look at DrawThemeBackground, DrawThemeIcon and friends.

Originally created by @DHowett-MSFT on GitHub (May 17, 2019). Originally assigned to: @zadjii-msft on GitHub. If we want to be able to fully theme the window, we'll probably need to draw the theme parts ourselves. Right now the close button, minimize button and maximize/restore buttons are drawn by DWM/uxtheme if we don't tell it not to. We don't get much say in where they are displayed (which is why there's a border on the right side of the window), and if we attempt to draw behind them we get an additive blend when the DWM splats the title bar down on top of us. We probably need to look at [`DrawThemeBackground`](https://docs.microsoft.com/en-us/windows/desktop/api/uxtheme/nf-uxtheme-drawthemebackground), [`DrawThemeIcon`](https://docs.microsoft.com/en-us/windows/desktop/api/uxtheme/nf-uxtheme-drawthemeicon) and friends.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#1184