| Index: third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
|
| index 00f87218f0d7cb1222314ef56780900e31f7dd55..2ec229c2836f9d0c94bfdd84bde9e29733fe18d4 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
|
| @@ -68,7 +68,7 @@ WebInspector.DeviceModeToolbar.prototype = {
|
| widthInput.maxLength = 4;
|
| widthInput.type = "text";
|
| widthInput.title = WebInspector.UIString("Width");
|
| - this._updateWidthInput = this._bindInput(widthInput, this._model.setWidthAndScaleToFit.bind(this._model), WebInspector.DeviceModeModel.deviceSizeValidator);
|
| + this._updateWidthInput = WebInspector.bindInput(widthInput, applyWidth.bind(this), WebInspector.DeviceModeModel.deviceSizeValidator, true);
|
| this._widthInput = widthInput;
|
| this._widthItem = this._wrapToolbarItem(widthInput);
|
| toolbar.appendToolbarItem(this._widthItem);
|
| @@ -82,18 +82,38 @@ WebInspector.DeviceModeToolbar.prototype = {
|
| heightInput.maxLength = 4;
|
| heightInput.type = "text";
|
| heightInput.title = WebInspector.UIString("Height (leave empty for full)");
|
| - this._updateHeightInput = this._bindInput(heightInput, this._model.setHeightAndScaleToFit.bind(this._model), validateHeight);
|
| + this._updateHeightInput = WebInspector.bindInput(heightInput, applyHeight.bind(this), validateHeight, true);
|
| this._heightInput = heightInput;
|
| this._heightItem = this._wrapToolbarItem(heightInput);
|
| toolbar.appendToolbarItem(this._heightItem);
|
|
|
| /**
|
| * @param {string} value
|
| - * @return {string}
|
| + * @return {boolean}
|
| */
|
| function validateHeight(value)
|
| {
|
| - return !value ? "" : WebInspector.DeviceModeModel.deviceSizeValidator(value);
|
| + return !value || WebInspector.DeviceModeModel.deviceSizeValidator(value);
|
| + }
|
| +
|
| + /**
|
| + * @param {string} value
|
| + * @this {WebInspector.DeviceModeToolbar}
|
| + */
|
| + function applyWidth(value)
|
| + {
|
| + var width = value ? Number(value) : 0;
|
| + this._model.setWidthAndScaleToFit(width);
|
| + }
|
| +
|
| + /**
|
| + * @param {string} value
|
| + * @this {WebInspector.DeviceModeToolbar}
|
| + */
|
| + function applyHeight(value)
|
| + {
|
| + var height = value ? Number(value) : 0;
|
| + this._model.setHeightAndScaleToFit(height);
|
| }
|
| },
|
|
|
| @@ -145,80 +165,6 @@ WebInspector.DeviceModeToolbar.prototype = {
|
|
|
|
|
| /**
|
| - * @param {!Element} input
|
| - * @param {function(number)} apply
|
| - * @param {function(string):?string} validate
|
| - * @return {function(number)}
|
| - */
|
| - _bindInput: function(input, apply, validate)
|
| - {
|
| - input.addEventListener("change", onChange, false);
|
| - input.addEventListener("input", onInput, false);
|
| - input.addEventListener("keydown", onKeyDown, false);
|
| - input.addEventListener("focus", input.select.bind(input), false);
|
| -
|
| - function onInput()
|
| - {
|
| - input.classList.toggle("error-input", !!validate(input.value));
|
| - }
|
| -
|
| - function onChange()
|
| - {
|
| - var valid = !validate(input.value);
|
| - input.classList.toggle("error-input", !valid);
|
| - if (valid)
|
| - apply(input.value ? Number(input.value) : 0);
|
| - }
|
| -
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - function onKeyDown(event)
|
| - {
|
| - if (isEnterKey(event)) {
|
| - if (!validate(input.value))
|
| - apply(input.value ? Number(input.value) : 0);
|
| - return;
|
| - }
|
| -
|
| - var increment = event.keyIdentifier === "Up" ? 1 : event.keyIdentifier === "Down" ? -1 : 0;
|
| - if (!increment)
|
| - return;
|
| - if (event.shiftKey)
|
| - increment *= 10;
|
| -
|
| - var value = input.value;
|
| - if (validate(value) || !value)
|
| - return;
|
| -
|
| - value = (value ? Number(value) : 0) + increment;
|
| - var stringValue = value ? String(value) : "";
|
| - if (validate(stringValue) || !value)
|
| - return;
|
| -
|
| - input.value = stringValue;
|
| - apply(input.value ? Number(input.value) : 0);
|
| - event.preventDefault();
|
| - }
|
| -
|
| - /**
|
| - * @param {number} value
|
| - */
|
| - function setValue(value)
|
| - {
|
| - var stringValue = value ? String(value) : "";
|
| - if (stringValue === input.value)
|
| - return;
|
| - var valid = !validate(stringValue);
|
| - input.classList.toggle("error-input", !valid);
|
| - input.value = stringValue;
|
| - input.setSelectionRange(stringValue.length, stringValue.length);
|
| - }
|
| -
|
| - return setValue;
|
| - },
|
| -
|
| - /**
|
| * @param {!WebInspector.ContextMenu} contextMenu
|
| */
|
| _appendScaleMenuItems: function(contextMenu)
|
| @@ -486,8 +432,8 @@ WebInspector.DeviceModeToolbar.prototype = {
|
| }
|
|
|
| var size = this._model.appliedDeviceSize();
|
| - this._updateHeightInput(this._model.type() === WebInspector.DeviceModeModel.Type.Responsive && this._model.isFullHeight() ? 0 : size.height);
|
| - this._updateWidthInput(size.width);
|
| + this._updateHeightInput(this._model.type() === WebInspector.DeviceModeModel.Type.Responsive && this._model.isFullHeight() ? "" : String(size.height));
|
| + this._updateWidthInput(String(size.width));
|
| this._heightInput.placeholder = size.height;
|
|
|
| if (this._model.scale() !== this._cachedScale) {
|
|
|