Merge branch 'wip/chergert/gdk-macos-for-master' into 'master'

macos: various macos improvements for GTK 4

See merge request GNOME/gtk!2902
This commit is contained in:
Emmanuele Bassi 2020-12-02 01:14:30 +00:00
commit 770e848953
3 changed files with 20 additions and 4 deletions

View File

@ -447,15 +447,28 @@ _gdk_macos_gl_context_new (GdkMacosSurface *surface,
gboolean
_gdk_macos_gl_context_make_current (GdkMacosGLContext *self)
{
NSOpenGLContext *current;
g_return_val_if_fail (GDK_IS_MACOS_GL_CONTEXT (self), FALSE);
if (self->gl_context != nil)
if (self->gl_context == NULL)
return FALSE;
current = [NSOpenGLContext currentContext];
if (self->gl_context != current)
{
/* The OpenGL mac programming guide suggests that glFlush() is called
* before switching current contexts to ensure that the drawing commands
* are submitted.
*/
if (current != NULL)
glFlush ();
[self->gl_context makeCurrentContext];
return TRUE;
}
return FALSE;
return TRUE;
}
G_GNUC_END_IGNORE_DEPRECATIONS

View File

@ -174,6 +174,8 @@ _gdk_macos_toplevel_surface_present (GdkToplevel *toplevel,
}
else
{
[nswindow setAnimationBehavior:NSWindowAnimationBehaviorDocumentWindow];
if (!self->decorated &&
!GDK_MACOS_SURFACE (self)->did_initial_present &&
GDK_SURFACE (self)->x == 0 &&

View File

@ -567,8 +567,9 @@ get_renderer_for_backend (GdkSurface *surface)
return GSK_TYPE_BROADWAY_RENDERER;
#endif
#ifdef GDK_WINDOWING_MACOS
/* Use Cairo until GL renderer is working */
if (GDK_IS_MACOS_SURFACE (surface))
return GSK_TYPE_GL_RENDERER;
return GSK_TYPE_CAIRO_RENDERER;
#endif
#ifdef GDK_WINDOWING_WIN32
if (GDK_IS_WIN32_SURFACE (surface))