My KWIN fork where I work on features like per-output virtual desktops
330ea804b2
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 |
||
---|---|---|
clients | ||
images | ||
pics | ||
atoms.cpp | ||
atoms.h | ||
client.cpp | ||
client.h | ||
hil-app-kwin.png | ||
him-app-kwin.png | ||
kwin | ||
kwinbindings.cpp | ||
lom-app-kwin.png | ||
los-app-kwin.png | ||
main.cpp | ||
main.h | ||
Makefile.am | ||
NEWCOLORSCHEME.README | ||
options.cpp | ||
options.h | ||
plugins.cpp | ||
plugins.h | ||
README | ||
README.KRASH | ||
stdclient.cpp | ||
stdclient.h | ||
stdclient_bitmaps.h | ||
tabbox.cpp | ||
tabbox.h | ||
workspace.cpp | ||
workspace.h |
This is kwin, kwm next generation. Currently supported options in the kwinrc: [WM] ... general color stuff, usually in kdeglobals ... [Windows] MoveMode=Opaque|Transparent ResizeMode=Opaque|Transparent Placement=Smart|Random|Cascade AnimateShade=true|false AnimSteps=<integer=20> BorderSnapZone=<integer=10> WindowSnapZone=<integer=10> TitlebarDoubleClickCommand=Move|Resize| Maximize|Iconify|Close|Sticky|Shade|Operations [MouseBindings] CommandActiveTitlebar1 | CommandActiveTitlebar2 | CommandActiveTitlebar3 | CommandInactiveTitlebar1 | CommandInactiveTitlebar2 | CommandInactiveTitlebar3 | CommandWindow1 | CommandWindow2 | CommandWindow3 | CommandAll1 | CommandAll2 | CommandAll3 = Raise | Lower | Operations Menu | Toggle raise and lower | Activate and raise | Activate and lower | Activate | Activate, raise and pass click | Activate and pass click | Move | Resize | Nothing Have fun, Matthias <ettrich@kde.org>