summaryrefslogtreecommitdiff
path: root/gdk/gdkwindow.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2016-11-24 04:32:26 +0100
committerBenjamin Otte <otte@redhat.com>2016-11-24 04:43:42 +0100
commitae29d4db5ae64edb94b85a23a236521332a2efd9 (patch)
tree95160f5cef0c1de20c86c2f32fbf1d19e93f6831 /gdk/gdkwindow.c
parent3414f10badc821b7f727e3aad21735d2c4a7596c (diff)
downloadgtk+-ae29d4db5ae64edb94b85a23a236521332a2efd9.tar.gz
gdk: Use stricter checks for begin_draw_frame()
We don't support drawing on child windows, so make sure nobody tries.
Diffstat (limited to 'gdk/gdkwindow.c')
-rw-r--r--gdk/gdkwindow.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index e39bfb16ed..3f2d526b23 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2894,6 +2894,8 @@ gdk_window_begin_draw_frame (GdkWindow *window,
GdkDrawingContext *context;
g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
+ g_return_val_if_fail (gdk_window_has_native (window), NULL);
+ g_return_val_if_fail (gdk_window_is_toplevel (window), NULL);
if (window->drawing_context != NULL)
{
@@ -2903,8 +2905,7 @@ gdk_window_begin_draw_frame (GdkWindow *window,
return NULL;
}
- if (gdk_window_has_native (window) && gdk_window_is_toplevel (window))
- gdk_window_begin_paint_internal (window, region);
+ gdk_window_begin_paint_internal (window, region);
context = GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_draw_context (window, region);
@@ -2935,18 +2936,9 @@ gdk_window_end_draw_frame (GdkWindow *window,
{
g_return_if_fail (GDK_IS_WINDOW (window));
g_return_if_fail (GDK_IS_DRAWING_CONTEXT (context));
-
- if (window->drawing_context == NULL)
- {
- g_critical ("The window %p has no drawing context. You must call "
- "gdk_window_begin_draw_frame() before calling "
- "gdk_window_end_draw_frame().", window);
- return;
- }
g_return_if_fail (window->drawing_context == context);
- if (gdk_window_has_native (window) && gdk_window_is_toplevel (window))
- gdk_window_end_paint_internal (window);
+ gdk_window_end_paint_internal (window);
window->drawing_context = NULL;