mirror of
https://github.com/gosticks/PaperWM.git
synced 2026-10-06 11:56:54 +00:00
72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
var Extension = imports.misc.extensionUtils.extensions['paperwm@hedning:matrix.org'];
|
|
var Utils = Extension.imports.utils;
|
|
var Me = Extension.imports.examples.modifierTrackerExperiments;
|
|
var ModifierTracker = Extension.imports.modifierTracker;
|
|
|
|
var Tiling = Extension.imports.tiling;
|
|
var Mainloop = imports.mainloop;
|
|
var Tweener = imports.ui.tweener;
|
|
|
|
var source = null;
|
|
var scale = 1;
|
|
|
|
function startZoom() {
|
|
source = Mainloop.timeout_add(350, () => {
|
|
log("Zoom!")
|
|
let space = Tiling.spaces.spaceOfWindow(global.display.focus_window)
|
|
const zoomed = space.actor;
|
|
space.visible.forEach(w => {
|
|
w.get_compositor_private().hide();
|
|
w.clone.show();
|
|
})
|
|
zoomed.show()
|
|
zoomed.set_pivot_point(0.5,0.5)
|
|
// scale *= 0.99;
|
|
scale = 0.8
|
|
Tweener.addTween(zoomed, {
|
|
transition: 'easeInOutQuad',
|
|
scale_x: scale,
|
|
scale_y: scale,
|
|
time: 0.500
|
|
})
|
|
// zoomed.set_scale(scale, scale);
|
|
// zoomed.set_pivot_point(space.selectedWindow.clone.x/zoomed.width, 0.5)
|
|
// startZoom();
|
|
|
|
})
|
|
}
|
|
|
|
function resetZoom() {
|
|
let space = Tiling.spaces.spaceOfWindow(global.display.focus_window)
|
|
Mainloop.source_remove(source)
|
|
const zoomed = space.actor;
|
|
Tweener.removeTweens(zoomed)
|
|
Tweener.addTween(zoomed, {
|
|
transition: 'easeInOutQuad',
|
|
scale_x: 1,
|
|
scale_y: 1,
|
|
time: 0.250,
|
|
onComplete: () => {
|
|
space.visible.forEach(w => {
|
|
w.get_compositor_private().show();
|
|
w.clone.hide();
|
|
})
|
|
Tiling.ensureViewport(space.selectedWindow, space, true)
|
|
}
|
|
})
|
|
// zoomed.set_scale(1,1)
|
|
scale = 1.0;
|
|
}
|
|
|
|
var signals = new Utils.Signals();
|
|
|
|
// for fun and giggles
|
|
function enable() {
|
|
signals.connect(ModifierTracker, 'modifier-down', Utils.dynamic_function_ref("startZoom", Me))
|
|
signals.connect(ModifierTracker, 'modifier-up', Utils.dynamic_function_ref("resetZoom", Me))
|
|
}
|
|
|
|
function disable() {
|
|
signals.destroy();
|
|
}
|