Commit Graph

810 Commits (a360d59f7e1e110f88d1341d78ca7dbd1411f706)

Author SHA1 Message Date
Arthur Arlt e6d8585559 Do not include scene.h in workspace.cpp and events.cpp anymore
It is no longer necessary to include scene.h in workspace.cpp and
events.cpp.

REVIEW: 101706
2011-07-05 11:35:27 +02:00
Arthur Arlt 903bcb42fb Provide build option for TabBox functionality
Since the TabBox functionality is not feasible for any platform KWin is
used on (e.g. tablet PCs), a build option is added to decide, if the
TabBox functionality should be build or not.

REVIEW: 101511

@Sebastian: Martin wanted me to let you know that it is now possible
to disable building Tabbox
CCMAIL: sebas@kde.org
2011-07-05 11:00:23 +02:00
Arthur Arlt d1b5d00129 Refactoring TabBox
Move the funtionality of TabBox from class Workspace to class TabBox to make
it possible to deactivate this feature by setting a compile flag.
All methods and variables are now provided by class TabBox and calls from other
classes go directly to TabBox.
The code for configuring the shortcut keys has also been moved to class TabBox
from kwinbindings.cpp.
2011-07-05 10:59:53 +02:00
Arthur Arlt 6e7a249cd0 Rename functions in class ScreenEdge
Since the functions were moved from Workspace to its own class ScreenEdge
and the functionality was formerly called ElectricWindows, the functions still
had the old names. They are now consistenly renamed without redundand naming.
The function calls were updated as well in all classes where ScreenEdge is used.
2011-07-04 13:24:51 +02:00
Arthur Arlt bf419c256d Introduced init() method to class ScreenEdge
The initialization was done in class Workspace before but is now
moved to class ScreenEdge in its own init() method. Is is called from
Workspace at the same position where the initialization took place before.
2011-07-04 13:24:51 +02:00
Arthur Arlt 5ead1d90a1 Remove screen edge handling methods from workspace
Since the newly introduced class ScreenEdge and its calls work fine,
the redundand methods from workspace are now removed.
2011-07-04 13:24:51 +02:00
Arthur Arlt 2f11337d98 Refactoring Screen Edge handling
This commit change the screen edge function calls to be called in the
new class ScreenEdge. The old methods are still in Workspace and will
be removed in a further commit.
2011-07-04 13:24:51 +02:00
Arthur Arlt 7533bfac75 Introduce member variable ScreenEdge to Workspace
This commit adds a new member variable m_screenEdge to Workspace. It is
initialized in the constructor and deleted in the deconstructor.
A getter is introduced as well.
2011-07-04 13:24:51 +02:00
Arthur Arlt 25654f25b8 Removing TopMenu
Since the funtionality of TopMenu did no longer work in KDE4 this feature was
removed from Workspace. Every reference to it was removed as well as commentaries
and documentation.

REVIEW: 101485
2011-06-24 12:27:56 +02:00
Martin Gräßlin 494edbe76f Remove Mouse Emulation from KWin
Mouse Emulation is provided in a better way by KAccess. This provides
a global systemsettings switch to enable mouse emulation instead of
a shortcut and Xkb to enable mouse control with keyboard instead of
sending out fake mouse events.

So no need for duplicated functionality in KWin.

REVIEW: 101406
2011-06-23 11:56:00 +02:00
Martin Gräßlin 20941aca53 Fix regression of setting a window to all desktops
The logic to prevent errornous desktops broke setting a window
to all desktops through the task manager. For some reason all
desktops is -1 which is of course less than 1 ;-)
2011-05-27 16:47:45 +02:00
Philipp Knechtges 2c0b0e9f18 Performance bugfix.
In case we use OpenGL compositing and KWin is started with the raster graphicssystem,
the decoration gets painted with the raster backend.
REVIEW: 101370
2011-05-18 21:27:11 +02:00
Martin Gräßlin 74accbd64a Remove obsoleted code
Should have been removed with 44b83f951aeb3221c43ef3356e46650248b673cd
2011-05-15 14:33:40 +02:00
Thomas Lübking 2534acc961 Don't store virtual desktop settings while loading them
fwd-port of a2d4c3ebdf7137f3543c88245f0bfd3dba308ebf
CCBUG: 272666
2011-05-08 17:14:45 +02:00
Martin Gräßlin f97c92fde9 KWin does not require a decoration plugin any more
With config option "NoPlugin" in group "Style" it is possible to
no request that KWin should be run without a decoration plugin.
This is a change for Plasma Active to properly support no decorations.

