Commit graph

141 commits

Author SHA1 Message Date
Luboš Luňák
5b5ec479fa When deciding where to transfer focus when a window is closed,
consider all windows in its group, not just its mainwindows.


svn path=/trunk/KDE/kdebase/workspace/; revision=802097
2008-04-28 14:39:13 +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
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
Laurent Montel
994c800d79 Adapt to new KWarning/kFatal/kDebug api
svn path=/trunk/KDE/kdebase/workspace/; revision=695877
2007-08-03 06:59:24 +00:00
Luboš Luňák
63a0120a60 Remove some no longer relevant todos.
svn path=/trunk/KDE/kdebase/workspace/; revision=689955
2007-07-19 16:38:46 +00:00
Luboš Luňák
d05ac624be Don't crash.
svn path=/trunk/KDE/kdebase/workspace/; revision=662145
2007-05-07 14:55:35 +00:00
Luboš Luňák
a6bb443640 Use Xinerama info from startup notification if available.
svn path=/trunk/KDE/kdebase/workspace/; revision=662123
2007-05-07 14:27:39 +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
0a26dc39aa Merging from old trunk:
r630817 | lunakl | 2007-02-06 14:55:12 +0100 (Tue, 06 Feb 2007) | 4 lines

Don't accidentally set _NET_ACTIVE_WINDOW to 0 when there is an active window.
And r612728 from 3.5 branch.


svn path=/trunk/KDE/kdebase/workspace/; revision=659533
2007-04-30 11:46:54 +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
Rivo Laks
02032f8587 Move most (all?) internal methods from EffectsHandler to EffectsHandlerImpl.
The ugly side effect of this is that there are tons of static_casts in the code now... maybe it
  would be better to add effectImpl() convenience method and use that?

svn path=/branches/work/kwin_composite/; revision=652348
2007-04-10 18:47:13 +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
12478151a2 Don't accidentally set _NET_ACTIVE_WINDOW to 0 when there is an active window.
And r612728 from 3.5 branch.


svn path=/trunk/KDE/kdebase/workspace/; revision=630817
2007-02-06 13:55:12 +00:00
Luboš Luňák
0ae5a772e7 Add EffectWindow as a window representation for effects,
to hide the change from Client/Unmanaged and eventually also
act as the only API available to effects.


svn path=/branches/work/kwin_composite/; revision=626360
2007-01-22 22:57:22 +00:00
Luboš Luňák
f52407b829 Merge in compilation fixes from trunk.
svn path=/branches/work/kwin_composite/; revision=619536
2007-01-03 16:53:26 +00:00
Olivier Goffart
c584b831e7 port to KNotification
svn path=/trunk/KDE/kdebase/workspace/; revision=617455
2006-12-29 09:58:51 +00:00
Luboš Luňák
0f03921271 Add a commented howto effect.
svn path=/branches/work/kwin_composite/; revision=600553
2006-10-30 22:49:59 +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
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
Luboš Luňák
e0dcc3ba46 Some convenience functions for QX11Info stuff.
svn path=/branches/work/kwin_composite/; revision=558154
2006-07-04 19:36:19 +00:00
Thorsten Roeder
98fa3320c5 deprecated--
basically:
QRegExp::search() --> QRegExp::indexIn()
QString::find() --> QString::indexOf()
QString::findRev() --> QString::lastIndexOf()
QString::lower() --> QString::toLower()
QString::upper() --> QString::toUpper()
QString::setLength() --> QString::resize()
QByteArray::find() --> QByteArray::indexOf()
QByteArray::findRev() --> QByteArray::lastIndexof()
QTimer::start(ms,sShot) --> {QTimer::setSingleShot() ; QTimer::start()}
QList::remove() --> QList::removeAll()
iterator QList::remove() --> iterator QList::erase()
QComboBox::text() --> QComboBox::itemText()
QByteArray::upper() --> QByteArray::toUpper()
QByteArray::lower() --> QByteArray::toLower()
QString::contains() --> QString::contains()
QEvent::accept(bool) --> QEvent::setAccepted(bool)


