From c35554cf6898b664adfd3e55047f497903adfd5f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 23 Feb 2019 23:14:29 -0500 Subject: [PATCH] Drop GtkInvisible It was already private, and the previous commit removed the last use. --- gtk/gtkinvisible.c | 295 -------------------------------------- gtk/gtkinvisibleprivate.h | 80 ----------- gtk/gtkwidget.c | 1 - gtk/gtkwidgetprivate.h | 1 - gtk/meson.build | 1 - 5 files changed, 378 deletions(-) delete mode 100644 gtk/gtkinvisible.c delete mode 100644 gtk/gtkinvisibleprivate.h diff --git a/gtk/gtkinvisible.c b/gtk/gtkinvisible.c deleted file mode 100644 index 9b66f3a9c8..0000000000 --- a/gtk/gtkinvisible.c +++ /dev/null @@ -1,295 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "config.h" - -#include "gtkinvisibleprivate.h" - -#include "gtkintl.h" -#include "gtkprivate.h" -#include "gtkroot.h" -#include "gtkwidgetprivate.h" - - -/** - * SECTION:gtkinvisible - * @Short_description: A widget which is not displayed - * @Title: GtkInvisible - * - * The #GtkInvisible widget is used internally in GTK+, and is probably not - * very useful for application developers. - * - * It is used for reliable pointer grabs and selection handling in the code - * for drag-and-drop. - */ - - -struct _GtkInvisiblePrivate -{ - GdkDisplay *display; - gboolean has_user_ref_count; -}; - -enum { - PROP_0, - PROP_DISPLAY, - LAST_ARG -}; - -static void gtk_invisible_destroy (GtkWidget *widget); -static void gtk_invisible_realize (GtkWidget *widget); -static void gtk_invisible_style_updated (GtkWidget *widget); -static void gtk_invisible_show (GtkWidget *widget); -static void gtk_invisible_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gtk_invisible_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void gtk_invisible_constructed (GObject *object); - -static GdkDisplay * -gtk_invisible_root_get_display (GtkRoot *root) -{ - GtkInvisible *invisible = GTK_INVISIBLE (root); - - return invisible->priv->display; -} - -static void -gtk_invisible_root_interface_init (GtkRootInterface *iface) -{ - iface->get_display = gtk_invisible_root_get_display; -} - -G_DEFINE_TYPE_WITH_CODE (GtkInvisible, gtk_invisible, GTK_TYPE_WIDGET, - G_ADD_PRIVATE (GtkInvisible) - G_IMPLEMENT_INTERFACE (GTK_TYPE_ROOT, - gtk_invisible_root_interface_init)) - -static void -gtk_invisible_class_init (GtkInvisibleClass *class) -{ - GObjectClass *gobject_class; - GtkWidgetClass *widget_class; - - widget_class = (GtkWidgetClass*) class; - gobject_class = (GObjectClass*) class; - - widget_class->realize = gtk_invisible_realize; - widget_class->style_updated = gtk_invisible_style_updated; - widget_class->show = gtk_invisible_show; - widget_class->destroy = gtk_invisible_destroy; - - gobject_class->set_property = gtk_invisible_set_property; - gobject_class->get_property = gtk_invisible_get_property; - gobject_class->constructed = gtk_invisible_constructed; - - g_object_class_install_property (gobject_class, - PROP_DISPLAY, - g_param_spec_object ("display", - P_("Display"), - P_("The display where this window will be displayed"), - GDK_TYPE_DISPLAY, - GTK_PARAM_READWRITE)); -} - -static void -gtk_invisible_init (GtkInvisible *invisible) -{ - GtkInvisiblePrivate *priv; - - invisible->priv = gtk_invisible_get_instance_private (invisible); - priv = invisible->priv; - - gtk_widget_set_has_surface (GTK_WIDGET (invisible), TRUE); - - g_object_ref_sink (invisible); - - priv->has_user_ref_count = TRUE; - priv->display = gdk_display_get_default (); -} - -static void -gtk_invisible_destroy (GtkWidget *widget) -{ - GtkInvisible *invisible = GTK_INVISIBLE (widget); - GtkInvisiblePrivate *priv = invisible->priv; - - if (priv->has_user_ref_count) - { - priv->has_user_ref_count = FALSE; - g_object_unref (invisible); - } - - GTK_WIDGET_CLASS (gtk_invisible_parent_class)->destroy (widget); -} - -/** - * gtk_invisible_new_for_display: - * @display: a #GdkDisplay which identifies on which - * the new #GtkInvisible will be created. - * - * Creates a new #GtkInvisible object for a specified display. - * - * Returns: a newly created #GtkInvisible object - **/ -GtkWidget* -gtk_invisible_new_for_display (GdkDisplay *display) -{ - g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - - return g_object_new (GTK_TYPE_INVISIBLE, "display", display, NULL); -} - -/** - * gtk_invisible_new: - * - * Creates a new #GtkInvisible. - * - * Returns: a new #GtkInvisible. - **/ -GtkWidget* -gtk_invisible_new (void) -{ - return g_object_new (GTK_TYPE_INVISIBLE, NULL); -} - -/** - * gtk_invisible_set_display: - * @invisible: a #GtkInvisible. - * @display: a #GdkDisplay. - * - * Sets the #GdkDisplay where the #GtkInvisible object will be displayed. - **/ -void -gtk_invisible_set_display (GtkInvisible *invisible, - GdkDisplay *display) -{ - GtkInvisiblePrivate *priv; - GtkWidget *widget; - GdkDisplay *previous_display; - gboolean was_realized; - - g_return_if_fail (GTK_IS_INVISIBLE (invisible)); - g_return_if_fail (GDK_IS_DISPLAY (display)); - - priv = invisible->priv; - - if (display == priv->display) - return; - - widget = GTK_WIDGET (invisible); - - previous_display = priv->display; - was_realized = gtk_widget_get_realized (widget); - - if (was_realized) - gtk_widget_unrealize (widget); - - priv->display = display; - if (display != previous_display) - _gtk_widget_propagate_display_changed (widget, previous_display); - g_object_notify (G_OBJECT (invisible), "display"); - - if (was_realized) - gtk_widget_realize (widget); -} - -static void -gtk_invisible_realize (GtkWidget *widget) -{ - GdkSurface *surface; - - surface = gdk_surface_new_temp (gtk_widget_get_display (widget)); - gtk_widget_set_surface (widget, surface); - gtk_widget_register_surface (widget, surface); - - GTK_WIDGET_CLASS (gtk_invisible_parent_class)->realize (widget); -} - -static void -gtk_invisible_style_updated (GtkWidget *widget) -{ - /* Don't chain up to parent implementation */ -} - -static void -gtk_invisible_show (GtkWidget *widget) -{ - _gtk_widget_set_visible_flag (widget, TRUE); - gtk_widget_map (widget); -} - -static void -gtk_invisible_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GtkInvisible *invisible = GTK_INVISIBLE (object); - - switch (prop_id) - { - case PROP_DISPLAY: - gtk_invisible_set_display (invisible, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gtk_invisible_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GtkInvisible *invisible = GTK_INVISIBLE (object); - GtkInvisiblePrivate *priv = invisible->priv; - - switch (prop_id) - { - case PROP_DISPLAY: - g_value_set_object (value, priv->display); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -/* We use a constructor here so that we can realize the invisible on - * the correct display after the “display” property has been set - */ -static void -gtk_invisible_constructed (GObject *object) -{ - G_OBJECT_CLASS (gtk_invisible_parent_class)->constructed (object); - - gtk_widget_realize (GTK_WIDGET (object)); -} diff --git a/gtk/gtkinvisibleprivate.h b/gtk/gtkinvisibleprivate.h deleted file mode 100644 index c65053bca0..0000000000 --- a/gtk/gtkinvisibleprivate.h +++ /dev/null @@ -1,80 +0,0 @@ -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __GTK_INVISIBLE_H__ -#define __GTK_INVISIBLE_H__ - -#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only can be included directly." -#endif - -#include - -G_BEGIN_DECLS - -#define GTK_TYPE_INVISIBLE (gtk_invisible_get_type ()) -#define GTK_INVISIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_INVISIBLE, GtkInvisible)) -#define GTK_INVISIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_INVISIBLE, GtkInvisibleClass)) -#define GTK_IS_INVISIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_INVISIBLE)) -#define GTK_IS_INVISIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_INVISIBLE)) -#define GTK_INVISIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_INVISIBLE, GtkInvisibleClass)) - - -typedef struct _GtkInvisible GtkInvisible; -typedef struct _GtkInvisiblePrivate GtkInvisiblePrivate; -typedef struct _GtkInvisibleClass GtkInvisibleClass; - -struct _GtkInvisible -{ - GtkWidget widget; - - /*< private >*/ - GtkInvisiblePrivate *priv; -}; - -struct _GtkInvisibleClass -{ - GtkWidgetClass parent_class; - - /* Padding for future expansion */ - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); - void (*_gtk_reserved4) (void); -}; - -GDK_AVAILABLE_IN_ALL -GType gtk_invisible_get_type (void) G_GNUC_CONST; - -GDK_AVAILABLE_IN_ALL -GtkWidget* gtk_invisible_new (void); -GDK_AVAILABLE_IN_ALL -GtkWidget* gtk_invisible_new_for_display(GdkDisplay *display); -GDK_AVAILABLE_IN_ALL -void gtk_invisible_set_display (GtkInvisible *invisible, - GdkDisplay *display); - -G_END_DECLS - -#endif /* __GTK_INVISIBLE_H__ */ diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index a5f84c9137..f3dbb7316a 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -12075,7 +12075,6 @@ static gboolean gtk_widget_class_get_visible_by_default (GtkWidgetClass *widget_class) { return !(GTK_IS_WINDOW_CLASS (widget_class) || - GTK_IS_INVISIBLE_CLASS (widget_class) || GTK_IS_POPOVER_CLASS (widget_class)); } diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index d0f3016364..49c4d19de0 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -35,7 +35,6 @@ #include "gtkrootprivate.h" #include "gtksizerequestcacheprivate.h" #include "gtkwindowprivate.h" -#include "gtkinvisibleprivate.h" #include "gtkgesture.h" #include "gsk/gskrendernodeprivate.h" diff --git a/gtk/meson.build b/gtk/meson.build index 33b723041b..2c705982a9 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -259,7 +259,6 @@ gtk_public_sources = files([ 'gtkimmodule.c', 'gtkimmulticontext.c', 'gtkinfobar.c', - 'gtkinvisible.c', 'gtklabel.c', 'gtklayout.c', 'gtklevelbar.c',