As well if a decoration plugin cannot be loaded, KWin will no longer
exit, but continue to run just without a decoration. As a nice
side-effect changes in Oxygen no longer destroy my kwin build ;-)

BUG: 224440
FIXED-IN: 4.7.0
CCMAIL: sebas@kde.org
2011-04-28 16:05:23 +02:00
Martin Gräßlin ff3900d825 Refactor KWin Outline code into an own class
This change unduplicates some code and merges it into one class
allowing us to use an replacement effect for the outline in
future.
CCMAIL: a.arlt@stud.uni-heidelberg.de
REVIEW: 100848
2011-04-28 11:19:05 +02:00
Aaron Seigo d7862ace5b default to a single desktop 2011-04-26 22:28:19 +02:00
Thomas Lübking 6c89064e10 kwin: updateClientArea /after/ invalidating the screenareas
prevents segfaults when collpasing several desktops containing clients
2011-04-14 17:40:40 +02:00
Martin Gräßlin 6264370237 Merge branch 'oxygen-shadows' 2011-04-12 18:13:49 +02:00
Martin Gräßlin 16dd83bc4e Support diagonal navigation in mouse emulation 2011-04-06 17:56:00 +02:00
Martin Gräßlin 320de6abc6 Merge branch 'master' into oxygen-shadows
Conflicts:
	kwin/atoms.cpp
	kwin/atoms.h
2011-04-04 18:09:59 +02:00
Thomas Lübking 31278d570e add rule/property based composite blocking 2011-04-04 01:59:52 +02:00
Thomas Lübking bfd922d7fa strip down kwin shortcut allocation code 2011-04-03 23:18:44 +02:00
Thomas Lübking b32331afcf fix & cleanup Workspace::setNumberOfDesktops()
encapsulate all relevant (vector resizing) code to
Workspace::setNumberOfDesktops and invoke it from
Workspace::loadDesktopSettigns, this will likely
fix
CCBUG:200213
2011-04-03 22:44:19 +02:00
Martin Gräßlin 12220a0d59 Initial implementation of new Shadows in KWin
For a complete documentation of new functionality refer to:
http://community.kde.org/KWin/Shadow

The current implementation includes a new Shadow class and Toplevel
holds a pointer to an instance of this class. The Shadow class reads
the data from the X11 Property. There is one extended class located
in SceneOpenGL to render the shadow.

Compositor is adjusted to include the shadow region into the painting
passes.

Implementation for XRender still missing and Shadow needs to respond
to size changes of the Toplevel to update cached shadow region and
WindowQuads.
2011-03-27 12:33:07 +02:00
Martin Gräßlin b52975a57e Merge branch 'libkwineffects'
The branch contains the first step in reworking the kwineffects
library. This includes:
* replacing virtuals by signals and slots
* dropping some unused methods
* remove KWin::TimeLine

More to come.

Conflicts:
	kwin/workspace.cpp
2011-03-16 19:46:59 +01:00
Martin Gräßlin 16a025d907 Remove dynamic desktop layout
This has never been implemented properly. There is only the boolean
indicating that the desktop layout is dynamic but it is nowhere set
or used. So better remove it.
2011-03-13 14:04:02 +01:00
Martin Gräßlin 39ab2cf29e MouseChanged becomes a signal 2011-03-12 14:37:30 +01:00
Thomas Lübking 0b1599680d stage one, call martin 2011-03-08 22:05:09 +01:00
Thomas Lübking 0c5d47f3ae unify composite activation, 'Enable' only controls initial state 2011-03-06 22:35:13 +01:00
Martin Gräßlin 747afb4225 NumberDesktopsChanged becomes a signal
TODO: connect DesktopChangeOSD also to the signal
2011-03-06 20:10:11 +01:00
Martin Gräßlin 15757e953a TabBox uses signals to notify the effects
EffectsHandlerImpl just forwards the signals from TabBox. In order
to have a valid pointer to the TabBox, the TabBox is now initialized
before compositing in Workspace.
2011-03-06 12:15:16 +01:00
Martin Gräßlin e355700e6e EffectsHandler emits windowDeleted signal
Workspace emits a deletedRemoved signal which the EffectsHandlerImpl translates
into a windowDeleted signal.
2011-02-27 10:47:42 +01:00
Martin Gräßlin ab6f2ba1fd EffectsHandler emits windowAdded signal
All previously existing windowAdded methods are renamed to slotWindowAdded.
EffectsHandlerImpl is connected to Workspace's clientAdded signal, which is
emitted a little bit earlier than the previous direct method call. This might
change behavior.
Another signal is added to Workspace to signal that an unmanaged is added.
2011-02-25 22:06:02 +01:00
Martin Gräßlin c3a076b6a5 EffectsHandler emits desktopChanged signal
The first signal used between EffectsHandler and Effects.
The signal is actually emitted by the EffectsHandlerImpl and only
the interested effects connect to this signal.
EffectsHandlerImpl itself is also notified by a signal from Workspace,
allowing to remove one of the many if (effects) checks.
2011-02-25 20:41:10 +01:00
Fredrik Höglund 2d81d28e7a kwin: Use QBasicTimer instead of managing the timer ID manually. 2011-02-01 16:35:51 +01:00
Martin Gräßlin 0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Martin Gräßlin 713fe54e3c Removing screenshot to clipboard functionality.
We have ksnapshot for that which uses a KWin effect to get
screenshots including shadows, which was not possible with
KWin's own implementation.