svn path=/trunk/KDE/kdebase/workspace/; revision=528719
2006-04-11 17:12:05 +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
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
Laurent Montel
0fa10f318d Deprecated--
svn path=/trunk/KDE/kdebase/workspace/; revision=506323
2006-02-06 14:47:18 +00:00
Luboš Luňák
0dffb60c1f When updating a user timestamp of a window, also always update timestamp
of the whole group (#75175).


svn path=/trunk/KDE/kdebase/workspace/; revision=500576
2006-01-20 15:49:03 +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
Luboš Luňák
c38c2147b2 Better way of implementing the last commit.
svn path=/trunk/KDE/kdebase/kwin/; revision=439672
2005-07-28 16:23:20 +00:00
Luboš Luňák
4b9d8004b7 If a window is set to be on all desktops, don't unset it (e.g. for new
KUniqueApp instance).


svn path=/trunk/KDE/kdebase/kwin/; revision=439636
2005-07-28 15:23:38 +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
96e1fdab6c Use KNotify for notifications about windows demanding attention.
People who use hidden Kicker, have their taskbar configured to show
only windows on the current desktop or similar now may configure
it so that windows that didn't get focus because of focus stealing
prevention now can not only have their taskbar entry marked
but there can be e.g. also a passive popup.


svn path=/trunk/KDE/kdebase/kwin/; revision=419727
2005-05-30 13:31:33 +00:00
Luboš Luňák
7d49e2a4a0 When activating a modal instead of its mainwindow, raise also the modal
if needed - some transients are not kept above their mainwindows, e.g. for docks.


svn path=/trunk/KDE/kdebase/kwin/; revision=411857
2005-05-10 09:03:41 +00:00
Luboš Luňák
d4c5fd676a Show the desktop switch popupinfo also when using mouse, and whatever.
BUG: 80698


svn path=/trunk/KDE/kdebase/kwin/; revision=409960
2005-05-06 09:24:51 +00:00
Luboš Luňák
a950f75673 When activation is forced, always request focus for the window, even
with unreasonable focus policies. Fixes focusing kicker applets.
BUG: 96028

svn path=/trunk/kdebase/kwin/; revision=399988
2005-03-23 13:49:50 +00:00
Thomas Lübking
7eff49ed22 BUGS:99836
better opacity handling of modal windows and their transientFor()s

svn path=/trunk/kdebase/kwin/; revision=391550
2005-02-20 23:06:11 +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
05e9a39a60 Lame mistake.
BUG: 91766

