Commit graph

8530 commits

Author SHA1 Message Date
Montel Laurent
98b843e51f Fix compile with strict iterator 2011-10-30 20:29:28 +01:00
Martin Gräßlin
585ef3c19f Drop all obsoleted config options from kwintabbox kcm 2011-10-30 16:24:06 +01:00
Martin Gräßlin
aa17081fe8 TabBox in QML
All the default layouts (informative, compact, text, small and big icons)
are rewritten in QML and replace the ListView used before. The old code
is still around for the desktop switching modes which are not yet ported.

Next steps include to update the configuration module to not show now
obsoleted settings as well as providing a better way to choose the layout.

REVIEW: 102948
2011-10-30 16:07:14 +01:00
Fredrik Höglund
ebd0d9303b kwin: Replace calls to QElapsedTimer::restart() with start()
It doesn't make sense to call restart() without using the return
value, or when the timer has never been started.
2011-10-29 17:41:16 +02:00
Fredrik Höglund
eb9988b788 kwin: Make Scene::m_renderTimer a non-member
It's only used in Scene::paint(), and its value is not valid
between calls.
2011-10-29 17:41:16 +02:00
Fredrik Höglund
c784dbb097 kwin: Fix two ;;'s 2011-10-29 17:41:16 +02:00
Fredrik Höglund
fe08300505 kwin: Initialize Client::skip_switcher
This fixes a valgrind error
2011-10-29 17:41:16 +02:00
Fredrik Höglund
7f0c74cb38 kwin: Initialize Scene::lastRenderTime
This fixes a valgrind error
2011-10-29 17:41:16 +02:00
Fredrik Höglund
44165bb0d1 kwin: Initialize QElapsedTimers by calling invalidate()
QElapsedTimer doesn't have a constructor that initializes the
private members. This means that calls to isValid() will depend
on uninitialized data when the timer has never been started.

elapsed() and restart() will also use and return values
computed from uninitialized data.

This fixes several valgrind errors.
2011-10-29 17:40:09 +02:00
Thomas Lübking
67e79ea13a Add AnimationEffect class
REVIEW: 102922
2011-10-27 21:40:14 +02:00
Philipp Knechtges
2c08a14ff4 kwin: implement _KDE_NET_WM_OPAQUE_REGION
This patch implements an XProperty named _KDE_NET_WM_OPAQUE_REGION
which gives the compositor the information which part of a window
is opaque although it is an ARGB visual. The basic ideas are from
http://www.mail-archive.com/wm-spec-list@gnome.org/msg00715.html

Additionally the patch makes kwin  use this information to do a better
clipping in Scene::paintSimpleScreen which should result in a higher
performance.

REVIEW: 102933
2011-10-23 17:09:44 +02:00
Christophe Giboudeaux
f76c40c424 Fix the -Wmissing-include-dirs warnings 2011-10-19 23:53:13 +02:00
Pierre-Loup A. Griffais
7fff9705b4 kwin-gles: define EGL_POST_SUB_BUFFER_SUPPORTED_NV if it's not there
This fixes the build with older versions of eglext.h.

REVIEW: 102915
2011-10-19 20:15:40 +02:00
Pierre-Loup A. Griffais
2570e9ec61 kwin-gles: add support for EGL_NV_post_sub_buffer
The EGL path had no support for presenting sub-regions of the screen, we can
leverage EGL_NV_post_sub_buffer for that. This wouldn't be a win if we didn't
have to opt-out of flipping.

REVIEW: 102889
2011-10-17 20:27:23 +02:00
Pierre-Loup A. Griffais
309ce4013a kwin-gles: save a branch in the main shader
On less flexible hardware, one instruction for one branch might not be a good
trade.

REVIEW: 102886
2011-10-17 20:26:53 +02:00
Pierre-Loup A. Griffais
951904ba1a kwin-gles: opt-out of flipping
The drawing logic of KWin seems to rely on buffer preservation, so we have to
let the driver know that it can't flip.

REVIEW: 102880
2011-10-17 20:26:24 +02:00
Pierre-Loup A. Griffais
5971daf1c6 kwin-gles: check for EGL_image OR EGL_image_base + EGL_image_pixmap
EGL_KHR_image is a functional superset of both EGL_KHR_image_base and
EGL_KHR_image_pixmap, which were split off later to allow the former to be
more modular. Older drivers might only expose EGL_KHR_image if they were
released before the split happened.

REVIEW: 102879
2011-10-17 20:25:36 +02:00
Philipp Knechtges
1ea54ef44f kwin: fixing blur for shaded windows
If a window is "rolled" up we should not blur the specific regions.

CCBUG: 245388
2011-10-15 16:32:13 +02:00
Martin Gräßlin
fb2fbed035 Generate texture coordinates for limited NPOT support
Fixes rendering issues with R300 and similar GPUs. If the texture
uses GL_TEXTURE_RECTANGLE_ARB as target the tex coordinates need
to be adjusted. This at least fixes missing text on EffectFrames
with graphicssystem native on R300. Hopefully more issues are
resolved by the change.

BUG: 269576
CCBUG: 282882
FIXED-IN: 4.7.3
2011-10-15 14:14:44 +02:00
Martin Gräßlin
15fc864c95 Drop GLES specific hack in blur effect
With GLES full repaints are no longer required. At least I can no
longer notice any visual issues.
2011-10-15 10:55:27 +02:00
Martin Gräßlin
e6ed00123a Ensure that always one shader is on the ShaderStack with GL2
This brings some consistency with GLES2 where also one shader
is always on the stack and allows to use the test whether a shader
is bound to see if the GL2 code path is used. This fixes an issue
with cover/flip switch which tested for a bound shader before the
shader was pushed in multi screen setups.

