Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************************************************
- This file is part of the KDE project.
- Copyright (C) 2012 Martin Gräßlin <mgraesslin@kde.org>
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- *********************************************************************/
- "use strict";
- function sleep(miliseconds) {
- var currentTime = new Date().getTime();
- while (currentTime + miliseconds >= new Date().getTime()) {
- }
- }
- var maximizeEffect = {
- duration: animationTime(250),
- loadConfig: function () {
- maximizeEffect.duration = animationTime(250);
- },
- maximizeChanged: function (window) {
- var m = Math.floor((Math.random() * 2) + 1);
- sleep(16); //Skip a frame at 60hz to skip a glitch.
- if (!window.oldGeometry) {
- return;
- }
- window.setData(Effect.WindowForceBlurRole, true);
- var oldGeometry, newGeometry;
- oldGeometry = window.oldGeometry;
- newGeometry = window.geometry;
- if (oldGeometry.width == newGeometry.width && oldGeometry.height == newGeometry.height)
- oldGeometry = window.olderGeometry;
- window.olderGeometry = window.oldGeometry;
- window.oldGeometry = newGeometry;
- window.maximizeAnimation1 = animate({
- window: window,
- duration: maximizeEffect.duration,
- animations: [{
- type: Effect.Size,
- to: {
- value1: newGeometry.width,
- value2: newGeometry.height
- },
- from: {
- value1: oldGeometry.width,
- value2: oldGeometry.height
- }
- }, {
- type: Effect.Translation,
- to: {
- value1: 0,
- value2: 0
- },
- from: {
- value1: oldGeometry.x - newGeometry.x - (newGeometry.width / 2 - oldGeometry.width / 2),
- value2: oldGeometry.y - newGeometry.y - (newGeometry.height / 2 - oldGeometry.height / 2)
- }
- }]
- });
- //if (!window.resize) {
- if (1 == 2 ) { // disabled the routine because
- // CrossFadePrevious+xrender grabs a garbled texture as the start crossfade point
- sleep(16);
- window.maximizeAnimation2 =animate({
- window: window,
- duration: maximizeEffect.duration,
- animations: [{
- delay: animationTime(32),
- type: Effect.CrossFadePrevious,
- to: 1.0,
- from: 0.0
- }]
- });
- }
- },
- restoreForceBlurState: function(window) {
- window.setData(Effect.WindowForceBlurRole, null);
- },
- geometryChange: function (window, oldGeometry) {
- //sleep(100); inutile
- if (window.maximizeAnimation1) {
- if (window.geometry.width != window.oldGeometry.width ||
- window.geometry.height != window.oldGeometry.height) {
- cancel(window.maximizeAnimation1);
- delete window.maximizeAnimation1;
- if (window.maximizeAnimation2) {
- cancel(window.maximizeAnimation2);
- delete window.maximizeAnimation2;
- }
- }
- }
- window.oldGeometry = window.geometry;
- window.olderGeometry = oldGeometry;
- },
- init: function () {
- effect.configChanged.connect(maximizeEffect.loadConfig);
- effects.windowGeometryShapeChanged.connect(maximizeEffect.geometryChange);
- effects.windowMaximizedStateChanged.connect(maximizeEffect.maximizeChanged);
- effect.animationEnded.connect(maximizeEffect.restoreForceBlurState);
- }
- };
- maximizeEffect.init();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement