| Index: Source/core/page/WindowFeatures.cpp
|
| diff --git a/Source/core/page/WindowFeatures.cpp b/Source/core/page/WindowFeatures.cpp
|
| index a54dcb7e671d933befd5c7ca93b4f0504d8d517a..c1dadc4a60c7ff30c6c12c251e299ce915577325 100644
|
| --- a/Source/core/page/WindowFeatures.cpp
|
| +++ b/Source/core/page/WindowFeatures.cpp
|
| @@ -23,7 +23,7 @@
|
| #include "config.h"
|
| #include "core/page/WindowFeatures.h"
|
|
|
| -#include "platform/geometry/FloatRect.h"
|
| +#include "platform/geometry/IntRect.h"
|
| #include "wtf/Assertions.h"
|
| #include "wtf/MathExtras.h"
|
| #include "wtf/text/StringHash.h"
|
| @@ -165,7 +165,7 @@ void WindowFeatures::setWindowFeature(const String& keyString, const String& val
|
| additionalFeatures.append(keyString);
|
| }
|
|
|
| -WindowFeatures::WindowFeatures(const String& dialogFeaturesString, const FloatRect& screenAvailableRect)
|
| +WindowFeatures::WindowFeatures(const String& dialogFeaturesString, const IntRect& screenAvailableRect)
|
| : widthSet(true)
|
| , heightSet(true)
|
| , menuBarVisible(false)
|
| @@ -187,12 +187,12 @@ WindowFeatures::WindowFeatures(const String& dialogFeaturesString, const FloatRe
|
| // - help: boolFeature(features, "help", true), makes help icon appear in dialog (what does it do on Windows?)
|
| // - unadorned: trusted && boolFeature(features, "unadorned");
|
|
|
| - width = floatFeature(features, "dialogwidth", 100, screenAvailableRect.width(), 620); // default here came from frame size of dialog in MacIE
|
| - height = floatFeature(features, "dialogheight", 100, screenAvailableRect.height(), 450); // default here came from frame size of dialog in MacIE
|
| + width = intFeature(features, "dialogwidth", 100, screenAvailableRect.width(), 620); // default here came from frame size of dialog in MacIE
|
| + height = intFeature(features, "dialogheight", 100, screenAvailableRect.height(), 450); // default here came from frame size of dialog in MacIE
|
|
|
| - x = floatFeature(features, "dialogleft", screenAvailableRect.x(), screenAvailableRect.maxX() - width, -1);
|
| + x = intFeature(features, "dialogleft", screenAvailableRect.x(), screenAvailableRect.maxX() - width, -1);
|
| xSet = x > 0;
|
| - y = floatFeature(features, "dialogtop", screenAvailableRect.y(), screenAvailableRect.maxY() - height, -1);
|
| + y = intFeature(features, "dialogtop", screenAvailableRect.y(), screenAvailableRect.maxY() - height, -1);
|
| ySet = y > 0;
|
|
|
| if (boolFeature(features, "center", true)) {
|
| @@ -220,23 +220,20 @@ bool WindowFeatures::boolFeature(const DialogFeaturesMap& features, const char*
|
| return value.isNull() || value == "1" || value == "yes" || value == "on";
|
| }
|
|
|
| -float WindowFeatures::floatFeature(const DialogFeaturesMap& features, const char* key, float min, float max, float defaultValue)
|
| +int WindowFeatures::intFeature(const DialogFeaturesMap& features, const char* key, int min, int max, int defaultValue)
|
| {
|
| DialogFeaturesMap::const_iterator it = features.find(key);
|
| if (it == features.end())
|
| return defaultValue;
|
| - // FIXME: The toDouble function does not offer a way to tell "0q" from string with no digits in it: Both
|
| - // return the number 0 and false for ok. But "0q" should yield the minimum rather than the default.
|
| bool ok;
|
| - double parsedNumber = it->value.toDouble(&ok);
|
| - if ((!parsedNumber && !ok) || std::isnan(parsedNumber))
|
| + int parsedNumber = it->value.toInt(&ok);
|
| + if (!ok)
|
| return defaultValue;
|
| if (parsedNumber < min || max <= min)
|
| return min;
|
| if (parsedNumber > max)
|
| return max;
|
| - // FIXME: Seems strange to cast a double to int and then convert back to a float. Why is this a good idea?
|
| - return static_cast<int>(parsedNumber);
|
| + return parsedNumber;
|
| }
|
|
|
| void WindowFeatures::parseDialogFeatures(const String& string, DialogFeaturesMap& map)
|
|
|