aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/main.c71
-rw-r--r--gtk/main.h3
-rw-r--r--gtk/menu.c8
3 files changed, 54 insertions, 28 deletions
diff --git a/gtk/main.c b/gtk/main.c
index 5735888d84..91ff1f9f67 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.429 2004/05/04 20:40:08 guy Exp $
+ * $Id: main.c,v 1.430 2004/05/04 20:49:33 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -3661,6 +3661,44 @@ void main_widgets_rearrange(void) {
/* hide widgets on users recent settings */
/* XXX - do we still need this? */
+ main_widgets_show_or_hide();
+
+ /* statusbar hbox */
+ if ((recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) || recent.statusbar_show) {
+ gtk_box_pack_start(GTK_BOX(main_vbox), stat_hbox, FALSE, TRUE, 0);
+ }
+
+ /* filter toolbar in statusbar hbox */
+ if (recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) {
+ gtk_box_pack_start(GTK_BOX(stat_hbox), filter_tb, FALSE, TRUE, 1);
+ }
+
+ /* statusbar */
+ if (recent.statusbar_show) {
+ gtk_box_pack_start(GTK_BOX(stat_hbox), status_pane, TRUE, TRUE, 0);
+ gtk_paned_pack1(GTK_PANED(status_pane), info_bar, FALSE, FALSE);
+ gtk_paned_pack2(GTK_PANED(status_pane), packets_bar, FALSE, FALSE);
+ }
+
+ gtk_widget_show(main_vbox);
+}
+
+static void
+is_widget_visible(GtkWidget *widget, gpointer data)
+{
+ gboolean *is_visible = data;
+
+ if (!*is_visible) {
+ if (GTK_WIDGET_VISIBLE(widget))
+ *is_visible = TRUE;
+ }
+}
+
+void
+main_widgets_show_or_hide(void)
+{
+ gboolean main_second_pane_show;
+
if (recent.packet_list_show) {
gtk_widget_show(pkt_scrollw);
} else {
@@ -3678,34 +3716,21 @@ void main_widgets_rearrange(void) {
} else {
gtk_widget_hide(byte_nb_ptr);
}
- if (GTK_WIDGET_VISIBLE(pane_content[1]) ||
- GTK_WIDGET_VISIBLE(pane_content[2])) {
+
+ /*
+ * Is anything in "main_second_pane" visible?
+ * If so, show it, otherwise hide it.
+ */
+ main_second_pane_show = FALSE;
+ gtk_container_foreach(GTK_CONTAINER(main_second_pane), is_widget_visible,
+ &main_second_pane_show);
+ if (main_second_pane_show) {
gtk_widget_show(main_second_pane);
} else {
gtk_widget_hide(main_second_pane);
}
-
- /* statusbar hbox */
- if ((recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) || recent.statusbar_show) {
- gtk_box_pack_start(GTK_BOX(main_vbox), stat_hbox, FALSE, TRUE, 0);
- }
-
- /* filter toolbar in statusbar hbox */
- if (recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) {
- gtk_box_pack_start(GTK_BOX(stat_hbox), filter_tb, FALSE, TRUE, 1);
- }
-
- /* statusbar */
- if (recent.statusbar_show) {
- gtk_box_pack_start(GTK_BOX(stat_hbox), status_pane, TRUE, TRUE, 0);
- gtk_paned_pack1(GTK_PANED(status_pane), info_bar, FALSE, FALSE);
- gtk_paned_pack2(GTK_PANED(status_pane), packets_bar, FALSE, FALSE);
- }
-
- gtk_widget_show(main_vbox);
}
-
static void
create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs)
{
diff --git a/gtk/main.h b/gtk/main.h
index c125ef13ab..75fc0a60cf 100644
--- a/gtk/main.h
+++ b/gtk/main.h
@@ -1,7 +1,7 @@
/* main.h
* Global defines, etc.
*
- * $Id: main.h,v 1.45 2004/04/25 16:04:12 ulfl Exp $
+ * $Id: main.h,v 1.46 2004/05/04 20:49:33 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -112,6 +112,7 @@ extern void dfilter_recent_combo_write_all(FILE *rf);
extern gboolean main_do_quit(void);
extern void main_widgets_rearrange(void);
+extern void main_widgets_show_or_hide(void);
extern gboolean main_filter_packets(capture_file *cf, const gchar *dftext,
gboolean force);
extern void dnd_open_file_cmd(gpointer cf_name);
diff --git a/gtk/menu.c b/gtk/menu.c
index f4fb7ade11..6244efc24b 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -1,7 +1,7 @@
/* menu.c
* Menu routines
*
- * $Id: menu.c,v 1.189 2004/05/04 20:04:26 guy Exp $
+ * $Id: menu.c,v 1.190 2004/05/04 20:49:33 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1155,7 +1155,7 @@ packet_list_show_cb(GtkWidget *w _U_, gpointer d _U_)
/* save current setting in recent */
recent.packet_list_show = GTK_CHECK_MENU_ITEM(w)->active;
- main_widgets_rearrange();
+ main_widgets_show_or_hide();
}
@@ -1166,7 +1166,7 @@ tree_view_show_cb(GtkWidget *w _U_, gpointer d _U_)
/* save current setting in recent */
recent.tree_view_show = GTK_CHECK_MENU_ITEM(w)->active;
- main_widgets_rearrange();
+ main_widgets_show_or_hide();
}
@@ -1177,7 +1177,7 @@ byte_view_show_cb(GtkWidget *w _U_, gpointer d _U_)
/* save current setting in recent */
recent.byte_view_show = GTK_CHECK_MENU_ITEM(w)->active;
- main_widgets_rearrange();
+ main_widgets_show_or_hide();
}