From 759c0b5ecf84201f36d44b4e6c46da1886d85dee Mon Sep 17 00:00:00 2001 From: Joaquim Rocha Date: Mon, 15 Nov 2010 13:46:40 +0100 Subject: Fix wrong error assumption when converting "0.0" to double The function qstrtod calls strtod without first resetting the errno but verifying it nonetheless. This could lead to situations where the errno was already set to ERANGE and hence it would mistakenly assume the conversion could not be done right. Merge-request: 2507 Reviewed-by: Harald Fernengel --- src/corelib/tools/qlocale.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index 6b1de5e..2fb3616 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -7308,6 +7308,7 @@ Q_CORE_EXPORT char *qdtoa( double d, int mode, int ndigits, int *decpt, int *sig Q_CORE_EXPORT double qstrtod(const char *s00, const char **se, bool *ok) { + errno = 0; double ret = strtod((char*)s00, (char**)se); if (ok) { if((ret == 0.0l && errno == ERANGE) -- cgit v0.12 From abba37cd0eff959edf2d011842cbf2b36cce8467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Mon, 15 Nov 2010 13:47:53 +0100 Subject: Improve restoring of miximized window geomertry. Task-number: QTBUG-2064 Follow-up commit to 54865d47cfd, which caused a regression on multi-display systems on Windows. --- src/gui/kernel/qwidget.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index cd1c9f0..7714acb 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -7051,13 +7051,16 @@ bool QWidget::restoreGeometry(const QByteArray &geometry) restoredNormalGeometry.moveTop(qMax(restoredNormalGeometry.top(), availableGeometry.top() + frameHeight)); if (maximized || fullScreen) { - // set geomerty before setting the window state to make - // sure the window is maximized to the right screen. - // Skip on windows: the window is restored into a broken - // half-maximized state. -#ifndef Q_WS_WIN - setGeometry(restoredNormalGeometry); -#endif + // Set the geomerty before setting the maximized/fullscreen + // window state to make sure the window is maximized to the + // correct screen. Clear the window state before setting the + // geometry to prevent a bug where the window is restored to + // an inconsitent state on Windows. + if (desktop->screenNumber(restoredNormalGeometry.center()) != desktop->screenNumber(this)) { + setWindowState(Qt::WindowNoState); + setGeometry(restoredNormalGeometry); + } + Qt::WindowStates ws = windowState(); if (maximized) ws |= Qt::WindowMaximized; -- cgit v0.12