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
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
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
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
work in the work/kwin_composite branch.
svn merge revs 558154,558180,558236,558243,558258,562201
svn path=/trunk/KDE/kdebase/workspace/; revision=571776
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Plugin developers should use only Workspace::showWindowMenu() instead
of calling Workspace::clientPopup() and playing with the popup.
svn path=/trunk/kdebase/kwin/; revision=173296
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
- 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
/*!
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
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
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
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
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
* 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
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
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
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
"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
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
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
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