diff --git a/gdk/gdktoplevel.c b/gdk/gdktoplevel.c index 3b8a22a611..a7802a3504 100644 --- a/gdk/gdktoplevel.c +++ b/gdk/gdktoplevel.c @@ -99,6 +99,7 @@ gdk_toplevel_notify_compute_size (GdkToplevel *toplevel, GdkToplevelSize *size) { g_signal_emit (toplevel, signals[COMPUTE_SIZE], 0, size); + gdk_toplevel_size_validate (size); } static void diff --git a/gdk/gdktoplevelsize.c b/gdk/gdktoplevelsize.c index 18933523ff..276e63f951 100644 --- a/gdk/gdktoplevelsize.c +++ b/gdk/gdktoplevelsize.c @@ -117,3 +117,19 @@ gdk_toplevel_size_set_min_size (GdkToplevelSize *size, size->min_width = min_width; size->min_height = min_height; } + +void +gdk_toplevel_size_validate (GdkToplevelSize *size) +{ + if (size->min_width > size->bounds_width || + size->min_height > size->bounds_height) + g_warning ("GdkToplevelSize: min_size exceeds bounds"); + + if (size->width > size->bounds_width || + size->height > size->bounds_height) + g_warning ("GdkToplevelSize: size exceeds bounds"); + + if (size->min_width > size->width || + size->min_height > size->height) + g_warning ("GdkToplevelSize: min_size exceeds size"); +} diff --git a/gdk/gdktoplevelsizeprivate.h b/gdk/gdktoplevelsizeprivate.h index eaddefba0b..3576513888 100644 --- a/gdk/gdktoplevelsizeprivate.h +++ b/gdk/gdktoplevelsizeprivate.h @@ -36,4 +36,6 @@ void gdk_toplevel_size_init (GdkToplevelSize *size, int bounds_width, int bounds_height); +void gdk_toplevel_size_validate (GdkToplevelSize *size); + #endif /* __GDK_TOPLEVEL_SIZE_PRIVATE_H__ */