diff options
author | Guy Harris <guy@alum.mit.edu> | 2005-02-06 23:16:05 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2005-02-06 23:16:05 +0000 |
commit | 1041ccdbe5156a8da17d1f473c996d08fe75aded (patch) | |
tree | 152c311e669c82905d58ada025b6f8d7fcee59ab | |
parent | 9a04fd314d15e56dad4bb16f9d3472e27f47b66d (diff) |
Don't have "set_menus_for_captured_packets()" call
"main_set_for_capture_file()"; it should only deal with menus, not
anything else - and it gets called while the menus are being set up,
which is before the main window has been completely created, so
"main_widgets_show_or_hide()", which is called by
"main_set_for_capture_file()", gets errors trying to show or hide
widgets the pointers to which are null.
svn path=/trunk/; revision=13328
-rw-r--r-- | Makefile.common | 1 | ||||
-rw-r--r-- | file.c | 13 | ||||
-rw-r--r-- | gtk/main.c | 1 | ||||
-rw-r--r-- | gtk/main.h | 4 | ||||
-rw-r--r-- | gtk/menu.c | 1 | ||||
-rw-r--r-- | main_window.h | 41 |
6 files changed, 56 insertions, 5 deletions
diff --git a/Makefile.common b/Makefile.common index 57bf1e8111..11fbef7db1 100644 --- a/Makefile.common +++ b/Makefile.common @@ -161,6 +161,7 @@ ethereal_INCLUDES = \ filters.h \ g711.h \ globals.h \ + main_window.h \ menu.h \ merge.h \ progress_dlg.h \ @@ -73,6 +73,7 @@ #include "packet-range.h" #include "print.h" #include "file.h" +#include "main_window.h" #include "menu.h" #include "util.h" #include "merge.h" @@ -289,6 +290,9 @@ cf_close(capture_file *cf) set_menus_for_capture_in_progress(FALSE); set_menus_for_selected_tree_row(cf); + /* Set up main window for no capture file. */ + main_set_for_capture_file(FALSE); + reset_tap_listeners(); /* We have no file open. */ @@ -475,6 +479,9 @@ cf_read(capture_file *cf) set_menus_for_capture_file(TRUE); set_menus_for_unsaved_capture_file(!cf->user_saved); + /* Set up main window for a capture file. */ + main_set_for_capture_file(TRUE); + /* Enable menu items that make sense if you have some captured packets. */ set_menus_for_captured_packets(TRUE); @@ -546,6 +553,9 @@ cf_start_tail(capture_file *cf, const char *fname, const char *iface, gboolean i packets (yes, I know, we don't have any *yet*). */ set_menus_for_captured_packets(TRUE); + /* Set up main window for a capture file. */ + main_set_for_capture_file(TRUE); + capture_msg = g_strdup_printf(" %s: <live capture in progress>", get_interface_descriptive_name(iface)); statusbar_push_file_msg(capture_msg); @@ -673,6 +683,9 @@ cf_finish_tail(capture_file *cf, int *err) set_menus_for_capture_file(TRUE); set_menus_for_unsaved_capture_file(!cf->user_saved); + /* Set up main window for a capture file. */ + main_set_for_capture_file(TRUE); + if (*err != 0) { /* We got an error reading the capture file. XXX - pop up a dialog box? */ diff --git a/gtk/main.c b/gtk/main.c index 91b3703772..aed7c2ed5d 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -123,6 +123,7 @@ #include "main.h" #include "menu.h" +#include "../main_window.h" #include "../menu.h" #include "file_dlg.h" #include <epan/column.h> diff --git a/gtk/main.h b/gtk/main.h index 17cfb0610c..e3a0b2cfb7 100644 --- a/gtk/main.h +++ b/gtk/main.h @@ -276,10 +276,6 @@ extern void dnd_open_file_cmd(GtkSelectionData *selection_data); /** Update the packets statusbar to the current values. */ extern void packets_bar_update(void); -/** Tell the main window that we have a capture file (or not) */ -extern void -main_set_for_capture_file(gboolean have_capture_file_in); - #ifdef _WIN32 /** Win32 only: Create a console. Beware: cannot be closed again. */ extern void create_console(void); diff --git a/gtk/menu.c b/gtk/menu.c index 34eca34bfc..8bab6c73bb 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -1632,7 +1632,6 @@ set_menus_for_captured_packets(gboolean have_captured_packets) have_captured_packets); set_toolbar_for_captured_packets(have_captured_packets); packets_bar_update(); - main_set_for_capture_file(have_captured_packets); } /* Enable or disable menu items based on whether a packet is selected and, diff --git a/main_window.h b/main_window.h new file mode 100644 index 0000000000..a5e4a54d79 --- /dev/null +++ b/main_window.h @@ -0,0 +1,41 @@ +/* main_window.h + * Definitions for main window routines with toolkit-independent APIs but + * toolkit-dependent implementations. + * + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __MAIN_WINDOW_H__ +#define __MAIN_WINDOW_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** Tell the main window that we have a capture file (or not) */ +extern void +main_set_for_capture_file(gboolean have_capture_file_in); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __MAIN_WINDOW_H__ */ |