Commit graph

739 commits

Author SHA1 Message Date
Lucas Murray
711879a993 Be more strict.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031996
2009-10-06 16:04:16 +00:00
Lucas Murray
e5d176b90b Fix quick tiling/maximize so other screen edge actions assigned to the
same edges work again.

svn path=/trunk/KDE/kdebase/workspace/; revision=1031990
2009-10-06 15:52:08 +00:00
Lucas Murray
d171c594ff Cancel a quick tile/maximize action if the user moves the window back
away from the edge of the screen without releasing the mouse button.

svn path=/trunk/KDE/kdebase/workspace/; revision=1031967
2009-10-06 14:56:10 +00:00
Martin Gräßlin
76f17e6de1 Here comes the new TabBox. It is a complete rewrite using a MVC approach. Here some highlights:
* 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
2009-09-13 11:36:45 +00:00
Hugo Pereira Da Costa
88dc7eccfd notify decorations when compositing is enabled/disabled
svn path=/trunk/KDE/kdebase/workspace/; revision=1021803
2009-09-10 05:06:53 +00:00
Martin Gräßlin
53aaaf471d Adding a new option to disable the cursor pushback for active screen edges.
I haven't added it to the UI as the screen edges kcm is already a little bit cluttered with complicated options.
So if you want to disable the pushback add option "ElectricBorderPushbackPixels" to section [Windows].
FEATURE: 198225

svn path=/trunk/KDE/kdebase/workspace/; revision=1021306
2009-09-08 20:01:16 +00:00
Martin Gräßlin
754f5d0829 Quick maximize and tiling when moving a window to the left/right or top screen edge.
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
2009-09-08 20:01:08 +00:00
Martin Gräßlin
369910865a Add "show desktop" to screen edges.
FEATURE: 195359

svn path=/trunk/KDE/kdebase/workspace/; revision=988839
2009-06-28 20:32:50 +00:00
Martin Gräßlin
9f70ddce3b When reinitCompositing we can assume that the user wants to restart compositing even if compositing has been suspended.
So we end suspend compositing and send signal that compositing is active. That way reinitCompositing behaves like resume compositing when suspended.
BUG: 188118

svn path=/trunk/KDE/kdebase/workspace/; revision=961602
2009-04-30 12:51:55 +00:00
Luboš Luňák
e9e08c35cb Do not mistakenly report that compositing could not be enabled.
The compositing kcm now results in two reconfigurations of KWin,
and the second one meant that waitForCompositingSetup() didn't work
correctly.


svn path=/trunk/KDE/kdebase/workspace/; revision=960555
2009-04-28 16:20:26 +00:00
Fredrik Höglund
e92aab0518 Implement initial support for ARGB window decorations.
Based on earlier work done by Lubos Lunak and ideas by Lucas Murray.

svn path=/trunk/KDE/kdebase/workspace/; revision=957680
2009-04-22 17:29:56 +00:00
Martin Gräßlin
3d5ad590e2 New on-screen-display for desktop change. It highlights the new desktop and shows arrows from the old to the new desktop. It replaces the popupinfo which only showed the desktop name. Nevertheless keeping popupinfo in svn so if wanted we can add an option to select between osd and popupinfo.
FEATURE: 185799

svn path=/trunk/KDE/kdebase/workspace/; revision=950182
2009-04-06 16:09:34 +00:00
Lucas Murray
0ffcc70c18 Add support for hardcoded non-KWin-related active screen edge actions,
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
2009-02-28 08:33:16 +00:00
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
21f023ee77 Revert r925355, r925357 and r925358 as the crashing was caused by
Kephal and has since been fixed.

