Commit graph

643 commits

Author SHA1 Message Date
Lucas Murray
913c4f387a SVN_SILENT Left-overs from the revert.
svn path=/trunk/KDE/kdebase/workspace/; revision=929351
2009-02-21 08:33:13 +00:00
Lucas Murray
ca901dae30 Improved window movement around struts. Windows can be moved anywhere
where the titlebar is still clickable even if it is outside the normal
work area. When struts are added or removed only move the windows that
cover the same area, leave all others untouched. If a strut is removed
on a xinerama screen that is not on the edge of the full desktop area
prevent the windows from being moved offscreen. Prevent struts/panels
from interfering with the movement of windows on other xinerama screens.
BUG: 74559
BUG: 90833
BUG: 160068

svn path=/trunk/KDE/kdebase/workspace/; revision=927466
2009-02-17 15:50:00 +00:00
Lucas Murray
893b0c2c71 Merge DesktopLayout class into Workspace.
svn path=/trunk/KDE/kdebase/workspace/; revision=926020
2009-02-14 15:40:52 +00:00
Lucas Murray
dd28e15a1b Allow desktop effects to access the new DesktopLayout class. Replaced
all code that used calcDesktopLayout() so the function could be removed.
Minor changes to the DesktopLayout class itself.

svn path=/trunk/KDE/kdebase/workspace/; revision=925930
2009-02-14 14:49:46 +00:00
Lucas Murray
4681129e4b Move desktop layout code into a separate file and class. This will allow
adding more complex desktop layout features (Such as desktop
rearranging, and non-rectangular layouts) easier in the future.
Workspace::calcDesktopLayout() has been deprecated.

svn path=/trunk/KDE/kdebase/workspace/; revision=925812
2009-02-14 09:46:12 +00:00
Lucas Murray
b55115a8be Prevent recursion loop in Toplevel::screen() and
Workspace::activeScreen() when the center of the active client is
offscreen and was not previously on the active screen.

svn path=/trunk/KDE/kdebase/workspace/; revision=925362
2009-02-13 06:59:34 +00:00
Luboš Luňák
1297fe6daa Fix position of gravitated windows after a crash.
http://lists.kde.org/?l=kwin&m=123149700221501&w=2


svn path=/trunk/KDE/kdebase/workspace/; revision=925062
2009-02-12 10:01:40 +00:00
Luboš Luňák
1c2ba6ea17 I forgot to actually implement the resetCompositing() slot for the previous commit.
svn path=/trunk/KDE/kdebase/workspace/; revision=924759
2009-02-11 14:29:32 +00:00
Lucas Murray
5945dd1131 If an effect is triggered by an electric border "push" the cursor back
out of the triggering area and disallow a retrigger for 350ms. Prevents
accidental deactivation of effect when leaving the cursor in the
hotspot.

svn path=/trunk/KDE/kdebase/workspace/; revision=924111
2009-02-10 06:22:04 +00:00
Luboš Luňák
7249ca2cfb Do self-check immediatelly during compositing setup only when it's not KWin startup
at the same time (in other words, only when activating compositing using the kcm).
Currently selfcheck causes bad flicker (due to X mapping the overlay window
for too long?) which looks bad during KDE startup. With this patch, KDE startup
is without any flicker.


svn path=/trunk/KDE/kdebase/workspace/; revision=923842
2009-02-09 14:51:11 +00:00
Luboš Luňák
b50a8d352a Compress possible several reasons for resetting compositing.
svn path=/trunk/KDE/kdebase/workspace/; revision=923836
2009-02-09 14:37:07 +00:00
Luboš Luňák
4d82d2291e Don't needlessly setup compositing twice during startup.
Xrandr seems to like to send events about "changes" right
after application startup.


svn path=/trunk/KDE/kdebase/workspace/; revision=923829
2009-02-09 14:31:42 +00:00
Lucas Murray
81ffa5aec9 Raise electric border windows when an effect mouse input window is
created to allow effects to be toggled by active screen edges.

svn path=/trunk/KDE/kdebase/workspace/; revision=922121
2009-02-06 14:21:20 +00:00
Lucas Murray
752d5fa642 Extracted mouse polling out of the composite timer to allow effects to
detect mouse movement and modifier key changes even when KWin is idle.
As the track mouse effect requires polling to always be active disabling
it by default to prevent wasting CPU usage in the default install.

svn path=/trunk/KDE/kdebase/workspace/; revision=919711
2009-02-01 15:16:52 +00:00
Lucas Murray
038667db7a SVN_SILENT Standardize coding style on client.* and workspace.*
svn path=/trunk/KDE/kdebase/workspace/; revision=898612
2008-12-18 13:50:57 +00:00
Lucas Murray
5821e6f9d7 Reverted all code relating to automatic X crash detection with agreement
from David. Due to an elusive bug somewhere in kdelibs we have not been
able to find out how to fix the issues that some people were having.
There seems to be a race condition as I cannot reproduce at all, David
can reproduce sporadically and some reporters can always reproduce.

This commit attempts to also keep the code style changes that were made
at the same time as the original commit as well as some minor bug fixes
that were made between then and now. Hopefully I didn't miss anything.

We will be revisit this in KDE 4.3.

BUG: 177178

svn path=/trunk/KDE/kdebase/workspace/; revision=894182
2008-12-08 05:08:31 +00:00
David Nadlinger
d79ef83183 When modifying the compositing settings, save a backup of kwinrc to another file to be able to revert if the X server crashes while testing the new config.
Also fixed a little bug in kcmkwincompositing (dropdowns on the general tab were not updated correctly) and cleaned up the code a bit (removed a few unneeded function calls and stale connects).

See the conversation on the mailing list ("Patch for bug 174769", http://lists.kde.org/?l=kwin&m=122696916611602) for further information.

BUG 174769


svn path=/trunk/KDE/kdebase/workspace/; revision=888659
2008-11-25 01:42:30 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Lucas Murray
154c19b0e7 Make the client shadowOpacity() return a relative opacity instead of absolute.
svn path=/trunk/KDE/kdebase/workspace/; revision=873440
2008-10-19 13:43:16 +00:00
Lucas Murray
af1b639a9d Rename the new decoration API and mark it as unstable. Supporting a hacked API is suicide.
Will correctly handle this in KDE 4.3 by using ARGB decorations, even if it's not pretty.

svn path=/trunk/KDE/kdebase/workspace/; revision=872795
2008-10-18 08:10:37 +00:00
Lucas Murray
899d578c49 Merge Libkdecoration2 Git branch.
WARNING: Breaks shadow effect. I don't think it causes anything to crash anymore but it is VERY ugly visually.

Contains:
 - New decoration API that allows decorations to change the way shadows look.
 - Shadows now wobble.
 - API example code in the Oxygen decoration.
 - Added buildQuads() effect plugin hook.
 - Work on the shadow effect to use the new decoration shadow API as well.
 - Added IDs to WindowQuads.
 - Added public accessors to texture coords in WindowVertex.

Would like all this to be reviewed.

CCMAIL: kwin@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=872473
2008-10-17 10:30:43 +00:00
Luboš Luňák
1d2c54edcc Support for proper effect reconfiguration instead of reloading them.
Fixes e.g. the global animation combo not taking effect.


svn path=/trunk/KDE/kdebase/workspace/; revision=866903
2008-10-02 09:27:32 +00:00
Luboš Luňák
9ad12bc391 Add one more check for paints taking too much time, this time
also detect not-so-bad-but-still-slow paint times over a longer
period of time, i.e. the old check is for systems which are pathetically
slow, this one is for systems that are just slow. Possibly may need
tweaking for cases like high system load, but right now it seems
that e.g. a compilation running cannot trigger this check because
it cannot cause many long repaints in a row.


svn path=/trunk/KDE/kdebase/workspace/; revision=866636
2008-10-01 14:29:56 +00:00
Luboš Luňák
503bf3e767 Add a check that measures time needed for one compositing pass.
If three successive ones take more than 1 sec, suspend compositing,
as that very likely means the system is totally incapable of decent
compositing. Perhaps may need little tweaking.


svn path=/trunk/KDE/kdebase/workspace/; revision=861906
2008-09-17 13:42:12 +00:00
Luboš Luňák
8eedfa3456 Another attempt at self-check, this time done directly during setup
(so that it can fail immediately).


svn path=/trunk/KDE/kdebase/workspace/; revision=859960
2008-09-11 16:37:26 +00:00
Luboš Luňák
c6230db535 Stop the compositing timer when idle.
FEATURE: 155694


svn path=/trunk/KDE/kdebase/workspace/; revision=854913
2008-08-30 15:28:47 +00:00
Luboš Luňák
fd2e9b54cb Funny how awesome ideas are often so awfully simple. Test whether compositing
really works by simply trying to do it and test the result - create a small
testing window with known content, do the same with it like with normal
windows, grab the screen contents, compare with the original, doesn't match? -> fail.
It still would be nice to have something similar for performance.


svn path=/trunk/KDE/kdebase/workspace/; revision=854549
2008-08-29 19:02:36 +00:00
Luboš Luňák
19a9dd4095 Fix the flicker caused by unredirecting code - apparently setting the same
shape with X is not a no-op.


svn path=/trunk/KDE/kdebase/workspace/; revision=854107
2008-08-28 20:43:40 +00:00
Luboš Luňák
14ae8d2dc9 Support for unredirecting fullscreen windows, i.e. games etc. can paint directly
and not be slowed down by going through compositing. Turned on and no UI option
in the naive hope that it won't cause any real problems. Maybe effects doing
window previews should get API to suspend unredirect though.


svn path=/trunk/KDE/kdebase/workspace/; revision=851742
2008-08-24 13:32:57 +00:00
Luboš Luňák
09d81b7e87 Cache the result of XQueryTree().
svn path=/trunk/KDE/kdebase/workspace/; revision=851667
2008-08-24 10:35:45 +00:00
Luboš Luňák
818070d3aa Keep fullscreen windows covering the whole screen when it is the topmost
window on its xinerama screen.
FEATURE: 126817


svn path=/trunk/KDE/kdebase/workspace/; revision=851204
2008-08-23 09:20:42 +00:00
Luboš Luňák
49660876c1 When confirming compositing in the configuration module,
wait for KWin to initialize it and report if it fails.
FEATURE: 161900


svn path=/trunk/KDE/kdebase/workspace/; revision=847403
2008-08-15 11:09:07 +00:00
Luboš Luňák
085abe58b2 Don't lose the desktop submenu in Alt+F3.
svn path=/trunk/KDE/kdebase/workspace/; revision=843596
2008-08-07 11:51:20 +00:00
Lucas Murray
79a8f87268 Fix center snapping algorithm for unrestricted moves
Also don't snap when another snap zone is closer

svn path=/trunk/KDE/kdebase/workspace/; revision=837639
2008-07-25 10:16:09 +00:00
Luboš Luňák
79bb84e119 Use KWin's internal stacking order for managed windows, not the X one.
Fixes composited drawing of windows on other desktops.
BUG: 161436


svn path=/trunk/KDE/kdebase/workspace/; revision=828060
2008-07-04 14:06:23 +00:00
Lucas Murray
d515abb82c Added screenNumber() and addRepaint(QRegion) to effects API
svn path=/trunk/KDE/kdebase/workspace/; revision=822215
2008-06-19 14:16:21 +00:00
Luboš Luňák
e2f835e142 Modules -> Effects, for consistent naming (not sure if the calls
are used somewhere). Also fix the strange indent.
CCMAIL: Laurent Montel <montel@kde.org>


svn path=/trunk/KDE/kdebase/workspace/; revision=818994
2008-06-10 09:32:46 +00:00
Laurent Montel
5628d59f1f Add dbus function to show which effect can be loaded
so now all is ok to know which module can be load/unload

svn path=/trunk/KDE/kdebase/workspace/; revision=815903
2008-06-02 20:05:17 +00:00
Laurent Montel
54ede72bf1 Add a dbus function to show which effect is loaded
svn path=/trunk/KDE/kdebase/workspace/; revision=815896
2008-06-02 19:52:02 +00:00
Luboš Luňák
ed2d087f9b Shortcut for temporarily suspending compositing. Useful when
one wants to run something graphically intensive like a game
or when compositing goes awry and one wants to see the checkbox
that turns it off.
FEATURE: 155581


svn path=/trunk/KDE/kdebase/workspace/; revision=810031
2008-05-19 21:48:47 +00:00
Luboš Luňák
53cc35b649 Show the composite overlay window only before the first painting pass
actually needs to flush the output to the screen. Avoids windows
temporarily disappearing during KDE startup or similar visual glitches.


svn path=/trunk/KDE/kdebase/workspace/; revision=806387
2008-05-11 09:48:34 +00:00
Luboš Luňák
2f8d2751a1 Fix handling of stacking order of unmanaged windows. Could maybe use a little
bit more of optimization.
BUG: 157878


svn path=/trunk/KDE/kdebase/workspace/; revision=800581
2008-04-24 12:53:03 +00:00
Luboš Luňák
26b79d9177 Use QVector instead of plain-C-error-prone-memory-leaking arrays.
svn path=/trunk/KDE/kdebase/workspace/; revision=798503
2008-04-18 12:57:16 +00:00
Luboš Luňák
01d9d88580 Add a dbus call to query which color settings the current decoration
supports, to be used by kcmcolors.


svn path=/trunk/KDE/kdebase/workspace/; revision=788598
2008-03-21 22:17:10 +00:00
Luboš Luňák
9eec690d9e Redo how transients raise their mainwindows - simply raise everything
in the group, instead of trying to walk up the possibly complicated
parents tree.


svn path=/trunk/KDE/kdebase/workspace/; revision=788489
2008-03-21 17:12:21 +00:00
Luboš Luňák
cda4477458 Add a hack that somewhat improves screen repaint after X session
switch with drivers that have a problem with this.
CCBUG: 154825


svn path=/trunk/KDE/kdebase/workspace/; revision=783860
2008-03-09 20:06:11 +00:00
Adriaan de Groot
214d575aa3 Qt3 -> Qt4 style includes.
qdrawutil.h doesn't seem to have a purely Qt4-style equivalent, so including the directory there disambiguates it from the Qt3 header.

svn path=/trunk/KDE/kdebase/workspace/; revision=770116
2008-02-02 20:54:19 +00:00
Luboš Luňák
a59f0a7f5e Revert r768755. There apparently is a need to have two calls.
The wonders of dbus ...


svn path=/trunk/KDE/kdebase/workspace/; revision=768770
2008-01-30 16:08:23 +00:00
Luboš Luňák
47bf19d978 There's really no need to have two dbus functions for reconfiguring.
svn path=/trunk/KDE/kdebase/workspace/; revision=768755
2008-01-30 15:31:44 +00:00
Luboš Luňák
60e904fb04 Don't refuse explicit window activation request just because the window
is not on the current desktop.


svn path=/trunk/KDE/kdebase/workspace/; revision=742984
2007-11-29 15:01:30 +00:00
Luboš Luňák
01bf6cbb4c License cleanup - add headers where missing, be explicit about GPL
being v2+ (right now it says just GPL, which according to GPL itself
means any GPL). Decoration clients will come later.
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=742302
2007-11-27 19:40:25 +00:00
Luboš Luňák
d18e4933a0 Make DesktopGrid useful also from keyboard.
svn path=/trunk/KDE/kdebase/workspace/; revision=739147
2007-11-20 16:17:08 +00:00
Luboš Luňák
ab70575d1f Make the outline for moving/resizing work with Qt4, which bothers
to support XOR painting only when XRender is available. Given that
outline should be mainly used with older systems, go for a DIY Xlib-based
solution. Needs changes in decorations using it.
BUG: 149997


svn path=/trunk/KDE/kdebase/workspace/; revision=739136
2007-11-20 16:00:58 +00:00
Luboš Luňák
1b8b326c7b Replace warnings about KShortcutDialog being dead with something that is not dead.
Now, since I don't see any shortcuts-related hacks, why exactly am I supposed
to contact you?
CCMAIL: ahartmetz@gmail.com
BUG: 151642 


svn path=/trunk/KDE/kdebase/workspace/; revision=731744
2007-11-01 19:24:35 +00:00
Luboš Luňák
0e55f109c5 Don't do any compositing when nothing is visible anyway (e.g. when switched
away from the X session).


