[gtk+] eventbox: Remove visible-window property



commit b71f644cf5fd48e465bf3463e2e2a3ceef0dc9cf
Author: Timm Bäder <mail baedert org>
Date:   Thu Jul 27 21:53:42 2017 +0200

    eventbox: Remove visible-window property
    
    The GdkWindow that was supposed to back it is gone.

 docs/reference/gtk/gtk4-sections.txt |    2 -
 gtk/gtkeventbox.c                    |  118 ----------------------------------
 gtk/gtkeventbox.h                    |    5 --
 gtk/gtktexthandle.c                  |    1 -
 tests/testgtk.c                      |   16 -----
 5 files changed, 0 insertions(+), 142 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 3f7eaf3..a268adf 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -1038,8 +1038,6 @@ GtkEventBoxClass
 gtk_event_box_new
 gtk_event_box_set_above_child
 gtk_event_box_get_above_child
-gtk_event_box_set_visible_window
-gtk_event_box_get_visible_window
 <SUBSECTION Standard>
 GTK_EVENT_BOX
 GTK_IS_EVENT_BOX
diff --git a/gtk/gtkeventbox.c b/gtk/gtkeventbox.c
index 6a6ba9f..ac2cd2c 100644
--- a/gtk/gtkeventbox.c
+++ b/gtk/gtkeventbox.c
@@ -52,7 +52,6 @@ struct _GtkEventBoxPrivate
 
 enum {
   PROP_0,
-  PROP_VISIBLE_WINDOW,
   PROP_ABOVE_CHILD
 };
 
