overviewControls: Split FaderControl from SlidingControl
The Dash will need only the fading aspect of SlidingControl in the next commit. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1559>
This commit is contained in:
parent
ea02aa399d
commit
bd850c3110
@ -100,8 +100,57 @@ var SlideLayout = GObject.registerClass({
|
||||
}
|
||||
});
|
||||
|
||||
var FaderControl = GObject.registerClass(
|
||||
class FaderControl extends St.Widget {
|
||||
_init(params) {
|
||||
super._init(params);
|
||||
|
||||
this._inDrag = false;
|
||||
|
||||
Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
|
||||
Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
|
||||
Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
|
||||
|
||||
Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
|
||||
Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
|
||||
Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
|
||||
}
|
||||
|
||||
_onWindowDragBegin() {
|
||||
this._onDragBegin();
|
||||
}
|
||||
|
||||
_onWindowDragEnd() {
|
||||
this._onDragEnd();
|
||||
}
|
||||
|
||||
_onDragBegin() {
|
||||
this._inDrag = true;
|
||||
}
|
||||
|
||||
_onDragEnd() {
|
||||
this._inDrag = false;
|
||||
}
|
||||
|
||||
fadeIn() {
|
||||
this.ease({
|
||||
opacity: 255,
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
|
||||
mode: Clutter.AnimationMode.EASE_IN_QUAD,
|
||||
});
|
||||
}
|
||||
|
||||
fadeHalf() {
|
||||
this.ease({
|
||||
opacity: 128,
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var SlidingControl = GObject.registerClass(
|
||||
class SlidingControl extends St.Widget {
|
||||
class SlidingControl extends FaderControl {
|
||||
_init(params) {
|
||||
params = Params.parse(params, { slideDirection: SlideDirection.LEFT });
|
||||
|
||||
@ -114,17 +163,8 @@ class SlidingControl extends St.Widget {
|
||||
});
|
||||
|
||||
this._visible = true;
|
||||
this._inDrag = false;
|
||||
|
||||
Main.overview.connect('hiding', this._onOverviewHiding.bind(this));
|
||||
|
||||
Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
|
||||
Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
|
||||
Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
|
||||
|
||||
Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
|
||||
Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
|
||||
Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
|
||||
}
|
||||
|
||||
_getSlide() {
|
||||
@ -183,41 +223,17 @@ class SlidingControl extends St.Widget {
|
||||
this.slideOut();
|
||||
}
|
||||
|
||||
_onWindowDragBegin() {
|
||||
this._onDragBegin();
|
||||
}
|
||||
|
||||
_onWindowDragEnd() {
|
||||
this._onDragEnd();
|
||||
}
|
||||
|
||||
_onDragBegin() {
|
||||
this._inDrag = true;
|
||||
super._onDragBegin();
|
||||
this._updateTranslation();
|
||||
this._updateSlide();
|
||||
}
|
||||
|
||||
_onDragEnd() {
|
||||
this._inDrag = false;
|
||||
super._onDragEnd();
|
||||
this._updateSlide();
|
||||
}
|
||||
|
||||
fadeIn() {
|
||||
this.ease({
|
||||
opacity: 255,
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
|
||||
mode: Clutter.AnimationMode.EASE_IN_QUAD,
|
||||
});
|
||||
}
|
||||
|
||||
fadeHalf() {
|
||||
this.ease({
|
||||
opacity: 128,
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
}
|
||||
|
||||
slideIn() {
|
||||
this._visible = true;
|
||||
// we will update slide_x and the translation from pageEmpty
|
||||
|
Loading…
Reference in New Issue
Block a user