			OroboROX
			A window manager for ROX
			by Guido Schimmels and Jonatan Liljedahl

5-Mar-2006
~~~~~~~~~~

* release as version 0.9.8

4-Mar-2006 
~~~~~~~~~~~

* Spanish translation by Juan Carlos Jimenez Garcia <jigar@alumni.uv.es>
* fix title string storage (crasher bug)


10-Feb-2006 (Release 0.9.7.10)
~~~~~~~~~~~

* GIMP paint tool slowing down the system fixed:
  culprit was title string and icon name book keeping -
  support for icon name was removed (commented out for now),
  as OroboROX doesn't do anything with that info now and probably
  in the future (ROX-Filer's pinboard handles that)

26-Jan-2006
~~~~~~~~~~~

* remove X11 session management code: was useless, as ROX isn't prepared for,
  and most probably terribly broken, definitely completely untested.
			
29-Aug-2005
~~~~~~~~~~~	

* Fixed bugs reported by Stephen Watson (original bug report):
	When restarting OroboROX all minimized windows are un-minimized.

	In "Point to focus" mode switching workspace assigns focus to the
	window that was last focussed on the workspace, not the one under the
	pointer.

	Also in "Point to focus" mode minimizing a window via the keyboard
	moves the focus to the top-most window, not the window which the pointer
	is now over.  Minimizing via the mouse works, although the top-most
	window is briefly focussed before the correct one.

* fix window raising in focus-follows-mouse mode: sometimes windows would
  be focused, but never raised, e.g. always when switching workspace

* use black text for infoWin, instead of title color, avoiding white text
  on white background for a number of themes

	
24-Aug-2005
~~~~~~~~~~~

* Industrial window decoration (ripped from an IceWM theme by Leo Zhu)
	
23-Aug-2005
~~~~~~~~~~~

* goto_workspace(): 
  - increase client->ignore_unmap *before* unmapping,
    map all windows not STATE_HIDDEN instead of WM_STATE NormalState
	-> avoid accidental unmapped windows
  - only unmap windows which aren't already unmapped (maybe
    not necessary, do it anyway for peace of mind)
  
			
13-Aug-2005
~~~~~~~~~~~	

Chinese translations (babyfai Cheung)
			
10-Aug-2005
~~~~~~~~~~~

