Hej Thomas,

Please don't take silence as some indication that people are offended. I just think you found a corner case that no one has considered and do not consider one way or the other.

You ask for the best way to proceed: As usual with issues like this, you should enter a bug in the bug tracker.

Bo Thorsen.

Den 18-01-2017 kl. 16:21 skrev Thomas Søndergaard:
I hope my previous email wasn't offensive or downright stupid; no one
has replied. I certainly meant no disrespect. While I'm waiting for a
response, let me throw a specific proposal out there.

First, I assume the correct solution is to extend QWindow and
QPlatformWindow so they can deal with compound states such as
Qt::WindowMaximized|Qt::WindowMinimized, just like QWidget can. Since
QWindow::setWindowState(Qt::WindowState) and Qt::WindowState
QWindow::windowState() cannot be modified, I'm thinking of adding

Qt::WindowStates QWindow::fullWindowState() const;
void QWindow::setFullWindowState(Qt::WindowStates);

and

Qt::WindowStates QPlatformWindow::fullWindowState() const;
void QPlatformWindow::setFullWindowState(Qt::WindowStates);

The existing QWindow::windowState() would then be implemented using the
effectiveState() function from qwidget.cpp (I'd move it over)

I can experiment with these changes and implementing them in the xcb and
windows platform plugins, but early feedback is always great, so I avoid
wasting time.

Thanks for making Qt

Thomas




On 17 January 2017 at 21:37, Thomas Søndergaard
<thomas.sonderga...@karoshealth.com
<mailto:thomas.sonderga...@karoshealth.com>> wrote:

    Hi,

    I'm looking at the Qt code with intention to fix it so this code

        QWidget widget;
        widget.setWindowState(Qt::WindowMaximized);
        widget.showMinized();

    will show the window iconified and when the user (or program)
    unminimize the window it pops up maximized. This is currently not
    possible (QTBUG-57882 <https://bugreports.qt.io/browse/QTBUG-57882>).

    I've been trying to read the Qt code and it seems to me the problem
    is that QWindow::setWindowState(Qt::WindowState) and
    QPlatformWindow::setWindowState(Qt::WindowState) only take a
    Qt::WindowState argument not a Qt::WindowStates argument. This seems
    to make it impossible to set the correct state on the windows-system
    window.

    Is this intentional or a known issue?

    I would be happy to get suggestions for how this is best fixed.


Bo Thorsen,
Director, Viking Software.

--
Viking Software
Qt and C++ developers for hire
http://www.vikingsoft.eu
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to