summaryrefslogtreecommitdiff
path: root/ui/qt/wireshark_application.h
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-08-26 11:24:29 -0700
committerGerald Combs <gerald@wireshark.org>2015-08-26 22:02:19 +0000
commit374439daa17fe2692746857b920616354ce658e7 (patch)
treee9857e674c25918585b918ca8521354a957a15a2 /ui/qt/wireshark_application.h
parent8ad56117502207d95d54bd2c8dff24d001530d24 (diff)
downloadwireshark-374439daa17fe2692746857b920616354ce658e7.tar.gz
Don't emit app signals from dialogs.
Emitting PacketDissectionChanged from a dialog on can render the main window unusable on OS X. A workaround for this was added to the preferences dialog in g8fc2327. Generalize the workaround and use it elsewhere. Fix the "Enabled Protocols" action name while we're here. Bug: 11361 Bug: 11448 Change-Id: I89e98daaaedc877d3b13b0d33b6f3be033e323d7 Reviewed-on: https://code.wireshark.org/review/10271 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'ui/qt/wireshark_application.h')
-rw-r--r--ui/qt/wireshark_application.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/ui/qt/wireshark_application.h b/ui/qt/wireshark_application.h
index 1173d84bc2..8340581e77 100644
--- a/ui/qt/wireshark_application.h
+++ b/ui/qt/wireshark_application.h
@@ -72,6 +72,13 @@ public:
void registerUpdate(register_action_e action, const char *message);
void emitAppSignal(AppSignal signal);
+ // Emitting app signals (PacketDissectionChanged in particular) from
+ // dialogs on OS X can be problematic. Dialogs should call queueAppSignal
+ // instead.
+ void queueAppSignal(AppSignal signal) { app_signals_ << signal; }
+ // Flush queued app signals. Should be called from the main window after
+ // each dialog that calls queueAppSignal closes.
+ void flushAppSignals();
void emitStatCommandSignal(const QString &menu_path, const char *arg, void *userdata);
void emitTapParameterSignal(const QString cfg_abbr, const QString arg, void *userdata);
void addDynamicMenuGroupItem(int group, QAction *sg_action);
@@ -121,6 +128,7 @@ private:
QIcon normal_icon_;
QIcon capture_icon_;
static QString window_title_separator_;
+ QList<AppSignal> app_signals_;
protected:
bool event(QEvent *event);