Skip to content

gdkwindow-win32.c: Set WS_BORDER for fullscreen GL windows if requested

Chun-wei Fan requested to merge win32-gl-fullscreen-workaround-gtk3 into gtk-3-24

Hi,

From issue #1702 (closed), we are facing possible issues where items such as menus may not be shown when a gtkglarea window is being made fullscreen, likely due to driver issues that disable the Windows DWM upon making the window fullscreen. This is an opt-in workaround to ensure that DWM does not get disabled in the process, which is activated by using an envvar.

From the commit message:

With some GL drivers, it may be the case that menus are not shown correctly in fullscreen GL windows because DWM is deactivated in the process.

Force WS_BORDER to be applied to the fullscreen GL window so that we have a small 1px border when needed (by setting an envvar), so that DWM does not get deactivated, hence enabling the menus to show. Also, when we force WS_BORDER to be applied in this situation, we also deliberately place the window just outside the top lefthand corner of the screen by 1px and make the window 1px larger than the screen size, so that we effectively hide the 1px border from view.

With blessings, thank you!

Fixes issue #1702 (closed).

Edited by Chun-wei Fan

Merge request reports