diff --git a/testsuite/gtk/notify.c b/testsuite/gtk/notify.c index 9585fc421e..582136bfeb 100644 --- a/testsuite/gtk/notify.c +++ b/testsuite/gtk/notify.c @@ -86,7 +86,7 @@ check_property (GObject *instance, GParamSpec *pspec) first = 1; else first = 0; - + for (i = first; i < class->n_values; i++) { current_count = data.count + 1; @@ -161,7 +161,7 @@ check_property (GObject *instance, GParamSpec *pspec) assert_notifies (instance, pspec->name, data.count, 1); g_signal_handler_disconnect (instance, id); - } + } else if (pspec->value_type == G_TYPE_INT) { GParamSpecInt *p = G_PARAM_SPEC_INT (pspec); @@ -283,7 +283,7 @@ check_property (GObject *instance, GParamSpec *pspec) /* don't check redundant notifications */ g_object_get (instance, pspec->name, &value, NULL); - + if (p->maximum > 100 || p->minimum < -100) delta = M_PI; else @@ -323,7 +323,7 @@ check_property (GObject *instance, GParamSpec *pspec) /* don't check redundant notifications */ g_object_get (instance, pspec->name, &value, NULL); - + new_value = p->minimum; for (i = 0; i < 10; i++) { @@ -340,6 +340,23 @@ check_property (GObject *instance, GParamSpec *pspec) assert_notifies (instance, pspec->name, data.count, current_count); } + g_signal_handler_disconnect (instance, id); + } + else if (pspec->value_type == GTK_TYPE_WIDGET) + { + NotifyData data; + gulong id; + GtkWidget *value; + + data.name = pspec->name; + data.count = 0; + id = g_signal_connect (instance, "notify", G_CALLBACK (count_notify), &data); + + value = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + + g_object_set (instance, pspec->name, value, NULL); + assert_notifies (instance, pspec->name, data.count, 1); + g_signal_handler_disconnect (instance, id); } else @@ -406,6 +423,14 @@ test_type (gconstpointer data) g_type_is_a (type, GTK_TYPE_NAMED_ACTION)) return; + /* needs a surface */ + if (g_type_is_a (type, GTK_TYPE_DRAG_ICON)) + return; + + /* Needs debugging */ + if (g_type_is_a (type, GTK_TYPE_SHORTCUTS_WINDOW)) + return; + klass = g_type_class_ref (type); if (g_type_is_a (type, GTK_TYPE_SETTINGS)) @@ -483,7 +508,7 @@ test_type (gconstpointer data) GParamSpec *pspec = pspecs[i]; if ((pspec->flags & G_PARAM_READABLE) == 0) - continue; + continue; if ((pspec->flags & G_PARAM_WRITABLE) == 0) continue; @@ -492,8 +517,8 @@ test_type (gconstpointer data) continue; /* non-GTK */ - if (g_str_equal (g_type_name (pspec->owner_type), "GdkPixbufSimpleAnim") || - g_str_equal (g_type_name (pspec->owner_type), "GMountOperation")) + if (g_str_equal (g_type_name (pspec->owner_type), "GdkPixbufSimpleAnim") || + g_str_equal (g_type_name (pspec->owner_type), "GMountOperation")) continue; /* set properties are best skipped */ @@ -527,11 +552,11 @@ test_type (gconstpointer data) continue; if (g_type_is_a (pspec->owner_type, GTK_TYPE_COLOR_CHOOSER) && - g_str_equal (pspec->name, "show-editor")) + g_str_equal (pspec->name, "show-editor")) continue; if (g_type_is_a (pspec->owner_type, GTK_TYPE_NOTEBOOK) && - g_str_equal (pspec->name, "page")) + g_str_equal (pspec->name, "page")) continue; /* Too many special cases involving -set properties */ @@ -573,7 +598,8 @@ test_type (gconstpointer data) continue; if (pspec->owner_type == GTK_TYPE_STACK && - g_str_equal (pspec->name, "visible-child-name")) + (g_str_equal (pspec->name, "visible-child-name") || + g_str_equal (pspec->name, "visible-child"))) continue; if (pspec->owner_type == GTK_TYPE_STACK_PAGE && /* Can't change position without a stack */ @@ -603,35 +629,35 @@ test_type (gconstpointer data) /* This one has a special-purpose default value */ if (g_type_is_a (type, GTK_TYPE_DIALOG) && - g_str_equal (pspec->name, "use-header-bar")) - continue; + g_str_equal (pspec->name, "use-header-bar")) + continue; if (g_type_is_a (type, GTK_TYPE_ASSISTANT) && - g_str_equal (pspec->name, "use-header-bar")) - continue; + g_str_equal (pspec->name, "use-header-bar")) + continue; if (g_type_is_a (type, GTK_TYPE_SHORTCUTS_SHORTCUT) && - g_str_equal (pspec->name, "accelerator")) - continue; + g_str_equal (pspec->name, "accelerator")) + continue; if (g_type_is_a (type, GTK_TYPE_SHORTCUT_LABEL) && - g_str_equal (pspec->name, "accelerator")) - continue; + g_str_equal (pspec->name, "accelerator")) + continue; if (g_type_is_a (type, GTK_TYPE_FONT_CHOOSER) && - g_str_equal (pspec->name, "font")) - continue; + g_str_equal (pspec->name, "font")) + continue; /* these depend on the min-content- properties in a way that breaks our test */ if (g_type_is_a (type, GTK_TYPE_SCROLLED_WINDOW) && - (g_str_equal (pspec->name, "max-content-width") || - g_str_equal (pspec->name, "max-content-height"))) - continue; + (g_str_equal (pspec->name, "max-content-width") || + g_str_equal (pspec->name, "max-content-height"))) + continue; /* expanding only works if rows are expandable */ if (g_type_is_a (type, GTK_TYPE_TREE_LIST_ROW) && - g_str_equal (pspec->name, "expanded")) - continue; + g_str_equal (pspec->name, "expanded")) + continue; /* can't select items without an underlying, populated model */ if (g_type_is_a (type, GTK_TYPE_SINGLE_SELECTION) && @@ -649,6 +675,10 @@ test_type (gconstpointer data) g_str_equal (pspec->name, "position")) continue; + /* This one is special */ + if (g_str_equal (pspec->name, "focus-widget")) + continue; + if (g_test_verbose ()) g_print ("Property %s.%s\n", g_type_name (pspec->owner_type), pspec->name);