[gtk/abolish-size-allocate: 7/7] widget: Drop the ::size-allocate signal
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/abolish-size-allocate: 7/7] widget: Drop the ::size-allocate signal
- Date: Wed, 6 May 2020 03:16:14 +0000 (UTC)
commit 3b40c4a6006f496e8063b5edcb17f7d2ad90605e
Author: Matthias Clasen <mclasen redhat com>
Date: Tue May 5 23:12:20 2020 -0400
widget: Drop the ::size-allocate signal
This signal is mainly used for bad things, and we
don't want to emit signals during layout if we can
avoid it.
If you are subclassing, you should either use a
layout manager or override the size_allocate vfunc.
If you are using a GtkDrawingArea or GtkGLArea,
use their ::resize signals to learn about size
changes.
Fixes: #2705
gtk/gtkwidget.c | 36 ++++--------------------------------
1 file changed, 4 insertions(+), 32 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 6612183ebb..1979951373 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -1474,28 +1474,6 @@ gtk_widget_class_init (GtkWidgetClass *klass)
NULL,
G_TYPE_NONE, 0);
- /**
- * GtkWidget::size-allocate:
- * @widget: the object which received the signal.
- * @width: the content width of the widget
- * @height: the content height of the widget
- * @baseline: the baseline
- */
- widget_signals[SIZE_ALLOCATE] =
- g_signal_new (I_("size-allocate"),
- G_TYPE_FROM_CLASS (gobject_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GtkWidgetClass, size_allocate),
- NULL, NULL,
- _gtk_marshal_VOID__INT_INT_INT,
- G_TYPE_NONE, 3,
- G_TYPE_INT,
- G_TYPE_INT,
- G_TYPE_INT);
- g_signal_set_va_marshaller (widget_signals[SIZE_ALLOCATE],
- G_TYPE_FROM_CLASS (gobject_class),
- _gtk_marshal_VOID__INT_INT_INTv);
-
/**
* GtkWidget::state-flags-changed:
* @widget: the object which received the signal.
@@ -4075,16 +4053,10 @@ gtk_widget_allocate (GtkWidget *widget,
}
else
{
- if (g_signal_has_handler_pending (widget, widget_signals[SIZE_ALLOCATE], 0, FALSE))
- g_signal_emit (widget, widget_signals[SIZE_ALLOCATE], 0,
- priv->width,
- priv->height,
- baseline);
- else
- GTK_WIDGET_GET_CLASS (widget)->size_allocate (widget,
- priv->width,
- priv->height,
- baseline);
+ GTK_WIDGET_GET_CLASS (widget)->size_allocate (widget,
+ priv->width,
+ priv->height,
+ baseline);
}
/* Size allocation is god... after consulting god, no further requests or allocations are needed */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]