[gtk+/wip/baedert/drawing: 252/359] layout: Remove bin_window
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/drawing: 252/359] layout: Remove bin_window
- Date: Thu, 13 Jul 2017 14:48:58 +0000 (UTC)
commit 3329f3fb085ede28dd667ec075fd6cc2d430ec16
Author: Timm Bäder <mail baedert org>
Date: Sat Jun 17 10:59:03 2017 +0200
layout: Remove bin_window
docs/reference/gtk/gtk4-sections.txt | 1 -
gtk/gtklayout.c | 112 +---------------------------------
gtk/gtklayout.h | 2 -
tests/testgtk.c | 10 +---
4 files changed, 2 insertions(+), 123 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 68732dd..591bf12 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -1707,7 +1707,6 @@ gtk_layout_put
gtk_layout_move
gtk_layout_set_size
gtk_layout_get_size
-gtk_layout_get_bin_window
<SUBSECTION Standard>
GTK_LAYOUT
GTK_IS_LAYOUT
diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c
index 040e542..c510934 100644
--- a/gtk/gtklayout.c
+++ b/gtk/gtklayout.c
@@ -52,11 +52,6 @@
* #GtkScrolledWindow), and it can contain child widgets, since it’s a
* #GtkContainer. However if you’re just going to draw, a #GtkDrawingArea
* is a better choice since it has lower overhead.
- *
- * When handling expose events on a #GtkLayout, you must draw to
- * GTK_LAYOUT (layout)->bin_window, rather than to
- * GTK_WIDGET (layout)->window, as you would for a drawing
- * area.
*/
@@ -79,7 +74,6 @@ struct _GtkLayoutPrivate
/* Properties */
GdkVisibilityState visibility;
- GdkWindow *bin_window;
GList *children;
@@ -120,8 +114,6 @@ static void gtk_layout_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec);
static void gtk_layout_finalize (GObject *object);
-static void gtk_layout_realize (GtkWidget *widget);
-static void gtk_layout_unrealize (GtkWidget *widget);
static void gtk_layout_map (GtkWidget *widget);
static void gtk_layout_measure (GtkWidget *widget,
GtkOrientation orientation,
@@ -189,24 +181,6 @@ gtk_layout_new (GtkAdjustment *hadjustment,
return GTK_WIDGET (layout);
}
-/**
- * gtk_layout_get_bin_window:
- * @layout: a #GtkLayout
- *
- * Retrieve the bin window of the layout used for drawing operations.
- *
- * Returns: (transfer none): a #GdkWindow
- *
- * Since: 2.14
- **/
-GdkWindow*
-gtk_layout_get_bin_window (GtkLayout *layout)
-{
- g_return_val_if_fail (GTK_IS_LAYOUT (layout), NULL);
-
- return layout->priv->bin_window;
-}
-
static void
gtk_layout_set_hadjustment_values (GtkLayout *layout)
{
@@ -389,9 +363,6 @@ gtk_layout_put (GtkLayout *layout,
priv->children = g_list_append (priv->children, child);
- if (gtk_widget_get_realized (GTK_WIDGET (layout)))
- gtk_widget_set_parent_window (child->widget, priv->bin_window);
-
gtk_widget_set_parent (child_widget, GTK_WIDGET (layout));
}
@@ -468,12 +439,10 @@ gtk_layout_set_size (GtkLayout *layout,
guint height)
{
GtkLayoutPrivate *priv;
- GtkWidget *widget;
g_return_if_fail (GTK_IS_LAYOUT (layout));
priv = layout->priv;
- widget = GTK_WIDGET (layout);
g_object_freeze_notify (G_OBJECT (layout));
if (width != priv->width)
@@ -488,16 +457,6 @@ gtk_layout_set_size (GtkLayout *layout,
}
g_object_thaw_notify (G_OBJECT (layout));
- if (gtk_widget_get_realized (widget))
- {
- GtkAllocation allocation;
-
- gtk_widget_get_allocation (widget, &allocation);
- width = MAX (width, allocation.width);
- height = MAX (height, allocation.height);
- gdk_window_resize (priv->bin_window, width, height);
- }
-
gtk_layout_set_hadjustment_values (layout);
gtk_layout_set_vadjustment_values (layout);
}
@@ -595,8 +554,6 @@ gtk_layout_class_init (GtkLayoutClass *class)
G_MAXINT,
100,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
- widget_class->realize = gtk_layout_realize;
- widget_class->unrealize = gtk_layout_unrealize;
widget_class->map = gtk_layout_map;
widget_class->measure = gtk_layout_measure;
widget_class->size_allocate = gtk_layout_size_allocate;
@@ -756,8 +713,6 @@ gtk_layout_init (GtkLayout *layout)
priv->hadjustment = NULL;
priv->vadjustment = NULL;
- priv->bin_window = NULL;
-
priv->scroll_x = 0;
priv->scroll_y = 0;
priv->visibility = GDK_VISIBILITY_PARTIAL;
@@ -765,39 +720,6 @@ gtk_layout_init (GtkLayout *layout)
priv->freeze_count = 0;
}
-/* Widget methods
- */
-static void
-gtk_layout_realize (GtkWidget *widget)
-{
- GtkLayout *layout = GTK_LAYOUT (widget);
- GtkLayoutPrivate *priv = layout->priv;
- GtkAllocation allocation;
- GList *tmp_list;
-
- GTK_WIDGET_CLASS (gtk_layout_parent_class)->realize (widget);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- priv->bin_window = gdk_window_new_child (gtk_widget_get_window (widget),
- GDK_ALL_EVENTS_MASK,
- &(GdkRectangle) {
- allocation.x - gtk_adjustment_get_value (priv->hadjustment),
- allocation.y - gtk_adjustment_get_value (priv->vadjustment),
- MAX (priv->width, allocation.width),
- MAX (priv->height, allocation.height)});
- gtk_widget_register_window (widget, priv->bin_window);
-
- tmp_list = priv->children;
- while (tmp_list)
- {
- GtkLayoutChild *child = tmp_list->data;
- tmp_list = tmp_list->next;
-
- gtk_widget_set_parent_window (child->widget, priv->bin_window);
- }
-}
-
static void
gtk_layout_map (GtkWidget *widget)
{
@@ -819,21 +741,6 @@ gtk_layout_map (GtkWidget *widget)
gtk_widget_map (child->widget);
}
}
-
- gdk_window_show (priv->bin_window);
-}
-
-static void
-gtk_layout_unrealize (GtkWidget *widget)
-{
- GtkLayout *layout = GTK_LAYOUT (widget);
- GtkLayoutPrivate *priv = layout->priv;
-
- gtk_widget_unregister_window (widget, priv->bin_window);
- gdk_window_destroy (priv->bin_window);
- priv->bin_window = NULL;
-
- GTK_WIDGET_CLASS (gtk_layout_parent_class)->unrealize (widget);
}
static void
@@ -867,15 +774,6 @@ gtk_layout_size_allocate (GtkWidget *widget,
gtk_layout_allocate_child (layout, child);
}
- if (gtk_widget_get_realized (widget))
- {
- gdk_window_move_resize (priv->bin_window,
- allocation->x - gtk_adjustment_get_value (priv->hadjustment),
- allocation->y - gtk_adjustment_get_value (priv->vadjustment),
- MAX (priv->width, allocation->width),
- MAX (priv->height, allocation->height));
- }
-
gtk_layout_set_hadjustment_values (layout);
gtk_layout_set_vadjustment_values (layout);
@@ -970,13 +868,5 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
if (priv->freeze_count)
return;
- if (gtk_widget_get_realized (GTK_WIDGET (layout)))
- {
- GtkAllocation allocation;
-
- gtk_widget_get_allocation (GTK_WIDGET (layout), &allocation);
- gdk_window_move (priv->bin_window,
- allocation.x - gtk_adjustment_get_value (priv->hadjustment),
- allocation.y - gtk_adjustment_get_value (priv->vadjustment));
- }
+ gtk_widget_queue_allocate (GTK_WIDGET (layout));
}
diff --git a/gtk/gtklayout.h b/gtk/gtklayout.h
index e764ffc..dfc5b77 100644
--- a/gtk/gtklayout.h
+++ b/gtk/gtklayout.h
@@ -76,8 +76,6 @@ GDK_AVAILABLE_IN_ALL
GtkWidget* gtk_layout_new (GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment);
GDK_AVAILABLE_IN_ALL
-GdkWindow* gtk_layout_get_bin_window (GtkLayout *layout);
-GDK_AVAILABLE_IN_ALL
void gtk_layout_put (GtkLayout *layout,
GtkWidget *child_widget,
gint x,
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 1c0097b..9c529f2 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -8035,18 +8035,10 @@ create_mainloop (GtkWidget *widget)
static gboolean
layout_draw_handler (GtkWidget *widget, cairo_t *cr)
{
- GtkLayout *layout;
- GdkWindow *bin_window;
GdkRectangle clip;
- gint i,j,x,y;
+ gint i,j;
gint imin, imax, jmin, jmax;
- layout = GTK_LAYOUT (widget);
- bin_window = gtk_layout_get_bin_window (layout);
-
- gdk_window_get_position (bin_window, &x, &y);
- cairo_translate (cr, x, y);
-
gdk_cairo_get_clip_rectangle (cr, &clip);
imin = (clip.x) / 10;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]