svn path=/trunk/KDE/kdebase/workspace/; revision=726713
2007-10-18 17:58:08 +00:00
Rivo Laks
69058845e6 Add reinitCompositing dbus signal that reinits compositing (reconfigure signal doesn't and
shouldn't cause that) and use it when advanced compositing settings change.

svn path=/trunk/KDE/kdebase/workspace/; revision=714813
2007-09-20 17:19:19 +00:00
Arto Hytönen
e1c6433c8e pass-by-value -> reference-to-count fixes
svn path=/trunk/KDE/kdebase/workspace/; revision=707741
2007-09-02 20:01:17 +00:00
Luboš Luňák
89467f4afc QCursor::pos() -> cursorPos()
svn path=/trunk/KDE/kdebase/workspace/; revision=704207
2007-08-24 09:54:21 +00:00
Luboš Luňák
ca87a4bae2 In mouse focus policies, change active window only when the mouse actually
moves, not as a result of window changes (#92290).


svn path=/trunk/KDE/kdebase/workspace/; revision=704202
2007-08-24 09:46:56 +00:00
Luboš Luňák
ab1582de27 It's really interesting that KWin has had support for an arbitrary root
window, but I don't think it really works these days, and it's probably
also not useful at all.


svn path=/trunk/KDE/kdebase/workspace/; revision=689949
2007-07-19 16:24:51 +00:00
Luboš Luňák
9052116e4f Support for having previews even for unmapped windows - they're
actually kept mapped, so that they still have the backing pixmap.
Plus some small tricks to prevent such windows from interfering.
Only two basic modes are implemented right now.


svn path=/trunk/KDE/kdebase/workspace/; revision=683156
2007-07-04 09:51:10 +00:00
Luboš Luňák
27f67f3428 Dump support for the KDE systray mechanism. Hurray.
svn path=/trunk/KDE/kdebase/workspace/; revision=677076
2007-06-18 12:28:11 +00:00
Laurent Montel
f32b3e8d92 Remove not necessary "class classname;"
svn path=/trunk/KDE/kdebase/workspace/; revision=671233
2007-06-04 08:24:29 +00:00
Luboš Luňák
a47797e80a Read desktop layout also during startup.
svn path=/trunk/KDE/kdebase/workspace/; revision=669892
2007-05-30 18:17:18 +00:00
Rivo Laks
7ebe7238e2 Make reloadEffect() accessible via DBus
svn path=/trunk/KDE/kdebase/workspace/; revision=669434
2007-05-29 11:43:30 +00:00
Luboš Luňák
1040404a2a Track stacking order of unmanaged windows.
svn path=/trunk/KDE/kdebase/workspace/; revision=667686
2007-05-23 16:22:59 +00:00
Thorsten Roeder
0666147473 some krazy fixes
svn path=/trunk/KDE/kdebase/workspace/; revision=664331
2007-05-13 17:47:20 +00:00
Luboš Luňák
57b7967d66 When a user clicks on a window, set active Xinerama screen to be the screen
where the click occured.


svn path=/trunk/KDE/kdebase/workspace/; revision=662864
2007-05-09 12:30:29 +00:00
Luboš Luňák
02405eccd7 Set active Xinerama screen when moving.
svn path=/trunk/KDE/kdebase/workspace/; revision=662863
2007-05-09 12:26:32 +00:00
Luboš Luňák
1dd1daec48 Shortcuts for switching and moving windows between Xinerama screens.
CCBUG: 80755


svn path=/trunk/KDE/kdebase/workspace/; revision=662089
2007-05-07 13:13:48 +00:00
Luboš Luňák
d510baf365 Option for separating focus between Xinerama screens.
svn path=/trunk/KDE/kdebase/workspace/; revision=662065
2007-05-07 12:18:19 +00:00
Luboš Luňák
754d9f9589 Merging from old trunk:
r655709 | binner | 2007-04-19 07:39:44 +0200 (Thu, 19 Apr 2007) | 2 lines

SVN_SILENT i18n style guide fixes


svn path=/trunk/KDE/kdebase/workspace/; revision=659588
2007-04-30 12:50:10 +00:00
Luboš Luňák
e703bc638f Merging from old trunk:
r649380 | lunakl | 2007-04-02 17:26:48 +0200 (Mon, 02 Apr 2007) | 3 lines

Remove old stuff.


svn path=/trunk/KDE/kdebase/workspace/; revision=659574
2007-04-30 12:33:14 +00:00
Luboš Luňák
932444eeef Merging from old trunk:
r645397 | lunakl | 2007-03-22 15:27:04 +0100 (Thu, 22 Mar 2007) | 4 lines

Suspend updating of window-specific settings during shutdown,
so that KWin doesn't have to be killed as the first one during shutdown.


svn path=/trunk/KDE/kdebase/workspace/; revision=659567
2007-04-30 12:24:10 +00:00
Luboš Luňák
8bb79367cd Merging from old trunk:
r633205 | lunakl | 2007-02-13 15:09:23 +0100 (Tue, 13 Feb 2007) | 3 lines

Implement _NET_DESKTOP_LAYOUT.


svn path=/trunk/KDE/kdebase/workspace/; revision=659545
2007-04-30 12:00:32 +00:00
Luboš Luňák
ff5d1fe5ad Merging from old trunk:
r614887 | mlaurent | 2006-12-19 12:13:01 +0100 (Tue, 19 Dec 2006) | 5 lines

Add signal to reload config on all kwin instance
(fix all dbus call)


svn path=/trunk/KDE/kdebase/workspace/; revision=659491
2007-04-30 09:57:03 +00:00
Luboš Luňák
bbd7e25d2b Merging from old trunk:
r613274 | lunakl | 2006-12-13 19:48:58 +0100 (Wed, 13 Dec 2006) | 4 lines

Add checking code to detect inconsistencies of internal structures
for window relations, like #117677.


svn path=/trunk/KDE/kdebase/workspace/; revision=659476
2007-04-30 09:45:07 +00:00
Andreas Hartmetz
f312d14146 adaptations to the new KGlobalAccel and KActionCollection. Workspace::modalActionsSwitch() has a stupid name, feel free to do whatever with it.
svn path=/trunk/KDE/kdebase/workspace/; revision=659342
2007-04-30 00:52:51 +00:00
Luboš Luňák
8c5d3af9d5 Merging from old trunk:
r605401 | lunakl | 2006-11-16 17:56:16 +0100 (Thu, 16 Nov 2006) | 7 lines

Fix finding the most recently raised window when updating mouse
grab for click raise (#137119).

And I think I'll have somewhen to fix all the tabs and other
horrible things porting has done to indentation.


svn path=/trunk/KDE/kdebase/workspace/; revision=659312
2007-04-29 22:39:07 +00:00
Luboš Luňák
2e39d12ff6 Merging from old trunk:
r603033 | lunakl | 2006-11-07 17:19:39 +0100 (Tue, 07 Nov 2006) | 3 lines

Keep stacking order and focus chain order e.g. after doing "kwin --replace".


svn path=/trunk/KDE/kdebase/workspace/; revision=659303
2007-04-29 22:33:55 +00:00
Luboš Luňák
f52b8e48cd branches/work/kwin_composite becomes new trunk kwin.
svn path=/trunk/KDE/kdebase/workspace/; revision=659202
2007-04-29 17:35:43 +00:00
Luboš Luňák
2b7e1f4993 Remove kwin, kwin_composite will become new trunk kwin, missing merges
from trunk will be merged in.


svn path=/trunk/KDE/kdebase/workspace/; revision=659200
2007-04-29 17:34:49 +00:00
Dirk Mueller
e218e7e01d move the "To Desktop" menu to the right place again
instead of just appending it

svn path=/trunk/KDE/kdebase/workspace/; revision=657251
2007-04-23 16:49:41 +00:00
Luboš Luňák
438b8ce045 toggleEffect() DBUS call
svn path=/branches/work/kwin_composite/; revision=655369
2007-04-18 06:57:49 +00:00
Luboš Luňák
76cb5de294 Support for effects taking control of the keyboard. Needs recent kdeui change
to work properly.


svn path=/branches/work/kwin_composite/; revision=654259
2007-04-15 16:31:13 +00:00
Luboš Luňák
672c95e435 Work properly even with idle paint passes (react on mouse events).
svn path=/branches/work/kwin_composite/; revision=653927
2007-04-14 16:10:58 +00:00
Luboš Luňák
15c8a4220e Fix and re-enable optimized cursorPos().
svn path=/branches/work/kwin_composite/; revision=653895
2007-04-14 14:15:43 +00:00
Luboš Luňák
5fc1d4c480 Tabbox effect also converted to plugins.
svn path=/branches/work/kwin_composite/; revision=653014
2007-04-12 14:12:34 +00:00
Luboš Luňák
c38dc5e099 Change the DesktopChangeSlideEffect so that the new desktop doesn't
always slide in from the top but from the position where it is
according to the desktop layout.


svn path=/branches/work/kwin_composite/; revision=651083
2007-04-06 13:46:29 +00:00
Luboš Luňák
2c928221a4 namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/trunk/KDE/kdebase/workspace/; revision=650773
2007-04-05 12:12:10 +00:00
Luboš Luňák
e3b865cd5f namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/branches/work/kwin_composite/; revision=650770
2007-04-05 12:07:35 +00:00
Luboš Luňák
35bbf89aed Add support for activating features using window borders/corners.
Enabled it for PresentWindowsEffect for now.


svn path=/branches/work/kwin_composite/; revision=650532
2007-04-04 19:08:03 +00:00
Luboš Luňák
3617d1bf8a Merge r649608, r649403, r649230 and r648582 from trunk (porting).
svn path=/branches/work/kwin_composite/; revision=649948
2007-04-03 13:24:05 +00:00
Luboš Luňák
414eafe505 NETRootInfo4->NETRootInfo
svn path=/trunk/KDE/kdebase/workspace/; revision=649403
2007-04-02 15:53:39 +00:00
Luboš Luňák
4e3b78f635 Remove old stuff.
svn path=/trunk/KDE/kdebase/workspace/; revision=649380
2007-04-02 15:26:48 +00:00
Andreas Hartmetz
ee217245fb Ported/compile-fixed some code in khotkeys and kwin (that was not fun)
Small changes in other places, removed some unnecessary #include <kkeydialog.h> where they showed up.

Related to this kdelibs commit:
KKeyDialog: Renamed to KShortcutsDialog
KKeyChooser: Renamed to KShortcutsEditor
KKeyButton: Replaced by KKeySequenceWidget and KShortcutWidget. KKeySequenceWidget uses modified code from KKeyButton.
KShortcutDialog: Removed

svn path=/trunk/KDE/kdebase/workspace/; revision=648582
2007-03-31 19:04:28 +00:00
Philip Falkner
574e562906 Some updates to the tabbox.
Provide a pair of methods, setCurrentClient() and setCurrentDesktop(),
to allow effects to select items in the tabbox without activating them.

Insulate effects from having to know the order of desktops, with
currentDesktopList().  DesktopMode and DesktopListMode should be
effectively identical as far as how effects work.

Some changes to how the tabbox refcounting is done, should work a little
better.  Other small cosmetic changes.

Update BoxSwitchEffect.


svn path=/branches/work/kwin_composite/; revision=647594
2007-03-28 20:29:45 +00:00
Rivo Laks
d809643245 Make it compile:
- KProcess -> K3Process rename
- fix KKeyServer::xEventToQt() argument

svn path=/branches/work/kwin_composite/; revision=647255
2007-03-27 19:59:04 +00:00
Oswald Buddenhagen
3ee016f50d KProcess -> K3Process
KShellProcess -> K3ShellProcess
KProcIO -> K3ProcIO
KProcessController -> K3ProcessController

not deprecating, as we don't have a replacement yet.
not moving yet, as kdelibs still has heavy dependencies on it.

agreed upon with dfaure.


svn path=/trunk/KDE/kdebase/workspace/; revision=646732
2007-03-26 15:07:10 +00:00
Luboš Luňák
8b5b40e4e8 Shadows. Right not it's only flat black rectangle, but otherwise
everything should work.


svn path=/branches/work/kwin_composite/; revision=646315
2007-03-25 10:48:07 +00:00
Luboš Luňák
082c4e95e3 Suspend updating of window-specific settings during shutdown,
so that KWin doesn't have to be killed as the first one during shutdown.


svn path=/trunk/KDE/kdebase/workspace/; revision=645397
2007-03-22 14:27:04 +00:00
Philip Falkner
ce89ed0716 Allow effects to replace the tabbox.
svn path=/branches/work/kwin_composite/; revision=640628
2007-03-08 16:49:44 +00:00
Luboš Luňák
82c96c4bc7 Implement _NET_DESKTOP_LAYOUT.
svn path=/trunk/KDE/kdebase/workspace/; revision=633205
2007-02-13 14:09:23 +00:00
Luboš Luňák
4019dff500 Distinguish between damage and repaints - damage is when windows contents
change, repaint just triggers repaint of the area (without e.g. the texture
updating for OpenGL).
addDamage() -> addRepaint()
CCMAIL: kwin@kde.org


svn path=/branches/work/kwin_composite/; revision=632866
2007-02-12 15:22:43 +00:00
Luboš Luňák
00136f014f Configurable effects loading by Cedric Borgese.
svn path=/branches/work/kwin_composite/; revision=630276
2007-02-04 22:19:17 +00:00
Luboš Luňák
77f803a563 Instead of the somewhat fragile way of trying to clean up Client/Unmanaged
instances and keeping them around after the window is closed, create
class Deleted as a representation of a closed window.


svn path=/branches/work/kwin_composite/; revision=626356
2007-01-22 22:51:30 +00:00
Luboš Luňák
ff6f889ffc Add support for showing effects for windows which have already been deleted.
Add a fade-out effect.


svn path=/branches/work/kwin_composite/; revision=623872
2007-01-15 18:03:04 +00:00
Laurent Montel
f1588814af Add signal to reload config on all kwin instance
(fix all dbus call)
CCMAIL: l.lunak@kde.org
(could you merge it please)

svn path=/trunk/KDE/kdebase/workspace/; revision=614887
2006-12-19 11:13:01 +00:00
Luboš Luňák
508178e0d1 Add checking code to detect inconsistencies of internal structures
for window relations, like #117677.


svn path=/trunk/KDE/kdebase/workspace/; revision=613274
2006-12-13 18:48:58 +00:00
Luboš Luňák
ab8d845718 Reset compositing on XRandr changes to react on screen
size or refresh rate changes, patch by Philip Falkner.


svn path=/branches/work/kwin_composite/; revision=610114
2006-12-03 13:29:57 +00:00
Luboš Luňák
6a66250620 Better synchronization of refresh rate and vsyncing,
patch by Philip Falkner.


svn path=/branches/work/kwin_composite/; revision=610110
2006-12-03 13:29:14 +00:00
Luboš Luňák
04072fa089 Fix the opacity submenu in Alt+F3.
svn path=/branches/work/kwin_composite/; revision=606428
2006-11-20 12:55:06 +00:00
Luboš Luňák
43a945cd33 Fix finding the most recently raised window when updating mouse
grab for click raise (#137119).

And I think I'll have somewhen to fix all the tabs and other
horrible things porting has done to indentation.


svn path=/trunk/KDE/kdebase/workspace/; revision=605401
2006-11-16 16:56:16 +00:00
Luboš Luňák
154d8a588b Use the compositing manager _NET_WM_CM_S<n> manager selection.
svn path=/branches/work/kwin_composite/; revision=603322
2006-11-08 15:08:20 +00:00
Luboš Luňák
4110fc1c3a Support for XComposite overlay window.
svn path=/branches/work/kwin_composite/; revision=603137
2006-11-07 22:44:39 +00:00
Luboš Luňák
0a829c4ece Keep stacking order and focus chain order e.g. after doing "kwin --replace".
svn path=/trunk/KDE/kdebase/workspace/; revision=603033
2006-11-07 16:19:39 +00:00
Luboš Luňák
d92d3a8165 Document the compositing framework and the scene backends,
describe the design, add links to external docs.
Restructure COMPOSITE_TODO into sections and add sort of priorities.


svn path=/branches/work/kwin_composite/; revision=600163
2006-10-29 19:23:45 +00:00
Luboš Luňák
3f46d36bb9 Add convenience functions for damaging full area.
svn path=/branches/work/kwin_composite/; revision=598834
2006-10-24 19:28:17 +00:00
Luboš Luňák
23b30bb2fa Throttle composite repaints in order not to starve everything else.
svn path=/branches/work/kwin_composite/; revision=598820
2006-10-24 18:31:33 +00:00
Luboš Luňák
06203d0652 Don't bother with trying to transform window damage,
when there are any transformations, it should simply
repaint everything (todo).


svn path=/branches/work/kwin_composite/; revision=593450
2006-10-07 21:18:36 +00:00
Luboš Luňák
9cfa570153 merge in r568494 from trunk
svn path=/branches/work/kwin_composite/; revision=590656
2006-09-30 15:47:41 +00:00
Luboš Luňák
649887d6c2 Looks like using XserverRegion for keeping damage regions
wasn't that good idea. Changed to QRegion.


svn path=/branches/work/kwin_composite/; revision=590648
2006-09-30 15:40:03 +00:00
Luboš Luňák
626d2700c1 Merge compile fixes from trunk to work with current SVN.
svn path=/branches/work/kwin_composite/; revision=586383
2006-09-19 12:20:19 +00:00
David Faure
d65f3d93d1 KIPC is gone, dbus signals replace it.
The API has been cleaned up too: the signals moved from kapp to kglobalsettings
[which now provides a singleton], as well as most of the gui-settings-related code.

svn path=/trunk/KDE/kdebase/workspace/; revision=582977
2006-09-11 08:25:29 +00:00
Luboš Luňák
fa8cd7541f It wasn't a very good idea to do even compositing-unrelated
work in the work/kwin_composite branch.
svn merge revs 558154,558180,558236,558243,558258,562201


svn path=/trunk/KDE/kdebase/workspace/; revision=571776
2006-08-10 17:00:14 +00:00
Luboš Luňák
72d4e4205c Some kompmgr remnants removed.
svn path=/branches/work/kwin_composite/; revision=571702
2006-08-10 12:19:18 +00:00
Luboš Luňák
1bb6e17c54 KGlobalAccel has no longer the hack that maps numbered
keys to a slot with int argument.


svn path=/trunk/KDE/kdebase/workspace/; revision=568494
2006-08-01 11:50:10 +00:00
Luboš Luňák
e24815411a Keep damage info separately for every window.
svn path=/branches/work/kwin_composite/; revision=561966
2006-07-13 18:17:49 +00:00
Luboš Luňák
0516e1e73b Add support for translation and add two "plugins" that
make windows transparent or shake them while moving.


svn path=/branches/work/kwin_composite/; revision=559013
2006-07-06 13:17:44 +00:00
Luboš Luňák
f400646a6d xrender compositing work - now it uses damage areas
to reduce amount of painting


svn path=/branches/work/kwin_composite/; revision=558580
2006-07-05 16:04:11 +00:00
Luboš Luňák
afcc9b6897 Prepare for scene rendering with different engines.
svn path=/branches/work/kwin_composite/; revision=558442
2006-07-05 12:30:03 +00:00
Luboš Luňák
f4f07d4fd3 Remove kompmgr-related code except for the generic parts like
the slider in Alt+F3.


svn path=/branches/work/kwin_composite/; revision=558258
2006-07-04 23:30:05 +00:00
Luboš Luňák
571ba9cf9e Basic compositing support. It doesn't actually do anything
besides drawing what should be drawn anyway, and there are
still some things missing like stacking order for override
redirect windows, but KWin is basically a compositing manager now.


svn path=/branches/work/kwin_composite/; revision=558168
2006-07-04 20:02:07 +00:00
Laurent Montel
f7de3f2974 Start to port it to new dbus interface
svn path=/trunk/KDE/kdebase/workspace/; revision=549046
2006-06-07 09:05:46 +00:00
Laurent Montel
5725624c8b #include <q...h> -> #include <Q...>
svn path=/trunk/KDE/kdebase/workspace/; revision=540496
2006-05-13 16:33:18 +00:00
Laurent Montel
7f7ce52d78 #include <q...h> -> #include <Q...>
svn path=/trunk/KDE/kdebase/workspace/; revision=539617
2006-05-11 08:04:23 +00:00
Luboš Luňák
daf4e723ea Save also stacking order when doing session save.
svn path=/trunk/KDE/kdebase/workspace/; revision=531882
2006-04-20 14:57:10 +00:00
Tobias Koenig
848bc14335 deprecated--
svn path=/trunk/KDE/kdebase/workspace/; revision=529106
2006-04-12 15:13:31 +00:00
Luboš Luňák
4d8462f579 Move minimized windows to the right place in focus chain.
(#124807)


svn path=/trunk/KDE/kdebase/workspace/; revision=528632
2006-04-11 14:52:27 +00:00
Luboš Luňák
e906595aaf Separate focus chains are nice, but KDE-style Alt+Tab not limited
to the current desktop still needs the global one for MRU (#124721).


svn path=/trunk/KDE/kdebase/workspace/; revision=528612
2006-04-11 14:14:38 +00:00
Hamish Rodda
77bc9cd63d Merging in from bleeding edge kdebase branch
- i18n ported
- KAccel removed
- Some fixes for OS X

svn path=/trunk/KDE/kdebase/workspace/; revision=528190
2006-04-10 11:57:13 +00:00
Laurent Montel
99f8ff81b5 Deprecated--
svn path=/trunk/KDE/kdebase/kmenuedit/; revision=516274
2006-03-06 14:30:06 +00:00
Luboš Luňák
3c6af0ff28 Use a separate focus chain for each virtual desktop - this prevents onalldesktop
windows from usually getting focus after every virtual desktop switch.
Thanks for most of the work go to Guido Fiala <gfiala@s.netic.de>.
(#33701)


svn path=/trunk/KDE/kdebase/workspace/; revision=514057
2006-02-27 10:13:31 +00:00
Allen Winter
ae65a40c7a TRUE->true, FALSE->false
svn path=/trunk/KDE/kdebase/workspace/; revision=511180
2006-02-19 01:33:48 +00:00
Urs Wolfer
1cf79a8556 less Q3:
* remove unused Q3 includes
* port some Q3VBox, Q3HBox, Q3Frame, Q3PopupMenu

svn path=/trunk/KDE/kdebase/workspace/; revision=484457
2005-11-30 21:17:50 +00:00
Luboš Luňák
c6b24fdb13 Make it simpler to also edit special window setting affecting
the whole application.


svn path=/trunk/KDE/kdebase/kwin/; revision=449779
2005-08-16 17:46:42 +00:00
Luboš Luňák
512fb17a95 Forward port of #108961.
svn path=/trunk/KDE/kdebase/kwin/; revision=442363
2005-08-02 13:25:20 +00:00
Stephan Kulow
b464518b3c svn merge svn+ssh://coolo@svn.kde.org/home/kde/trunk/KDE/kdebase@438057
svn+ssh://coolo@svn.kde.org/home/kde/branches/work/kde4/kdebase
          .

I couldn't resolve one kicker conflict that results from different
development directions, so I rely on Aaron to sort it out - the file
is commited with conflicts

svn path=/trunk/KDE/kdebase/kwin/; revision=439627
2005-07-28 14:59:42 +00:00
Luboš Luňák
20f80af287 Make it possible to use the window-specific settings dialog
to also set some things only temporarily. E.g. in order
to set skiptaskbar flag on a window, it's just
Alt+F3/Advanced/Special Window Settings/Preferences ->
Apply Now for Skip taskbar, and turn on the checkbox.


svn path=/trunk/KDE/kdebase/kwin/; revision=423112
2005-06-07 15:31:15 +00:00
Luboš Luňák
5722d3fac8 Implement _NET_SHOWING_DESKTOP, giving control of the 'show desktop'
feature to KWin. There shouldn't hopefully be any visible user
difference other than fixed bugs.
BUG: 78109
BUG: 99524


svn path=/trunk/KDE/kdebase/kwin/; revision=413066
2005-05-13 08:57:21 +00:00
Luboš Luňák
fc90a04635 Make it possible to do all kinds of strange things when mousewheeling
the titlebar or Alt+mousewheeling the window.
FEATURE:44318
FEATURE:66519
FEATURE:76188


svn path=/trunk/KDE/kdebase/kwin/; revision=410058
2005-05-06 15:20:49 +00:00
Luboš Luňák
a3d314ca4e Make the 'Edit' button for shortcut in window-specific settings
do at least something.

svn path=/trunk/kdebase/kwin/; revision=385467
2005-02-02 18:57:21 +00:00
Thomas Lübking
dfbb9c362e added some dcop functions/signals to support a kompmgr handling kicker applet
svn path=/trunk/kdebase/kwin/; revision=380671
2005-01-21 04:58:54 +00:00
Luboš Luňák
07203ba5b6 Window-specific rules for dynamic windows shortcuts, so that it's
possible to always have certain shortcuts assigned to their windows
if such windows are open. Still few TODO items left, but let's consider
it enough for #44268 to be marked as done.
FEATURE: 44268

svn path=/trunk/kdebase/kwin/; revision=379444
2005-01-17 15:53:14 +00:00
Thomas Lübking
8ad47028f6 Added composite (translucency/shadows) support
svn path=/trunk/kdebase/kwin/; revision=378790
2005-01-15 17:07:48 +00:00
Luboš Luňák
65c3b55e05 Revert last revert, dynamic keybidings are back in.
svn path=/trunk/kdebase/kwin/; revision=377118
2005-01-10 09:56:21 +00:00
Luboš Luňák
c7d0776f01 Revert last changes because of temporary freeze.
svn path=/trunk/kdebase/kwin/; revision=375467
2005-01-04 14:57:42 +00:00
Luboš Luňák
d04ce83410 Custom shortcuts for windows (#44268). It still needs some testing, window
rules for them to be assigned automatically, and some way to indicate
every window's shortcut, but it more or less works.

svn path=/trunk/kdebase/kwin/; revision=375458
2005-01-04 14:24:55 +00:00
Luboš Luňák
5baf4a79c4 Try harder to restore focus if something sets it to null.
svn path=/trunk/kdebase/kwin/; revision=365079
2004-11-22 11:34:09 +00:00
Luboš Luňák
a2a55c8436 Make electric borders work also during DND. Blame David and George
for getting me in Santa Claus mood.
FEATURE:86998

svn path=/trunk/kdebase/kwin/; revision=361725
2004-11-09 15:38:33 +00:00
Luboš Luňák
816f3bd86e Force updating electric borders on resize change.
BUG:92583

svn path=/trunk/kdebase/kwin/; revision=359883
2004-11-02 15:19:01 +00:00
Luboš Luňák
43e7580cf0 Shortcuts for moving a window to left/right/up/down.
CCMAIL: 87411-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=348524
2004-09-22 16:49:41 +00:00
Luboš Luňák
37f682c907 Handle a rather unusual usage KMenuBar usage in amarok - parent widget
is first created toplevel, then reparented to become one tab widget.
CCMAIL: 81620-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=333232
2004-07-27 13:13:52 +00:00
Luboš Luňák
094befa1de Make it possible to have several rules matching one window.
svn path=/trunk/kdebase/kwin/; revision=321637
2004-06-18 08:57:42 +00:00
Luboš Luňák
5085b40285 Fix activation of window that was active at session saving time.
svn path=/trunk/kdebase/kwin/; revision=319667
2004-06-11 15:13:08 +00:00
Luboš Luňák
6e44fc30b8 Autosave for window rules.
svn path=/trunk/kdebase/kwin/; revision=319665
2004-06-11 15:12:29 +00:00
Luboš Luňák
0f972d789f Instead of snatching the window temporarily from kwin simply tell kwin
what to do with it. I've never liked this hack much, and this should
also take care of #49375, and should make sure kstart options will
have higher priority than settings configured in kwin.

svn path=/trunk/kdebase/kwin/; revision=319662
2004-06-11 15:10:09 +00:00
Cristian Tibirna
05c003dd28 window and border snapping during resize operations.
Patch contributed by Christopher Suleski (linux from tildewave com): http://bugs.kde.org/show_bug.cgi?id=45805
Many thanks, Christopher.
Code inspected by Lubos Lunak.
Reviewed, slightly adapted and tested by me.
CCMAIL: 45805-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=317353
2004-06-03 12:36:57 +00:00
Luciano Montanaro
7240bff8f1 Added a new variant of showWindowMenu() that takes an originating rect instead
of a point. This method should be preferred to bring up the actions menu  from
the menu button, since it makes it a bit harder to select a menu item
involuntaryily in some corner case.

svn path=/trunk/kdebase/kwin/; revision=317016
2004-06-02 09:47:36 +00:00
Luboš Luňák
8e09a9bc22 I guess I could finally find some time to work on things for 3.3.
Initial work on kwin rules, i.e. #36377 , per window specific settings.
So far only desktop/above/below work, no GUI, and settings from the old
'Save window settings' are ignored for now.

svn path=/trunk/kdebase/kwin/; revision=315446
2004-05-28 13:51:11 +00:00
Luboš Luňák
5632bb5129 Patch from Christopher J. Suleski (linux tildewave com) implementing #30426.
CCMAIL: 30426-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=315341
2004-05-28 08:53:44 +00:00
Luboš Luňák
d551f871fb Prefer the newer way of getting startup timestamp from the ASN startup id.
svn path=/trunk/kdebase/kwin/; revision=314706
2004-05-26 09:24:14 +00:00
Luboš Luňák
6d919922e2 Better implementation for ##36065.
svn path=/trunk/kdebase/kwin/; revision=305578
2004-04-22 12:30:57 +00:00
Luboš Luňák
23ac6a4381 Initialize values needed for electric borders even in the only-move case.
(#79252).

svn path=/trunk/kdebase/kwin/; revision=304267
2004-04-16 16:17:32 +00:00
Luboš Luňák
f701524d4e Experimental support for #36065 (dragging from a window shouldn't raise it).
Needs a Qt patch.

svn path=/trunk/kdebase/kwin/; revision=304194
2004-04-16 10:23:42 +00:00
Luboš Luňák
1f628f4a5b Support for timestamp in the window restack request.
svn path=/trunk/kdebase/kwin/; revision=304187
2004-04-16 09:43:53 +00:00
Waldo Bastian
30faf2c53e KIOSK: Hide configure option if control modules have not been authorized
svn path=/trunk/kdebase/kwin/; revision=296848
2004-03-18 13:18:41 +00:00
Luboš Luňák
d2e94b988e Watch properties also on the group leader window, for now only
the startup notification property, but it could be extended
to read icons etc. as well if needed (ICCCM 4.1.2.7).

svn path=/trunk/kdebase/kwin/; revision=291218
2004-02-25 09:51:47 +00:00
Peter Rockai
2eb784cf35 Support for NETWM partial struts (_NET_WM_STRUT_PARTIAL, we call them
extended here, ask Lubos why :>). This patch also includes workaround
for kicker (in its current state, without extended-strut support), so it
works in xinerama setups as expected. Thanks go to Lubos for help with
implementation and for review.

svn path=/trunk/kdebase/kwin/; revision=288758
2004-02-17 17:34:00 +00:00
Luboš Luňák
ea87eea812 On auto unshading, don't keep focus on the unshaded window, revert
focus to the previously active window.
CCMAIL: 75302-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=288483
2004-02-16 15:19:39 +00:00
Luboš Luňák
ed511fc454 Reshuffle the options in the Alt+F3 menu a bit and see what is does ...
svn path=/trunk/kdebase/kwin/; revision=287759
2004-02-13 15:15:37 +00:00
Luboš Luňák
5f079f5e3d Fix for #67416 by Martin Koller + my grab code changes to get mouse
clicks even for the active window.

svn path=/trunk/kdebase/kwin/; revision=286702
2004-02-10 09:24:57 +00:00
Luboš Luňák
42e26ff608 Use WM_CLIENT_LEADER for grouping if a window is group transient
but has no group set. This should take care of comment #20 in #69519.

svn path=/trunk/kdebase/kwin/; revision=285366
2004-02-05 18:16:53 +00:00
Luboš Luňák
e5d090ff4d When the X focus gets set to None, reset it to the null focus window,
so that keyboard shortcuts still work.

svn path=/trunk/kdebase/kwin/; revision=284489
2004-02-02 14:17:01 +00:00
Luboš Luňák
43d67778b8 Fix fullscreen with mouse focus policies, fix ##62208 and fix properly
##69238.

svn path=/trunk/kdebase/kwin/; revision=281049
2004-01-19 14:42:52 +00:00
Luboš Luňák
24cae23c66 Fix Xinerama placement. Thanks to Malte S. Stretz for help with debugging
and testing.

svn path=/trunk/kdebase/kwin/; revision=278437
2004-01-10 15:13:23 +00:00
Luboš Luňák
c1d1b6289f Make sure there aren't two windows given focus with the same X timestamp,
because if one timestamp is reused for activating window A and then
immediatelly window B, and A will want to set focus to one
of its subwindows after receiving WM_TAKE_FOCUS, and will lag a bit,
it will actually set the focus after B, and will win. Fixes #71704.

If somebody still gets the warning, I'd be interested in the backtrace.

svn path=/trunk/kdebase/kwin/; revision=278208
2004-01-09 17:35:21 +00:00
Luboš Luňák
581fa5f585 Fix focus stealing prevention during kontact startup, with tips dialog
enabled.

svn path=/trunk/kdebase/kwin/; revision=277883
2004-01-08 16:18:07 +00:00
Luboš Luňák
c84b674e6a Pass also the currently active window in the _NET_ACTIVE_WINDOW message.
svn path=/trunk/kdebase/kwin/; revision=273668
2003-12-18 12:16:30 +00:00
Luboš Luňák
0b8ee9a5e4 When comparing window requesting activation (i.e. focus stealing prevention),
don't use Workspace::activeClient() as the active client, but instead
the most recent should_get_focus client - that may make a difference
if a window was just activated, but the matching FocusIn event that'll
make it to be activeClient() wasn't yet processes. Visible with apps
that show several windows at the same time after startup.

svn path=/trunk/kdebase/kwin/; revision=270831
2003-12-02 17:52:10 +00:00
Luboš Luňák
897e67f79a Partially revert the recent xinerama commit - !isMapped == useCursorPos
was always true, no need for another argument.

svn path=/trunk/kdebase/kwin/; revision=269308
2003-11-24 15:05:50 +00:00
George Staikos
875fc62836 Reimplement Xinerama placement. Patch from Balaji Ramani.
CCMAIL: balaji@yablibli.com

svn path=/trunk/kdebase/kwin/; revision=268719
2003-11-21 23:00:38 +00:00
Luboš Luňák
d46c7413c4 Hopefully final fixes for topmenus managed by KWin to work (#66152).
Written by Schizo, reviewed by Frenia. As it was broken anyway, I don't
think this can break it more.

svn path=/trunk/kdebase/kwin/; revision=266813
2003-11-13 14:34:05 +00:00
Luboš Luňák
1d71c9839b Reserve space for topmenus, so there's no flicker, and the space is taken
even with no topmenu shown. Support topmenus only when enabled in kdeglobals.

svn path=/trunk/kdebase/kwin/; revision=266531
2003-11-12 09:47:13 +00:00
Luboš Luňák
07b08d5d99 Don't use struts if KWin itself restricts workarea size by topmenus.
svn path=/trunk/kdebase/kwin/; revision=266150
2003-11-10 18:08:04 +00:00
Luboš Luňák
240ad036d0 Make system tray temporarily set _KDE_SYSTEM_TRAY_EMBEDDING property on
windows while embedding them, allowing KWin to figure out it's being used
and that it's not going away. This hack avoids the reparenting fight
between KWin and QXEmbed where QXEmbed started to loose after the recent
fixes.
In order to make systray really work, QXEmbed still needs some fixes
related to not destroying the embedded window.

svn path=/trunk/kdebase/kwin/; revision=263178
2003-10-30 10:10:54 +00:00
Luboš Luňák
8b5159bb1a Warn when somebody plays too much, turns off a border and doesn't know how
to put it back *sigh*.

CCMAIL: 64938-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=258583
2003-10-13 16:22:39 +00:00
Luboš Luňák
34fa4a4399 Cleanup of Xinerama handling. I don't claim I actually fixed something,
but at least now the code doesn't look like uncommented random something.
And who knows, maybe I even fixed it ;).

CCMAIL: staikos@kde.org

What the hell does "Show unmanaged windows on:" mean in the kcm dialog?

svn path=/trunk/kdebase/kwin/; revision=257723
2003-10-10 12:58:38 +00:00
Luboš Luňák
83835a8757 Small cleanup related to timestamp handling.
svn path=/trunk/kdebase/kwin/; revision=257715
2003-10-10 12:48:09 +00:00
Luboš Luňák
43ff6ea638 Move struct SessionInfo from workspace.h to sm.h .
svn path=/trunk/kdebase/kwin/; revision=256747
2003-10-06 14:03:15 +00:00
Luboš Luňák
52b2452085 Catch all events related to clients, even if they're not e->xany.window .
svn path=/trunk/kdebase/kwin/; revision=255661
2003-10-02 12:33:51 +00:00
Luboš Luňák
6b3d8e134a Implemented _NET_MOVERESIZE_WINDOW.
Moved KWin code related to configure request to geometry.cpp to a common function.

svn path=/trunk/kdebase/kwin/; revision=255355
2003-10-01 12:08:53 +00:00
Luboš Luňák
90281645bf As KPassivePopup shows, things can be annoying even if they don't steal
the focus and just are there. Therefore, as a part of focus stealing
prevention, let's also block raising of windows. Also added special
request for Kicker, as taskbar requests for raising should be obeyed.
(Not that this does anything to KPassivePopup.)

svn path=/trunk/kdebase/kicker/taskmanager/; revision=255070
2003-09-30 12:49:23 +00:00
Luboš Luňák
ce37c50587 Small cleanups.
svn path=/trunk/kdebase/kwin/; revision=255049
2003-09-30 10:55:06 +00:00
Stephan Binner
2ec6c54769 Moved window options into a sub-menu. Still not convinced that having full
screen and noborder there is a good idea. How does an application get notified
that it was switched to full screen mode? How do you revert these settings?

svn path=/trunk/kdebase/kwin/; revision=254230
2003-09-26 21:32:49 +00:00
Luboš Luňák
19c204b429 A feeble attempt to fix #63223 that does not really work and is disabled.
svn path=/trunk/kdebase/kwin/; revision=253843
2003-09-25 12:17:35 +00:00
Luboš Luňák
9db6939eca Save windows state in phase2. The XSMP spec allows apps to change
their state in phase1 :(.

svn path=/trunk/kdebase/kwin/; revision=252344
2003-09-19 11:07:46 +00:00
Luboš Luňák
affe6e19cc Keyboard shortcut for turning off the border.
svn path=/trunk/kdebase/kwin/; revision=251809
2003-09-17 10:57:28 +00:00
Luboš Luňák
10f405c73d Merging kwin core from kwin_iii back to HEAD.
svn path=/trunk/kdebase/kwin/; revision=251608
2003-09-16 19:28:03 +00:00
Luboš Luňák
71d30b5813 At least very basic support for _NET_WM_WINDOW_TYPE_SPLASHSCREEN also in HEAD.
svn path=/trunk/kdebase/kwin/; revision=239649
2003-07-28 13:26:08 +00:00
Dirk Mueller
6bbbe69c0e unbreak compilation (gcc 3.4+)
svn path=/trunk/kdebase/kcontrol/; revision=239225
2003-07-26 10:41:28 +00:00
Luboš Luňák
b1658f3efe Get rid of the focusEnsurance hack that was trying to work around
a hack in Qt that was trying to work around something that Qt-2.2.4 changelog
claims to be Xlib bug and that's no longer in Qt anyway.
Fixes #24087.

svn path=/trunk/kdebase/kwin/; revision=220339
2003-04-15 18:51:39 +00:00
Luboš Luňák
9cb2c00de3 Cleanup of KWin::Info -> KWin::WindowInfo.
Correct detection of minimized windows for KWin HEAD and kwin_iii.
Correct detection of window type even if the list includes unsupported ones.

svn path=/trunk/kdebase/kwin/; revision=219298
2003-04-09 14:20:55 +00:00
Luboš Luňák
1f87831837 XRANDR support in HEAD too, so that curious people don't have to use
kwin_iii. It's still #ifdef-ed out by XRANDR_SUPPORT, just like elsewhere
in kdelibs/kdebase.

svn path=/trunk/kdebase/kwin/; revision=211041
2003-03-03 14:03:56 +00:00
Luboš Luňák
32830fe4c6 Disable legacy session support in HEAD KWin too, as ksmserver is not
branched.

svn path=/trunk/kdebase/kwin/; revision=203113
2003-01-27 13:49:15 +00:00
Luboš Luňák
a4b6ba8032 Save some duplicated code.
svn path=/trunk/kdebase/kwin/; revision=197003
2003-01-02 16:57:08 +00:00
Harri Porten
7cd5b4570e added some const suggestions for KDE 4.0
svn path=/trunk/kdebase/kwin/; revision=196082
2002-12-27 22:57:06 +00:00
Luboš Luňák
92396f254d Work areas (_NET_WORKAREA) are actually to be supposed per-desktop.
svn path=/trunk/kdebase/kwin/; revision=196073
2002-12-27 22:32:17 +00:00
Luboš Luňák
336667733e keyboard shortcuts for always-on-top & on-all-desktops
(#49083).

svn path=/trunk/kdebase/kwin/; revision=194462
2002-12-17 16:09:08 +00:00
Luboš Luňák
dfcc58b00f Fix #49369 and generally try to improve window matching.
Use WM_WINDOW_ROLE also for fake sessions (Save window settings).
Remember also window type.

svn path=/trunk/kdebase/kwin/; revision=185456
2002-10-24 16:22:15 +00:00
Luboš Luňák
6a1b175c7f Damn, I hate keeping BC in an application.
svn path=/trunk/kdebase/kwin/; revision=184473
2002-10-18 11:26:55 +00:00
Luboš Luňák
35c890d029 Fix #44133. Approved by Gallium.
svn path=/trunk/kdebase/kwin/; revision=184025
2002-10-15 13:41:37 +00:00
Luboš Luňák
df05c96459 Ok, looks like it wasn't BIC after all.
svn path=/trunk/kdebase/kwin/; revision=175636
2002-09-04 07:27:06 +00:00
Luboš Luňák
427941efea Keep BC.
svn path=/trunk/kdebase/kwin/; revision=175540
2002-09-03 16:47:41 +00:00
Matthias Ettrich
e3dddfb21d the return of the popup_client, at least a tiny little bit :-) See
discussion on kwin@mail.kde.org

svn path=/trunk/kdebase/kwin/; revision=175528
2002-09-03 16:05:30 +00:00
Luboš Luňák
3b57952b03 Take care of #46042. [...resisted to say here something about Motif >;> ]
svn path=/trunk/kdebase/kwin/; revision=174310
2002-08-28 15:17:31 +00:00
Karol Szwed
a33f4313ab - Removing patch by Diego Iastrubini that attempted to fix the bidi issues in
clients by adding an unnecessary 'enable-bidi' checkbox which was never agreed
  upon on the kwin mailing list.

  The use of --reverse is sufficient without needing this checkbox.
  Please discuss largish patches like these first, especially during a feature
  freeze!

  (Everyone also seems to forget the kwin-styles in kdeartwork)

- Make clients look the same with --reverse instead of the broken state they
  were in previously. If the button ordering is not to your liking in reverse
  mode, just change the button positions. (Or send patches for those clients
  that have not got these features yet).

- Clean up popupMenu handling somewhat.

- Remove a global static object in keramik.

svn path=/trunk/kdebase/kwin/; revision=174079
2002-08-27 15:12:14 +00:00
Luboš Luňák
220206e6dd Make sure the window operations popup works for the active window.
Plugin developers should use only Workspace::showWindowMenu() instead
of calling Workspace::clientPopup() and playing with the popup.

svn path=/trunk/kdebase/kwin/; revision=173296
2002-08-22 17:16:47 +00:00
Luboš Luňák
0714a8d003 Get rid of client_popup, as (not) discussed on kwin@.
This patch should fix such interesting things like closing the toplevel
menubar with Alt+F4 or moving Kicker to a different desktop using
keyboard shortcuts.

svn path=/trunk/kdebase/kwin/; revision=170646
2002-08-06 07:45:29 +00:00
Luboš Luňák
78a7c08049 Since some of the .h files are installed ...
Prefix all the #ifndef #define ... #endif symbols with KWIN_ , just in case
somebody uses CLIENT_H or so too.
And don't include config.h .

svn path=/trunk/kdebase/kwin/; revision=168940
2002-07-26 20:30:36 +00:00
Cristian Tibirna
9b03ba50c2 CT: two new non-placement policies. No GUI config.
Edit kwinrc and use either of:

Placement=StupidlyCentered
Placement=StupidlyZeroCornered

and then, at a prompt:

dcop kwin KWinInterface reconfigure

svn path=/trunk/kdebase/kwin/; revision=163755
2002-06-29 06:31:33 +00:00
Nadeem Hasan
b36c644b72 Don't show desktop menu when there is only one desktop configured. Thanks
to aseigo for the original patch.

svn path=/trunk/kdebase/kwin/; revision=160391
2002-06-11 19:49:38 +00:00
Alexander Kellett
3e43789786 "wmaker-like" popup messages on desktop switch.
svn path=/trunk/kdebase/kwin/; revision=146349
2002-04-01 02:54:00 +00:00
Waldo Bastian
a0ca762edd * Do not use config.h in header files.
* Throw out unused Xinerama code.

svn path=/trunk/kdebase/kwin/; revision=143596
2002-03-18 08:30:50 +00:00
Matthias Ettrich
83f58ed248 gracefully handle more than one desktop client application (which
happens triggered by a kdesktop bug on David Faure's machine).

You can now launch additional desktop applications with

     kstart --type Desktop konqueror
or
     kstart --type Desktop konsole

and toggle between them with

    dcop kwin default circulateDesktopApplications

svn path=/trunk/kdebase/kwin/; revision=140330
2002-03-02 21:03:49 +00:00
Matthias Ettrich
e34a6ee283 second half of the "avoid stealing focus if possible" fix
svn path=/trunk/kdebase/kwin/; revision=139642
2002-02-28 22:11:43 +00:00
George Staikos
1cde570a88 Fix behaviour of windows when changing styles on Xinerama. Now they don't
magically fly to other screens.

svn path=/trunk/kdebase/kwin/; revision=139300
2002-02-28 00:43:23 +00:00
Ellis Whitehead
c798226b77 Clean-up, and fix so that Alt+Tabbing works with NumLock or CapsLock on.
svn path=/trunk/kdebase/kwin/; revision=132462
2002-01-19 04:55:32 +00:00
bhughes
e26ab00662 before including the Xinerama header, make sure Bool is defined.
The Xlib.h Bool define has to be removed before including Qt headers,
so this makes sure that things work properly...

svn path=/trunk/kdebase/kwin/; revision=131909
2002-01-16 11:13:17 +00:00
Ellis Whitehead
0fa8002e0d Updates necessary for changes made in the K*Accel* and KKey* classes.
svn path=/trunk/kdebase/kcontrol/; revision=129003
2001-12-29 04:19:24 +00:00
Ellis Whitehead
7960d9b776 - Remove obsolete slots
- Add detection of shortcut configuration changes

svn path=/trunk/kdebase/kwin/; revision=124812
2001-11-30 08:04:17 +00:00
Waldo Bastian
8c5a34d322 Take into account a wide range of pager-layouts, the pager can set the
required layout via DCOP. Used for desktop left/right/up/down.

svn path=/trunk/kdebase/kwin/; revision=124773
2001-11-29 23:59:54 +00:00
Waldo Bastian
2076b00f61 Make active borders working when moving a window.
Make it configurable (disabled, only when moving, always enabled)

svn path=/trunk/kdebase/kwin/; revision=120497
2001-11-03 00:05:33 +00:00
Laurent Montel
4ef029256c QList -> QPtrList
QArray -> QMemArray

svn path=/trunk/kdebase/kwin/; revision=113976
2001-09-11 06:53:46 +00:00
Waldo Bastian
83cbfe3acb Window follows mind^H^H^H^Hdesktop.
svn path=/trunk/kdebase/kwin/; revision=112163
2001-08-27 23:56:15 +00:00
Waldo Bastian
aedc59bde7 Ported from KDE 1.1.2: Electric Borders are back!
svn path=/trunk/kdebase/kwin/; revision=112025
2001-08-27 05:42:32 +00:00
Matthias Ettrich
6847f73526 cleaned grabbing up a bit
svn path=/trunk/kdebase/kwin/; revision=107986
2001-07-27 12:48:30 +00:00
Richard J. Moore
2cd059894a Window grabbing stuff for linuxtag
svn path=/trunk/kdebase/kwin/; revision=104070
2001-06-26 23:30:52 +00:00
Matthias Ettrich
6413e1dd8f Fixed hanging Alt-Tab under heavy load (Part II, first part was in
kdelibs/kdecore/kglobalaccel.cpp)

svn path=/trunk/kdebase/kwin/; revision=102912
2001-06-18 20:18:32 +00:00
Luboš Luňák
0827825fcb Use debug area for the debug info.
Explicitly note in the headers that the classes have to keep BC ( after KDE2.2 ).
Fixed index in walking through desktops.

svn path=/trunk/kdebase/kwin/; revision=101972
2001-06-13 15:47:54 +00:00
Ellis Whitehead
9e0653455e kdebase/kcontrol/keys/: add ability to separate between 'normal' shortcuts and a shortcut series
kdebase/kwin/tabbox: allow for choosing between switching between desktops in focus order versus numeric order.

kdebase/kwin/workspace: add key bindings for focus-order-desktop-walking and sending a window to a specific desktop.

*bindings.cpp: add labels for kcontrol

svn path=/trunk/kdebase/kwin/; revision=101281
2001-06-10 04:10:42 +00:00
Malte Starostik
f8c8380275 Expose int currentDesktop() const via DCOP
and added void nextDesktop() and void previousDesktop(), also available
via DCOP.
This makes it possible to use KGesture to cycle through desktops :)

svn path=/trunk/kdebase/kwin/; revision=101071
2001-06-09 05:00:46 +00:00
Ellis Whitehead
a9c55776ae KAccel: allow for 4-modifier setup defaults, check whether Qt supports the
Meta key.

KGlobalAccel: improve X key ungrabbing for key map changes.

KKeyDialog: Allow caller to specify whether normal keys (i.e., 'A', 'B') can
be used as shortcuts and whether the Meta key can be used in a shortcut.

KeyConfog: Add support for a second default configuration. Add support for a
user with a Meta key not to default to 4-modifier setup (not yet working
completely).

Workspace: Added 'Window iconify all'.  Still speed work -- best might be to
merge this with 'Show Desktop'

kcontrol/keys/main.cpp: a bit of capitalization

kcontrol/kwm/mouse, kwin/client, kwin/options: Let user use Meta key for
window resizing/moving/etc

*bindings.cpp: add 4-modifier setup defaults

svn path=/trunk/kdebase/kcontrol/; revision=100877
2001-06-07 18:17:24 +00:00
Karol Szwed
9c0f71e601 Making reconfigure() timer buffered so that we don't get flooded with
too many reconfigure events at once, which would re-client all windows
multiple times and cause lots of ugly flicker.

svn path=/trunk/kdebase/kwin/; revision=100375
2001-06-04 14:01:00 +00:00
Dirk Mueller
5a49a411dd whoops, restoring binary compatibility in case we want it (SC was given)
svn path=/trunk/kdebase/kwin/; revision=100140
2001-06-03 09:30:19 +00:00
Dirk Mueller
8e8dce5e64 Xinerama support, patch by Balaji Ramani <balaji@spinnakernet.com>
svn path=/trunk/kdebase/kwin/; revision=100136
2001-06-03 09:04:03 +00:00
Luboš Luňák
0603cb240d 'Logout' and 'Lock screen' keybindings don't really belong to kwin, they
belong to kdesktop.

svn path=/trunk/kdebase/kwin/; revision=99466
2001-05-30 13:23:53 +00:00
Helge Deller
6536d083a0 added global "Lock Screen" key-binding (CTRL-ALT-L)
svn path=/trunk/kdebase/kwin/; revision=99436
2001-05-30 10:31:03 +00:00
Luboš Luňák
322eaa8daa Use the new app startup info stuff to implement start_on_desktop.
svn path=/trunk/kdebase/kwin/; revision=98620
2001-05-24 21:01:09 +00:00
Dirk Mueller
e3766f1c3b Xinerama support (patch by Balaji Ramani <balaji@spinnakernet.com>)
svn path=/trunk/kdebase/kwin/; revision=96584
2001-05-12 00:33:43 +00:00
Henrik Johnson
10baa96bc7 Add key bindings to move current window to next/previous desktop
svn path=/trunk/kdebase/kwin/; revision=96538
2001-05-11 21:38:00 +00:00
Carsten Pfeiffer
3e28074e23 Configure WindowManager
svn path=/trunk/kdebase/kwin/; revision=96232
2001-05-10 17:54:57 +00:00
Luboš Luňák
e0dbc88040 Implemented NET::SkipPager in kwin, kpager, the pager applet and kstart.
Not that I really understand why's there both SkipTaskbar and SkipPager ...

svn path=/trunk/kdebase/kwin/; revision=94832
2001-05-02 20:37:30 +00:00
Waldo Bastian
42291d5b87 Make Workspace a singleton, accesible via Workspace::self()
svn path=/trunk/kdebase/kwin/; revision=93375
2001-04-22 06:51:07 +00:00
Luboš Luňák
b6c55170ed Breaking BC in KWin again in order to keep BC for plugins. I forgot
a few private pointers *slap self*.

svn path=/trunk/kdebase/kwin/; revision=92998
2001-04-20 07:19:03 +00:00
Luboš Luňák
18d2c93cea Added private data pointer members to classes which might be accessed
by style plugins ( KWin has to keep BC for these ). I hope these are
all classes that need it.
And of course, this change is not binary compatible, but it fortunately
doesn't matter much for KWin these days.

svn path=/trunk/kdebase/kwin/; revision=90127
2001-04-03 14:40:34 +00:00
Luboš Luňák
6261311a69 I think I've finally found the right place for the propagateClients() call.
Now KWinModule will emit windowAdded() after all properties are set
correctly, but still before activeWindowChanged().
If it breaks something, beat me.

svn path=/trunk/kdebase/kwin/; revision=90016
2001-04-02 22:12:54 +00:00
Adriaan de Groot
2b0e89325f Added window raise-or-lower
svn path=/trunk/kdebase/kwin/; revision=89959
2001-04-02 16:17:06 +00:00
Matthias Ettrich
9547820ecc re-enabled the nice feature that Alt-Tab and Ctrl-Tab won't do anything
if there are popup windows open (that is, if we cannot obtain a mouse pointer
grab). Avoids "hanging" Window or Desktop boxes.

This broke when the (otherwise very nice) transition to KGlobalAccel was
introduced.

svn path=/trunk/kdebase/kwin/; revision=89105
2001-03-28 12:44:31 +00:00
Luboš Luňák
944967a8e1 Made Alt+Tab , Ctrl+Tab configurable. Also added in kcontrol module missing option
to make Alt+Tab to go either through all windows or only the ones on the current
desktop. If you get keyboard lock-ups because of this, yell.
I wonder how many bugreports I will be able to close because of this :).

svn path=/trunk/kdebase/kwin/; revision=87801
2001-03-19 20:05:36 +00:00
Matthias Ettrich
9b24d884bf legacy session management support (WM_COMMAND) for emacs-lovers.
Many thanks to Leon Bottou <leonb@research.att.com> for this one.

svn path=/trunk/kdebase/kwin/; revision=87737
2001-03-19 15:35:07 +00:00
George Staikos
a888d424c6 The new refresh code. This will refresh the entire desktop for you,
background, icons and windows!

svn path=/trunk/kdebase/kwin/; revision=86920
2001-03-14 10:16:08 +00:00
Matthias Ettrich
11f1ab2b60 reduce the number of X-errors. Thanks to Lars Hete for this one.
svn path=/trunk/kdebase/kwin/; revision=86918
2001-03-14 09:21:16 +00:00
Luboš Luňák
8b6478aeda Applying #19154 ( together with #19158 fixes #13794 #17915 #17698 )
svn path=/trunk/kdebase/kwin/; revision=86664
2001-03-12 21:32:13 +00:00
David Faure
77180181a1 Make setCurrentDesktop(int) available via DCOP, to replace the "kwmcom desktopN"
functionality from kde1. Not a slot anymore (wasn't used as such).

svn path=/trunk/kdebase/kwin/; revision=85932
2001-03-08 14:28:07 +00:00
Matthias Elter
c48346551b Patch by Matthias Ettrich:
Changing the focus policy does not reset all client styles.

svn path=/trunk/kdebase/kwin/; revision=83927
2001-02-21 18:29:24 +00:00
Waldo Bastian
2f90225543 Put stuff in KWinInternal namespace.
Export client.h, workspace.h and options.h so that people can write plugins.

svn path=/trunk/kdebase/kwin/; revision=83707
2001-02-20 01:20:38 +00:00
Matthias Ettrich
f788868318 fixed focus problems with qt-2.2.4 (see separate mail on kde-core-devel)
svn path=/trunk/kdebase/kwin/; revision=81151
2001-02-03 12:30:46 +00:00
Waldo Bastian
03fc02caf3 Delay resetting client decorations a bit in some cases, maybe we have to do
it anyway later on in which case we can save some flicker & CPU by doing it
only once.

svn path=/trunk/kdebase/kwin/; revision=80040
2001-01-25 19:17:17 +00:00
Matthias Ettrich
d2e0e0529b disabled the special treatment of system-tray parents for iconify()
Reason: it didn't work. This is the least intrusive and cleanest fix for it.

svn path=/trunk/kdebase/kwin/; revision=79884
2001-01-24 16:47:44 +00:00
Matthias Ettrich
e9d30a20d7 Balaji Ramani <balaji@spinnakernet.com>: shadeHover support
GUI: new operation popup item: "Store Settings"

svn path=/trunk/kdebase/kwin/; revision=78043
2001-01-14 20:16:04 +00:00
Matthias Ettrich
33f78a855b some more keybindings
less race conditions with map/unmap thanks to BlackboxTechnology(tm)

svn path=/trunk/kdebase/kwin/; revision=77544
2001-01-11 23:41:07 +00:00
Cristian Tibirna
37ef0caae2 CT: handle Control-Tab at run time, not only at start time. This should
silence a few bug reports from Emacs users

svn path=/trunk/kdebase/kwin/; revision=75146
2000-12-17 21:57:52 +00:00
Richard J. Moore
99fa5f16ed Added a new method to the DCOP interface that displays the window menu
for a specified WId.

svn path=/trunk/kdebase/kwin/; revision=70680
2000-11-12 20:25:21 +00:00
Matthias Ettrich
bb80bc7507 Fixed focus for "Lower", made "ActivateAndLower" work, fixed
CDE-style Alt-tab in FocusUnderMouse mode (was broken with transient
windows)

svn path=/trunk/kdebase/kwin/; revision=66189
2000-10-02 12:02:15 +00:00
Matthias Ettrich
aa3eb43071 - fix autohide strut in kicker
- cleanup k menu, added configurable bookmarks menu
- unclutter/cascade in window menu
- logout from kdesktop without warning message
- kicker menu adjusts on reconfigure()
- desktop menu off by default (now that all functionality is visible
  otherwise)
- killWindow in kwin's dcop interface

Patch tested and confirmed by coolo and Matthias Elter.

svn path=/trunk/kdebase/kwin/; revision=64783
2000-09-23 14:48:02 +00:00
Matthias Ettrich
10b2e5fde2 don't activate dock windows with click (fixes kicker focus problems,
reviewed by Carsten Peiffer)

svn path=/trunk/kdebase/kwin/; revision=63580
2000-09-11 20:54:00 +00:00
Matthias Ettrich
bf33b067be - completed session management (maximize, shaded, and restore were missing)
- support for WM_COMMAND pseudo session management (xterm and friends)
- basic support for private colormaps, useful on the last remaining 8bit displays

svn path=/trunk/kdebase/kwin/; revision=62239
2000-08-30 14:27:30 +00:00
Kalle Dalheimer
87931a071a Added hotkeys for workspaces 9-16
Patch approved by Matthias Ettrich

svn path=/trunk/kdebase/kwin/; revision=62067
2000-08-28 06:16:34 +00:00
Matthias Ettrich
5d7ca8f2ee adding missing raise and lower keybindings
svn path=/trunk/kdebase/kwin/; revision=59304
2000-07-30 16:15:17 +00:00
Matthias Ettrich
7ca46b1e1c do not manage magic for java applets
svn path=/trunk/kdebase/kwin/; revision=56985
2000-07-15 01:12:41 +00:00
Matthias Ettrich
7dcedd2f0d show desktop names in some other places as well (and use utf8 rather than local 8 bit)
svn path=/trunk/kdebase/kwin/; revision=56902
2000-07-14 19:56:47 +00:00
Matthias Ettrich
32bde0d550 desktop names
svn path=/trunk/kdebase/kwin/; revision=56406
2000-07-12 18:08:24 +00:00
Matthias Ettrich
75a6430c8f no autoraise on windows moving
svn path=/trunk/kdebase/kwin/; revision=56075
2000-07-11 11:41:52 +00:00
Jesper Pedersen
797a25747c Added the following two functions:
- Switch one desktop to the left
  - Switch one desktop to the right

svn path=/trunk/kdebase/kwin/; revision=55397
2000-07-04 17:07:58 +00:00
Matthias Ettrich
f5226e0281 staysOnTop support.
Fixed titlebar-dblclick-commands (Shade instead of winShade )

svn path=/trunk/kdebase/kwin/; revision=54719
2000-06-28 13:20:42 +00:00
Matthias Ettrich
10658d11e0 system tray support
svn path=/trunk/kdebase/kwin/; revision=54677
2000-06-28 07:51:45 +00:00
Matthias Ettrich
3693e4ba80 react properly on sendClientToDesktop requests from kicker
svn path=/trunk/kdebase/kwin/; revision=54143
2000-06-23 18:56:59 +00:00
Matthias Ettrich
ead1f75144 some cleanups, reconfigure() dcop call
svn path=/trunk/kdebase/kwin/; revision=54046
2000-06-22 21:57:39 +00:00
Matthias Ettrich
6655d0207d focus policies and alt-tab style:
/*!
      Different focus policies:
      <ul>

      <li>ClickToFocus - Clicking into a window activates it. This is
      also the default.

      <li>FocusFollowsMouse - Moving the mouse pointer actively onto a
      normal window activates it. For convenience, the desktop and
      windows on the dock are excluded. They require clicking.

      <li>FocusUnderMouse - The window that happens to be under the
      mouse pointer becomes active. The invariant is: no window can
      have focus that is not under the mouse. This also means that
      Alt-Tab won't work properly and popup dialogs are usually
      unsable with the keyboard. Note that the desktop and windows on
      the dock are excluded for convenience. They get focus only when
      clicking on it.

      <li>FocusStrictlyUnderMouse - this is even worse than
      FocusUnderMouse. Only the window under the mouse pointer is
      active. If the mouse points nowhere, nothing has the focus. If
      the mouse points onto the desktop, the desktop has focus. The
      same holds for windows on the dock.

      Note that FocusUnderMouse and FocusStrictlyUnderMouse are not
      particulary useful. They are only provided for old-fashined
      die-hard UNIX people ;-)

      </ul>
     */
FocusPolicy=ClickToFocus | FocusFollowsMouse | FocusUnderMouse | FocusStrictlyUnderMouse


    /**
       Different Alt-Tab-Styles:
       <ul>

       <li> KDE - the recommended KDE style. Alt-Tab opens a nice icon
       box that makes it easy to select the window you want to tab
       to. The order automatically adjusts to the most recently used
       windows. Note that KDE style does not work with the
       FocusUnderMouse and FocusStrictlyUnderMouse focus
       policies. Choose ClickToFocus or FocusFollowsMouse instead.

       <li> CDE - the old-fashion CDE style. Alt-Tab cycles between
       the windows in static order. The current window gets raised,
       the previous window gets lowered.

       </ul>
     */
AltTabStyle=KDE | CDE

svn path=/trunk/kdebase/kwin/; revision=54010
2000-06-22 18:08:35 +00:00
Matthias Ettrich
4ea2a5c27f some cleanups
svn path=/trunk/kdebase/kwin/; revision=53990
2000-06-22 14:12:13 +00:00
Matthias Ettrich
c0e1ae2879 improved mouse emulation
svn path=/trunk/kdebase/kwin/; revision=53892
2000-06-21 17:43:44 +00:00
Matthias Ettrich
900e2e6c0b Use the new windowmanager interaction API
svn path=/trunk/kdebase/kwin/; revision=52623
2000-06-08 17:05:51 +00:00
Waldo Bastian
dc5bf6c01c WABA: Don't allow change of focus while resizing / moving.
This prevents a lot of stupid focus changes when you move a window
around with focusFollowsMouse.
(mouse moves -> focus changes -> window moves -> focus changes back)

svn path=/trunk/kdebase/kwin/; revision=51574
2000-06-02 00:20:41 +00:00
Matthias Ettrich
c0d337d352 cleanups: less debug output, less flicker, less confusing code
svn path=/trunk/kdebase/kwin/; revision=50775
2000-05-26 13:54:50 +00:00
Kurt Granroth
7853d20753 Added support for Ctrl+Alt+Esc to kill a window. I basically just cut-n-
pasted everything from kwm.  It works.

However, I don't know if this fits the new design or not.  Maybe some
of the functions are accomplished elsewhere?  I think Matthias needs
to take a look at this...

But like I said, it does work :-)

svn path=/trunk/kdebase/kwin/; revision=49849
2000-05-17 23:02:42 +00:00
Kurt Granroth
3396c20935 Added new action: Ctrl+Alt+Del will start the logout/shutdown sequence.
Since this uses kaccel, it is (of course) configurable.

svn path=/trunk/kdebase/kwin/; revision=49834
2000-05-17 20:15:17 +00:00
Rik Hemsley
a982506a75 Kicker is now placed _under_ the Mac menubar - it will not obscure it...
except if you press the hide buttons. That needs fixing.

svn path=/trunk/kdebase/kwin/; revision=48570
2000-05-06 18:59:43 +00:00
Rik Hemsley
7666caed0a Fixed KWinInterface.h (thanks Simon for the temporary fix :)
Reverted the moving of inline functions in workspace.*

svn path=/trunk/kdebase/kwin/; revision=48479
2000-05-05 18:53:37 +00:00
Rik Hemsley
297651e2c3 Understand more about edge-based clients and act appropriately, passing
info along to kdesktop too.

This is funky now :)

svn path=/trunk/kdebase/kwin/; revision=48377
2000-05-04 23:12:29 +00:00
Michael Matz
c142c3ff4a lowerClient now takes two parameters (an additional 'bool dropFocus=true')
if true (default), the lowered client looses focus, and the top of
stacking order gets it. Something is not working if one lowers many
windows one after another... investigating

svn path=/trunk/kdebase/kwin/; revision=48229
2000-05-03 12:57:37 +00:00
Michael Matz
b3f88eb796 implemented lowerClient(), connected middle-Click to it.
Note that it leaves the focus where it was, which may seem strange if the
to be lowered window becomes fully obscured, but to change focus would be
the purpose of the calling function. To be discussed.

svn path=/trunk/kdebase/kwin/; revision=48202
2000-05-03 06:30:37 +00:00
Michael Matz
732c7d78bd Big B2/KWin change:
* title bar now tries to avoid to become completely obscured by other windows ;)
* moving of title bar flicker free (at least on my machine)
* all repaint problems fixed (those I knew of course), even the one on resize
* mousePosition (those arrowed cursors) now complete

svn path=/trunk/kdebase/kwin/; revision=48189
2000-05-03 00:04:26 +00:00
Rik Hemsley
f65ca70e0b Fixed maximisation. Now kwin really does avoid windows which ask
to be avoided. It also updates nicely. Just move kicker from the
bottom to the left, say, and open a new window. It doesn't cover
kicker. Maximise. Still doesn't cover. Seems to work, then.

svn path=/trunk/kdebase/kwin/; revision=47602
2000-04-26 21:28:51 +00:00
Rik Hemsley
330ea804b2 Preliminary support for avoiding covering clients such as kicker
which want to be permanently visible.

I've used an XAtom called '_NET_AVOID_SPEC'. This of course can change
if need be. I think it's correct according to the wm spec, but the
wm spec seems to be empty on gnome.org, so who knows.

Windows can choose to be avoided by setting an XTextProperty
with one value, which can be either 'N', 'S', 'E', or 'W', according
to which screen edge they are anchored to.

kwin then sets its 'clientArea' rect appropriately, so that (in
  theory at least) clients will not enter this area in some circumstances,
such as when being mapped for the first time.

You can see that this actually works if you start lots of konsoles. They
don't appear over the panel. I don't know what happens if you move the
panel, but I presume things will be screwed up, because I haven't
looked at that yet.

If you maximise a window, it'll still fill the screen, because the
implementation of maximise in kwin/client.cpp doesn't take account
of the workspace's clientArea rect. This is easy to fix, but I've
been awake for too long, so I'll do it after 42 winks.

svn path=/trunk/kdebase/kwin/; revision=46772
2000-04-16 09:06:03 +00:00
Matthias Ettrich
6d299fc9a4 support for the MOTIF noBorder hint
svn path=/trunk/kdebase/kwin/; revision=45820
2000-04-06 18:29:04 +00:00
Matthias Ettrich
b49151074f Session management for KDE-2.x : say hello to the ksmserver
svn path=/trunk/kdebase/kwin/; revision=44552
2000-03-24 22:23:02 +00:00
Matthias Ettrich
7375cc7a17 faster abort when another window manager is running
svn path=/trunk/kdebase/kwin/; revision=44291
2000-03-22 12:36:07 +00:00
Matthias Ettrich
8460a9ad3e make transients sticky when their main window becomes sticky
svn path=/trunk/kdebase/kwin/; revision=37996
2000-01-10 03:47:30 +00:00
Daniel M. Duley
de782ec37b Implemented plugins :) This was a huge pain in the arse because a) I am stupid
and it kept segfaulting because I wasn't releasing windows, and b) The plugins
didn't want to resolve anything in the kwin executable, only to the other
libs. I finally solved this by using -rdynamic in kwin's LDFLAGS, which I hope
is okay ;-)

svn path=/trunk/kdebase/kwin/; revision=37234
1999-12-24 01:36:47 +00:00
Matthias Ettrich
935c0a4478 More keyboard commands such as "Window move" and "Window resize".
"Mouse emulation" (defaults to F12 currently) provides mouse emulation with
[Ctrl|Alt]-ArrowKeys.  Unfortunatly, dragging isn't (technically) possible with
X, but at least normal clicks work with Space or Return.

svn path=/trunk/kdebase/kwin/; revision=35919
1999-12-06 00:43:55 +00:00
Simon Hausmann
6d59623f8f - make WorkSpace::numberOfDesktops() not return the hardcoded "4" but
instead the real number of desktops (fixes the desktop selection in the
  popup menu)

svn path=/trunk/kdebase/kwin/; revision=35874
1999-12-05 14:47:12 +00:00
Preston Brown
f0cdd75197 implemented desktop cascading and uncluttering.
svn path=/trunk/kdebase/kwin/; revision=35765
1999-12-03 21:08:07 +00:00
Matthias Ettrich
91d73bedca animated shading works again. Shortcut for shading possible
"Window shade"

svn path=/trunk/kdebase/kwin/; revision=35392
1999-11-29 02:49:20 +00:00
Matthias Ettrich
ddaa516ba4 more keybindings:
Window maximize,Window maximize vertical,Window maximize horizontal
 Window iconify

Try for example in kdeglobals:

	[Global Keys]
	Window maximize vertical=F5

svn path=/trunk/kdebase/kwin/; revision=35389
1999-11-29 02:18:29 +00:00
Matthias Ettrich
b441f40a7e configurable mouse bindings (see README)
svn path=/trunk/kdebase/kwin/; revision=35388
1999-11-29 02:06:41 +00:00
Matthias Ettrich
82b0710065 unified window captions ( not propagated yet)
svn path=/trunk/kdebase/kwin/; revision=35364
1999-11-28 20:55:52 +00:00
Matthias Ettrich
bd1e4878ba keep transients together, support various input modes, handle
wm_change_state messages properly

svn path=/trunk/kdebase/kwin/; revision=35353
1999-11-28 20:10:58 +00:00
Matthias Ettrich
378161e531 hook for snapping functionality
svn path=/trunk/kdebase/kwin/; revision=35032
1999-11-25 16:38:11 +00:00
Matthias Ettrich
367d4fd0d7 some bugfixes, added a window operations menu, some simple shading animation
svn path=/trunk/kdebase/kwin/; revision=34662
1999-11-22 01:57:51 +00:00
Cristian Tibirna
52d957df8e CT: cascading placement. I feel it as a bit of an overkill for what it does
compared to smart placement. Whatever. Some people want it

    smart placement made smarter (just a bit) and faster (just a bit)

Qt is a marvel. kwin is even better than kwm. KDE is amazing :-) You know
	who I am now, even if I don't sign.

svn path=/trunk/kdebase/kwin/; revision=34452
1999-11-20 06:27:07 +00:00
Cristian Tibirna
f49c7be018 CT: smart placement code. No! It isn't tested and isn't supposed to work.
One 'if' gets a bad turn. But commit it 'cause I'm reknown for doing stupid
things with unbacked-up code. Matthias, I managed to reduce all from
175 to 125 lines and from 4740 chars to 3260. This is what you wanted?

Don't worry, kwin compiles and works as before.

If somebody finds a way to teleport my office in some other dimension, I
finish this tomorrow (that is, today + a couple of sleep hours). If not ...

svn path=/trunk/kdebase/kwin/; revision=34034
1999-11-16 08:53:02 +00:00
Matthias Ettrich
3293927ed4 found a smart way to get rid of the race conditions (that sometimes
made windows lose their decorations)

svn path=/trunk/kdebase/kwin/; revision=33867
1999-11-15 00:52:05 +00:00
Matthias Ettrich
49eb95bd94 More docking magic: If a window gets iconified that has a docking window,
remove it from the taskbar (in fact, do a withdraw() )

svn path=/trunk/kdebase/kwin/; revision=33759
1999-11-14 06:34:28 +00:00
Matthias Ettrich
eb472b9ed5 Ctrl-Fx desktop switching to make David happy
svn path=/trunk/kdebase/kwin/; revision=33636
1999-11-13 01:51:22 +00:00
Matthias Ettrich
a30c061abb shape windows support, some fixes for configure-request handling
svn path=/trunk/kdebase/kwin/; revision=33553
1999-11-12 03:11:19 +00:00
Matthias Ettrich
35c7b77082 support for docking windows
svn path=/trunk/kdebase/kwin/; revision=33482
1999-11-11 01:22:41 +00:00
Matthias Ettrich
6919a58420 removed minicli stuff
svn path=/trunk/kdebase/kwin/; revision=33160
1999-11-07 20:29:26 +00:00
Daniel M. Duley
3a9281209d Bye (it's going in kdesktop).
svn path=/trunk/kdebase/kwin/; revision=33110
1999-11-07 14:46:49 +00:00
Kurt Granroth
ae262e92d2 "ported" over the essential minicli from kwm (yipee! now i can use kwin as
my normal window manager!!)

unfortunately, i'm not 100% that the way i did it was the "proper" way.  it
works, but it might not be the best way to do it.  matthias, et al,
definitely need to take a look at it!

svn path=/trunk/kdebase/kwin/; revision=33085
1999-11-07 08:46:36 +00:00
Matthias Ettrich
1884091309 update, usable with kicker now
svn path=/trunk/kdebase/kwin/; revision=33064
1999-11-07 01:43:06 +00:00
Matthias Ettrich
75f321c4c0 more experimental stuff
svn path=/trunk/kdebase/kwin/; revision=29737
1999-09-27 16:02:44 +00:00
Matthias Ettrich
311db796c6 Say hello to kwin. WARNING: NOT USABLE YET. See README.
svn path=/trunk/kdebase/kwin/; revision=27871
1999-08-19 23:26:42 +00:00