widget: add shortcut to gtk_widget_set_child_visible
authorTimm Bäder <mail@baedert.org>
Sat, 21 Apr 2018 18:14:05 +0000 (20:14 +0200)
committerTimm Bäder <mail@baedert.org>
Tue, 1 May 2018 13:13:11 +0000 (15:13 +0200)
So we don't do unnecessary work when just setting priv->child_visible to
the same value again.

gtk/gtkwidget.c
gtk/gtkwidget.h

index d565719854e68ae2c5bf1ced2df75965c34205c3..58a8379aacc08337388c49e6118eae4d7dc7ebfd 100644 (file)
@@ -7618,7 +7618,7 @@ gtk_widget_get_parent_surface (GtkWidget *widget)
 /**
  * gtk_widget_set_child_visible:
  * @widget: a #GtkWidget
- * @is_visible: if %TRUE, @widget should be mapped along with its parent.
+ * @child_visible: if %TRUE, @widget should be mapped along with its parent.
  *
  * Sets whether @widget should be mapped along with its when its parent
  * is mapped and @widget has been shown with gtk_widget_show().
@@ -7640,17 +7640,22 @@ gtk_widget_get_parent_surface (GtkWidget *widget)
  **/
 void
 gtk_widget_set_child_visible (GtkWidget *widget,
-                             gboolean   is_visible)
+                              gboolean   child_visible)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (!_gtk_widget_is_toplevel (widget));
 
+  child_visible = !!child_visible;
+
+  if (priv->child_visible == child_visible)
+    return;
+
   g_object_ref (widget);
   gtk_widget_verify_invariants (widget);
 
-  if (is_visible)
+  if (child_visible)
     priv->child_visible = TRUE;
   else
     {
index 172ef445306ef0e0645dd4b254cde52192b58593..3987e7d42b138bc409afa752e3427c5d216b5bd7 100644 (file)
@@ -589,7 +589,7 @@ GdkSurface           * gtk_widget_get_parent_surface    (GtkWidget    *widget);
 
 GDK_AVAILABLE_IN_ALL
 void                  gtk_widget_set_child_visible      (GtkWidget    *widget,
-                                                         gboolean      is_visible);
+                                                         gboolean      child_visible);
 GDK_AVAILABLE_IN_ALL
 gboolean              gtk_widget_get_child_visible      (GtkWidget    *widget);