diff --git a/epan/ext_menubar.h b/epan/ext_menubar.h index c812896d28..e730376d1e 100644 --- a/epan/ext_menubar.h +++ b/epan/ext_menubar.h @@ -40,8 +40,14 @@ extern "C" { #define EXT_MENUBAR_MAX_DEPTH 5 +typedef enum +{ + EXT_MENUBAR_GTK_GUI, + EXT_MENUBAR_QT_GUI +} ext_menubar_gui_type; + /* menubar callback */ -typedef void (*ext_menubar_action_cb)(gpointer user_data); +typedef void (*ext_menubar_action_cb)(ext_menubar_gui_type gui_type, gpointer gui_object, gpointer user_data); typedef enum { @@ -69,6 +75,7 @@ struct _ext_menubar_t gchar * tooltip; gboolean is_plugin; gpointer user_data; + ext_menubar_action_cb callback; diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c index 093090aafa..12ddb54049 100644 --- a/ui/gtk/main_menubar.c +++ b/ui/gtk/main_menubar.c @@ -5469,7 +5469,7 @@ ws_menubar_external_cb(GtkAction *action _U_, gpointer data _U_) entry = (ext_menubar_t *)data; if ( entry->type == EXT_MENUBAR_ITEM ) { - entry->callback(entry->user_data); + entry->callback(EXT_MENUBAR_GTK_GUI, (gpointer) ((void *)GTK_WINDOW(top_level)), entry->user_data); } else if ( entry->type == EXT_MENUBAR_URL ) { diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index 067d1ae66b..aadd58c02e 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -2918,7 +2918,7 @@ void MainWindow::on_actionExternalMenuItem_triggered() if ( entry->type == EXT_MENUBAR_ITEM ) { - entry->callback(entry->user_data); + entry->callback(EXT_MENUBAR_QT_GUI, (gpointer) ((void *)main_ui_), entry->user_data); } else {