Index: Source/devtools/front_end/ResponsiveDesignView.js |
diff --git a/Source/devtools/front_end/ResponsiveDesignView.js b/Source/devtools/front_end/ResponsiveDesignView.js |
index b05e8c36f9604d10bd18f47b024f169930c7ee21..52ca0bb9eb8e6af72280616e852102869a03ece6 100644 |
--- a/Source/devtools/front_end/ResponsiveDesignView.js |
+++ b/Source/devtools/front_end/ResponsiveDesignView.js |
@@ -45,14 +45,12 @@ WebInspector.ResponsiveDesignView = function(inspectedPagePlaceholder) |
this._enabled = false; |
WebInspector.zoomManager.addEventListener(WebInspector.ZoomManager.Events.ZoomChanged, this._onZoomChanged, this); |
- WebInspector.dockController.addEventListener(WebInspector.DockController.Events.DockSideChanged, this._updateOverridesSupportOnDockSideChange, this); |
WebInspector.settings.responsiveDesignMode.addChangeListener(this._responsiveDesignModeChanged, this); |
- |
WebInspector.overridesSupport.settings.emulateViewport.addChangeListener(this._maybeEnableResponsiveDesign, this); |
WebInspector.overridesSupport.settings.emulateTouchEvents.addChangeListener(this._maybeEnableResponsiveDesign, this); |
WebInspector.overridesSupport.settings.overrideDeviceResolution.addChangeListener(this._maybeEnableResponsiveDesign, this); |
- |
- this._updateOverridesSupportOnDockSideChange(); |
+ this._responsiveDesignModeChanged(); |
+ this._overridesWarningUpdated(); |
}; |
// Measured in DIP. |
@@ -72,7 +70,7 @@ WebInspector.ResponsiveDesignView.prototype = { |
} |
}, |
- _responsiveDesignModeChanged: function() |
+ _invalidateCache: function() |
{ |
delete this._cachedScale; |
delete this._cachedCssCanvasWidth; |
@@ -81,35 +79,32 @@ WebInspector.ResponsiveDesignView.prototype = { |
delete this._cachedCssWidth; |
delete this._cachedZoomFactor; |
delete this._availableSize; |
+ }, |
- var enabled = WebInspector.settings.responsiveDesignMode.get() && WebInspector.dockController.dockSide() !== WebInspector.DockController.State.Undocked; |
+ _responsiveDesignModeChanged: function() |
+ { |
+ var enabled = WebInspector.settings.responsiveDesignMode.get(); |
if (enabled && !this._enabled) { |
+ this._invalidateCache(); |
this._ignoreResize = true; |
this._enabled = true; |
this._inspectedPagePlaceholder.clearMinimumSizeAndMargins(); |
this._inspectedPagePlaceholder.show(this._pageContainer); |
this._responsiveDesignContainer.show(this.element); |
- WebInspector.overridesSupport.setPageResizer(this); |
+ this.update(this._dipWidth, this._dipHeight, this._scale); |
delete this._ignoreResize; |
- } |
- |
- if (!enabled && this._enabled) { |
+ } else if (!enabled && this._enabled) { |
+ this._invalidateCache(); |
this._ignoreResize = true; |
this._enabled = false; |
this._scale = 0; |
this._inspectedPagePlaceholder.restoreMinimumSizeAndMargins(); |
this._responsiveDesignContainer.detach(); |
this._inspectedPagePlaceholder.show(this.element); |
- WebInspector.overridesSupport.setPageResizer(null); |
delete this._ignoreResize; |
} |
}, |
- _updateOverridesSupportOnDockSideChange: function() |
- { |
- this._responsiveDesignModeChanged(); |
- }, |
- |
/** |
* WebInspector.OverridesSupport.PageResizer override. |
* @param {number} dipWidth |
@@ -118,9 +113,6 @@ WebInspector.ResponsiveDesignView.prototype = { |
*/ |
update: function(dipWidth, dipHeight, scale) |
{ |
- if (!this._enabled) |
- return; |
- |
this._scale = scale; |
this._dipWidth = dipWidth; |
this._dipHeight = dipHeight; |
@@ -204,6 +196,8 @@ WebInspector.ResponsiveDesignView.prototype = { |
if (!this._enabled) |
return; |
+ //console.error("_drawCanvas " + cssCanvasWidth + "x" + cssCanvasHeight + (new Error().stack)); |
apavlov
2014/06/04 09:04:24
please remove
dgozman
2014/06/04 11:16:18
Ops. Done.
|
+ |
var canvas = this._canvas; |
var context = canvas.getContext("2d"); |
canvas.style.width = cssCanvasWidth + "px"; |
@@ -325,7 +319,7 @@ WebInspector.ResponsiveDesignView.prototype = { |
_updateUI: function() |
{ |
- if (!this._enabled) |
+ if (!this._enabled || !this.isShowing()) |
apavlov
2014/06/04 09:04:24
Is (!this.isShowing()) by chance sufficient?
dgozman
2014/06/04 11:16:18
No, this view can be disabled but showing.
|
return; |
var zoomFactor = WebInspector.zoomManager.zoomFactor(); |
@@ -374,8 +368,10 @@ WebInspector.ResponsiveDesignView.prototype = { |
{ |
if (!this._enabled || this._ignoreResize) |
return; |
+ var oldSize = this._availableSize; |
delete this._availableSize; |
- this.dispatchEventToListeners(WebInspector.OverridesSupport.PageResizer.Events.AvailableSizeChanged); |
+ if (!this.availableDipSize().isEqual(oldSize)) |
apavlov
2014/06/04 09:04:24
equals() for consistency (with Java)? :)
dgozman
2014/06/04 11:16:18
I have found approximately the same number of isEq
|
+ this.dispatchEventToListeners(WebInspector.OverridesSupport.PageResizer.Events.AvailableSizeChanged); |
this._updateUI(); |
}, |
@@ -462,7 +458,7 @@ WebInspector.ResponsiveDesignView.prototype = { |
return; |
this._warningMessage.classList.toggle("hidden", !message); |
this._warningMessage.textContent = message; |
- this._responsiveDesignModeChanged(); |
+ this._invalidateCache(); |
this.onResize(); |
}, |