svn path=/trunk/KDE/kdebase/workspace/; revision=927675
2009-02-18 04:05:37 +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
Lucas Murray
7af22d3d99 Ensure that Workspace::activeScreen() always returns a valid screen.
svn path=/trunk/KDE/kdebase/workspace/; revision=925358
2009-02-13 06:35:54 +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
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
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
Frederik Schwarzer
a604e4a60d global typo fix
svn path=/trunk/KDE/kdebase/workspace/; revision=922431
2009-02-07 01:12:28 +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
Jason vanRijn Kasper
071802244d Silly me, I put _NET_WM_FULLSCREEN_MONITORS in and forgot to add it to the
list kwin advertises as supporing in _NET_SUPPORTED. This remedies that and
now _NET_WM_FULLSCREEN_MONITORS is listed properly.

svn path=/trunk/KDE/kdebase/workspace/; revision=904348
2009-01-02 00:40:05 +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
171964521f When the desktop names change save them immediately to disk.
BUG: 172869

svn path=/trunk/KDE/kdebase/workspace/; revision=896722
2008-12-14 11:09:32 +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
5f835b7c31 Modified a few comments; changed indenting to comply with the KWin coding standards.
svn path=/trunk/KDE/kdebase/workspace/; revision=888660
2008-11-25 01:45:09 +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
Lucas Murray
6d41a1320e Moved all debug, warning and error messages into the KWin 1212 area.
Replaced deprecated kdDebug() with kDebug().
Removed empty debug messages.

svn path=/trunk/KDE/kdebase/workspace/; revision=885620
2008-11-17 15:04:52 +00:00
Guillaume Pothier
f780e8b68b Kephalized plasma and kwin: replaced usage of QDesktopWidget by Kephal
svn path=/trunk/KDE/kdebase/workspace/; revision=884482
2008-11-15 03:04:44 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Luboš Luňák
c22847c5a7 Add a kconf_update script to dump all the possibly previously created
shortcuts that'd block actually using them, and make sure KAction's
used for those are properly deleted (was broken by avoiding deadlocks
with kdedglobalaccel by delaying shortcut handling, which is then
not done when destroying the client).


svn path=/trunk/KDE/kdebase/workspace/; revision=880852
2008-11-06 17:15:33 +00:00
Luboš Luňák
fe84baef03 Use the '_k_session' shortcuts feature for the per-window shortcuts,
as those are definitely not to be handled by kdedglobalaccel besides
delivering the event, only KWin can keep track of those. Also add
a kconf_update script to dump all the possibly previously created
shortcuts that'd block actually using them.


svn path=/branches/KDE/4.1/kdebase/workspace/; revision=880850
2008-11-06 17:11:47 +00:00
André Wöbbeking
017171023e forwardport of rev. 878485,878776:
also an icon for the configure dialog (and its windows) is nice

svn path=/trunk/KDE/kdebase/workspace/; revision=878778
2008-11-01 19:23:41 +00:00
André Wöbbeking
4838fc287e better solution, don't change configModules()
svn path=/branches/KDE/4.1/kdebase/workspace/; revision=878776
2008-11-01 19:20:52 +00:00
André Wöbbeking
a2ff31904f also an icon for the configure dialog (and its windows) is nice
svn path=/branches/KDE/4.1/kdebase/workspace/; revision=878485
2008-11-01 12:00:07 +00:00
Albert Astals Cid
102be68572 we are showing the shortcut to the user so use QKeySequence::NativeText to get it translated
svn path=/trunk/KDE/kdebase/workspace/; revision=878359
2008-10-31 23:51:01 +00:00
Enrique Matías Sánchez
f5efd9ca28 SVN_SILENT Fix typos in kdebase
svn path=/trunk/KDE/kdebase/workspace/; revision=875089
2008-10-23 09:31:44 +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
08571b2f52 Do not use 'assert( false )', with NDEBUG that is a no-op and
results in warnings about missing return.


svn path=/trunk/KDE/kdebase/workspace/; revision=861879
2008-09-17 11:44:51 +00:00
Luboš Luňák
53f5283601 Simplify activeScreen() code, from Hans Meine <meine@informatik.uni-hamburg.de>.
svn path=/trunk/KDE/kdebase/workspace/; revision=852322
2008-08-25 19:02:22 +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