From 29afd1e99c21e02d6a151907f5db393c3d3ef462 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sat, 21 Jul 2018 10:59:12 +0200 Subject: Made the status stack more modular. --- src/gtkext/gtkstatusstack.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gtkext/gtkstatusstack.c b/src/gtkext/gtkstatusstack.c index 1765eaf..e36c406 100644 --- a/src/gtkext/gtkstatusstack.c +++ b/src/gtkext/gtkstatusstack.c @@ -57,6 +57,8 @@ struct _GtkStatusStack GtkStack *main; /* Pile d'informations associée*/ + GSourceFunc def_source; /* Appel en fin d'activité */ + GObject *asm_ref; /* Espace de référencements #1 */ assembly_info *asm_info; /* Informations courantes #1 */ @@ -227,6 +229,8 @@ static void gtk_status_stack_init(GtkStatusStack *stack) gtk_widget_show(GTK_WIDGET(stack->main)); gtk_box_pack_start(GTK_BOX(stack), GTK_WIDGET(stack->main), TRUE, TRUE, 8); + stack->def_source = (GSourceFunc)gtk_status_stack_show_current_instruction; + layer = build_assembly_status_stack(stack); gtk_stack_add_named(stack->main, layer, "asm_info"); @@ -449,7 +453,7 @@ static void on_size_allocate_for_asm_status(GtkWidget *widget, GdkRectangle *all gtk_widget_set_size_request(hbox, (allocation->width * 40) / 100, -1); /** - * On intervient après que le containeur soit passer collecter les tailles + * On intervient après que le containeur soit passé collecter les tailles * de ses enfants lors de son redimensionnement. * * Donc on force un prise en compte des changements. @@ -647,6 +651,8 @@ static gboolean gtk_status_stack_show_current_instruction(GtkStatusStack *stack) char raw_pos[6 + VMPA_MAX_LEN + 1]; /* Formatage final en direct */ char *content; /* Contenu dynamique */ + stack->def_source = (GSourceFunc)gtk_status_stack_show_current_instruction; + gtk_stack_set_visible_child_name(stack->main, "asm_info"); ref = stack->asm_ref; @@ -1089,7 +1095,7 @@ void gtk_status_stack_remove_activity(GtkStatusStack *stack, activity_id_t id) if (info->count == 0) { info->tag = 0; - g_idle_add((GSourceFunc)gtk_status_stack_show_current_instruction, stack); + g_idle_add(stack->def_source, stack); } else info->tag = g_idle_add((GSourceFunc)gtk_status_stack_show_current_activity, stack); -- cgit v0.11.2-87-g4458