From 374439daa17fe2692746857b920616354ce658e7 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Wed, 26 Aug 2015 11:24:29 -0700 Subject: 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 Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs --- ui/qt/wireshark_application.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'ui/qt/wireshark_application.h') 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 app_signals_; protected: bool event(QEvent *event); -- cgit v1.2.1