win32ss / supermium

Chromium fork for Windows XP/2003 and up
https://win32subsystem.live/supermium/
BSD 3-Clause "New" or "Revised" License
1.84k stars 61 forks source link

[UI, Functional] Corrupted window frame and no header' buttons on theme switching #605

Open XakerTwo opened 1 month ago

XakerTwo commented 1 month ago

Description When switching from theme that customize window frame to simple theme or default, window header and buttons(Close/Minimize/Maximize) disappears. It becomes "transparent" but accept mouse events - you can move and resize window or call its context menu. The windows management button (down arrow) also remains.

To Reproduce

  1. Apply any theme that has custom frame (say with id kbkgdmbcegbedgcjpekbineokpgpkikd )
  2. Reset or apply any simple theme (simple theme id cmhmcmgkegfffbbfobhjpdbimgmoohap)
  3. Observe

Screenshots Captured on VM with v122.0.6261.85 R2, but as well happen on Host with v122.0.6261.152 R6

Should be ![window_header_normal](https://github.com/win32ss/supermium/assets/13261533/27b04ccc-c895-4b5d-b1cb-5b9691a6fabe)
Actually after theme reset, same after switching to simple theme ![window_header_broken](https://github.com/win32ss/supermium/assets/13261533/f54f86e1-b117-447e-822f-b428d708e924)
In windowed mode(non-maximized) ![window_frame_broken_windowed](https://github.com/win32ss/supermium/assets/13261533/41812745-303b-4bb0-b5e5-058c0ef45262)
Captured moment between redrawing on moving from behind screen edge ![window_frame_broken_windowed_moving](https://github.com/win32ss/supermium/assets/13261533/87c46b39-6820-4898-88cc-5c1fde9bfef4)

Desktop:

Additional context Looks like window drawing without visual styles. On resizing or moving from behind screen edges, header' buttons may appears between redrawing in classic style Screenshots was made with #force-dark-mode + #enable-force-dark flags and -disable-webgl switch, but same behaviour without any flags and switches.

win32ss commented 1 month ago

I will try to see if I can force a full re-initialization of the window elements itself, anything short of requiring the browser to restart.