summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-07-21 08:59:12 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-07-21 08:59:12 (GMT)
commit29afd1e99c21e02d6a151907f5db393c3d3ef462 (patch)
tree5cab2a586a5b0da1940ee265b3b308e6124c7a3c
parent036689f13f9c2d08a91fdd26b9e8dffd252a7e09 (diff)
Made the status stack more modular.
-rw-r--r--src/gtkext/gtkstatusstack.c10
1 files 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);