[gtk] widget: Insist on proper vfunc calling



commit e85f1e176a20f8169e5c6635e1bdaa8aca61fdfb
Author: Benjamin Otte <otte redhat com>
Date:   Wed May 29 15:01:18 2019 +0200

    widget: Insist on proper vfunc calling
    
    Insist that ->show() is only called for invisible and ->hide only for
    visible widgets.

 gtk/gtkwidget.c | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 26dbae1197..498c49b73f 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -3137,16 +3137,15 @@ gtk_widget_real_show (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
-  if (!_gtk_widget_get_visible (widget))
-    {
-      priv->visible = TRUE;
+  g_return_if_fail (!_gtk_widget_get_visible (widget));
 
-      if (priv->parent &&
-         _gtk_widget_get_mapped (priv->parent) &&
-          _gtk_widget_get_child_visible (widget) &&
-         !_gtk_widget_get_mapped (widget))
-       gtk_widget_map (widget);
-    }
+  priv->visible = TRUE;
+
+  if (priv->parent &&
+      _gtk_widget_get_mapped (priv->parent) &&
+      _gtk_widget_get_child_visible (widget) &&
+      !_gtk_widget_get_mapped (widget))
+    gtk_widget_map (widget);
 }
 
 /**
@@ -3204,13 +3203,12 @@ gtk_widget_real_hide (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
-  if (_gtk_widget_get_visible (widget))
-    {
-      priv->visible = FALSE;
+  g_return_if_fail (_gtk_widget_get_visible (widget));
 
-      if (_gtk_widget_get_mapped (widget))
-       gtk_widget_unmap (widget);
-    }
+  priv->visible = FALSE;
+
+  if (_gtk_widget_get_mapped (widget))
+    gtk_widget_unmap (widget);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]