#include "gtkboxprivate.h"
#include "gtkintl.h"
#include "gtkorientable.h"
+#include "gtkorientableprivate.h"
#include "gtkprivate.h"
#include "gtktypebuiltins.h"
#include "gtksizerequest.h"
#include "gtkwidgetpath.h"
-#include "a11y/gtkboxaccessible.h"
+#include "gtkwidgetprivate.h"
+#include "a11y/gtkcontaineraccessible.h"
enum {
g_type_class_add_private (object_class, sizeof (GtkBoxPrivate));
- gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BOX_ACCESSIBLE);
+ gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILLER);
}
static void
{
case PROP_ORIENTATION:
private->orientation = g_value_get_enum (value);
+ _gtk_orientable_set_style_classes (GTK_ORIENTABLE (box));
gtk_widget_queue_resize (GTK_WIDGET (box));
break;
case PROP_SPACING:
box = GTK_BOX (container);
private = box->priv;
- path = gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container)));
+ path = _gtk_widget_create_path (GTK_WIDGET (container));
if (gtk_widget_get_visible (child))
{
return path;
}
+static void
+gtk_box_invalidate_order_foreach (GtkWidget *widget)
+{
+ _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_SIBLING_POSITION);
+}
+
static void
gtk_box_invalidate_order (GtkBox *box)
{
gtk_container_foreach (GTK_CONTAINER (box),
- (GtkCallback) gtk_widget_reset_style,
+ (GtkCallback) gtk_box_invalidate_order_foreach,
NULL);
}
pack_type = GTK_PACK_START;
if (child_info->pack != pack_type)
{
- child_info->pack = GTK_PACK_END;
+ child_info->pack = pack_type;
gtk_widget_child_notify (child, "pack-type");
gtk_box_invalidate_order (box);
}