Qt: Enable min/max button on GeometryStateDialogs by default
GeometryStateDialog is used when we want to remember user-set geometry for a window. If we want the user to be able to control the geometry, we probably want to allow minimization and maximization. Pass Qt::Window as the default WindowFlag to GeometryStateDialog (which is what WiresharkDialogs already do). This on most platforms defaults to adding minimize and maximize buttons. (On some platforms, like recent GNOME, we're at the mercy of various settings like gsettings get org.gnome.desktop.wm.preferences button-layout but the user can access minimize and maximize actions via right-clicking the window title bar. Unfortunately it won't stop user confusion.) Fix #18980. Part of #12566.
This commit is contained in:
parent
0a636a636c
commit
fc77bd3ee9
|
@ -45,14 +45,23 @@ public:
|
|||
//
|
||||
// Additionally, maximized, parent-less dialogs can close to a black screen
|
||||
// on macOS: https://gitlab.com/wireshark/wireshark/-/issues/12544
|
||||
// (aka https://bugreports.qt.io/browse/QTBUG-46701 ), which claims to
|
||||
// be fixed in Qt 6.2.0
|
||||
//
|
||||
// Pass in the parent on macOS and NULL elsewhere so that we have an
|
||||
// independent window that un-maximizes correctly.
|
||||
//
|
||||
// Pass Qt::Window as the flags that we have minimize and maximize buttons, as
|
||||
// this class is for dialogs where we want to remember user-set geometry.
|
||||
// (We're still at the mercy of the platform and Qt, e.g. recent GNOME defaults
|
||||
// to not having min or max buttons, instead requiring right-clicking on the
|
||||
// menu title bar to perform the minimize or maximize actions. We can't do
|
||||
// anything about that, though users can.)
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
explicit GeometryStateDialog(QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags()) : QDialog(parent, f) {}
|
||||
explicit GeometryStateDialog(QWidget *parent, Qt::WindowFlags f = Qt::Window) : QDialog(parent, f) {}
|
||||
#else
|
||||
explicit GeometryStateDialog(QWidget *, Qt::WindowFlags f = Qt::WindowFlags()) : QDialog(NULL, f) {}
|
||||
explicit GeometryStateDialog(QWidget *, Qt::WindowFlags f = Qt::Window) : QDialog(NULL, f) {}
|
||||
#endif
|
||||
~GeometryStateDialog();
|
||||
|
||||
|
|
Loading…
Reference in New Issue