Commit graph

268 commits

Author SHA1 Message Date
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