GdkWin32: Position popups on the primary monitor if outside of the visible screen area

Fixes a crash caused by attempting to dereference a NULL GdkMonitor*
in GdkWin32.

See https://gitlab.gnome.org/GNOME/gtk/-/issues/5125
This commit is contained in:
Luca Bacci 2022-08-23 14:54:01 +02:00
parent e68925a932
commit d125fcd35a

View File

@ -1180,6 +1180,11 @@ gdk_win32_surface_layout_popup (GdkSurface *surface,
monitor = gdk_surface_get_layout_monitor (surface, layout,
gdk_win32_monitor_get_workarea);
if (!monitor)
{
GdkDisplay *display = gdk_surface_get_display (surface);
monitor = gdk_win32_display_get_primary_monitor (display);
}
gdk_win32_monitor_get_workarea (monitor, &bounds);
gdk_popup_layout_get_shadow_width (layout,