Commit Graph

327 Commits (40744b6b11e150b0a1694269384822e67cc7ec7b)

Author SHA1 Message Date
Luboš Luňák 55f1a65613 More debug functions.
svn path=/trunk/kdebase/kwin/; revision=272429
2003-12-11 09:09:05 +00:00
Luboš Luňák 8f181d8b52 checkGroupTransients() uses hasTransient() to break loops, so it must detect them,
fixes #69094

svn path=/trunk/kdebase/kwin/; revision=269892
2003-11-27 14:37:55 +00:00
Luboš Luňák 4ee178b277 Fix #69005 - make it possible to differentiate between a window really
being shaded and being set to be shaded (which may differ with hover unshade).

svn path=/trunk/kdebase/kwin/; revision=269526
2003-11-25 15:26:50 +00:00
Luboš Luňák 897e67f79a Partially revert the recent xinerama commit - !isMapped == useCursorPos
was always true, no need for another argument.

svn path=/trunk/kdebase/kwin/; revision=269308
2003-11-24 15:05:50 +00:00
Luboš Luňák 2c3f9c4069 Some attempts to fix aspect ratios breaking resizing.
When resizing windows manually (Client::handleMoveResize()) still doesn't work.

svn path=/trunk/kdebase/kwin/; revision=269296
2003-11-24 14:26:11 +00:00
Luboš Luňák 2553476f53 Don't require both mouse and keyboard grab for move/resize,
one of them is enough. Allows resising of the configure shortcut
dialog.

svn path=/trunk/kdebase/kwin/; revision=269294
2003-11-24 14:25:33 +00:00
George Staikos 875fc62836 Reimplement Xinerama placement. Patch from Balaji Ramani.
CCMAIL: balaji@yablibli.com

svn path=/trunk/kdebase/kwin/; revision=268719
2003-11-21 23:00:38 +00:00
Luboš Luňák 182804067c cvsrevertlast - stupid idea
svn path=/trunk/kdebase/kwin/; revision=266835
2003-11-13 15:57:18 +00:00
Luboš Luňák ab67bd0e89 inOnDesktop( NET::OnAllDesktops ) should always return true.
svn path=/trunk/kdebase/kwin/; revision=266831
2003-11-13 15:50:56 +00:00
Luboš Luňák 07b08d5d99 Don't use struts if KWin itself restricts workarea size by topmenus.
svn path=/trunk/kdebase/kwin/; revision=266150
2003-11-10 18:08:04 +00:00
Luboš Luňák b884178c99 KDecoration::unobscuredRegion(), for B2 titlebar unhiding.
svn path=/trunk/kdebase/kwin/; revision=262494
2003-10-27 16:28:53 +00:00
Luboš Luňák 43c71a8c72 No delayed deleting of decorations. They'll have to check themselves
instead, using KDecorationFactory::exists(). Fixes #66205, and it wasn't
really that good idea anyway.

svn path=/trunk/kdebase/kwin/; revision=260988
2003-10-22 08:26:09 +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 34fa4a4399 Cleanup of Xinerama handling. I don't claim I actually fixed something,
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
2003-10-10 12:58:38 +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 cb51d8ebd6 Another minicli focus stealing prevention fix, this time for David.
svn path=/trunk/kdebase/kwin/; revision=255682
2003-10-02 14:38:17 +00:00
Luboš Luňák 08bb12efcf If a windows tries to grow larger than the workarea, don't allow it to
do so, if size constraints allow it.
If resizing a window would make it get partially out of workarea,
move it so that it stays in workarea.

svn path=/trunk/kdebase/kwin/; revision=255616
2003-10-02 08:57:17 +00:00
Luboš Luňák 3e1df92066 Try to place dialogs on their mainwindow. Except for non-NETWM apps
where the it's transient therefore it's a dialog assumption is not true
often enough for this to be annoying.

svn path=/trunk/kdebase/kwin/; revision=255614
2003-10-02 08:56:44 +00:00
Luboš Luňák bd4789e32b Looks like I got window gravities working correctly also for configure requests.
CCMAIL: 64981-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=255356
2003-10-01 12:10:22 +00:00
Luboš Luňák 6b3d8e134a Implemented _NET_MOVERESIZE_WINDOW.
Moved KWin code related to configure request to geometry.cpp to a common function.

