mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 767133 - Add slide-in animation for arrow panels. r=enndeakin ui-r=shorlander
--HG-- extra : rebase_source : ab38e90e42a6bf45c4152b4960db8f4a8ba14ec0
This commit is contained in:
parent
0dcc90924c
commit
4910364e2c
@ -187,9 +187,6 @@ var StarUI = {
|
|||||||
this._itemId = aItemId !== undefined ? aItemId : this._itemId;
|
this._itemId = aItemId !== undefined ? aItemId : this._itemId;
|
||||||
this.beginBatch();
|
this.beginBatch();
|
||||||
|
|
||||||
// Consume dismiss clicks, see bug 400924
|
|
||||||
this.panel.popupBoxObject
|
|
||||||
.setConsumeRollupEvent(Ci.nsIPopupBoxObject.ROLLUP_CONSUME);
|
|
||||||
this.panel.openPopup(aAnchorElement, aPosition);
|
this.panel.openPopup(aAnchorElement, aPosition);
|
||||||
|
|
||||||
gEditItemOverlay.initPanel(this._itemId,
|
gEditItemOverlay.initPanel(this._itemId,
|
||||||
|
@ -6707,10 +6707,6 @@ var gIdentityHandler = {
|
|||||||
// the popup is actually needed
|
// the popup is actually needed
|
||||||
this._identityPopup.hidden = false;
|
this._identityPopup.hidden = false;
|
||||||
|
|
||||||
// Tell the popup to consume dismiss clicks, to avoid bug 395314
|
|
||||||
this._identityPopup.popupBoxObject
|
|
||||||
.setConsumeRollupEvent(Ci.nsIPopupBoxObject.ROLLUP_CONSUME);
|
|
||||||
|
|
||||||
// Update the popup strings
|
// Update the popup strings
|
||||||
this.setPopupMessages(this._identityBox.className);
|
this.setPopupMessages(this._identityBox.className);
|
||||||
|
|
||||||
|
@ -137,6 +137,7 @@
|
|||||||
footertype="promobox"
|
footertype="promobox"
|
||||||
orient="vertical"
|
orient="vertical"
|
||||||
ignorekeys="true"
|
ignorekeys="true"
|
||||||
|
consumeoutsideclicks="true"
|
||||||
hidden="true"
|
hidden="true"
|
||||||
onpopupshown="StarUI.panelShown(event);"
|
onpopupshown="StarUI.panelShown(event);"
|
||||||
aria-labelledby="editBookmarkPanelTitle">
|
aria-labelledby="editBookmarkPanelTitle">
|
||||||
@ -259,6 +260,7 @@
|
|||||||
type="arrow"
|
type="arrow"
|
||||||
hidden="true"
|
hidden="true"
|
||||||
noautofocus="true"
|
noautofocus="true"
|
||||||
|
consumeoutsideclicks="true"
|
||||||
onpopupshown="gIdentityHandler.onPopupShown(event);"
|
onpopupshown="gIdentityHandler.onPopupShown(event);"
|
||||||
level="top">
|
level="top">
|
||||||
<hbox id="identity-popup-container" align="top">
|
<hbox id="identity-popup-container" align="top">
|
||||||
|
@ -302,10 +302,6 @@ const DownloadsPanel = {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure that clicking outside the popup cannot reopen it accidentally.
|
|
||||||
this.panel.popupBoxObject.setConsumeRollupEvent(Ci.nsIPopupBoxObject
|
|
||||||
.ROLLUP_CONSUME);
|
|
||||||
|
|
||||||
// Ensure the anchor is visible. If that is not possible, show the panel
|
// Ensure the anchor is visible. If that is not possible, show the panel
|
||||||
// anchored to the top area of the window, near the default anchor position.
|
// anchored to the top area of the window, near the default anchor position.
|
||||||
DownloadsButton.getAnchor(function DP_OPIDR_callback(aAnchor) {
|
DownloadsButton.getAnchor(function DP_OPIDR_callback(aAnchor) {
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
type="arrow"
|
type="arrow"
|
||||||
orient="vertical"
|
orient="vertical"
|
||||||
level="top"
|
level="top"
|
||||||
|
consumeoutsideclicks="true"
|
||||||
onpopupshown="DownloadsPanel.onPopupShown(event);"
|
onpopupshown="DownloadsPanel.onPopupShown(event);"
|
||||||
onpopuphidden="DownloadsPanel.onPopupHidden(event);">
|
onpopuphidden="DownloadsPanel.onPopupHidden(event);">
|
||||||
<!-- The following popup menu should be a child of the panel element,
|
<!-- The following popup menu should be a child of the panel element,
|
||||||
|
@ -306,7 +306,8 @@
|
|||||||
|
|
||||||
<binding id="arrowpanel" extends="chrome://global/content/bindings/popup.xml#panel">
|
<binding id="arrowpanel" extends="chrome://global/content/bindings/popup.xml#panel">
|
||||||
<content flip="both" side="top" position="bottomcenter topleft">
|
<content flip="both" side="top" position="bottomcenter topleft">
|
||||||
<xul:box anonid="container" class="panel-arrowcontainer" flex="1">
|
<xul:box anonid="container" class="panel-arrowcontainer" flex="1"
|
||||||
|
xbl:inherits="side,panelopen">
|
||||||
<xul:box anonid="arrowbox" class="panel-arrowbox">
|
<xul:box anonid="arrowbox" class="panel-arrowbox">
|
||||||
<xul:image anonid="arrow" class="panel-arrow"/>
|
<xul:image anonid="arrow" class="panel-arrow"/>
|
||||||
</xul:box>
|
</xul:box>
|
||||||
@ -320,7 +321,7 @@
|
|||||||
<field name="_fadeTimer">null</field>
|
<field name="_fadeTimer">null</field>
|
||||||
</implementation>
|
</implementation>
|
||||||
<handlers>
|
<handlers>
|
||||||
<handler event="popupshowing">
|
<handler event="popupshowing" phase="target">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
var container = document.getAnonymousElementByAttribute(this, "anonid", "container");
|
var container = document.getAnonymousElementByAttribute(this, "anonid", "container");
|
||||||
var arrowbox = document.getAnonymousElementByAttribute(this, "anonid", "arrowbox");
|
var arrowbox = document.getAnonymousElementByAttribute(this, "anonid", "arrowbox");
|
||||||
@ -456,12 +457,24 @@
|
|||||||
</handler>
|
</handler>
|
||||||
<handler event="transitionend" phase="target">
|
<handler event="transitionend" phase="target">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
if (event.propertyName == "opacity") {
|
if (event.propertyName == "opacity" &&
|
||||||
|
event.originalTarget == this) {
|
||||||
this.hidePopup();
|
this.hidePopup();
|
||||||
this.style.removeProperty("opacity");
|
this.style.removeProperty("opacity");
|
||||||
}
|
}
|
||||||
]]>
|
]]>
|
||||||
</handler>
|
</handler>
|
||||||
|
<handler event="popupshown" phase="target">
|
||||||
|
this.setAttribute("panelopen", "true");
|
||||||
|
</handler>
|
||||||
|
<handler event="popuphidden" phase="target"><![CDATA[
|
||||||
|
this.removeAttribute("panelopen");
|
||||||
|
|
||||||
|
// Destroying the widget to prevent the current state from being rendered
|
||||||
|
// briefly when the panel reopens.
|
||||||
|
this.hidden = true;
|
||||||
|
setTimeout(function () { this.hidden = false; }.bind(this), 0);
|
||||||
|
]]></handler>
|
||||||
</handlers>
|
</handlers>
|
||||||
</binding>
|
</binding>
|
||||||
|
|
||||||
|
@ -28,6 +28,32 @@ panel[type="arrow"] {
|
|||||||
-moz-transition: opacity 300ms;
|
-moz-transition: opacity 300ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer[panelopen] {
|
||||||
|
-moz-transition-duration: 250ms;
|
||||||
|
-moz-transition-property: opacity, -moz-transform;
|
||||||
|
-moz-transition-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen]) {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="top"] {
|
||||||
|
-moz-transform: translateY(-20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="bottom"] {
|
||||||
|
-moz-transform: translateY(20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="left"] {
|
||||||
|
-moz-transform: translateX(-20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="right"] {
|
||||||
|
-moz-transform: translateX(20px);
|
||||||
|
}
|
||||||
|
|
||||||
panel[type="arrow"][side="top"],
|
panel[type="arrow"][side="top"],
|
||||||
panel[type="arrow"][side="bottom"] {
|
panel[type="arrow"][side="bottom"] {
|
||||||
margin-left: -26px;
|
margin-left: -26px;
|
||||||
|
@ -36,6 +36,32 @@ panel[type="arrow"] {
|
|||||||
-moz-transition: opacity 300ms;
|
-moz-transition: opacity 300ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer[panelopen] {
|
||||||
|
-moz-transition-duration: 250ms;
|
||||||
|
-moz-transition-property: opacity, -moz-transform;
|
||||||
|
-moz-transition-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen]) {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="top"] {
|
||||||
|
-moz-transform: translateY(-20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="bottom"] {
|
||||||
|
-moz-transform: translateY(20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="left"] {
|
||||||
|
-moz-transform: translateX(-20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-arrowcontainer:not([panelopen])[side="right"] {
|
||||||
|
-moz-transform: translateX(20px);
|
||||||
|
}
|
||||||
|
|
||||||
panel[type="arrow"][side="top"],
|
panel[type="arrow"][side="top"],
|
||||||
panel[type="arrow"][side="bottom"] {
|
panel[type="arrow"][side="bottom"] {
|
||||||
margin-left: -20px;
|
margin-left: -20px;
|
||||||
|
Loading…
Reference in New Issue
Block a user