* Caboodle theme:
  - make schemeable (Jonatan Liljedahl)
  - add shade button (that's the hieroglyph for "paper scroll", hoho!)

* getopt_long: reinstate lost getopt_long build fix,
  call wm with "-d" instead of "--display" (reported by Stephen Watson)

* small focus related fixes (Jonatan Liljedahl) - a never ending story 
			
			
9-Aug-2005
~~~~~~~~~~

* make it so, that colors defined in themerc override system default,
  and in turn will be overriden by selected custom scheme - use "None"
  scheme if colors from themerc are to be preferred
* fixed off-by-one title drawing bug, made small change to TheBear
  theme, undoing the workaround for this bug
* fix reload bug: resetting the focus to root as dummy event turns out
  isn't so clever, as we end up with the focused window drawn inactive -
  resending OroboROX PID via the NET_WM_PID message seems to have no
  undesired side-effect, so that's what we do now
* add "Caboodle" theme
* fix focus bug: don't exit from set_input_focus() when in == out, as 
  it breaks when switching workspaces
			
8-Aug-2005
~~~~~~~~~~
* record decor drawing state (ACTICE||INACTIVE) via Client.decor_state,
  use this info to make sure focus state is always properly visually
  reflected, by running update_focus() after each event loop pass -
  this is kind of a hack, but necessary until the missed corner case(s)
  have been tracked down, where current redraw logic fails.
* cycling: unshade shaded clients when they receive the focus (temporarily)
			
7-Aug-2005
~~~~~~~~~~
* check if XSetInputFocus() was successfull, abort if not - wants_focus()
  ought to cover this, but it doesn't yet. I don't yet know what's going on

5-Aug-2005
~~~~~~~~~~

* new button pixmap states: disabled-active/disabled-inactive

2-Aug-2005
~~~~~~~~~~

* if client doesn't provide any input hints, assume focusable
  (spotted with Sunclock)
* autoconf build fix for getopt_long() (hint by Stephen Watson)
* rewrite ConfigureRequest event compression: crossing fingers
  I haven't broken things (looking good so far)
* remove bad Unmap ignore logic from xfwm4, which lead to zombie
  windows with WideStudio

31-Jul-2005
~~~~~~~~~~~

* don't omit disallowed action buttons, draw them as inactive instead
* do not disable min+max button for dialogs
* remove "force button" option, as now buttons are only disabled, when
  asorted action is actually impossible

30-Jul-2005
~~~~~~~~~~~
* fix infoWin(): 
  - allocate XftDraw *after* info_win creation
  - free XftDraw *before* info_win destruction
  - save guards: make sure info_win actually exists
* complete rewrite of window cycling:
  create a list of valid clients beforehand, then
  cycle through this list without further ado.
  cycle client criteria:
  - must be focusable
  - must be on current workspace
  - in cycle app mode: must match WM_CLASS of focused client

30-Jul-2005
~~~~~~~~~~~

* implement response to _NET_REQUEST_FRAME_EXTENTS client message (untested)
* match hostname with WM_CLIENT_MACHINE, and SIGKILL only on success, as
  required by the spec

29-Jul-2005
~~~~~~~~~~~

* get rid of owin, it's only needed temporarily for announcing ewmh compliance,
  everywhere else the root window is appropriate.
  calling set_compliant() again doesn't help. So this trick from matchbox wm
  doesn't work for OroborROX - probably due to the brute force SIGHUP reloading.
* fix cycle bug: was caused by special treatment of iconified windows - remove
  options for which windows to include while cycling. Now all windows of current
  workspace are included (alt-tab) or all window of focused app (shift-alt-tab).
* omit sticky button, when only one workspace


28-Jul-2005
~~~~~~~~~~~

* make button cursors optional
* fix redraw of workspaces, return focus to client that was focused last in this workspace


27-Jul-2005
~~~~~~~~~~~

* redraw frame in set_input_focus() instead of on FocusIn/FocusOut
  as it breaks window cycling (revert from yesterday)
* revert input focus to root window instead of owin
* check if input focus becomes None when clients are hidden/destroyed,
  and revert to root window
* don't steal focus from lowered windows

26-Jul-2005
~~~~~~~~~~~

* streamline event-handling, avoid duplicated work:
  - window mapping (response time, throughput) improved by factor 2
    (measured with Raster's wm_torture tool)
  - better, more inherently reliable focus handling
* refactoring: move margin and focus related routines into extra files
* experimental (disabled) code:
  show iconfied windows only on original workspace by unhiding them while
  working on other workspaces (unwanted effect in pagers? how else do it?)
  ROX-Filer's job, after all?
* added a Doxyfile (not of much use, yet)

23-Jul-2005
~~~~~~~~~~~
* enhanced cursor theme support: distinctive cursors for title bar buttons
* implement NET_WM_PING: when client timed out without quitting, change cursor
  over close button to "pirate" (skull and bones), use NET_WM_PID to SIGKILL
  non-resonding clients, to be sure it's really gone, not merely the window
* some compliance fixes (hopefully) inspired by NOKIA's matchbox wm

20-Jul-2005
~~~~~~~~~~~

* get all intern atoms at startup in one go via XInternAtoms()
  -> 250 hundred bytes code and 60 server round-trips less.
* create dummy XEvent before returning from handleSignal() to
  cause a mainloop iteration, so new settings take effect
  

26-May-2005
~~~~~~~~~~~

Stephen Watson:

* fix title redraw 

Guido Schimmels:

* update handleFocusIn()/handleFocusOut() to xfwm4 code
* ClientSetFocus(): redraw frame of previously active window also
  (avoid more than one window showing active title)
  
02-May-2005
~~~~~~~~~~~

Tony Houghton:
* Fixed for 64-bit architectures

Lars Hansson
* make main.c correctly use HAVE_GETOPT_LONG

13-May-2005
~~~~~~~~~~~

Tony Houghton:
* Fixed for 64-bit architectures

18-Apr-2005
~~~~~~~~~~~

Guido Schimmels:
* fall back to XmbTextPropertyToTextList() when g_locale_to_utf8() 
  fails converting a XTextProperty (spotted with Java Swing file-selector)
* more robust (net_)wm_name handling, newly introduced Client.title_string 
  is never NULL; only redraw title when the string actually changed after the 
  (NET_)WM_NAME PropertyNotify event
* new keybinding (default:Alt+^) for cycling through windows of the active
  application - needs some more work for legacy apps that don't provide a 
  client_leader (fall back to group_leader, transientFor hint - what else?)

16-Apr-2005
~~~~~~~~~~~

Thomas Leonard+Guido Schimmels:
* rewrite mainloop: 
	fix glib mainloop integration, 
	integrate X events through ConnectionNumber(dpy) filehandle,
	avoiding need for usleep() hack
	
Ken Hayber:
* fix dialog focus


3-Apr-2005
~~~~~~~~~~

Guido Schimmels:
* window gravity fixes (->better window placement)
* remove "docking" code for ROX-panels (use ROX-Filer option!)
* change "Show Desktop" keybinding default: F12 -> Alt+F12
  (plain function keys should be reserved for apps)
* fix window maximized startup
* add hack to make apps startup maximized in directions their window doesn't fit on the display (targeting Firefox, which doesn't take window decoration into account (presumably because on Windows - for which it is optimized - it doesn't need to.)

29-Mar-2005
~~~~~~~~~~~

Jonatan Liljedahl:
* Rewrote handleButtonPress(), it's a lot cleaner now. Hopefully everyone is
  happy with the focus/raise behaviours.
* Put back "Warp after cycle" and "Auto switch workspace" options to
  Window options GUI, under the "Advanced" section and moved "Window matching"
  to a separate section.
* Started to update the user manual, using AFT with custom stylesheet similar
  to ROX-Filers manual. The source is in src/doc/Manual.aft

Terry Blunt:
* re-apply lost maximization patches

28-Mar-2005
~~~~~~~~~~~

Guido Schimmels:
- don't lose focus when switching workspace (happened with FOCUS_RISCOS only)
- introduce raise_policy, seperate from focus_policy
- Windows GUI sections renaming:
	Behaviour	-> Move & Resize
	Focus 		-> Focus & Raise

- change mainloop usleep(1000) -> usleep(50); doesn't affect cpu usage noticably,
should make for more responsive window management. We could remove the usleep()
entirely and sleep on XNextEvent() instead, if it wasn't for the raise_delay timeout.
- raise delay is now actually measured in ms, as advertised, instead of counting
eventloop passes like before (which meant an arbitrary time with cpu speed as the main factor)

22-Mar-2005
~~~~~~~~~~~

Guido Schimmels:
* update the relevant data-structures on xrandr resolution change (reported by Thomas Leonard)
* run code through GNU indent
			
20-Mar-2005
~~~~~~~~~~~

Tony Houghton:
* Corrected geometry caption for windows with size inc by subtracting base size

16-Mar-2005
~~~~~~~~~~~

Tony Houghton:
* Fixed bottom strut failing to apply to newly-opened windows
* Windows only snap to edges they are being moved away from

Jonatan Liljedahl:
* Show Desktop: Now also sticky windows are hidden.
* Improved layout in Window settings GUI
* Fixed bug that created strange behaviour if the win_ops_modifier key
  was cleared.

15-Mar-2005
~~~~~~~~~~~

Jonatan Liljedahl:
* Some code cleanups
* New feature: Show Desktop, with configurable keyboard shortcut (default F12)
  with support for NET_SHOWING_DESKTOP root property and message
* New feature: press key for switch-workspace (modifier ignored) while moving
  window (holding on the titlebar) to move it to that workspace.
* Don't listen to KEY_MOVE_* events in clientMove() if moving was initiated
  by mouse event.
* Raise client in move_client_to_workspace()
* New keyboard shortcut: Raise window

14-Mar-2005
~~~~~~~~~~~

Jonatan Liljedahl:
* Fixed Keybindings GUI bug that made Escape key not cancel.
* Focus windows as they are cycled, but apply focus policy when finished (which
focus the window under the pointer if focus policy is UNIX)
* Move mouse pointer to selected window after cycle, configurable.
* Removed the disabling of warp_mouse_pointer for UNIX focus policy.
* Fixed win ops modifier bug, single keystrings was not scanned for modifiers...
* SIDE_LEFT/RIGHT and CORNER_LEFT/RIGHT didn't match, they were mixed up.
* Fixed horz/vert border resize bug.
			
13-Mar-2005 
~~~~~~~~~~~

Guido Schimmels:
* Keyboard GUI:
- make "Revert" button in the Keyboard GUI work again.
- rename to "Keybindings"
- new icon
- human readable caption for umlauts (ä,ö,ü) and sharp s (ß).
* set NET_SUPPORTING_WM_CHECK to owin for both root and owin itself (reported by Jonatan Liljedahl)
	

12-Mar-2005 
~~~~~~~~~~~

Terry Blunt:
* make maximizing configurable. Options are: Locked (default), Unlocked, Remaximize
'Unlocked': allow move/resize of maximized while preserving unmaximized state and
reverting,so unmaximizing will restore original size and position.
'ReMaximise': maximise actions will always maximise regardless of the original 
window's size or position. This will again leave the window fully movable and resizable.
* more fixes for RISCOS focus policy to match the actual RiscOS behaviour.
		
10-Mar-2005 
~~~~~~~~~~~

Guido Schimmels:
* declare apply_focus_policy(Client *) in client.h and add the missing client pointer to the function calls where it was missing, after introducing this new parameter (C-compiler sloppyness bit me badly). Fixes the crashes in 0.9.6-3.
* set NET_SUPPORTING_WM_CHECK on the root window not owin - duh! (made skippy-xd die at startup).
			
2-Mar-2005 
~~~~~~~~~~~

Guido Schimmels:
* Consequently apply focus policy for Alt-Tabbing also 
-> do not automatically focus raised windows in focus_follows_mouse mode.
(requested by Stephen Watson)
* more code stolen from xfwm4 which hopefully fixes window mapping. In some cases withdrawn windows where left on the screen or windows became withdrawn when they shouldn't
* client_apply_initial_state() function (also from xfwm4) which makes sure windows being started maximized/sticky etc. are treated as such
			
1-Mar-2005 
~~~~~~~~~~~

Jonatan Lijedahl:
* new option to display window geometry in a box when moving and resizing 
clients

Guido Schimmels:
* fixed a case where wmhints struct field were accessed when it was NULL
(reported by Stephen Watson)


28-Feb-2005 
~~~~~~~~~~~

* Clicking on the title with button 1 did not bring the window to the
front. Clicking on the content did - corrected (Terry Blunt)
* Resize did not work for Buttons 2 & 3 - corrected (Terry Blunt)

* Pointer did not change to resize (or move) when passing over window
sides or bottom in "Drag Resize" mode, but in "Drag Move" mode instead.
Fixed. (reported by Bungee and Tony Houghton)
			
22-Feb-2005 
~~~~~~~~~~~

Guido Schimmels:
* don't remove shading property from allowed actions when shading,
as the button for unshading gets removed from the titlebar.
(reported by Jonatan Liljedahl)

21-Feb-2005 (Release 0.9.6)
~~~~~~~~~~~

Guido Schimmels:
* make instant apply work in the keyboard utility with the i18n caps.
* "sh dist.sh" in the src directory copies a clean (for distribution)
copy of OroboROX to ~/OroboROX
* build with --disable-startup-notification as this code is untested,
for ROX-Filer not supportung it - and therefore useless as well.

19-Feb-2005
~~~~~~~~~~~

Guido Schimmels:
* Mode_switch/ISO_Level3_Shift (='Alt Gr' usually) modifier handling
* modifier blacklist: 'Menu','Scroll_Lock','Caps_Lock','Num_Lock', 
'Kana_Lock','ISO_Lock', 'ISO_Level3_Lock', 
'ISO_Next_Group_Lock', 'Codeinput', 'Kanji'
* i18n keys in the keyboard options GUI (with help from Jonatan Liljedahl)
			
24-Oct-2004
~~~~~~~~~~~

* add 
  case MappingNotify: XRefreshKeyboardMapping((XMappingEvent *) ev); break;
  to even loop

		
23-Oct-2004
~~~~~~~~~~~
Jonatan Liljedahl:

* made force_buttons enable all allowed actions too and not only the visual
  button drawing.
* fixed button-filter bug that made it stop drawing buttons when it
  encountered a disabled button, thinking that it was the title. solution:
  make difference between title letter ('|') and disabled button ('0')
* made clientCycle only update stuff once per keypress-cycle.
* added alternative window cycling: an infobox shows title instead of
  raising the clients. It is shown with same font and color as titlebars,
  if no scheme is selected it falls back to black on white.

22-Oct-2004
~~~~~~~~~~~	

* fix vertical and horizontal maximizing
* add COMPLIANCE file, detailing OroboROX's compliance with the 
relevant standards.
* add display_width+display_height globals, upgrade them on ConfigureNotify
to the root window alongside with xinerama dimensions. Use those everywhere
instead of XDisplayWidth()/XDisplayHeight()
* EWMH compliance: 
	set _NET_DESKTOP_VIEWPORT to {0,0}
	sync_NET_DESKTOP_GEOMETRY with display_width+display_height
* focus new windows regardless which have XUrgencyHint set
* if (c->size->flags & (PMinSize|PMaxSize)) 
  -> if ((c->size->flags & (PMinSize|PMaxSize)) == (PMinSize|PMaxSize))
* fix save/restore of ALLOWED_ACTIONS when toggling fullscreen mode
* fix RealPlayer10 fullscreen (code from xfm4 + don't delete NET_WM_STATE and 
NET_WM_ALLOWED_ACTIONS properties when emtpy: buggy apps assume they are 
not supported then)

Jonatan Liljedahl:

* fixed bug that made sticky-matched clients not have their desktop set to -1


21-Oct-2004
~~~~~~~~~~~

* bump version: 0.9.5

* fixes to get_wm_protocols(): fence post error and fallback to 
XGetWindowProperty() when XGetWMProtocols() fails (from xfwm4)
* fix bug in handleButtonPress() which would lead to crashes on
rapid clicks: win = get_mouse_window(dpy, c->frame) -> win = ev->subwindow
(again from xfwm4)
* g_mainloop integration
* more work on ping code (still disabled)
* some work towards NET_WM_MOVERESIZE
* fix two silly but harmless bugs in set_allowed_actions_hint()
* insert "if (!client_exists(c))" safe-guards at various places
* always focus new transient windows

17-Oct-2004
~~~~~~~~~~~

* remove dialog button filter in favour of "Force Buttons" option;
by enabling the user can choose to not allow applications to filter 
out buttons for specific types of windows (e.g. dialogs).
			
14-Oct-2004
~~~~~~~~~~~

* get_property_utf8_string(): init XTextProperty fields to 0/NULL

13-Oct-2004
~~~~~~~~~~~

* use new modifier variables to construct ModifierMask global variable

12-Oct-2004
~~~~~~~~~~~

* bump version: 0.9.4

* upgrade Italian translation (Yuri Bongiorno)
* complete NET_WM_ALLOWED_ACTIONS

10-Oct-2004
~~~~~~~~~~~

* keyboard dies on Solaris when NumLock is activated (reported by Stephen Watson)
-> replace keyboard.c file entirely with the same file from xfwm4. Hope that fixes it...
* start with implementation of NET_WM_ALLOWED_ACTIONS

9-Oct-2004
~~~~~~~~~~

* clientUnframe(): clean up properly, so withdrawn windows don't have a comeback
when restarting the wm (code stolen from Metacity). Examples: XawTV options/mosaic windows, 
gtk file-selectors.

8-Oct-2004
~~~~~~~~~~

* handleUnmapNotify(): uncomment handling of synthetic UnmapNotify - see if it works now.
* clientFrame(): use code from xfwm4 for setting initial state
* client.h: Client *Client.transientFor -> Window Client.transientFor

7-Oct-2004
~~~~~~~~~~

* bump version: 0.9.3

* point to focus mode: raise window when moving windows with pointer in application window
and window_ops_modifier pressed (reported by Jonatan Liljedahl)
	
6-Oct-2004
~~~~~~~~~~

* changed keyboard shortcuts that defaulted to "None" to "none";
the keycode parser is case-sensitive and behaves badly/random with invalid strings
	
5-Oct-2004
~~~~~~~~~~

* fix bug: dragging corner with button1 always resizes 
(was erratically bound to border_drag)
* Windows+Workspaces configlets: env is located in /usr/bin not /bin (reported by Thomas Leonard)
* rename "Menu Button" to "Right Button"
* change default focus_policy: Unix -> WinMac
* change button2+3 defaults
* configure.in: fixes to XFT check (Ken Hayber)
			
4-Oct-2004
~~~~~~~~~~

bump version to 0.9.2

* removed raise_on_click and raise_on_focus as explicit options,
instead, it's implied in the focus policy setting now. 
* allow raise delay to be set at -1, to disable auto-raising. 
(option suggested by Jonatan Liljedahl)
			
2-Oct-2004
~~~~~~~~~~

Some changes in behaviour due to user feedback:

* disable mouse-wheel workspace switching on DOCKS as applets might want to use the wheel for their own purposes (Ken Hayber)
* Button1+window_ops_modifier -> hardwire to "move" (title-bar behaviour) (Jonatan Liljedahl)

Fixes:

* portability fix: explicitly include standard headers (stdlib, stdio, string)
* burn bridges: require XFT font system, remove legacy font support
* client_layer(): ignore transienFor hint (not sure why it doesn't work) ; 
fixes bug with transient (dialogs) being in above all windows, not only their parent 
(reported Stephen Watson)


1-Oct-2004
~~~~~~~~~~

* configure.in: move the Xft check below the X11 check (Ken Hayber)
* remove compile option from AppMenu, as it was broken and somewhat hard to fix
* do not set NET_WM_WINDOW_TYPE_DOCK on ROX-Panels
* remove debugging output from client.c which was still left
* settings.c: introduce option_bool(), option_int() and option_string_equals()
for better readability and reduced code size.

30-Sep-2004
~~~~~~~~~~~

* bump version: 0.9.1
* handleButtonPress(): complete rewrite; fix mouse-wheel workspace switching+
  layer change with Button2+Button3
* Restructure section "Behaviour" of Windows capplet
* re-add color scheme windows (missing due to tla misuse)
* Stephen Watson: configure.in: Solaris fix; loadPixmap(): catch NULL pointer arguments
* upgrade to OroboScheme-004 (Cyrille Mars) + add German translation

29-Sep-2004
~~~~~~~~~~~

* Solaris fixes: X11 header inclusion (Stephen Watson)

27-Sep-2004
~~~~~~~~~~~

* net_active_window(): focus the window that got a message NET_ACTIVE_WINDOW.
  (revert from Terry's patch)
* remove bogus pass_focus(). call clientFocusNext() instead.
* loadSettings(): move setting of NET_CURRENT_DESKTOP to main()
* clientFrame(): don't show and focus when client is not on current workspace

26-Sep-2004
~~~~~~~~~~~

Guido Schimmels:

* remove GNOME hints in favor of EWMH
* move workspace options to new "Workspace" GUI
* rename "Settings" GUI into "Windows"
* add Risc OS focus policy option (contributions from Terry Blunt)
* include OroboScheme
* themes: add Agualemon+Galaxy+Silverado+Elberg+Neweau, remove TheBear+Kymatix2+Agua

15-Aug-2004
~~~~~~~~~~~

Guido Schimmels:

* Switch to ROX-Filer's build system
* refactor settings loader

13-Aug-2004
~~~~~~~~~~~	

OroboROX 0.8.8rc5

Guido Schimmels:

	* use getopt() when libc doesn't provide getopt_long()
	 (I removed the included getopt_long() implementation before, added the
	 autotools test, but didn't actually do something with this information)

OroboROX 0.8.8rc6

Guido Schimmels:
	* somehow two lines where lost for commandline parsing, which broke
	thinks badly

Stephen Watson:
	* Portability fix: include fcntl.h in session.c

12-Aug-2004
~~~~~~~~~~~

OroboROX 0.8.8rc4

Guido Schimmels:
	* fixed a serious bug with client_list[_stacking] (handling of g_arrays)
	* fixed window cycling: since I switched to GList for the clients, we weren't
	  actually cycling, but stopped with the last client. Changed clientGetNext()
	  to resume with client 0 up to the client before the current client in a second
	  loop. (Oroborus's code was using a cyclic list apparently, which would let the 
	  last client point to the first client. I overlooked that.) 
	  I think the new client list implementation is more robust than the Oroborus code.

10-Aug-2004
~~~~~~~~~~~

OroboROX 0.8.8rc3

Guido Schimmels:
	* setNetState() would always set both NET_WM_STATE_MAXIMIZED_HORZ 
	  and NET_WM_STATE_MAXIMIZED_VERT when it should set either. Fixed.
	* added Help/HACKING (contributors please read!)
	* clientSetLayerForce(): moved c->win_layer = l before setNetState(c). duh!
	* removed Client.was_above; was used to draw  title+leftframe on some
	  state_above/fullscreen windows. Odd!
	* fixed AppRun: show terminal, do not resume interrupted compiles
	* fixed workspace switching via keyboard, which I broke in 0.8.8rc's
	* removed call to getEWMHState() as it causes problems: 
	  _NET_WM_STATE_SKIP_PAGER disappear from Pinboard's+Panel's 
	  _NET_WM_STATE, revealed by xprop. Don't know what's going on. Also the panel
	  doesn't appear im the pager canvas anymore. Pinboard+Panel still are listed
	  in the pager's window list though.

Tony Houghton:
	* clientResetWinLayer() -> default to WIN_LAYER_NORMAL
			
8-Aug-2004
~~~~~~~~~~~

OroboROX 0.8.8rc2

Guido Schimmels:
	* clients is now a GList, removed Client.next + Client.prev,
	  as these are provided by the GList; gets rid of the ad-hoc
	  implemented error prone doubly linked list
	* German translation for Keyboard options GUI
	* removed win_client_list -> Gnome legacy taken care of by EWMH hint
	* removed win_workspace -> Gnome legacy taken care of by EWMH hint
	* removed file system.h; don't know what it is good for

Tony Houghton:

    * Added support for _NET_WM_STATE_BELOW and tweaked support for
      _NET_WM_STATE_ABOVE and related properties. 


7-Aug-2004
~~~~~~~~~~~
OroboROX 0.8.8rc1

Guido Schimmels:

	* Implemented _NET_CLIENT_LIST_STACKING:
		a most simple algorithm is used:
		lowered windows are prepended to client_list_stacking
		raised windows are appended to client_list_stacking
		Although subsorting the list by WIN_LAYER_ seems more 
		correct, this simple sorting seems to have the desired
		effect.

	* added missing NET_WM atoms, but they are not yet handled

	* commented out a code-block which prevented RealPlayer10
	  from returning from fullscreen mode (see BUGS for more RP trouble)

	* removed getopt code. Might break non GNU-libc builds, in this
	  case I'll remove long options (which is the potential culprit, I think)

	* removed GnomeDesktopMargins. Metacity doesn't have that either. I guess
	  for Gnome2 the EWMH stuff takes care of this. Probably OroboROX now
	  doesn't work with Gnome1 panels any more, but that's ok.

	* all kinds of little changes (indenting, optimizations)
	
	-> release as rc1 in case I have introduced new bugs

9-Jul-2004
~~~~~~~~~~~
OroboROX 0.8.7.3

  Jonatan Liljedahl:
  
   * Split out some themes to a separate tarball: OroboThemes.tar.bz2
   
   * Removed the APP_DIR/.default_theme and made it use 
     APP_DIR/Configure/Themes/MicroGUI as fallback instead.

   * Lowering a window now focus the window that gets under the
     pointer if focus-follows-mouse is enabled.

   * Don't use max-size if it's smaller than min-size. (Fixes bug with
     tiny windows.)
   
   * Remove window borders on fullscreen toggle.
   
   * Added hotkey to toggle borderless windows. Default is Control+mod1+b
   
   * Themes without *-toggled-*.xpm does NOT fallback to *-pressed.xpm
     anymore, as it looks very ugly on some themes. The toggled pixmaps
     needs to be created/symlinked specifically for each theme that should
     support it.

  Tony Houghton:

   * Corrected Xinerama behaviour of move (to corners) hotkeys.

   * Hopefully builds with Xinerama support on Solaris.

   * AppRun --compile doesn't open new terminal if it's already running in one.
     Compile script prompts for enter at end of QUICK_BUILD.

   * New hotkeys for maximising/fullscreen across all monitors in
     Xinerama mode. New section in Keyboard settings GUI for maximising,
     including fullscreen.

   * Standard fullscreen operation limited to current monitor.

   * Standard maximise/fullscreen operations now consistently use mouse
     position to determine which Xinerama monitor to choose.

  Stephen Watson:
  
   * Improved portability for Solaris.

     
18-Jun-2004
~~~~~~~~~~~
OroboROX 0.8.7.2

  Tony Houghton:

   * Rewrote Xinerama support. Now windows snap to "internal" monitor edges too.
     Screen info is cached and only read at start up and when root window
     changes size.

   * Removed ambiguous elses from clientSetHeight and clientSetWidth
     (NB man XSizeHints implies PMinSize and PMaxSize can be set
     simultaneously).

   * Added support for Xinerama and _NET_WM_STRUT_PARTIAL.

   * Changed the way multiple struts are handled.

   * Added AC_C_CONST and AC_C_INLINE to configure.in.

   * Added const to getValue (p***ing in the wind).

   * AppRun now reruns itself after compiling if it was run normally and no
     binary was found.

  Jonatan Liljedahl:
  
   * Added dbus-send to choose WM if another WM is already running.
     (for the new WM setting system in ROX-Session 0.1.23)
  
   * Fixed the broken bottom-right corner in the "built in" theme
   
   * Made a new theme: Kymatix2
   
   * Added .DirIcon's for Configure/{Themes,Schemes}
   
  Stephen Watson:
  
   * Made dist scripts more portable
   
  Cyrille Mars:
  
   * Added AppInfo.xml's to all themes
   
   * Added b5-flat theme
   
   * Modified GorillaWorm and MkUltra themes to be schemable.

  Yuri Bongiorno:
  
   * Updated Italian translations for Options GUI
   
24-May-2004
~~~~~~~~~~~
OroboROX 0.8.7.1

  Guido Schimmels:
   
   * Fixed bug that made Rhythmbox go beserk when switching to compact
     mode, see BUGS for more information.

  Jonatan Liljedahl:
  
   * Ported a couple of themes and made the Kymatix theme
  
   * Added reading of ThemeDir/schemerc to set default colors that can be
     overridden by selected scheme.
  
   * Removed color settings from defaults file, so that schemable themes
     can set default colors in their pixmaps (shown when no scheme is loaded)
  
   * Colors set by the theme now overrides the scheme colors, this should
     only be used for text-colors in themes with non-schemable titlebar
     pixmaps.
     
   * Fixed all themerc's so that all have a default button_layout and
     title_alignment.
   
   * defaults file is now read at settings reload again, since it should!
   
   * Improved Options GUI:
   
     Added checkboxes to enable/disable titlebar buttons, for normal
     and dialog windows. Use this instead of the button_layout setting
     which should be set by the theme and will maybe be removed from
     the Options GUI in the future.
     
     Factory settings is now read from the defaults file instead of
     duplicating them in Options.py
   
     Made it use the rcfiles directly instead of going through the XML
     files. This also fixed a keyboard vs. settings conflict bug
     reported by Thomas Leonard.
     
     Modularized the python code, common code is now kept in a single place.

     Made Keyboard-shortcut popup-window place itself at center of screen.
	 
  Cyrille Mars:
  
   * Added b5-simple and Amaranth themes
   
   * Added preview icons for shipped schemes

   * Started to develop an improved Scheme maker, available at
     http://cyrille.mars.free.fr/rox/

15-May-2004
~~~~~~~~~~~
OroboROX 0.8.7

   Jonatan Liljedahl:

   * Split Options GUI and oroborusrc into keyboard shortcuts and other
     settings.
     
   * Small fixes and cleanups in Options GUI and loadSettings()
   
   * Do not reparse defaults rcfile at settings reload.

   * Disabled the use of WIN_LAYER_FULLSCREEN (above all) for fullscreen
     windows, since it makes all other windows invisible. EWMH says that
     only dialogues of the fullscreen app should be placed above it but
     I think you could want to cycle to another win without
     unfullscreening the current one...
	 
   * Added correct handling of NET_WM_STATE_{ADD,REMOVE,TOGGLE} messages
     instead of always doing toggle.

   * It is now possible to assign keyboard shortcuts without modifiers

   * Added support for AltGr modifier (Mod5)
   
   * Improved keyboard shortcut setting in Options GUI

  Guido Schimmels
  
   * Fixed the irregular white outline on the AppDir icon
   
03-May-2004
~~~~~~~~~~~
OroboROX 0.8.6.5

  Jonatan Liljedahl:

   * Made a clientFocusNext() function that focus the most ontop window.
     (so if you're working in a window and a dialog popups and closes,
     the focus is given back to the last raised window)

   * The lower-button now moves window too. (Suggestion by Terry Blunt)

   * Fixed behaviour with mozilla ignoring maximize button, the fix may be
     a quick hack but it works: don't ignore maximize if minimum size is 0
	 
   * Removed my ugly AppDir icon. (But the original one has jagged edges
     that is visible on dark backgrounds, should be fixed...)
	 
   * Reimplemented button visual feedback, now always follows the real
     state... It uses *-toggled-{in,}active.xpm theme pixmaps if found
     for maximize, sticky and shade.
     If not found, it falls back to *-pressed.xpm
	 
   * Horz/vert resize cursors are now redefined at settings reload to
     reflect border_move option.
	 
   * Added handling of NET_WM_STATE_SHADED and NET_WM_STATE_STICKY
     client message events
	 
   * Redraws window frame on NET_WM_STATE client messages if
     buttons_show_state is enabled
	 
   * NET_WM_DESKTOP message now sets sticky if workspace == -1
     (fixed the strange behaviour with XMMS)
	 
  Ken Hayber:
  
   * Ported "the bear" theme from openbox3

01-May-2004 
~~~~~~~~~~~
OroboROX 0.8.6.4

  Jonatan Liljedahl:

   * Moved settings, themes and schemes to APP_DIR/Configure/
     and removed all theme and scheme settings from Options GUI
   
   * Implemented schemes as AppDirs too

   * The theme must now always be specified as an absolute pathname
     in OROBOROX_CONFIG_HOME/current_theme. If theme loading failed fall
     back to APP_DIR/.default_theme, which is a very minimal lightweight
     theme derived from the slimline theme.

   * Fixed bug that forgot to count the "title" button in
     dialog_skip_buttons. (My fault)

   * Made horiz/vert resize cursors visible when hovering the
     mouse over the borders if border_move==False
	 
   * Disabled clientRaise after workspace switch
	 
   * Changed the AppDir icon
	 
  Thomas Leonards:
  
   * Added nice preview icons to the themes

  Robert Davison:

   * Updated the RiscOS theme
	 
29-Apr-2004 
~~~~~~~~~~~
OroboROX 0.8.6.3
			
  Jonatan Liljedahl:
  
   * Fixed bug that killed keyboard focus when entered desktop
     was empty except for iconized sticky clients.
	 
   * Removed shaded clients from clientGetNext() blacklist,
     so that they can take focus when hiding/closing a client
     or switching to desktop with only shaded clients.
	 
   * Implemented Thomas Leonards suggestion with themes as AppDirs.
     The current theme is now set in a separate file, and can be
     an absolute path. Removed theme menu from Options GUI.
     Added "Themes" to the AppMenu.
	 
   * Use _NET_WM_PID property on root window instead of
     "killall -HUP OroboROX"...
	 
   * Fixed bug in Options.py that made fresh installs not work.
   
29-Apr-2004 
~~~~~~~~~~~
OroboROX 0.8.6.2

  Jonatan Liljedahl:
  
   * Added check for _NET_WM_DESKTOP instead of hardcoding
     all desktop-or-dock type windows to have workspace -1.

   * Fixed the bug that made windows with workspace -1 unfocusable
     and re-enabled the code that sets all sticky windows to workspace -1
	 
   * Fixed a bug with buttons in frame.c
   
   * Fixed some bugs with the dialog-skip-buttons feature
   
   * Changed microgui stickybutton and added a shadebutton.
     NOTE: none of them are used by default.
	 
   * Added option for the switch-workspace-to-activated-window
     feature, and made it ignore sticky windows.
	 
   * Added visual feeback for sticky and maximize buttons (with option)
     NOTE: does not look nice on all themes...
   
   * Titlebar scrollwheel now raises window on unshade
   
   * Updated Options GUI

  Guido Schimmels:

   * Disable min/max/shade/sticky buttons for dialog windows
  
  Robert Davison:

   * Improved the RiscOS theme

27-Apr-2004 (Afternoon)
~~~~~~~~~~~~~~~~~~~~~~~
OroboROX 0.8.6.1

  Jonatan Liljedahl:

   * Workspace switch now focus the window benieth the
     mousepointer in point-to-focus mode
   * Don't focus next if the unmapped window was not
     in focus when it was unmapped
   * NET_ACTIVE_WINDOW event switches workspace to the
     activated client
   * Added 4 pixels to title text width when
     full_width_title==False to avoid truncated text in
     some themes
   * Fixed bug with window-ops-move (it always did resize)
   * Added sticky-buttons to microgui theme
   * Windows with type Desktop and Dock now sets and maintains
     their workspace to -1 (EWMH spec says -1 == all workspaces)
   * Scrollwheel on window title shades/unshades
   * Updated documentation
   * Added sizegroups for custom widgets in Options.py

  Thomas Leonard:
	 
   * Fixed bug with numlock and title-drag (did not work
     when numlock was on)
	 
  Guido Schimmels:
	 
   * Added size-group attributes to Options.xml
   
  Yuri Bongiorno:
	 
   * Added Italian translation to AppInfo.xml and Options.py
	 
27-Apr-2004 (Early morning)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
OroboROX 0.8.6

     Jonatan Liljedahl:

   * Bug with dead keyboard shortcuts now fixed!

   * Fixed bug with drag-border-does-resize mode and
     window ops modifier keys.

   * Added extra functions for two more title buttons:
     Button 3 does shade on minimize-button
     and toggle on-top on sticky-button.
 
   * Even more minor fixes...

25-Apr-2004
~~~~~~~~~~~
     Jonatan Liljedahl: (Is now the new maintainer)

   * Better behaviour with dead keyboard shortcuts after closing
     or minimizing window. (still not perfect...)
	 
   * Horz/vert-maximized window can now be moved/resized in one
     direction.

   * Raise window after fullscreen mode

   * Added horz/vert resize feature when dragging the borders
     (configurable in the options GUI)

   * Added option to flip button2/button3 (no_raise vs. lower)
   
   * Minor fixes

23-Apr-2004
~~~~~~~~~~~

OroboROX 0.8.5

Patch contributed by Thomas Leonard:
"
  * Dragging the titlebar or an edge with button-3 moves the window without
  raising.

  * Dragging a corner with button-3 resizes without raising.

I made button-2 on the frame lower the window (replacing the old
toggle-sticky option) which I understand is going to be a separate
titlebar button.
"

This makes OroboROX behaviour more like xfwm4 (and RISC OS).

14-Apr-2004
~~~~~~~~~~~

    Jonatan Liljedahl:

  * fixed bug with button_layout[] size, now all buttons
    can be used at the same time.
  * don't switch workspace when showing sticky clients.
  * additional window matching: Iconic, Sticky and OnTop.
  * disabled code which set workspace to -1 for all sticky
    windows since they could not get focused then. 
  * updated options GUI
  * removed extra_options stuff
  * reparse rcfile after themerc so we can override settings

12-Apr-2004
~~~~~~~~~~~

OroboROX (0.8.4)

  * use XftFontOpenName instead of XftFontOpenXfld
  * replace font-entry with font-selector in the GUI
  * non-xft builds are now defunct and will probably
    removed as build option entirely, as it is becoming
    a burden
  
10-Apr-2004
~~~~~~~~~~~

  * OroboROX now depends on glib-2
  * replace xmalloc code with g_new calls

31-Mar-2004
~~~~~~~~~~~

OroboROX (0.8.3.1)

  * reload settings without respawning (Jonatan Liljedahl)
  * use combobox for theme/scheme selection (Jonatan Liljedahl)

30-Mar-2004
~~~~~~~~~~~

OroboROX (0.8.3)

  * force OroboROX to reload settings by sending signal HUP
  * use leafnames for themes and schemes in the options instead
    of the full pathname. First look in $XDG_CONFIG_HOME/OroboROX,
    if it fails, try $APP_DIR. Fall back to $APP_DIR/themes/slimline,
    when both fail.
  * fixes and the beginnings of an options GUI from Jonatan Liljedahl

29-Mar-2004
~~~~~~~~~~~

  * added setNetState() for setting NET_WM_STATE. 
    Now NET_WM_STATE_HIDDEN will be set 
  * theme support for sticky buttons added
  * removed code from XFwm4 which can't be made to work
    without porting over a lot more supporting code
  

28-Mar-2004
~~~~~~~~~~~

  * Switch to original workspace when unhiding (Jonatan Liljedahl)
  * Replace ~ with $HOME in AppRun

25-Mar-2004
~~~~~~~~~~~

  * fix configure.in: 
    "-DXFT" -> "-DXFT `pkg-config --cflags freetype2`"

24-Mar-2004
~~~~~~~~~~~

OroboROX (0.8.2)

  * added --disable-xft configure option
  * fixed --enable-debug configure option
  
22-Mar-2004
~~~~~~~~~~~

  * fixed NET_WM_SKIP_FOCUS handling for ROX-Panel compatibility

21-Mar-2004
~~~~~~~~~~~

  * ported themes from XFwm4 and IceWM

20-Mar-2004
~~~~~~~~~~~

  * enabled Xft font rendering for title
  * various enhancements to the window
    handling code from XFwm4

19-Mar-2004
~~~~~~~~~~~

OroboROX (0.7.0)

  * Repackaged as ROX AppDir

26-May-2003
~~~~~~~~~~~

oroborus (2.0.13-1)

  * New Release.
  * Fix some MPlayer fullscreen problems.
    Xine is somehow still broken, it sends a wrong message to Oroborus for
    raising the window. This will hopefully soon be fixed. (to a standards
    compliant way!) Everybody who is interested may contact me for a fixed
    xine debian package.
  * Fixed some window placing problems after fullscreen mode.
  * Added a new config option "cycle_workspaces".
  * Corrected some theme configs.
    Note: No theme config should contain keybindings!
  * Added correct fullscreen support.