svn path=/trunk/kdebase/kwin/; revision=255355
2003-10-01 12:08:53 +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 ce37c50587 Small cleanups.
svn path=/trunk/kdebase/kwin/; revision=255049
2003-09-30 10:55:06 +00:00
Luboš Luňák 4cd961af56 When the original request causing removal of a decoration comes
from the decoration, use delayed delete.

svn path=/trunk/kdebase/kwin/; revision=254813
2003-09-29 11:20:32 +00:00
Luboš Luňák 0be0f139fa This shouldn't happen at all anymore, so make it fatal.
svn path=/trunk/kdebase/kwin/; revision=253815
2003-09-25 10:36:31 +00:00
Luboš Luňák 2fdf81d4c6 Don't resize frame to the full size when shaded.
svn path=/trunk/kdebase/kwin/; revision=253542
2003-09-24 11:01:14 +00:00
Luboš Luňák 592a92f00b Move code related to mouse window resizing to geometry.cpp .
svn path=/trunk/kdebase/kwin/; revision=253538
2003-09-24 10:55:54 +00:00
Luboš Luňák 1e61c406f9 Temporary fix for #64516.
svn path=/trunk/kdebase/kwin/; revision=252394
2003-09-19 14:53:39 +00:00
Luboš Luňák 84dc01a473 Since Workspace::workspaceEvent() now checks also for windowwrapper
and frame events, it's not necessary to handle them specially
there. Also move DestroyNotify handling to windowEvent().

svn path=/trunk/kdebase/kwin/; revision=252355
2003-09-19 11:16:57 +00:00
Luboš Luňák d8406cf439 Cleanup of Motif hints. Ignore hints forbidding minimize/maximize.
Fix using isResizable()/isMovable() instead of only checking the Motif hint.

svn path=/trunk/kdebase/kwin/; revision=252351
2003-09-19 11:14:16 +00:00
Luboš Luňák 9fac9d2a43 Fixes for mousePosition().
Since Qt propagates mouse events up the widget hierarchy, it's better
to filter out Qt events rather than X events for the decoration.

svn path=/trunk/kdebase/kwin/; revision=252346
2003-09-19 11:11:07 +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
Luboš Luňák 71d30b5813 At least very basic support for _NET_WM_WINDOW_TYPE_SPLASHSCREEN also in HEAD.
svn path=/trunk/kdebase/kwin/; revision=239649
2003-07-28 13:26:08 +00:00
Dirk Mueller 6bbbe69c0e unbreak compilation (gcc 3.4+)
svn path=/trunk/kdebase/kcontrol/; revision=239225
2003-07-26 10:41:28 +00:00
Luboš Luňák 6dc2810d6a Support NET::DemandsAttention in HEAD too.
svn path=/trunk/kdebase/kwin/; revision=231921
2003-06-17 09:24:14 +00:00
Luboš Luňák 25ccdb783f #55510
svn path=/trunk/kdebase/kwin/; revision=211733
2003-03-06 12:12:02 +00:00
Luboš Luňák 1f87831837 XRANDR support in HEAD too, so that curious people don't have to use
kwin_iii. It's still #ifdef-ed out by XRANDR_SUPPORT, just like elsewhere
in kdelibs/kdebase.

svn path=/trunk/kdebase/kwin/; revision=211041
2003-03-03 14:03:56 +00:00
Luboš Luňák c72c64e4f3 Only one place where WM_TRANSIENT_FOR is read + fix a bug in mainClient().
svn path=/trunk/kdebase/kwin/; revision=198740
2003-01-10 12:39:27 +00:00
Luboš Luňák 09e06d30c1 Try to have the grab for clickraise only when necessary (VisibilityNotify
based), and clean up the grab handling a bit.

svn path=/trunk/kdebase/kwin/; revision=198017
2003-01-07 14:26:58 +00:00
Luboš Luňák 5100e63107 Client::is_sticky_ is dead and would be gone, if it weren't for BIC.
No need to this duplication of Client::desk == NET::OnAllDesktops.
It's simple, desk == NET::OnAllDesktops - sticky
             desk == 0 - not mapped yet
             desk something else - the desktop the window is on

