Commit graph

189 commits

Author SHA1 Message Date
Fredrik Höglund
19aaf48a02 kwin: Port Client::embedClient() to xcb 2012-11-07 22:13:13 +01:00
Thomas Lübking
850c1e6f0d add screen rule 2012-09-19 20:21:43 +02:00
Thomas Lübking
f18230fe99 ignore dockers for showingDesktop state
also use a common funciton to decide whether or
not to break the state

BUG: 305874
FIXED-IN: 4.9.1
2012-08-28 21:08:28 +02:00
Thomas Lübking
9390b270f8 substitute mapping_state == Withdrawn by m_managed
as the flamewar pointed out, resetShowingDesktop invalidly keeps hidden windows
the reason is that there're several updateVisiblity calls (notably one from the compositor)
which  break the showingDesktop state as a side effect (before ::manage() does it's thing)

Since they also invalidate the Withdrawn mapping state, that will fail as isManaged() test
(it's also invalidly used by the compositor to set up the decoration, isManaged() used to be
true because of the updateVisibility() call before) since the result is never Withdrawn

CCBUG: 299655
REVIEW: 105303
2012-07-10 01:00:00 +02:00
Thomas Lübking
9f172ad9a7 fix overzealous but autogroup by id breaking optimization
BUG: 302084
FIXD-IN: 4.9
REVIEW: 105296
2012-06-18 22:11:44 +02:00
Thomas Lübking
0bf8e0cc80 check whether SessionInfo::tabGroupClient is (still) in workspace before using it
BUG: 301456
FIXED-IN: 4.9
REVIEW: 105186
2012-06-09 12:03:22 +02:00
Ivan Čukić
0d60a7049d Adds activity window rules to KWin
- adds the kcm rule option to set the activity - one or all option like
  for virtual desktops
- makes the windows obey the rule
- makes the rule enforced even when the user tries to change the
  window's activity via the alt+f3 menu

REVIEW:104972
2012-05-17 16:32:06 +02:00
Thomas Lübking
93729709e6 merge geom_pretile & geom_restore
remove some patch bodies
checkWorkspacePosition on geom_restore

CCBUG: 80265
reviewed-by: graesslin
2012-04-20 23:59:25 +02:00
Thomas Lübking
eb83686d56 [Janitorial] Remove legacy "rules" to ignore position request and focus stealing prevention
REVIEW: 104274
2012-03-21 22:32:33 +01:00
Thomas Lübking
357b6b5338 resolve merge conflict 2012-03-07 22:02:26 +01:00
Thomas Lübking
c885d88f28 set desktop w/o desktop hint on all desktops
helps with legacy desktops replacing decorations like IceWM which withdraw the desktop settings

REVIEW: 104112
2012-03-07 20:52:15 +01:00
Martin Gräßlin
212908ee88 Refactoring of KWin::Options: getter methods instead of public variables 2012-02-27 19:31:58 +01:00
Thomas Lübking
85635dd485 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:30:22 +01:00
Thomas Lübking
bf88ec09ac Revert "fix tabbing"
pushed out of branch, not master - leading to absent revision, found hash collision??

This reverts commit 94b2ad7b85801e37e2df4671cdc4f26b6d7e5506.
2012-02-11 16:29:14 +01:00
Thomas Lübking
d245035a17 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:01:41 +01:00
Thomas Lübking
033ae96f89 selective rule remembering
REVIEW: 103875
2012-02-09 17:34:08 +01:00
Martin Gräßlin
7c6155a865 Drop xinerama related options
Behavior is now like all xinerama related options are enabled.
There seems to be no valid reasons to run multi screen without
xinerama support and even if a user would wish to do so she can
just disable xinerama in xorg.conf.

Furhtermore thanks to KWin scripting it is possible to achieve the
behavior as it used to be with the options disabled. E.g. it is
possible to span a window in fullscreen mode over all screens.

This change is in accordance to the discussion on kwin and plasma
mailinglists:
http://mail.kde.org/pipermail/plasma-devel/2012-January/018542.html
2012-02-09 16:52:39 +01:00
Martin Gräßlin
507ff411d6 Drop the WorkspaceProxy in Scripting
Unlike stated at several places in the code it is not difficult to
setup the connections to all Clients.

It would have been nice if the failed attempts to connect the Clients
would not have made it into the code as emitted signals which are
nowhere used. Not to mention that like in all places the signals to
inform that a state changed were emitted before the state changed was
performed.
2012-01-21 10:51:22 +01:00
Jekyll Wu
ab936e40ab Merge remote-tracking branch 'origin/KDE/4.8'
I did something wrong. The recent four fixes for klipper bugs were
cherry-picked from master into KDE/4.8. So they appear twice in the
merged history.

Conflicts:
	klipper/urlgrabber.cpp
2011-12-25 19:37:15 +08:00
Philipp Knechtges
27a7238f44 kwin: respect the autogroup configuration when restarting kwin
BUG: 279468
FIXED-IN: 4.8
2011-12-23 22:23:22 +01:00
Martin Gräßlin
f644c28180 Support for sticky items in TabBox list
This is needed for Plasma Active's home screen which should always
be the first element in the list.
2011-12-01 13:15:11 +01:00
Thomas Lübking
6b148f1866 Move maximization when managing client
Maximization of oversized windows must happen BEFORE keepInArea() is called
because that will through resizeWithChecks() lead to an artificial constrainment
to the WorkArea which is the combination of all screens minus all struts
this fails if only one screen struts and as a result the window is no more
bigger than FullArea which is used as maximization enforcing condition.
(Maximization must also happen AFTER placement, because otherwise the window
will eventually be maximized to the wrong MaximizeArea - Screens(s) - (local) struts
depending on xinerama settings)

BUG:285967
CCBUG:286146
CCBUG:183694

FIXED-IN:4.8
2011-11-13 18:50:37 +01:00
Fredrik Höglund
9fa2feabc8 kwin: Insert an input-only window above each decorated client
This input-only window is used to capture events above the
client window and preventing them from reaching the client.

It is currently used to enlarge the borders by an invisible
amount, using the ExtendedBorderRegion provided by the
decoration.
2011-11-11 03:02:10 +01:00
Anton Kreuzkamp
98c89bcfd0 Make the window-tabbing group of a window public via an XProperty. 2011-11-07 20:52:21 +01:00
Philipp Knechtges
2c08a14ff4 kwin: implement _KDE_NET_WM_OPAQUE_REGION
This patch implements an XProperty named _KDE_NET_WM_OPAQUE_REGION
which gives the compositor the information which part of a window
is opaque although it is an ARGB visual. The basic ideas are from
http://www.mail-archive.com/wm-spec-list@gnome.org/msg00715.html

Additionally the patch makes kwin  use this information to do a better
clipping in Scene::paintSimpleScreen which should result in a higher
performance.

REVIEW: 102933
2011-10-23 17:09:44 +02:00
Thomas Lübking
c071056913 fix yet another fun-with-pointers tabbing segfault
BUG: 281596
(cherry picked from commit f3ca7234ef4329b45bcd369aa49a70972a754302)
2011-09-09 18:23:50 +02:00
Thomas Lübking
12b9b1c79e fix xsync protocol
BUG: 160393
REVIEW: 102311
2011-08-24 01:39:34 +02:00
Martin Gräßlin
32a82141f0 Adding a build option for KWin Scripting
It is possible that adding this build option broke the Scripting
component. This is something that should not happen. Unfortunately
by just ifdefing everything scripting related with scripting enabled
we have build errors. These are caused by the fact that the scripting
code includes e.g. client.h through "./../client.h". At one offending
place I changed that to "client.h", but there is also a client.h in
the scripting directory.

The includes and naming of the scripting files clearly have to be fixed!
2011-07-10 10:48:25 +02:00
Arthur Arlt
25654f25b8 Removing TopMenu
Since the funtionality of TopMenu did no longer work in KDE4 this feature was
removed from Workspace. Every reference to it was removed as well as commentaries
and documentation.

REVIEW: 101485
2011-06-24 12:27:56 +02:00
Thomas Lübking
31278d570e add rule/property based composite blocking 2011-04-04 01:59:52 +02:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Chani Armitage
ad718933d0 oh hey this comment isn't true any more :)
svn path=/trunk/KDE/kdebase/workspace/; revision=1207074
2010-12-16 20:36:39 +00:00
Chani Armitage
7ce380497f Merge branch 'allactivities'
svn path=/trunk/KDE/kdebase/workspace/; revision=1207069
2010-12-16 20:14:22 +00:00
Ivan Čukić
af7c8e347f Added TODO notice for non-heuristic based deciding whether a window should be on a single activity or not
svn path=/trunk/KDE/kdebase/workspace/; revision=1196906
2010-11-14 10:35:16 +00:00
Ivan Čukić
ff82383f8d Borderless windows by default on all activities:
- plasma extenders (callendar etc.)
 - applet browser, activity manager
 - programs like chromium - since there's no border, there is
   no obvious way of moving them between activities.
   (alt+f3 menu is not commonly known)


svn path=/trunk/KDE/kdebase/workspace/; revision=1196797
2010-11-14 08:45:55 +00:00
Chani Armitage
d60077abdc let's try having new windows default to the current activity.
if it turns out to be really annoying, I'll revert it.. :)

svn path=/trunk/KDE/kdebase/workspace/; revision=1195773
2010-11-11 23:37:50 +00:00
Chani Armitage
90cbc4ef61 don't break activity associations when autogrouping
svn path=/trunk/KDE/kdebase/workspace/; revision=1194393
2010-11-08 21:57:08 +00:00
Chani Armitage
ac91cd2195 activity associations are saved with kwin's session
svn path=/trunk/KDE/kdebase/workspace/; revision=1181900
2010-10-02 17:04:24 +00:00
Chani Armitage
5c61b850cf Merge branch 'kwintransient'
svn path=/trunk/KDE/kdebase/workspace/; revision=1179964
2010-09-26 16:44:07 +00:00
Chani Armitage
3c633a48ab Use an X property for activity associations
the new property name is "_KDE_NET_WM_ACTIVITIES", of type XA_STRING,
and it's a comma-separated list of activity UUIDs.

kwin should respond to other processes changing the activity list for a
window, and filter out any bogus IDs. It also caches KActivityController's
list of activities to prevent dbus deadlocks.

CCMAIL: plasma-devel@kde.org

svn path=/trunk/KDE/kdebase/workspace/; revision=1179043
2010-09-24 12:03:22 +00:00
Rohan Ramdas Prabhu
2aec750ebf Trembles the weave as the clock ticks, attain another microstate.
Every disorder causes every duration, which ensures the one that stays.
reality is relative. natural is disorder.
[R]obinhood[P]andey

Merging scripting from
^/branches/work/kwin_scripting TO
^/trunk

svn path=/trunk/KDE/kdebase/workspace/; revision=1177865
2010-09-21 14:31:40 +00:00
Luboš Luňák
2d01df9e04 if a transient has a main window that is on all desktops, make the transient too
svn path=/trunk/KDE/kdebase/workspace/; revision=1165451
2010-08-19 12:07:44 +00:00
Martin Gräßlin
c9658fa34a Forward port rev 1140341: Ensure that a decoration is created before we try to shade the client. This fixes a crash when auto-grouping is enabled and a client should be added to a shaded group.
It still crashes when kwin is restarted with a shade group (same backtrace, but needs a different fix).
CCBUG: 242206

svn path=/trunk/KDE/kdebase/workspace/; revision=1140342
2010-06-20 12:16:28 +00:00
Martin Gräßlin
fa7f160cb3 Window specific setting to skip window switchers (tabbox, present windows, desktop grid).
FEATURE: 171192
CCBUG: 179723

svn path=/trunk/KDE/kdebase/workspace/; revision=1122404
2010-05-03 20:04:44 +00:00
Lucas Murray
017a5c8431 Be more strict with tab autogrouping after an in-session KWin restart.
This is probably as good as it gets without adding window properties.
CCBUG: 218116

svn path=/trunk/KDE/kdebase/workspace/; revision=1062347
2009-12-14 12:03:32 +00:00
Fredrik Höglund
0a8c06b054 Implement support for _KDE_NET_WM_FRAME_OVERLAP.
svn path=/trunk/KDE/kdebase/workspace/; revision=1054393
2009-11-25 23:32:35 +00:00
Lucas Murray
d7b1e5fc53 Added window rule version of opening window tabs in the background.
svn path=/trunk/KDE/kdebase/workspace/; revision=1050444
2009-11-17 10:41:32 +00:00
Lucas Murray
3855b9253b Added global setting to allow opening automatically grouped windows in
the background.

svn path=/trunk/KDE/kdebase/workspace/; revision=1050313
2009-11-17 07:51:55 +00:00
Lucas Murray
e4ab19a936 Allow automatic grouping of unrelated windows by matching them with a
window rule ID.

svn path=/trunk/KDE/kdebase/workspace/; revision=1050040
2009-11-16 13:31:02 +00:00
Lucas Murray
e096c60502 Allow the autogrouping option to be enabled/disabled on a
per-application level by using window rules.

svn path=/trunk/KDE/kdebase/workspace/; revision=1050000
2009-11-16 11:26:37 +00:00