Fire a warning if there are any handlers connected to the deprecated "size-request" signal.

This commit is contained in:
Tristan Van Berkom 2010-10-28 16:00:19 +09:00
parent 18f46adb7d
commit c41ec57fb0
2 changed files with 11 additions and 1 deletions

View File

@ -104,6 +104,8 @@ get_cached_size (SizeRequestCache *cache,
return FALSE; return FALSE;
} }
extern guint size_request_signal_id;
static void static void
do_size_request (GtkWidget *widget, do_size_request (GtkWidget *widget,
GtkRequisition *requisition) GtkRequisition *requisition)
@ -115,6 +117,11 @@ do_size_request (GtkWidget *widget,
"will be removed in the next release", "will be removed in the next release",
G_OBJECT_TYPE_NAME (widget)); G_OBJECT_TYPE_NAME (widget));
if (g_signal_has_handler_pending (widget, size_request_signal_id, 0, TRUE))
g_warning ("A %s (%p) has handler(s) connected to the GtkWidgetClass::size-request signal which is "
"deprecated and will be removed in the next release",
G_OBJECT_TYPE_NAME (widget), widget);
/* Now we dont bother caching the deprecated "size-request" returns, /* Now we dont bother caching the deprecated "size-request" returns,
* just unconditionally invoke here just in case we run into legacy stuff */ * just unconditionally invoke here just in case we run into legacy stuff */
gtk_widget_ensure_style (widget); gtk_widget_ensure_style (widget);

View File

@ -710,6 +710,9 @@ static guint composite_child_stack = 0;
static GtkTextDirection gtk_default_direction = GTK_TEXT_DIR_LTR; static GtkTextDirection gtk_default_direction = GTK_TEXT_DIR_LTR;
static GParamSpecPool *style_property_spec_pool = NULL; static GParamSpecPool *style_property_spec_pool = NULL;
/* XXX Temporarily here to fire warnings from gtksizerequest.c */
guint size_request_signal_id = 0;
static GQuark quark_property_parser = 0; static GQuark quark_property_parser = 0;
static GQuark quark_aux_info = 0; static GQuark quark_aux_info = 0;
static GQuark quark_accel_path = 0; static GQuark quark_accel_path = 0;
@ -1467,7 +1470,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
* @widget: the object which received the signal. * @widget: the object which received the signal.
* @requisition: * @requisition:
*/ */
widget_signals[SIZE_REQUEST] = size_request_signal_id = widget_signals[SIZE_REQUEST] =
g_signal_new (I_("size-request"), g_signal_new (I_("size-request"),
G_TYPE_FROM_CLASS (gobject_class), G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_FIRST, G_SIGNAL_RUN_FIRST,