svn path=/trunk/kdebase/kwin/; revision=196529
2002-12-30 20:34:38 +00:00
Luboš Luňák 9711f8b576 Workaround for stupid xv not setting WM_CLASS correctly.
svn path=/trunk/kdebase/kwin/; revision=185132
2002-10-22 11:57:43 +00:00
Luboš Luňák a508895993 Damn, I hate keeping BC in an application.
svn path=/trunk/kdebase/kwin/; revision=184470
2002-10-18 11:13:30 +00:00
Luboš Luňák 1a598b9bc0 Fix #33146 - don't create KNotify events e.g. for toplevel menubar.
Introduced Client::isDialog() and Client::isNormalWindow() checking
for NET::Dialog and NET::Normal, including NET::Unknown and workaround
for Qt<3.1 not setting NET::Dialog.

svn path=/trunk/kdebase/kwin/; revision=181308
2002-09-30 13:32:58 +00:00
Luboš Luňák 3b57952b03 Take care of #46042. [...resisted to say here something about Motif >;> ]
svn path=/trunk/kdebase/kwin/; revision=174310
2002-08-28 15:17:31 +00:00
Luboš Luňák 78a7c08049 Since some of the .h files are installed ...
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
2002-07-26 20:30:36 +00:00
Till Krech 7c1d536ad3 make it compile again...
RCS file: /home/kde/kdebase/kwin/client.h,v
retrieving revision 1.82
diff -u -p -r1.82 client.h
--- client.h    2002/07/05 20:00:02     1.82
+++ client.h    2002/07/06 02:04:23
@@ -155,7 +155,7 @@ public:
     bool isDesktop() const;
     bool isDock() const;
     bool isTool() const;
-    bool isMenu() const;
+    bool isTopMenu() const;

     bool isResizable() const;