@@ -91,13 +90,6 @@ gtk_event_box_class_init (GtkEventBoxClass *class)
   widget_class->size_allocate = gtk_event_box_size_allocate;
 
   g_object_class_install_property (gobject_class,
-                                   PROP_VISIBLE_WINDOW,
-                                   g_param_spec_boolean ("visible-window",
-                                                        P_("Visible Window"),
-                                                        P_("Whether the event box is visible, as opposed to 
invisible and only used to trap events."),
-                                                        FALSE,
-                                                        GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
-  g_object_class_install_property (gobject_class,
                                    PROP_ABOVE_CHILD,
                                    g_param_spec_boolean ("above-child",
                                                         P_("Above child"),
@@ -140,10 +132,6 @@ gtk_event_box_set_property (GObject      *object,
 
   switch (prop_id)
     {
-    case PROP_VISIBLE_WINDOW:
-      gtk_event_box_set_visible_window (event_box, g_value_get_boolean (value));
-      break;
-
     case PROP_ABOVE_CHILD:
       gtk_event_box_set_above_child (event_box, g_value_get_boolean (value));
       break;
@@ -166,10 +154,6 @@ gtk_event_box_get_property (GObject     *object,
 
   switch (prop_id)
     {
-    case PROP_VISIBLE_WINDOW:
-      g_value_set_boolean (value, gtk_event_box_get_visible_window (event_box));
-      break;
-
     case PROP_ABOVE_CHILD:
       g_value_set_boolean (value, gtk_event_box_get_above_child (event_box));
       break;
@@ -181,108 +165,6 @@ gtk_event_box_get_property (GObject     *object,
 }
 
 /**
- * gtk_event_box_get_visible_window:
- * @event_box: a #GtkEventBox
- *
- * Returns whether the event box has a visible window.
- * See gtk_event_box_set_visible_window() for details.
- *
- * Returns: %TRUE if the event box window is visible
- *
- * Since: 2.4
- */
-gboolean
-gtk_event_box_get_visible_window (GtkEventBox *event_box)
-{
-  g_return_val_if_fail (GTK_IS_EVENT_BOX (event_box), FALSE);
-
-  return gtk_widget_get_has_window (GTK_WIDGET (event_box));
-}
-
-/**
- * gtk_event_box_set_visible_window:
- * @event_box: a #GtkEventBox
- * @visible_window: %TRUE to make the event box have a visible window
- *
- * Set whether the event box uses a visible or invisible child
- * window. The default is to use visible windows.
- *
- * In an invisible window event box, the window that the
- * event box creates is a %GDK_INPUT_ONLY window, which
- * means that it is invisible and only serves to receive
- * events.
- *
- * A visible window event box creates a visible (%GDK_INPUT_OUTPUT)
- * window that acts as the parent window for all the widgets
- * contained in the event box.
- *
- * You should generally make your event box invisible if
- * you just want to trap events. Creating a visible window
- * may cause artifacts that are visible to the user, especially
- * if the user is using a theme with gradients or pixmaps.
- *
- * The main reason to create a non input-only event box is if
- * you want to set the background to a different color or
- * draw on it.
- *
- * There is one unexpected issue for an invisible event box that has its
- * window below the child. (See gtk_event_box_set_above_child().)
- * Since the input-only window is not an ancestor window of any windows
- * that descendent widgets of the event box create, events on these
- * windows aren’t propagated up by the windowing system, but only by GTK+.
- * The practical effect of this is if an event isn’t in the event
- * mask for the descendant window (see gtk_widget_add_events()),
- * it won’t be received by the event box.
- * 
- * This problem doesn’t occur for visible event boxes, because in
- * that case, the event box window is actually the ancestor of the
- * descendant windows, not just at the same place on the screen.
- *
- * Since: 2.4
- */
-void
-gtk_event_box_set_visible_window (GtkEventBox *event_box,
-                                  gboolean     visible_window)
-{
-  GtkWidget *widget;
-
-  g_return_if_fail (GTK_IS_EVENT_BOX (event_box));
-
-  widget = GTK_WIDGET (event_box);
-
-  visible_window = visible_window != FALSE;
-
-  if (visible_window != gtk_widget_get_has_window (widget))
-    {
-      if (gtk_widget_get_realized (widget))
-        {
-          gboolean visible = gtk_widget_get_visible (widget);
-
-          if (visible)
-            gtk_widget_hide (widget);
-
-          gtk_widget_unrealize (widget);
-
-          gtk_widget_set_has_window (widget, visible_window);
-
-          gtk_widget_realize (widget);
-
-          if (visible)
-            gtk_widget_show (widget);
-        }
-      else
-        {
-          gtk_widget_set_has_window (widget, visible_window);
-        }
-
-      if (gtk_widget_get_visible (widget))
-        gtk_widget_queue_resize (widget);
-
-      g_object_notify (G_OBJECT (event_box), "visible-window");
-    }
-}
-
-/**
  * gtk_event_box_get_above_child:
  * @event_box: a #GtkEventBox
  *
diff --git a/gtk/gtkeventbox.h b/gtk/gtkeventbox.h
index 3129ae1..fae62eb 100644
--- a/gtk/gtkeventbox.h
+++ b/gtk/gtkeventbox.h
@@ -76,11 +76,6 @@ GType      gtk_event_box_get_type           (void) G_GNUC_CONST;
 GDK_AVAILABLE_IN_ALL
 GtkWidget* gtk_event_box_new                (void);
 GDK_AVAILABLE_IN_ALL
-gboolean   gtk_event_box_get_visible_window (GtkEventBox *event_box);
-GDK_AVAILABLE_IN_ALL
-void       gtk_event_box_set_visible_window (GtkEventBox *event_box,
-                                             gboolean     visible_window);
-GDK_AVAILABLE_IN_ALL
 gboolean   gtk_event_box_get_above_child    (GtkEventBox *event_box);
 GDK_AVAILABLE_IN_ALL
 void       gtk_event_box_set_above_child    (GtkEventBox *event_box,
diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c
index eff87c7..70fe9d7 100644
--- a/gtk/gtktexthandle.c
+++ b/gtk/gtktexthandle.c
@@ -283,7 +283,6 @@ _gtk_text_handle_ensure_widget (GtkTextHandle         *handle,
       GtkStyleContext *context;
 
       widget = gtk_event_box_new ();
-      gtk_event_box_set_visible_window (GTK_EVENT_BOX (widget), TRUE);
 
       gtk_widget_set_direction (widget, priv->windows[pos].dir);
 
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 4158016..5eede7f 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -3263,14 +3263,6 @@ event_box_button_clicked (GtkWidget *widget,
 }
 
 static void
-event_box_toggle_visible_window (GtkWidget *checkbutton,
-                                GtkEventBox *event_box)
-{
-  gtk_event_box_set_visible_window (event_box,
-                                    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
-}
-
-static void
 event_box_toggle_above_child (GtkWidget *checkbutton,
                              GtkEventBox *event_box)
 {
@@ -3290,7 +3282,6 @@ create_event_box (GtkWidget *widget)
   GtkWidget *separator;
   GtkWidget *event_box;
   GtkWidget *label;
-  GtkWidget *visible_window_check;
   GtkWidget *above_child_check;
 
   if (!window)
@@ -3332,13 +3323,6 @@ create_event_box (GtkWidget *widget)
                        G_CALLBACK (event_box_button_clicked),
                        NULL);
 
-
-      visible_window_check = gtk_check_button_new_with_label("Visible Window");
-      gtk_box_pack_start (GTK_BOX (box1), visible_window_check);
-      g_signal_connect (visible_window_check, "toggled",
-                       G_CALLBACK (event_box_toggle_visible_window), event_box);
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (visible_window_check), TRUE);
-
       above_child_check = gtk_check_button_new_with_label("Above Child");
       gtk_box_pack_start (GTK_BOX (box1), above_child_check);
       g_signal_connect (above_child_check, "toggled",


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