As well it should bring some improvements as the simple screen
shader is not unbound and rebound in each rendered frame.

BUG: 283609
FIXED-IN: 4.7.3
2011-10-15 09:51:45 +02:00
Martin Gräßlin
eda72d6475 Don't react on mouse release events in Aurorae if mouse is outside button
HAPPY BIRTHDAY KDE. One bug fix as a present.

BUG: 283236
FIXED-IN: 4.7.3
2011-10-14 20:45:07 +02:00
Script Kiddy
e9ef4b8600 SVN_SILENT made messages (.desktop file) 2011-10-13 08:48:12 +02:00
Philipp Knechtges
5c7f919bbf kwin: updating comments on the blur texture cache 2011-10-12 16:02:19 +02:00
Philipp Knechtges
b6c27a17b0 kwin: bugfix blur effect
This commit fixes the bug, that the blur texture cache is not marked invalid
when the related XProperty changes.

BUG: 283818
2011-10-12 15:16:46 +02:00
Thomas Lübking
8f81339bca fix xrender scale+shadowed toplevel geometry
(cherry picked from commit 01ea7ad7f2a97924f4b6ee41adde01eef27b6e8b)

REVIEW: 102703
FIXED-IN: 4.7.3
2011-10-10 20:49:01 +02:00
Thomas Lübking
770df8c66b Force input replay for non activatable windows
BUG: 283474
REVIEW: 102795
FIXED-IN: 4.8
2011-10-10 20:47:00 +02:00
Thomas Lübking
2a84ba0094 don't scale highlighted window in present windows during de/activation
BUG: 283481
it's even worse, since it interferes with generally upscaled windows
(keeps them big, applies false transition and causes a final snapback)
and windata->highlight doesn't end at zero, so the entire screen is
still a little scaled when the effect ends (and snaps down afterwards)

now it snaps down when starting the leave what is better in general
and the only usable solution for upscaled windows.
some day presentwindows might be derived from the yet-to-add
animationeffect class ;-)
2011-10-06 22:47:29 +02:00
Thomas Lübking
9ec32d5942 4.7 backportable rules ui fixes
remove uncertain "extra role" match
fix shortcut editor s/s connection

REVIEW: 7001
2011-10-05 23:54:06 +02:00
Hugo Pereira Da Costa
885e42142f Fixed glow animation for outlined windows. 2011-10-05 23:01:13 +02:00
Hugo Pereira Da Costa
066927ebfb More fine tuning of window borders in outline mode. 2011-10-05 19:56:00 +02:00
Hugo Pereira Da Costa
e8addb2596 Turn off antialiasing when rendering window outline borders.
CCBUG: 283398
2011-10-05 18:55:45 +02:00
Luboš Luňák
1876e8fd01 ensure that moving between screens does not involve unrelated struts 2011-10-04 11:41:27 +02:00
Luboš Luňák
0efbcdb1fa optimize updateVisibility() when not showing the desktop 2011-10-04 10:33:51 +02:00
Philipp Knechtges
b6478e1b12 kwin: Optimizing Blur Part III
This patch introduces some kind of damage propagation. In the old version of the blur effect
we had to repaint the whole window if sth behind the blurred area was damaged. The new texture
cache, which was introduced by the last patch, gives us the opportunity to only update parts of
blurred background texture. This means that the damaged area can only propagate with the speed
of the blurring radius per window layer.

REVIEW: 102665
2011-10-02 14:47:03 +02:00
Andriy Rysin
4317ca8e88 Revert "Make kwin compile without OpenGL libs"
This reverts commit 940db4e348cf3ee016df04484616df7599504863.
2011-09-30 18:30:49 -04:00
Luboš Luňák
81ac707969 with separate focus for screens, don't change screens on desktop change 2011-09-30 19:24:42 +02:00
Luboš Luňák
2f1bb4f4a3 do not access possibly deleted memory 2011-09-30 19:24:42 +02:00
Luboš Luňák
e6fa2e4311 fix off-by-one test 2011-09-30 19:24:42 +02:00
Luboš Luňák
898052f3d5 better window position when moving a window between screens 2011-09-30 17:10:57 +02:00
Luboš Luňák
1030bcd7f3 keep windows inside workarea if they were there before workarea changes 2011-09-30 17:10:57 +02:00
Luboš Luňák
40744b6b11 use old screen sizes when calculating old window positions on screen size changes 2011-09-30 17:10:57 +02:00
Script Kiddy
2e7a1bfbf9 SVN_SILENT made messages (.desktop file) 2011-09-30 09:38:18 +02:00
Andriy Rysin
e94f58dd1b Make kwin compile without OpenGL libs
REVIEW: 101418
2011-09-29 23:27:16 -04:00
Luboš Luňák
3bd58d49fa so much for copy&pasting a function name 2011-09-29 18:30:20 +02:00
Luboš Luňák
191b03be1b gee, is this come-up-with-the-most-useless-variable-name competition or what?
And they are both pointless anyway, simplify code.
2011-09-29 18:30:20 +02:00
Luboš Luňák
07e3dff871 make checkWorkspacePosition() work also on desktop/screen change
It previously worked only when struts changed, this makes it work
e.g. when moving a window between desktops that have different
struts, or when sending a windows between differently sized screens.
2011-09-29 18:30:20 +02:00
Luboš Luňák
8edf542bb7 remove a function that should have been removed in d105478abf33474fa18e6bb1e80d09a1911f42e4 2011-09-29 18:30:20 +02:00
Luboš Luňák
c47de96716 fix overzealous optimizations leading to dangling references to temporaries 2011-09-29 18:30:20 +02:00
Luboš Luňák
2202be232b Revert "rules must never be null"
This reverts commit 169a3d887d58aaaae7457a8ae3003478b78e8f3b.
2011-09-29 16:22:24 +02:00