Index: plugins.cpp
===================================================================
RCS file: /home/kde/kdebase/kwin/plugins.cpp,v
retrieving revision 1.30
diff -u -p -r1.30 plugins.cpp
--- plugins.cpp 2002/07/05 20:05:22     1.30
+++ plugins.cpp 2002/07/06 02:04:23
@@ -119,7 +119,7 @@ bool PluginMgr::loadPlugin(QString nameS

     void* create_func = library->symbol("create");
     if(create_func) {
-        create_ptr = (Client* (*)(Workspace *ws, WId w, NET::WindowType, NET::WindowType))create_func                                   ;
+        create_ptr = (Client* (*)(Workspace *ws, WId w, NET::WindowType))create_func;
     }
     create_func = library->symbol("allocate");
     if(create_func) {

svn path=/trunk/kdebase/kwin/; revision=165118
2002-07-06 02:05:46 +00:00
Luboš Luňák 6d7f113304 Implemented _NET_WM_MOVERESIZE.
Fixed some minor bugs with resizing.

svn path=/trunk/kdebase/kwin/; revision=165071
2002-07-05 20:00:02 +00:00
Cristian Tibirna d546d25e68 CT: - consistently maximize (and unshade) and restore (and unshade) shaded windows
- don't allow resizing of shaded windows
    - unshade windows on minimize
    - clean up an unused method

svn path=/trunk/kdebase/kwin/; revision=140800
2002-03-04 02:20:26 +00:00
Cristian Tibirna efb48f70ef CT: fix my fix for Ctrl+ArrowKeys moving. Reviewed by Matthias Ettrich
svn path=/trunk/kdebase/kwin/; revision=140544
2002-03-03 12:39:31 +00:00
Cristian Tibirna e5e8ee00c1 CT: fix compilation
svn path=/trunk/kdebase/kwin/; revision=140438
2002-03-03 04:02:11 +00:00
Cristian Tibirna e0a42fc063 CT: fix the move with keyboard with Ctrl (smaller steps).
Add the missing signal in KWinInterface (to be used in the redesigned client notification)

svn path=/trunk/kdebase/kwin/; revision=140436
2002-03-03 03:31:52 +00:00
Matthias Ettrich 83f58ed248 gracefully handle more than one desktop client application (which
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
2002-03-02 21:03:49 +00:00
Cristian Tibirna 05129f3b19 CT: fix for gravitate moving non-NW windows on session restore. Many thanks to Matthias Ettrich for saving my day
svn path=/trunk/kdebase/kwin/; revision=140048
2002-03-02 01:34:31 +00:00
Matthias Ettrich e34a6ee283 second half of the "avoid stealing focus if possible" fix
svn path=/trunk/kdebase/kwin/; revision=139642
2002-02-28 22:11:43 +00:00
Waldo Bastian 8f1f5f1b45 * Clean up move/resize code.
* Make moving/resizing work with keyboard.

svn path=/trunk/kdebase/kwin/; revision=113548
2001-09-06 22:54:31 +00:00
Simon Hausmann 9782f0f0f8 - darn, I hate X
svn path=/trunk/kdebase/kwin/; revision=110966
2001-08-18 23:27:05 +00:00
Simon Hausmann c8f1508b36 - moved netwm.h inclusions after indirect qvariant.h inclusions
(fixes Bool clash)
- missing includes (qcursor,qstyle,qpainter,qvaluelist)
- minor qstyle api fixlet

svn path=/trunk/kdebase/kwin/; revision=110958
2001-08-18 23:06:16 +00:00
Luboš Luňák 0827825fcb Use debug area for the debug info.
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
2001-06-13 15:47:54 +00:00
Luboš Luňák e0dbc88040 Implemented NET::SkipPager in kwin, kpager, the pager applet and kstart.
Not that I really understand why's there both SkipTaskbar and SkipPager ...

svn path=/trunk/kdebase/kwin/; revision=94832
2001-05-02 20:37:30 +00:00
Luboš Luňák 4eb2dfa0ee shadeChange() ( for the icewm plugin )
svn path=/trunk/kdebase/kwin/; revision=94149
2001-04-27 08:38:44 +00:00
Luboš Luňák 18d2c93cea Added private data pointer members to classes which might be accessed
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
2001-04-03 14:40:34 +00:00
Matthias Ettrich 5cf8a3c9fd some attempts to fix Sun's latest Java, no success so far. Giving up.
svn path=/trunk/kdebase/kwin/; revision=88713
2001-03-26 08:10:31 +00:00
Matthias Ettrich 9b24d884bf legacy session management support (WM_COMMAND) for emacs-lovers.
Many thanks to Leon Bottou <leonb@research.att.com> for this one.

svn path=/trunk/kdebase/kwin/; revision=87737
2001-03-19 15:35:07 +00:00
Luboš Luňák 8b6478aeda Applying #19154 ( together with #19158 fixes #13794 #17915 #17698 )
svn path=/trunk/kdebase/kwin/; revision=86664
2001-03-12 21:32:13 +00:00
Waldo Bastian 2f90225543 Put stuff in KWinInternal namespace.
Export client.h, workspace.h and options.h so that people can write plugins.

svn path=/trunk/kdebase/kwin/; revision=83707
2001-02-20 01:20:38 +00:00
Matthias Ettrich 7ba861c71d avoid shading for no-border cliens
Index: client.h
===================================================================
RCS file: /home/kde/kdebase/kwin/client.h,v
retrieving revision 1.62
diff -d -u -r1.62 client.h
--- client.h    2001/01/16 21:29:36     1.62
+++ client.h    2001/02/19 22:25:13
@@ -449,7 +449,7 @@
 public:
     NoBorderClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 );
     ~NoBorderClient();
-
+    void setShade( bool , int ){}
 };

 #endif

svn path=/trunk/kdebase/kwin/; revision=83691
2001-02-19 22:25:34 +00:00
Matthias Ettrich 01241073b6 make xswallow work
svn path=/trunk/kdebase/kwin/; revision=78458
2001-01-16 21:29:36 +00:00
Matthias Ettrich e9d30a20d7 Balaji Ramani <balaji@spinnakernet.com>: shadeHover support
GUI: new operation popup item: "Store Settings"

svn path=/trunk/kdebase/kwin/; revision=78043
2001-01-14 20:16:04 +00:00
Matthias Ettrich 33f78a855b some more keybindings
less race conditions with map/unmap thanks to BlackboxTechnology(tm)

svn path=/trunk/kdebase/kwin/; revision=77544
2001-01-11 23:41:07 +00:00
Matthias Ettrich 45f2bbd3d3 smarter autoRaise, wondering what it breaks this time
svn path=/trunk/kdebase/kwin/; revision=76893
2001-01-08 09:52:44 +00:00
Matthias Ettrich 287b654d39 an attempt to reduce the slowliness of opaque resize with non-Qt application
svn path=/trunk/kdebase/kwin/; revision=73641
2000-12-06 15:03:59 +00:00
Matthias Ettrich 6babb311ca more clever maximize(ver, hor, full) stuff
svn path=/trunk/kdebase/kwin/; revision=71188
2000-11-17 19:43:20 +00:00
Matthias Ettrich 8ba0c8171f fixed unmanaged windows on subsquent desktop switches
svn path=/trunk/kdebase/kwin/; revision=68087
2000-10-17 12:51:39 +00:00
Matthias Ettrich 1266db9901 fixed transient_for handling for embedded main windows
Patch reviewed by Lars.

svn path=/trunk/kdebase/kwin/; revision=67756
2000-10-15 14:19:15 +00:00
Rik Hemsley 6ff8139d9e Making NETWinInfo visible.
It's actually a derived class, but we can safely static_cast it back
to NETWinInfo. Makes it easier for clients to use it.

svn path=/trunk/kdebase/kwin/; revision=67689
2000-10-14 23:44:24 +00:00
Matthias Ettrich 6dacbd0112 tool window handling for the default style
visible dialogs for stays-on-top fullscreen windows (helps with Konqueror's dialogs)
Fixed lock with Alt-Tab box plus accelerator

svn path=/trunk/kdebase/kwin/; revision=65241
2000-09-25 15:30:51 +00:00
Matthias Ettrich 10b2e5fde2 don't activate dock windows with click (fixes kicker focus problems,
reviewed by Carsten Peiffer)

svn path=/trunk/kdebase/kwin/; revision=63580
2000-09-11 20:54:00 +00:00
Waldo Bastian 1add59200c WABA: Fixes BR6808 and BR7983.
#6808: selecting a "Decoration" by right-clicking on a window de-iconify windows.
#7983: SHIP STOPPER: kwin - titlebars get <2> after the name of the application when changing decorations
Reviewed by gis.

svn path=/trunk/kdebase/kwin/; revision=63563
2000-09-11 18:59:26 +00:00
Matthias Ettrich bf33b067be - completed session management (maximize, shaded, and restore were missing)
- 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
2000-08-30 14:27:30 +00:00
Matthias Ettrich 078b8b3ff4 - make maximized windows
- adjust to workarea changes
	- not movable or resizable
	- not show vertical borders if not necessary

 - new default style: middle mouse and right mouse for maximize button

 - now resize mouse cursors if the window is not resizable

svn path=/trunk/kdebase/kwin/; revision=61240
2000-08-16 12:18:56 +00:00
Matthias Ettrich d3e8f75ada no need for application-modal dialogs to stay on top....
svn path=/trunk/kdebase/kwin/; revision=60475
2000-08-10 13:01:12 +00:00
Matthias Ettrich ffbe75dfba some bugfixes
svn path=/trunk/kdebase/kwin/; revision=60295
2000-08-09 10:02:56 +00:00
Matthias Ettrich d7d265452b some work on the new default style. Better, but not there yet.
The class still duplicates too much functionality of the base class (Client).
IMO the ResizeBar widgets have to go, it can all be done by painting directly
on the main Manager.

svn path=/trunk/kdebase/kwin/; revision=59127
2000-07-28 22:06:22 +00:00
Matthias Ettrich 7ca46b1e1c do not manage magic for java applets
svn path=/trunk/kdebase/kwin/; revision=56985
2000-07-15 01:12:41 +00:00
Matthias Ettrich bda93628e4 highly improved style switching
svn path=/trunk/kdebase/kwin/; revision=56978
2000-07-15 00:46:38 +00:00
Matthias Ettrich 0012e5088b focus handling on lower()
svn path=/trunk/kdebase/kwin/; revision=56651
2000-07-13 20:38:10 +00:00
Matthias Ettrich 5fb81f837b no "resize" and "maximize" options for non-resizable windows
svn path=/trunk/kdebase/kwin/; revision=56608
2000-07-13 17:59:12 +00:00
Matthias Ettrich d226e9cd0e sexy toolwindows (at least in standard style)
svn path=/trunk/kdebase/kwin/; revision=56329
2000-07-12 12:46:58 +00:00
Matthias Ettrich aa3526e42f more autoRaise and focusFollowsMouse fun
svn path=/trunk/kdebase/kwin/; revision=56016
2000-07-10 21:48:13 +00:00
Matthias Ettrich 05a8a4fde3 mac menubar
svn path=/trunk/kdebase/kwin/; revision=55967
2000-07-10 15:54:17 +00:00
Matthias Ettrich 3156291b39 autoraise and clickraise
svn path=/trunk/kdebase/kcontrol/; revision=55877
2000-07-09 20:29:53 +00:00
Matthias Ettrich f5226e0281 staysOnTop support.
Fixed titlebar-dblclick-commands (Shade instead of winShade )

svn path=/trunk/kdebase/kwin/; revision=54719
2000-06-28 13:20:42 +00:00
Matthias Ettrich 6ed208596c propagate the state (for example maximize) as required
svn path=/trunk/kdebase/kwin/; revision=54137
2000-06-23 18:18:34 +00:00
Matthias Ettrich 72abf668d2 iconify/deiconify animation.
Don't forget to update libkdecore and kicker

svn path=/trunk/kdebase/kwin/; revision=54131
2000-06-23 16:26:44 +00:00
Matthias Ettrich 6655d0207d focus policies and alt-tab style:
/*!
      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
2000-06-22 18:08:35 +00:00
Matthias Ettrich 900e2e6c0b Use the new windowmanager interaction API
svn path=/trunk/kdebase/kwin/; revision=52623
2000-06-08 17:05:51 +00:00
Waldo Bastian c3d3c81d64 WABA: Keep focus with same window after switching desktops
svn path=/trunk/kdebase/kwin/; revision=51128
2000-05-30 05:52:11 +00:00
Matthias Ettrich c0d337d352 cleanups: less debug output, less flicker, less confusing code
svn path=/trunk/kdebase/kwin/; revision=50775
2000-05-26 13:54:50 +00:00
Kurt Granroth 7853d20753 Added support for Ctrl+Alt+Esc to kill a window. I basically just cut-n-
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
2000-05-17 23:02:42 +00:00
Rik Hemsley 3ac4896a57 Turned layout()->activate() into a new virtual function, 'activateLayout()',
which is called at the same places.

Mosfet: This is necessary because we are converting to not use QLayout
in clients. Without this, you can't get the right size for your windows.
Just implement it in your client and do your layout in it (surprise, eh ?)

svn path=/trunk/kdebase/kwin/; revision=49143
2000-05-11 03:31:54 +00:00
Matthias Ettrich 9c4e19ee40 removed the timerbased resize stuff again and did the real fix.
Should work fine with Qt-2.1, please test.

svn path=/trunk/kdebase/kwin/; revision=48970
2000-05-09 10:13:48 +00:00
Espen Sand efdafdc528 A modification to the resize handling. Not sure if it really
is any better but with khexedit it feels so. kwm still beats
it though :(

svn path=/trunk/kdebase/kwin/; revision=48903
2000-05-08 20:22:10 +00:00
Matthias Ettrich 0b154e4b7c slow down resize with a timer
svn path=/trunk/kdebase/kwin/; revision=48784
2000-05-07 23:10:21 +00:00
Matthias Ettrich 6a36c54a7f Kwin raises the following sound events via KNotifyClient:
"Window Close"
	 "Window Iconify"
                  "Window DeIconify"
                  "Window Maximize"
                  "Window UnMaximize"
                  "Window Sticky"
                  "Window UnSticky"
                  "Window New"
                  "Window Delete"
                  "Window Trans New"
                  "Window Trans Delete"
                  "Window Shade Up"
                  "Window Shade Down"
                  "Window Move Start"
                  "Window Move End"
                  "Window Resize Start"
                  "Window Resize End"

svn path=/trunk/kdebase/kwin/; revision=48752
2000-05-07 20:38:11 +00:00
Rik Hemsley 297651e2c3 Understand more about edge-based clients and act appropriately, passing
info along to kdesktop too.

This is funky now :)

svn path=/trunk/kdebase/kwin/; revision=48377
2000-05-04 23:12:29 +00:00
Michael Matz 732c7d78bd Big B2/KWin change:
* 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
2000-05-03 00:04:26 +00:00
Waldo Bastian f02955dcba WABA: Make desktop, kicker and the macbar unmovable.
svn path=/trunk/kdebase/kwin/; revision=47007
2000-04-19 04:36:47 +00:00
Rik Hemsley 330ea804b2 Preliminary support for avoiding covering clients such as kicker
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
2000-04-16 09:06:03 +00:00
Matthias Ettrich 5a7b9ed8aa remove some passive grab combinations on active windows. Helps GIMP, TK and Co.
svn path=/trunk/kdebase/kwin/; revision=45057
2000-03-29 14:53:25 +00:00
Matthias Ettrich b49151074f Session management for KDE-2.x : say hello to the ksmserver
svn path=/trunk/kdebase/kwin/; revision=44552
2000-03-24 22:23:02 +00:00
Matthias Ettrich 0df9f29ccd help toolkits to figure out the frame geometry when receiving reparentNotify
svn path=/trunk/kdebase/kwin/; revision=44288
2000-03-22 11:47:10 +00:00
Matthias Ettrich c2b5722a6b small optimizations
svn path=/trunk/kdebase/kwin/; revision=44233
2000-03-21 20:02:27 +00:00
Matthias Ettrich 935c0a4478 More keyboard commands such as "Window move" and "Window resize".
"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
1999-12-06 00:43:55 +00:00
Matthias Ettrich 64acd7375d implemented preliminary WM_CONTEXT_HELP protocol. In combination with tomorrow's
Qt snapshot, you will see lovely question marks in the titlebar of dialogs that
invoke What's This help.

svn path=/trunk/kdebase/kwin/; revision=35618
1999-12-01 22:09:32 +00:00
Matthias Ettrich b441f40a7e configurable mouse bindings (see README)
svn path=/trunk/kdebase/kwin/; revision=35388
1999-11-29 02:06:41 +00:00
Matthias Ettrich bd1e4878ba keep transients together, support various input modes, handle
wm_change_state messages properly

svn path=/trunk/kdebase/kwin/; revision=35353
1999-11-28 20:10:58 +00:00
Matthias Ettrich da39e14d75 make configure requests work again (thanks, mosfet, for the report :)
svn path=/trunk/kdebase/kwin/; revision=35326
1999-11-28 16:25:59 +00:00
Matthias Ettrich 367d4fd0d7 some bugfixes, added a window operations menu, some simple shading animation
svn path=/trunk/kdebase/kwin/; revision=34662
1999-11-22 01:57:51 +00:00
Matthias Ettrich b0b7769701 took "THE DESKTOP" and kicker out of the tab chain
svn path=/trunk/kdebase/kwin/; revision=34140
1999-11-17 17:25:26 +00:00
Matthias Ettrich 9a0ea6b949 - handle initial state iconic
- handle maprequests when being iconified properly
- do not unshade xemacs 32000 pixels high

svn path=/trunk/kdebase/kwin/; revision=34014
1999-11-16 01:25:42 +00:00
Matthias Ettrich 3293927ed4 found a smart way to get rid of the race conditions (that sometimes
made windows lose their decorations)

svn path=/trunk/kdebase/kwin/; revision=33867
1999-11-15 00:52:05 +00:00
Matthias Ettrich 49eb95bd94 More docking magic: If a window gets iconified that has a docking window,
remove it from the taskbar (in fact, do a withdraw() )

svn path=/trunk/kdebase/kwin/; revision=33759
1999-11-14 06:34:28 +00:00
Matthias Ettrich b49242a017 some fixes
svn path=/trunk/kdebase/kwin/; revision=33631
1999-11-13 00:32:36 +00:00
Matthias Ettrich a30c061abb shape windows support, some fixes for configure-request handling
svn path=/trunk/kdebase/kwin/; revision=33553
1999-11-12 03:11:19 +00:00
Matthias Ettrich 1884091309 update, usable with kicker now
svn path=/trunk/kdebase/kwin/; revision=33064
1999-11-07 01:43:06 +00:00
Matthias Ettrich b62982b6d1 handling close without weird error messages. Dynamic style changes
without jumping.

svn path=/trunk/kdebase/kwin/; revision=32546
1999-11-02 00:32:31 +00:00
Matthias Ettrich 75f321c4c0 more experimental stuff
svn path=/trunk/kdebase/kwin/; revision=29737
1999-09-27 16:02:44 +00:00
Matthias Ettrich 311db796c6 Say hello to kwin. WARNING: NOT USABLE YET. See README.
svn path=/trunk/kdebase/kwin/; revision=27871
1999-08-19 23:26:42 +00:00