summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-10-22 10:00:41 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-10-22 10:00:41 (GMT)
commit3a259b1e1e3fe870f9d1837ea2ecf6ce5c1d0162 (patch)
tree08cc7f88479ce391b0e94241edd6a181c34664c8 /src
parentd800cb1c80ec68eb1ad85134fd9c0727023f572a (diff)
Fixed GUI bugs in the case where no binary is loaded.
Diffstat (limited to 'src')
-rw-r--r--src/gtkext/gtkbinarystrip.c12
-rw-r--r--src/gui/editor.c3
-rw-r--r--src/gui/panels/symbols.c12
-rw-r--r--src/gui/tb/source.c3
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
}