forked from AuroraMiddleware/gtk
gdk[cairo|gl]context-win32.c: Use gdk_win32_surface_handle_queued_move_resize()
Use the shared function that was added in the previous commit, to simplify things. Also make gdk_win32_surface_get_queued_window_rect() and gdk_win32_surface_apply_queued_move_resize() back into static functions, since they are now used only by the code in gdksurface-win32.c
This commit is contained in:
parent
c6ada2a329
commit
46a8a3fe31
@ -107,23 +107,7 @@ gdk_win32_cairo_context_begin_frame (GdkDrawContext *draw_context,
|
|||||||
impl = GDK_WIN32_SURFACE (surface);
|
impl = GDK_WIN32_SURFACE (surface);
|
||||||
scale = gdk_surface_get_scale_factor (surface);
|
scale = gdk_surface_get_scale_factor (surface);
|
||||||
|
|
||||||
self->layered = impl->layered;
|
queued_window_rect = gdk_win32_surface_handle_queued_move_resize (draw_context);
|
||||||
|
|
||||||
gdk_win32_surface_get_queued_window_rect (surface, scale, &queued_window_rect);
|
|
||||||
|
|
||||||
/* Apply queued resizes for non-double-buffered and non-layered windows
|
|
||||||
* before painting them (we paint on the window DC directly,
|
|
||||||
* it must have the right size).
|
|
||||||
* Due to some poorly-undetstood issue delayed
|
|
||||||
* resizing of double-buffered windows can produce weird
|
|
||||||
* artefacts, so these are also resized before we paint.
|
|
||||||
*/
|
|
||||||
if (impl->drag_move_resize_context.native_move_resize_pending &&
|
|
||||||
!self->layered)
|
|
||||||
{
|
|
||||||
impl->drag_move_resize_context.native_move_resize_pending = FALSE;
|
|
||||||
gdk_win32_surface_apply_queued_move_resize (surface, queued_window_rect);
|
|
||||||
}
|
|
||||||
|
|
||||||
width = queued_window_rect.right - queued_window_rect.left;
|
width = queued_window_rect.right - queued_window_rect.left;
|
||||||
height = queued_window_rect.bottom - queued_window_rect.top;
|
height = queued_window_rect.bottom - queued_window_rect.top;
|
||||||
|
@ -243,27 +243,10 @@ gdk_win32_gl_context_begin_frame (GdkDrawContext *draw_context,
|
|||||||
{
|
{
|
||||||
GdkGLContext *context = GDK_GL_CONTEXT (draw_context);
|
GdkGLContext *context = GDK_GL_CONTEXT (draw_context);
|
||||||
GdkSurface *surface;
|
GdkSurface *surface;
|
||||||
GdkWin32Surface *impl;
|
|
||||||
RECT queued_window_rect;
|
|
||||||
|
|
||||||
surface = gdk_gl_context_get_surface (context);
|
surface = gdk_gl_context_get_surface (context);
|
||||||
impl = GDK_WIN32_SURFACE (surface);
|
|
||||||
|
|
||||||
gdk_win32_surface_get_queued_window_rect (surface,
|
gdk_win32_surface_handle_queued_move_resize (draw_context);
|
||||||
gdk_surface_get_scale_factor (surface),
|
|
||||||
&queued_window_rect);
|
|
||||||
|
|
||||||
/* Apply queued resizes GL windows before painting them
|
|
||||||
* (we paint on the window DC directly, it must have the right size).
|
|
||||||
* Due to some poorly-understood issue delayed
|
|
||||||
* resizing of double-buffered windows can produce weird
|
|
||||||
* artefacts, so these are also resized before we paint.
|
|
||||||
*/
|
|
||||||
if (impl->drag_move_resize_context.native_move_resize_pending)
|
|
||||||
{
|
|
||||||
impl->drag_move_resize_context.native_move_resize_pending = FALSE;
|
|
||||||
gdk_win32_surface_apply_queued_move_resize (surface, queued_window_rect);
|
|
||||||
}
|
|
||||||
|
|
||||||
GDK_DRAW_CONTEXT_CLASS (gdk_win32_gl_context_parent_class)->begin_frame (draw_context, update_area);
|
GDK_DRAW_CONTEXT_CLASS (gdk_win32_gl_context_parent_class)->begin_frame (draw_context, update_area);
|
||||||
if (gdk_gl_context_get_shared_context (context))
|
if (gdk_gl_context_get_shared_context (context))
|
||||||
|
@ -5103,7 +5103,7 @@ _gdk_win32_surface_get_egl_surface (GdkSurface *surface,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
static void
|
||||||
gdk_win32_surface_get_queued_window_rect (GdkSurface *surface,
|
gdk_win32_surface_get_queued_window_rect (GdkSurface *surface,
|
||||||
int scale,
|
int scale,
|
||||||
RECT *return_window_rect)
|
RECT *return_window_rect)
|
||||||
@ -5125,7 +5125,7 @@ gdk_win32_surface_get_queued_window_rect (GdkSurface *surface,
|
|||||||
*return_window_rect = window_rect;
|
*return_window_rect = window_rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
gdk_win32_surface_apply_queued_move_resize (GdkSurface *surface,
|
gdk_win32_surface_apply_queued_move_resize (GdkSurface *surface,
|
||||||
RECT window_rect)
|
RECT window_rect)
|
||||||
{
|
{
|
||||||
|
@ -396,15 +396,6 @@ void gdk_win32_surface_move_resize (GdkSurface *window,
|
|||||||
RECT
|
RECT
|
||||||
gdk_win32_surface_handle_queued_move_resize (GdkDrawContext *draw_context);
|
gdk_win32_surface_handle_queued_move_resize (GdkDrawContext *draw_context);
|
||||||
|
|
||||||
void
|
|
||||||
gdk_win32_surface_get_queued_window_rect (GdkSurface *surface,
|
|
||||||
int scale,
|
|
||||||
RECT *return_window_rect);
|
|
||||||
|
|
||||||
void
|
|
||||||
gdk_win32_surface_apply_queued_move_resize (GdkSurface *surface,
|
|
||||||
RECT window_rect);
|
|
||||||
|
|
||||||
#ifdef GDK_WIN32_ENABLE_EGL
|
#ifdef GDK_WIN32_ENABLE_EGL
|
||||||
EGLSurface _gdk_win32_surface_get_egl_surface (GdkSurface *surface,
|
EGLSurface _gdk_win32_surface_get_egl_surface (GdkSurface *surface,
|
||||||
EGLConfig config,
|
EGLConfig config,
|
||||||
|
Loading…
Reference in New Issue
Block a user