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(
|
var SlidingControl = GObject.registerClass(
|
||||||
class SlidingControl extends St.Widget {
|
class SlidingControl extends FaderControl {
|
||||||
_init(params) {
|
_init(params) {
|
||||||
params = Params.parse(params, { slideDirection: SlideDirection.LEFT });
|
params = Params.parse(params, { slideDirection: SlideDirection.LEFT });
|
||||||
|
|
||||||
@ -114,17 +163,8 @@ class SlidingControl extends St.Widget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._visible = true;
|
this._visible = true;
|
||||||
this._inDrag = false;
|
|
||||||
|
|
||||||
Main.overview.connect('hiding', this._onOverviewHiding.bind(this));
|
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() {
|
_getSlide() {
|
||||||
@ -183,41 +223,17 @@ class SlidingControl extends St.Widget {
|
|||||||
this.slideOut();
|
this.slideOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWindowDragBegin() {
|
|
||||||
this._onDragBegin();
|
|
||||||
}
|
|
||||||
|
|
||||||
_onWindowDragEnd() {
|
|
||||||
this._onDragEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
_onDragBegin() {
|
_onDragBegin() {
|
||||||
this._inDrag = true;
|
super._onDragBegin();
|
||||||
this._updateTranslation();
|
this._updateTranslation();
|
||||||
this._updateSlide();
|
this._updateSlide();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDragEnd() {
|
_onDragEnd() {
|
||||||
this._inDrag = false;
|
super._onDragEnd();
|
||||||
this._updateSlide();
|
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() {
|
slideIn() {
|
||||||
this._visible = true;
|
this._visible = true;
|
||||||
// we will update slide_x and the translation from pageEmpty
|
// we will update slide_x and the translation from pageEmpty
|
||||||
|
Loading…
x
Reference in New Issue
Block a user