svn path=/trunk/kdebase/kwin/; revision=356778
2004-10-22 12:51:37 +00:00
Luboš Luňák
a81ef3b07f If a fullscreen window has a dialog shown, still keep it on tops of other windows.
svn path=/trunk/kdebase/kwin/; revision=352347
2004-10-06 14:02:30 +00:00
Luboš Luňák
0d8883e74a Don't refuse activation with focus stealing prevention turned off
(#48786, comment 11).

svn path=/trunk/kdebase/kwin/; revision=338306
2004-08-16 13:49:47 +00:00
Luboš Luňák
dd55eaf1fa Fix FSP with showing on a different desktop.
svn path=/trunk/kdebase/kwin/; revision=322444
2004-06-21 12:40:43 +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
76f21da02b KWin rule for adjusting focus stealing prevention level.
svn path=/trunk/kdebase/kwin/; revision=318991
2004-06-09 08:29:35 +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
75029e652b *cough*
svn path=/trunk/kdebase/kwin/; revision=305634
2004-04-22 16:52:24 +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
4bf13f6f8f Make Shift+MMB in Konqy work even with no focus stealing prevention.
svn path=/trunk/kdebase/kwin/; revision=304844
2004-04-19 09:29:53 +00:00
Luboš Luňák
bf30a6995d Fix Shift+MMB in Konqy not working right.
svn path=/trunk/kdebase/kwin/; revision=304205
2004-04-16 11:46:21 +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
Luboš Luňák
854e9cc05a With windows that have are listed for the focus stealing prevention
workaround, don't make their user timestamp newer than the active window's
one (unless a real user activity takes place in them).
As they are belong to the active application and just fail to say so,
this makes sure they won't prevent that application from getting focus
by having newer timestamp. E.g. Alt+F2, typing URL, kio_uiserver dialog
shows (has workaround), SSL certificate dialog shows (shown by kdesktop),
and it wouldn't get focus, because kio_uiserver's timestamp would be later.

svn path=/trunk/kdebase/kwin/; revision=298357
2004-03-24 19:05:49 +00:00
Luboš Luňák
a6adcb9056 Ignore FocusIn events for clients which were unmapped by kwin
but had got focus shortly before. Otherwise quick switching between
two virtual desktops with Konsoles can result in demand attention
state.

svn path=/trunk/kdebase/kwin/; revision=295169
2004-03-11 13:15:04 +00:00
Luboš Luňák
454648b78b Uh oh, looks like this code missed one renumbering of the levels :(.
(#74546)

svn path=/trunk/kdebase/kwin/; revision=293157
2004-03-02 17:43:46 +00:00
Luboš Luňák
aa8f2d6607 Fix some focus stealing prevention problems when timestamp is not
explicitly specified.

svn path=/trunk/kdebase/kwin/; revision=293135
2004-03-02 16:43:29 +00:00
Luboš Luňák
96cc95943a Fix #72074 - when trying to close a window, update user timestamp
on the whole group, so that the possible 'close?' dialog has a recent
timestamp even if the window about to be closed wasn't active.

svn path=/trunk/kdebase/kwin/; revision=291859
2004-02-27 13:35:09 +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
Luboš Luňák
f4ee84d509 When activating a modal dialog instead of a mainwindow, and the mainwindow
is on all desktops, don't force the modal dialog to be on all desktops too.

svn path=/trunk/kdebase/kwin/; revision=289318
2004-02-19 09:52:51 +00:00
Luboš Luňák
4dabc236c8 Use debug area.
svn path=/trunk/kdebase/kwin/; revision=288752
2004-02-17 17:17:06 +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
0c051481e9 Fix #74063 - if there's a restacking operation, cancel pending autoraise
for the window.

svn path=/trunk/kdebase/kwin/; revision=286801
2004-02-10 14:46:03 +00:00
Luboš Luňák
39e48b3b8d #48786 (comments #7 and later) - focus stealing prevention doesn't work
well with unreasonable focus policies -> disabled.

svn path=/trunk/kdebase/kwin/; revision=284526
2004-02-02 17:02:11 +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
f4b4647fc3 kwinrc option for listing applications for which focus stealing prevention
should not be used. I have a strange feeling it will come handy :-/.

svn path=/trunk/kdebase/kwin/; revision=273127
2003-12-15 13:33:29 +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
0654c0d3b7 Don't compare with itself when searching for other windows belonging to the app.
svn path=/trunk/kdebase/kwin/; revision=269295
2003-11-24 14:25:47 +00:00
Luboš Luňák
b878ad84d9 Make sure that when calling Workspace::clientHidden(), the client is really
hidden, otherwise it could attempt to restore the focus back to this client.
CCMAIL: 66926-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=263383
2003-10-31 09:45:14 +00:00
Luboš Luňák
984c76f0c1 More shade related changes.
svn path=/trunk/kdebase/kwin/; revision=257727
2003-10-10 13:00:26 +00:00
Luboš Luňák
d45a853dd4 Fixes related to shown shaded windows.
svn path=/trunk/kdebase/kwin/; revision=257726
2003-10-10 13:00:01 +00:00
Luboš Luňák
2981785b56 Support for UrgencyHint - such windows are demanding attention when inactive.
svn path=/trunk/kdebase/kwin/; revision=257691
2003-10-10 11:23:42 +00:00
Luboš Luňák
1d87270bb3 Make a difference between fake session data ('save window settings')
and real SM session data.

svn path=/trunk/kdebase/kwin/; revision=256757
2003-10-06 14:40:19 +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
a3767f483a Fix timestamp before restoring focus - FocusIn event has no timestamp :(.
svn path=/trunk/kdebase/kwin/; revision=254891
2003-09-29 15:56:07 +00:00
Luboš Luňák
720b988790 Configurable focus stealing prevention aggressivity.
svn path=/trunk/kdebase/kwin/; revision=254817
2003-09-29 11:23:14 +00:00
Luboš Luňák
8261663d5d Use kdebug area, and make the messages less cryptic.
svn path=/trunk/kdebase/kwin/; revision=253819
2003-09-25 10:42:11 +00:00
Luboš Luňák
12ec2718cd Remove hack for splashscreens and focus stealing. This will have to be
done differently.

svn path=/trunk/kdebase/kwin/; revision=252348
2003-09-19 11:12:41 +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