diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gtkext/gtkbinarystrip.c | 12 | ||||
-rw-r--r-- | src/gui/editor.c | 3 | ||||
-rw-r--r-- | src/gui/panels/symbols.c | 12 | ||||
-rw-r--r-- | src/gui/tb/source.c | 3 |
4 files changed, 26 insertions, 4 deletions
diff --git a/src/gtkext/gtkbinarystrip.c b/src/gtkext/gtkbinarystrip.c index 0ad0763..9a1b827 100644 --- a/src/gtkext/gtkbinarystrip.c +++ b/src/gtkext/gtkbinarystrip.c @@ -436,13 +436,21 @@ static gboolean gtk_binary_strip_query_tooltip(GtkWidget *widget, gint x, gint y void gtk_binary_strip_attach(GtkBinaryStrip *strip, GLoadedBinary *binary) { + GtkWidget *widget; /* Autre version du composant */ + if (strip->binary != NULL) g_object_unref(G_OBJECT(strip->binary)); strip->binary = binary; - g_object_ref(G_OBJECT(strip->binary)); - gtk_widget_queue_draw(GTK_WIDGET(strip)); + if (strip->binary != NULL) + g_object_ref(G_OBJECT(strip->binary)); + + widget = GTK_WIDGET(strip); + + gtk_widget_set_sensitive(widget, strip->binary != NULL); + + gtk_widget_queue_draw(widget); } diff --git a/src/gui/editor.c b/src/gui/editor.c index 3723bd8..bff001d 100644 --- a/src/gui/editor.c +++ b/src/gui/editor.c @@ -349,6 +349,9 @@ GtkWidget *create_editor(void) + /* Actualisation des contenus */ + + change_editor_items_current_binary(ref, NULL); diff --git a/src/gui/panels/symbols.c b/src/gui/panels/symbols.c index 0cbb9eb..4c8a78a 100644 --- a/src/gui/panels/symbols.c +++ b/src/gui/panels/symbols.c @@ -590,14 +590,24 @@ static void change_symbols_panel_current_binary(GSymbolsPanel *panel, GLoadedBin GtkToggleToolButton *button; /* Mode de représentation */ GtkRequisition req; /* Nouvelle taille idéale */ + /* Basculement du binaire utilisé */ + if (panel->binary != NULL) g_object_unref(G_OBJECT(panel->binary)); panel->binary = binary; - g_object_ref(G_OBJECT(binary)); + + if (panel->binary != NULL) + g_object_ref(G_OBJECT(panel->binary)); gtk_tree_store_clear(panel->store); + /* Si le panneau actif ne représente pas un binaire... */ + + if (binary == NULL) return; + + /* Actualisation de l'affichage */ + button = g_object_get_data(G_OBJECT(G_EDITOR_ITEM(panel)->widget), "list"); if (gtk_toggle_tool_button_get_active(button)) diff --git a/src/gui/tb/source.c b/src/gui/tb/source.c index 466bade..f35ca7c 100644 --- a/src/gui/tb/source.c +++ b/src/gui/tb/source.c @@ -223,6 +223,7 @@ GEditorItem *create_source_tb_item(GObject *ref) static void update_source_item_binary(GEditorItem *item, GLoadedBinary *binary) { +#if 0 GtkComboBoxText *combo; /* Liste de sélection */ GtkTreeModel *model; /* Gestionnaire d'éléments */ GtkTreeIter iter; /* Boucle de parcours #2 */ @@ -259,7 +260,7 @@ static void update_source_item_binary(GEditorItem *item, GLoadedBinary *binary) g_signal_handlers_unblock_by_func(combo, G_CALLBACK(change_selected_source), item); //gtk_combo_box_set_active(combo, defsrc); - +#endif } |