@@ -407,13 +407,13 @@ static void fl_view_size_allocate(GtkWidget* widget,
407407 fl_view_geometry_changed (self);
408408}
409409
410- struct _DrawData {
410+ struct _ReorderData {
411411 GdkWindow* parent_window;
412412 GdkWindow* last_window;
413413};
414414
415- static void fl_view_draw_forall (GtkWidget* widget, gpointer user_data) {
416- _DrawData * data = reinterpret_cast <_DrawData *>(user_data);
415+ static void fl_view_reorder_forall (GtkWidget* widget, gpointer user_data) {
416+ _ReorderData * data = reinterpret_cast <_ReorderData *>(user_data);
417417 GdkWindow* window = gtk_widget_get_window (widget);
418418 if (window && window != data->parent_window ) {
419419 if (data->last_window ) {
@@ -423,20 +423,6 @@ static void fl_view_draw_forall(GtkWidget* widget, gpointer user_data) {
423423 }
424424}
425425
426- // Implements GtkWidget::draw.
427- static gboolean fl_view_draw (GtkWidget* widget, cairo_t * cr) {
428- FlView* self = FL_VIEW (widget);
429-
430- struct _DrawData data = {
431- .parent_window = gtk_widget_get_window (GTK_WIDGET (self)),
432- .last_window = nullptr ,
433- };
434-
435- gtk_container_forall (GTK_CONTAINER (self), fl_view_draw_forall, &data);
436-
437- return GTK_WIDGET_CLASS (fl_view_parent_class)->draw (widget, cr);
438- }
439-
440426static gboolean event_box_button_press_event (GtkWidget* widget,
441427 GdkEventButton* event,
442428 FlView* view) {
@@ -613,7 +599,6 @@ static void fl_view_class_init(FlViewClass* klass) {
613599 widget_class->get_preferred_width = fl_view_get_preferred_width;
614600 widget_class->get_preferred_height = fl_view_get_preferred_height;
615601 widget_class->size_allocate = fl_view_size_allocate;
616- widget_class->draw = fl_view_draw;
617602 widget_class->key_press_event = fl_view_key_press_event;
618603 widget_class->key_release_event = fl_view_key_release_event;
619604
@@ -740,5 +725,13 @@ void fl_view_end_frame(FlView* view) {
740725 g_list_free (view->children_list );
741726 view->children_list = view->pending_children_list ;
742727 view->pending_children_list = nullptr ;
728+
729+ struct _ReorderData data = {
730+ .parent_window = gtk_widget_get_window (GTK_WIDGET (view)),
731+ .last_window = nullptr ,
732+ };
733+
734+ gtk_container_forall (GTK_CONTAINER (view), fl_view_reorder_forall, &data);
735+
743736 gtk_widget_queue_draw (GTK_WIDGET (view));
744737}
0 commit comments