
Scale Up
Various KDE 1.-4. Improvements
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
A KWin effect to smoothly maximize/restore windows.
Please note this is *not* the right approach to implement smooth size change, so please don't take it too seriously. There's a sudden change in the beginning of animation. That's because the application has already finished maximizing/restoring at that moment, and I simply scale down/up the window to match its old size, and smoothly transit to the new size. So you'll see all text/icons in the window suddenly become smaller, then the whole window scales up.
I don't think this problem can be fixed in a KWin effect. Instead, it should be done in the KWin core to gradually resize the window to the target size, and let the application repaint itself in each step.
But before that happens, maybe you can have some fun with this (flawed) effect. :-)
INSTALL:
Extract the package first. In the extracted directory, run:
./configure
Then please follow instructions on screen.
If you are updating from an older version of this effect, also run:
kwin --replace&
to restart KWin.
seqizz
9 years ago
[ 80%] [100%] Building CXX object CMakeFiles/kcm_kwin4_effect_scaleup.dir/kcm_kwin4_effect_scaleup_automoc.o
Building CXX object CMakeFiles/kcm_kwin4_effect_scaleup.dir/scaleup_config.o
In file included from /tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:18:0:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.h:41:37: error: ‘TimeLine’ was not declared in this scope
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.h:41:46: error: template argument 2 is invalid
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::reconfigure(KWin::Effect::ReconfigureFlags)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:32:18: error: variable ‘KConfigGroup conf’ has initializer but incomplete type
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:32:63: error: invalid use of incomplete type ‘struct KConfigGroup’
/usr/include/kconfigbase.h:32:7: error: forward declaration of ‘struct KConfigGroup’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::prePaintScreen(KWin::ScreenPrePaintData&, int)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:41:27: error: request for member ‘isEmpty’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::prePaintWindow(KWin::EffectWindow*, KWin::WindowPrePaintData&, int)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:48:26: error: request for member ‘contains’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:50:31: error: ‘class KWin::EffectWindow’ has no member named ‘addTime’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:51:35: error: ‘class KWin::EffectWindow’ has no member named ‘value’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:54:30: error: request for member ‘remove’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::paintWindow(KWin::EffectWindow*, int, QRegion, KWin::WindowPaintData&)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:61:26: error: request for member ‘contains’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:66:50: error: ‘class KWin::EffectWindow’ has no member named ‘value’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::postPaintWindow(KWin::EffectWindow*)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:81:26: error: request for member ‘contains’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::windowUserMovedResized(KWin::EffectWindow*, bool, bool)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:103:9: error: ‘TimeLine’ was not declared in this scope
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:103:19: error: ‘t’ was not declared in this scope
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:104:26: error: ‘TimeLine’ is not a class or namespace
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp: In member function ‘virtual void KWin::ScaleUpEffect::windowClosed(KWin::EffectWindow*)’:
/tmp/yaourt-tmp-root/aur-kwin-effect-scaleout-git/src/kwin-effect-scaleout/scaleup.cpp:118:22: error: request for member ‘remove’ in ‘((KWin::ScaleUpEffect*)this)->KWin::ScaleUpEffect::mTimeLineWindows’, which is of non-class type ‘int’
make[2]: *** [CMakeFiles/kwin4_effect_scaleup.dir/scaleup.o] Error 1
make[1]: *** [CMakeFiles/kwin4_effect_scaleup.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Report
martosurf
9 years ago
Report
Znurre
10 years ago
Don't be so modest about it! :D
Thank you!
(on and thanks sxe for all your hard work with providing useful PKGBUILDS for us :)
Report
sxe
10 years ago
Heres my little contribution, an arch package. ;)
http://aur.archlinux.org/packages.php?ID=36465
Report
thomas12777
10 years ago
basically you need to enforce empty resizing (the ugly outline thing) to make this work (and even better, use it on any window resize, the look is surprisingly ok and it's _much_ faster than permanent window geometry updates.
look for "window resizing" in kwin's mailing list, end december 2009
the last patch only provides an addition to the infrastructure, the former ones also alter the resize effect in this regard
Report
genericity
10 years ago
http://lists.kde.org/?l=kwin&m=126100317412179&w=2
Personally I'm quite happy with "Display content when resizing windows". But I think your patch should be make into another resizing effect (not replacing the current one), and surely someone would love it.
We can let the user choose in the 3 ways (display content, the current resizing effect, your resizing effect). Each has its own pros and cons.
Report
Contrast
10 years ago
Report