]> Pileus Git - ~andy/gtk/commitdiff
API: Add gtk_widget_is_visible()
authorBenjamin Otte <otte@redhat.com>
Thu, 1 Nov 2012 23:42:45 +0000 (00:42 +0100)
committerBenjamin Otte <otte@redhat.com>
Sun, 4 Nov 2012 14:24:17 +0000 (15:24 +0100)
This is a recursive gtk_widget_get_visible(): Returns TRUE if the widget
and all its parents are visible.

docs/reference/gtk/gtk3-sections.txt
gtk/gtk.symbols
gtk/gtkwidget.c
gtk/gtkwidget.h

index 9e159b160cab602ce189a50663570ca936c6596f..0cdc9917376f9f3b556ee9683ab804c25a057334 100644 (file)
@@ -5291,6 +5291,7 @@ gtk_widget_get_sensitive
 gtk_widget_is_sensitive
 gtk_widget_get_state
 gtk_widget_get_visible
+gtk_widget_is_visible
 gtk_widget_set_visible
 gtk_widget_set_state_flags
 gtk_widget_unset_state_flags
index 9a1a86b6b74e81bc9c1786b43f16e6aa392669f9..0e4eee4771bbe319bd4000a586ac59ab28f21021 100644 (file)
@@ -3708,6 +3708,7 @@ gtk_widget_is_composited
 gtk_widget_is_drawable
 gtk_widget_is_focus
 gtk_widget_is_sensitive
+gtk_widget_is_visible
 gtk_widget_is_toplevel
 gtk_widget_keynav_failed
 gtk_widget_list_accel_closures
index 58ad57af2387cb16e6d21062e1ed72de579fc1ea..2f4dc0871cfbaa6c5c25f02513b5247a1ccd3e70 100644 (file)
@@ -7484,9 +7484,11 @@ _gtk_widget_set_visible_flag (GtkWidget *widget,
  * gtk_widget_get_visible:
  * @widget: a #GtkWidget
  *
- * Determines whether the widget is visible. Note that this doesn't
- * take into account whether the widget's parent is also visible
- * or the widget is obscured in any way.
+ * Determines whether the widget is visible. If you want to
+ * take into account whether the widget's parent is also marked as
+ * visible, use gtk_widget_is_visible() instead.
+ *
+ * This function does not check if the widget is obscured in any way.
  *
  * See gtk_widget_set_visible().
  *
@@ -7502,6 +7504,39 @@ gtk_widget_get_visible (GtkWidget *widget)
   return widget->priv->visible;
 }
 
+/**
+ * gtk_widget_is_visible:
+ * @widget: a #GtkWidget
+ *
+ * Determines whether the widget and all its parents are marked as
+ * visible.
+ *
+ * This function does not check if the widget is obscured in any way.
+ *
+ * See also gtk_widget_get_visible() and gtk_widget_set_visible()
+ *
+ * Return value: %TRUE if the widget and all its parents are visible
+ *
+ * Since: 3.8
+ **/
+gboolean
+gtk_widget_is_visible (GtkWidget *widget)
+{
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+  while (widget)
+    {
+      GtkWidgetPrivate *priv = widget->priv;
+
+      if (!priv->visible)
+        return FALSE;
+
+      widget = priv->parent;
+    }
+
+  return TRUE;
+}
+
 /**
  * gtk_widget_set_has_window:
  * @widget: a #GtkWidget
index c17847811770a953c2b36676f031c3cec7e2bf44..2cdc7f3e6f374da7ffd79e1ac975d917ccc86618 100644 (file)
@@ -589,6 +589,7 @@ gboolean              gtk_widget_is_sensitive           (GtkWidget    *widget);
 void                  gtk_widget_set_visible            (GtkWidget    *widget,
                                                          gboolean      visible);
 gboolean              gtk_widget_get_visible            (GtkWidget    *widget);
+gboolean              gtk_widget_is_visible             (GtkWidget    *widget);
 
 void                  gtk_widget_set_has_window         (GtkWidget    *widget,
                                                          gboolean      has_window);