This commit merges the kwin-tiling branch. Ideally it shouldn't break anything and add a few features ;-)
It was applied as a patch. Do not attempt to merge the branch directly, it has a few issues.
This feature is currently experimental, although it hasn't crashed in quite a long time. It lacks some features and probably leaks some memory. Fixes will be on the way.
Season Of KDE 2009 project by Nikhil Marathe
svn path=/trunk/KDE/kdebase/workspace/; revision=1118677
functions and share the value with the KCM; Fallback to XRender
compositing if OpenGL fails to work correctly; Rearrange setting order
in options.h slightly and fix variable names
svn path=/trunk/KDE/kdebase/workspace/; revision=1079919
- Add hotkeys for snap left/snap right, kwin won't need a seperate hotkey for snap up, as maximize will do that job for us, and it already has a hotkey
- Add geometry restoring to quick tile, meaning that windows can be moved back to their original state after a tile, useful if just looking at something quickly.
Thanks to mgraesslin for review and lots of mentoring.
svn path=/trunk/KDE/kdebase/workspace/; revision=1022987
* Models and Delegates for Clients and Desktops
* Horizontal, vertical and tabular layout
* Layout of one item can be configured by an XML definition
* A desktop item can include a client list
* An optional second list view showing only the selected item
* A new KCM "kwintabbox"
* An alternative TabBox with independent settings and keybindings
* Optional Highlight Windows effect integration
* List scrolls instead of removing items
* Scroll wheel support
* Cursor key support
* Middle click on item closes window
BUG: 195745
BUG: 197187
BUG: 201103
FEATURE: 118184
FEATURE: 156723
FEATURE: 177441
FEATURE: 182897
FEATURE: 193882
GUI:
svn path=/trunk/KDE/kdebase/workspace/; revision=1022861
No shortcut is set by default. Thanks to Alexander (alex3255) for providing the patch.
FEATURE: 182729
svn path=/trunk/KDE/kdebase/workspace/; revision=1022596
Top screen edge (un)maximizes. Left screen edge sets window to left half of screen geometry, right edge to other half.
svn path=/trunk/KDE/kdebase/workspace/; revision=1021305
first to be added is one to display the Plasma dashboard. Implemented
the "trigger cooldown" option. Fixed a few edge action conflicts such
as forcing desktop switches when moving windows and the like.
BUG: 170393
svn path=/trunk/KDE/kdebase/workspace/; revision=933166
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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