This invalidates bugs about this functionality.
BUG: 263409
FIXED-IN: 4.7.0
2011-01-30 14:24:48 +01:00
Thomas Lübking 628ceadb99 constrain number of virtual desktops
BUG: 261665

svn path=/trunk/KDE/kdebase/workspace/; revision=1214238
2011-01-13 19:05:28 +00:00
Chani Armitage d18e95f9a6 improve stack & focuschain activity checks
BUG: 262730

svn path=/trunk/KDE/kdebase/workspace/; revision=1214045
2011-01-12 18:08:59 +00:00
Thomas Lübking 73ec13310f update utility window visibility on property change and increase hiding delay - should prevent "mystic" disappearance of gimp utilities
svn path=/trunk/KDE/kdebase/workspace/; revision=1210458
2010-12-31 13:44:17 +00:00
Thomas Lübking 337e1eac18 revert vsync strategy, fix timeouts
differecens to patch atteched to 258971:
- removed debug statements
- fixed indention...
- NON vsync strategy does not rely on the estimation, but on the time passed since the last repaint trigger, allowing a precise framerate

CCBUG: 258971


svn path=/trunk/KDE/kdebase/workspace/; revision=1210445
2010-12-31 13:14:11 +00:00
Thomas Lübking e2dcfff601 commiting http://svn.reviewboard.kde.org/r/6120/#review9304
this should improve v'syncing, maybe v'synced "smoothness"
remaining and exposed issue are "dirty textures" w/o damage events (see the requst description)
can be diminished by increasing MaxFPS above the fastest update (or shadowed below the slowest one)
CCBUG: 258971

svn path=/trunk/KDE/kdebase/workspace/; revision=1207577
2010-12-18 16:51:43 +00:00
Chani Armitage 0e7e1aa077 stop using deprecated API, and use activity icons
svn path=/trunk/KDE/kdebase/workspace/; revision=1192050
2010-11-01 19:53:22 +00:00
Chani Armitage 03165ff8eb delete session data for deleted activities
svn path=/trunk/KDE/kdebase/workspace/; revision=1192049
2010-11-01 19:53:20 +00:00
Martin Gräßlin 545801de62 Unset noBorder when switching from Netbook to Desktop Shell.
Check on reloading of settings if the no borders for maximized windows option got disabled.
If it got disabled unset the no border option for all maximized windows to get the borders back.
BUG: 222045
FIXED-IN: 4.6.0

svn path=/trunk/KDE/kdebase/workspace/; revision=1189981
2010-10-26 14:43:29 +00:00
Chani Armitage 3c633a48ab Use an X property for activity associations
the new property name is "_KDE_NET_WM_ACTIVITIES", of type XA_STRING,
and it's a comma-separated list of activity UUIDs.

kwin should respond to other processes changing the activity list for a
window, and filter out any bogus IDs. It also caches KActivityController's
list of activities to prevent dbus deadlocks.

CCMAIL: plasma-devel@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=1179043
2010-09-24 12:03:22 +00:00
Rohan Ramdas Prabhu 2aec750ebf Trembles the weave as the clock ticks, attain another microstate.
Every disorder causes every duration, which ensures the one that stays.
reality is relative. natural is disorder.
[R]obinhood[P]andey

Merging scripting from
^/branches/work/kwin_scripting TO
^/trunk

svn path=/trunk/KDE/kdebase/workspace/; revision=1177865
2010-09-21 14:31:40 +00:00
Chani Armitage 24c7f96416 update activity of transients properly
svn path=/trunk/KDE/kdebase/workspace/; revision=1128655
2010-05-19 21:02:40 +00:00
Chani Armitage 59590a5993 react to activity removal
svn path=/trunk/KDE/kdebase/workspace/; revision=1126057
2010-05-13 04:06:27 +00:00