2009-09-08  Frederic Peters  <fpeters@gnome.org>

        * configure.in: Post-release bump to 2.27.2.

2009-09-08  Frederic Peters  <fpeters@gnome.org>

        * NEWS: 2.27.1 release.

2009-06-09  Matthias Clasen  <mclasen@redhat.com>

	unset _NET_SUPPORTING_WM_CHECK when shutting down

2009-06-08  Tomeu Vizoso  <tomeu@sugarlabs.org>

	Add a switch to disable autofullscreen'ing maximized windows without decorations
	
2009-03-12  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.27.1.

2009-03-12  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.27.0 release.

2009-03-11  Thomas Thurman  <tthurman@gnome.org>

	* po/POTFILES.in: add bell.c.

2009-03-11  Thomas Andersen  <phomes@gmail.com>

	Remove deprecated GTK symbols.  Refs #572332.

	* src/include/util.h:
	* src/tools/metacity-window-demo.c:
	* src/ui/fixedtip.c:
	* src/ui/frames.c:
	* src/ui/frames.h:
	* src/ui/menu.c:
	* src/ui/metaaccellabel.c:
	* src/ui/metaaccellabel.h:
	* src/ui/preview-widget.c:
	* src/ui/preview-widget.h:
	* src/ui/tabpopup.c:
	* src/ui/theme-viewer.c:
	* src/ui/themewidget.c:
	* src/ui/themewidget.h:
	* test/tokentest/tokentest.c:

2009-03-11  Matt Kraai  <kraai@ftfbs.org>

	* src/tools/metacity-mag.c: use g_signal_handlers_disconnect_by_func
	instead of an old deprecated function.

2009-03-11  Ori Avtalion  <ori@avtalion.name>

	* src/core/window-props.c: fix problem where the previous
        code ignored callbacks for properties whose values weren't
        looked up.  Closes #572573.

2009-03-06  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: add optional dependency on gtop.
	* src/core/window-props.c: Include "(as username)"
          in the titlebar if a window is running as another user.
	* src/core/window.c: check for PID before name, since
          the rendering of the name can now depend on the PID.

        Closes #549389.

2009-02-21  Matthias Clasen  <mclasen@redhat.com>

	* src/core/bell.c: Don't force CA_PROP_CANBERRA_ENABLE to 1.
	That was a misunderstanding on my part, and makes it impossible
	to get rid of the bell.

2009-02-11  Thomas Thurman  <tthurman@gnome.org>

	Use zenity for the session management dialogue that warns about
	clueless clients, not metacity-dialog.  This is the last change
	away from metacity-dialog and therefore closes #521914.

	* src/Makefile.am:
	* src/core/session.c:
	* src/core/util.c:
	* src/include/util.h:
	* src/ui/metacity-dialog.c (deleted):

2009-02-12  Matthias Clasen  <mclasen@redhat.com>

	* src/core/bell.c (meta_bell_set_audible): Now that we are
	using libcanberra, don't tell the X server to play the system
	bell internally.

2009-02-11  Matthias Clasen  <mclasen@redhat.com>

	Bug 557921 – [PATCH] Sound event support to metacity

	Patch by Lennart Poettering

	* configure.in: Require libcanberra-gtk

	* src/core/bell.c (meta_bell_notify): Play the alert sound from
	the sound theme instead of the dreaded system bell.

	* src/core/workspace.c (meta_workspace_activate_with_focus): Play
	a sound on workspace switch.

2009-02-11  Thomas Thurman  <tthurman@gnome.org>

        Session must be saved before display close, and display
        shouldn't close during shutdown if it's already closed.
        Can't believe we don't have a bug about this already...

	* src/core/display-private.h:
	* src/core/display.c:
	* src/core/main.c:
	* src/core/session.c:

2009-02-10  Matt Kraai  <kraai@ftfbs.org>

        Don't define meta_spew_event unless verbose mode is on.
	Closes #571126.

	* src/core/display.c:
	* src/core/window.c:

2009-02-10  Matt Kraai  <kraai@ftfbs.org>

	* README: switch is "--disable-verbose-mode", not "--disable-verbose".
          Closes #571210.

2009-02-10  Thomas Thurman  <tthurman@gnome.org>

        rm incorrect comment

	* src/include/util.h:

2009-02-10  Thomas Thurman  <tthurman@gnome.org>

        Further movement of code out of metacity-dialog into Zenity;
        this time it's the "kill or wait?" dialogue.  Much code saved.

	* src/core/delete.c:
	* src/core/keybindings.c:
	* src/core/main.c:
	* src/core/util.c:
	* src/core/window-private.h:
	* src/core/window.c:
	* src/include/util.h:

2009-02-07  Thomas Thurman  <tthurman@gnome.org>

        Windows demanding attention should never appear in the
        alt-tab list unless they're of a type which might have appeared
        there anyway.  This solves a problem under AWN where docks which were
        marked as demanding attention appeared in all alt-tab lists;
        they were irrelevant and it was impossible to remove them from the
        lists.

	* src/core/display.c:

2009-02-07  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/theme.c: some commenting

2009-02-07  Matt Kraai  <kraai@ftfbs.org>

	* src/core/display.c: Only skip the first window in
        the alt-tab chain if it's actually the current window
        (urgent windows on other workspaces may precede it).
        Fixes #535887.

2009-02-05  Thomas Thurman  <tthurman@gnome.org>

        Lines where x1==x2 or y1==y2 may have the second element
        null.  Lines where both are null, and the width is zero,
        are points.  This speeds things up surprisingly much.

	* src/ui/theme-parser.c:
	* src/ui/theme.c:

2009-02-05  Thomas Thurman  <tthurman@gnome.org>

	* src/core/main.c: incredibly baroque system to make sure
        the translators don't have to update the year number every year.

2009-02-05  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/theme-parser.c: collapse several strings into one
        for the translators' benefit.

2009-02-04  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: post-branch bump to 2.27.0.

2009-02-04  Neil Jagdish Patel  <njpatel@gmail.com>

	* src/core/frame.c: queue resize on window undecorate

2009-02-03  Luca Ferretti  <elle.uca@libero.it>

	* src/include/all-keybindings.h: Fix description, focus the
	desktop, not desktop backgroung (Closes bug #569649)

2009-02-02  Matt Kraai  <kraai@ftfbs.org>

	* src/core/schema-bindings.c: Wrap g_error calls in braces.

2009-02-01  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.233.

2009-02-01  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.144 release.

2009-02-01  Matt Kraai  <kraai@ftbfs.org>

        Set prop_hooks_table to NULL after freeing it.

	* src/core/window-props.c:

2009-01-29  Thomas Thurman  <tthurman@gnome.org>

        Window properties are looked up in a hash table rather than
        by iteration over an array.  Saves ~44us per window, but
        also makes the code cleaner.

	* src/core/display-private.h:
	* src/core/window-props.c:

2009-01-27  Matthias Claesen <mclasen@redhat.com>

	* src/core/edge-resistance.c: some lists failed to keep track
          of their contents and therefore didn't free correctly.
          Closes #552303.

2009-01-27  Matthias Claesen <mclasen@redhat.com>

	* src/core/prefs.c: Free name of old theme when new theme
          is loaded.  Closes #552973.

2009-01-27  Matthias Claesen <mclasen@redhat.com>

	* src/ui/ui.c: free the result of gdk_text_property_to_utf8_list()
          even when it returns no data.

2009-01-27  Owen Taylor  <otaylor@redhat.com>

       GtkStyle is specific to a particular colormap. Metacity
       uses different colormaps for windows with different
       visuals, so it must specialize the GtkStyle.

       Closes #568365 and #513944.

       * src/ui/frames.[ch]: Keep a GtkStyle for each MetaUIFrame, which is
         obtained by calling gtk_style_attach() on the style for the
         MetaFrames. When the style of the MetaFrames changes, reattach
         everything. When we call gtk_style_set_background() pass in the
         right style.

       * src/ui/themes.[ch]: Create a _with_style() variant of functions that
         previously took the style from widget->style passed in, so we
         can draw with the right style for the colormap.

2009-01-27  Thomas Thurman  <tthurman@gnome.org>

        Added a gconf key to swap the meanings of the right and
        middle buttons when the modifier key is held down.
        Closes #437910.  Thanks to Matt Kraai for looking over
        the patch.

	* src/core/display.c:
	* src/core/prefs.c:
	* src/include/prefs.h:
	* src/metacity.schemas.in.in:

2009-01-27  Thomas Thurman  <tthurman@gnome.org>

        All the window properties are now handled using simple
        window property handlers.  Closes #549886.

	* src/core/window-private.h:
	* src/core/window-props.c:
	* src/core/window.c:

2009-01-26  Thomas Thurman  <tthurman@gnome.org>

        More of the window properties are checked using simple
        window property handlers.  The ones which remain don't
        actually look up the new value in the ordinary way, and
        so are a little trickier to merge.  Added an "initial"
        flag to be on the safe side that the behaviour is the
        same as before (so we don't do things when a window's
        first mapped that we only used to do when a property
        changed).  Partial fix for bug #549886.

	* src/core/window-props.c:
	* src/core/window-props.h:
	* src/core/window.c:

2009-01-25  Elijah Newren  <newren gmail com>

	* src/core/window.c: add support for _NET_WM_MOVERESIZE_CANCEL.

2009-01-10  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/theme.[ch]: add meta_theme_draw_frame_by_name, which
          is needed for the theme editor.

2008-12-26  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.144.

2008-12-26  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.89 release.

2008-12-25  Thomas Thurman  <tthurman@gnome.org>

	* src/include/all-keybindings.h: alt-F10 toggles maximisation,
          alt-F5 only restores.  Also rename "unmaximize" to "restore".
	* src/ui/frames.c: Rename "unmaximize" to "restore".
          Closes #343824.

2008-12-25  Frederic Peters  <fpeters@0d.be>

	* src/core/main.c: (main): added call to g_thread_init(), as ORBit2
	stopped doing it and Metacity is using gconf; closes #565517.

2008-12-24  Yanko Kaneti  <yaneti@declera.com>

	* src/metacity.schemas.in.in: add screenshot commands which had
          mistakenly been removed; closes #564343, Launchpad bug 298463,
          Red Hat bug 474635, and probably others.

2008-12-24  Thomas Thurman  <tthurman@gnome.org>

	* src/include/all-keybindings.h: fix move_to_corner_se

2008-12-21  Colin Walters  <walters@verbum.org>

	* src/core/window.c: windows which attempt to present themselves
          but are offscreen end up demanding attention, unless they
          are transient, when they move to the current workspace
          as before.  Closes #482354.

2008-12-19  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/frames.c: when the user double-clicks the title bar,
	  end the grab op.  Closes #401028.

2008-12-16  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.89.

2008-12-16  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.55 release.

2008-12-15  Erwann Chenede  <erwann.chenede@sun.com>

	* configure.in: fix build on Solaris.  Closes #564123.

2008-12-02  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.55.

2008-12-02  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.34 release.

2008-12-02  Matt Kraai  <kraai@ftbfs.org>

	* src/core/iconcache.c: patches to fixes for -Wall.  Closes #562939.

2008-12-01  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.34.

2008-12-01  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.21 release.

2008-12-01  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: gnome-doc-tools version doesn't need to be so high.
	* src/compositor/compositor-xrender.c: disable the entire file if the
          compositor is disabled.
	* src/core/async-getprop.[ch]: fixes for -Wall
	* src/core/iconcache.c: fixes for -Wall
	* src/core/testasyncgetprop.c: fixes for -Wall
	* src/core/xprops.c: fixes for -Wall

2008-11-26  Thomas Thurman  <tthurman@gnome.org>

	* tools/announce-wrangler.py: linked language codes to po files
	* tools/commit-wrangler.py: print revision url

2008-11-26  Thomas Thurman  <tthurman@gnome.org>

	* tools/announce-wrangler.py: renamed ini file
	* tools/commit-wrangler.py: rewriting in terms of moap

2008-11-25  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.21.

2008-11-25  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.13 release.

2008-11-26  Thomas Thurman  <tthurman@gnome.org>

	* tools/announce-wrangler.py (added): script to produce announcements

2008-11-26  Thomas Thurman  <tthurman@gnome.org>

	* src/core/xprops.c: add casts (#562106)

2008-11-25  Thomas Thurman  <tthurman@gnome.org>

	* metacity.doap: change to standard description.

2008-11-23  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.13.

2008-11-23  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.8 release.

2008-11-23  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: add new bindings file

2008-11-23  Daniel Macks  <dmacks@netspace.org>

	reviewed by: Thomas Thurman

	* src/Makefile.am: reorder compiler flags so local includes come last.
	  Closes #562033.

2008-11-23  Daniel Macks  <dmacks@netspace.org>

	reviewed by: Thomas Thurman

	* configure.in: only accept --enable-compositor if we find we can
	  actually composite.  Closes #560990.

2008-11-23  Thomas Thurman  <tthurman@gnome.org>

	* src/core/display.c: remove apparently spurious warnings about
	operations on window "none"

2008-11-23  Thomas Thurman  <tthurman@gnome.org>

	* src/core/util.c: Set _POSIX_C_SOURCE to 200112L as it should always
	have been, in an attempt to close #561962.

2008-11-22  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: Set -ansi so people stop complaining about C99.

2008-11-22  Thomas Thurman  <tthurman@gnome.org>

	* src/core/prefs.c: fix stupid infinite loop when GConf is turned off.

2008-11-22  Thomas Thurman  <tthurman@gnome.org>

	* src/core/prefs.c: fix two places where there was a warning
	if GConf was turned off.

2008-11-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/all-keybindings.h: "backward", not "backwards" throughout.

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: turned on -Wall and -Werror in order to
          trap as many problems as possible.
        * src/ui/resizepopup.c: added correct #include.
        * src/ui/theme-viewer.c: initialised variable.
        * src/core/xprops.c: corrected cast.
        * src/core/main.c: added warning if chdir() fails.
        * src/core/schema-bindings.c: checking the return
          result of fgets().

2008-11-20  Thomas Thurman  <tthurman@gnome.org>

        Merged screen and window keybinding tables so that
	we can use just one file for the both.  Also incidentally
	closes #528337.  Further efficiencies of scale to come.

	* src/include/prefs.h: replace META_PREF_*_KEYBINDINGS
	  with META_PREF_KEYBINDINGS
	* src/core/keybindings.c: replace *_bindings with key_bindings
	  and similar throughout; all window-based functions are now
	  guaranteed to receive a window so don't need to check for
	  themselves
	  (find_handler): moved so it can also be called from
			  rebuild_binding_table
        * src/core/display-private.h: replace *_bindings with key_bindings
        * src/core/prefs.c: update_*_binding becomes update_key_binding;
          (change_notify): tidy up references to "enormous if statement"
			   since it's almost entirely gone now
        * src/core/all-keybindings.h: new merged version of
			   screen-bindings.h and window-bindings.h.

2008-11-16  David Trowbridge  <trowbrds@gmail.com>
 
 	This change adds support for the new _NET_WM_FULLSCREEN_MONITORS
 	property and client message.  This allows client applications to request
 	that a fullscreen window cover more than one monitor.
 
 	* src/include/boxes.h:
	* src/core/boxes.c: Add meta_rectangle_union
 
 	* src/core/window-private.h:
	* src/core/window.c:
 	(meta_window_new_with_attrs, meta_window_free, set_net_wm_state,
 	meta_window_update_fullscreen_monitors, meta_window_client_message): Add
 	MetaWindow property to store fullscreen monitors field, update
 	_NET_WM_FULLSCREEN_MONITORS property on windows, and handle client
 	message.
 
 	* src/core/atomnames.h: Add _NET_WM_FULLSCREEN_MONITORS atom.
 
 	* src/core/constraints.c (setup_constraint_info): If
 	_NET_WM_FULLSCREEN_MONITORS is interesting, use the data stored in
 	MetaWindow::fullscreen_monitors to determine the fullscreen area instead
 	of the basic xinerama_info area.
 
2008-11-11  Thomas Thurman  <tthurman@gnome.org>

        Removed deprecated calls.  Closes #560445.

	* src/core/delete.c: remove deprecated g_strcasecmp.
	* src/include/main.h: no actual deprecated call, but
	  a mention of one which was out of date.

2008-11-11  Maxim Ermilov  <zaspire@rambler.ru>

        Clean up #includes according to the GNOME Goal.
	Closes #560449.  Patch is 122467.

	* src/core/place.c:
	* src/ui/draw-workspace.h:
	* src/ui/gradient.h:
	* src/ui/metaaccellabel.c:
	* src/ui/metaaccellabel.h:
	* src/ui/preview-widget.c:
	* src/ui/preview-widget.h:
	* src/ui/resizepopup.c:
	* src/ui/theme.c:
	* src/ui/theme.h:
	* src/ui/themewidget.h:

2008-11-10  Elijah Newren  <newren gmail com> 

	* src/metacity.schemas.in.in: updated description of
	  raise_on_click:
	  http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6

2008-11-08  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: added dependency on Zenity
	* src/core/keybindings.c: remove error_on_generic_command() and
	  error_on_terminal_command(); rewrite error_on_command
	  in terms of meta_show_dialog()
	* src/core/util.c: add meta_show_dialog() to call Zenity
	* src/include/util.h: ditto

2008-11-03  Olav Vitters  <olav@bkor.dhs.org>

	* src/ui/theme-parser.c: Fix build by readding accidentally removed
	'}'.

2008-10-29  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/theme-parser.c: variable names in messages should be
	  double-quoted.  Closes #558309.

2008-10-28  Thomas Thurman  <tthurman@gnome.org>

	* src/include/screen-bindings.h: fix accidental name change of
	  run_command_terminal.  Closes #557943.

2008-10-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (titlebar_handler, handle_preference_update_enum):
        Add initialisation which I missed on the previous checkin.  Also
        an extra comment.

2008-10-27  Brian Cameron  <brian.cameron@sun.com>

        Fix some crashes with the new GDM 2.24.  Closes #558058.

        * src/ui/ui.c (meta_ui_parse_modifier): another null check
        * src/core/prefs.c (titlebar_handler, button_layout_handler):
          more null checks.

2008-10-26  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (mouse_button_mods_handler): Ignore values
          of .../mouse_button_modifier key if the key's missing.
          Closes Launchpad bug #258054, Launchpad bug #266929.

2008-10-23  Frederic Peters  <fpeters@0d.be>

	* doc/creating_themes/C/creating-metacity-themes.xml: added missing @id
	on <book> top element.

2008-10-23  Frederic Peters  <fpeters@0d.be>

	* doc/creating_themes/Makefile.am:
	* doc/creating_themes/C/creating_metacity_themes.xml: renamed document
	to creating-metacity-themes to match other manuals usage of dashes.

2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.8.

2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.5 release.

2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: fix stupid thinko which
          caused defaults to be incorrect
        * src/include/window-bindings.h: "space" needs to be
          lowercase

2008-10-23  Thomas Thurman  <tthurman@gnome.org>

        Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
        whether a window is on all workspaces).  Bug found by Ka-Hing
        Cheung.  Closes #557536.

        * src/core/window.c (set_net_wm_state): report it
        * src/core/window.c (meta_window_client_message): set sticky
          if we receive it
        * src/core/window-props.c: set sticky if we find it
        * src/core/atomnames.h: add _NET_WM_STATE_STICKY

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/schema-bindings.c: support builds outside tree properly.
	* src/Makefile.am: ditto.
	* po/POTFILES.skip: ditto.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.5.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.3 release.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: bump to 2.25.3 (thought the release script
          had already done this)

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Fixes to make distcheck work again.

        * src/Makefile.am: include *-binding.h, and make the schema
          building work when builddir != srcdir
        * po/POTFILES.in (src/core/keybindings.): include *-binding.h

2008-10-22  Götz Waschk  <waschk@mandriva.org>

        * configure.in: add libm reference.  Closes #557357.

2008-10-22  Murray Cumming  <murrayc@murrayc.com>

	* doc/creating_themes/C/creating_metacity_themes.xml:
	Fixed various tags to make this validate.
	Bug #557337

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.2 release.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.2 release.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.2 release.

2008-10-22  Joe Marcus Clarke  <marcus@freebsd.org>

        * src/core/main.c (meta_finalize, sigterm_handler): new functions
        * src/core/main.c (main): add sigterm_handler in case we receive
          a SIGTERM.  Closes #553980.

2008-10-22  Matthew Martin  <mtt.martin@gmail.com>

        * src/core/window.c (meta_window_set_demands_attention): minimised
          windows are necessarily obscured.  Closes #528927.

2008-10-22  Thomas Thurman  <tthurman@gnome.org>

        Slight transformation of the x-macros used in keybindings
        to make them clearer: write handler names out in full
        because the old suffix system was confusing to people
        skim-reading, and switched the order of the last two
        parameters so more would generally fit on a screen.

        * src/core/keybindings.c, src/core/schema-bindings.c
          src/core/prefs.c: sympathy changes
        * src/core/window-bindings.h, src/core/screen-bindings.h:
          transformation as above

2008-10-21   Christian Persch  <chpe@gnome.org>

        * src/Makefile.am: fix build when schemas are not installed.
        Closes #557335.

2008-10-21  Tomas Frydrych  <tf@linux.intel.com>

       * src/core/screen-bindings.h: Fix off-by-one error.
       * src/core/window-bindings.h: Fix off-by-one error.
       Closes #557201.

2008-10-18  Thomas Thurman  <tthurman@gnome.org>

        During a discussion with Rodney Dawes about making life easier
        for the translators, he pointed out that the short and long
        forms of almost all the keybindings say much the same thing
        in different words.  I believe this is an unconscionable burden
        to place on translators, and have therefore merged the short
        and long descriptions into the short description.  The long
        is now a general explanation of the format, plus possibly a
        notice about reversibility.  Closes #469361, and should solve
        the l10n issue previously mentioned.

        * src/core/keybindings.c: reflect changes in *-bindings.h
        * src/core/schema-bindings.c: reflect changes in *-bindings.h
        * src/core/prefs.c: reflect changes in *-bindings.h
        * src/core/window-bindings.h: Add flags field, always the same
          currently, so that it's the same as screen-bindings.h.
          Also, lose ONLY_BOUND_BY_DEFAULT, since we already had a
          rather more elegant way to perform the same effect.
          And merge the long and short descriptions.
        * src/core/screen-bindings.h (, item): Merge the long and
          short descriptions.

2008-10-17  Murray Cumming  <murrayc@murrayc.com>

	* configure.in: Call GNOME_DOC_INIT() so we can use the gnome-doc-utils 
	variables in our Makefile.am:
	* doc/Makefile.am:
	* doc/creating_themes/Makefile.am
	* doc/creating_themes/C/creating_metacity_themes.xml:
	Added this new DocBook document, converted from the HTML here
	http://blogs.gnome.org/metacity/2008/05/30/themes/
	This will be installed for yelp and can be translated and hosted on 
	library.gnome.org.

2008-10-15  Thomas Thurman  <tthurman@gnome.org>

        Since Patrick Niklaus's checkin of 2008-08-14 dealt with windows with
        no icons not using fallback icons, we don't need fallback icons.

        * src/ui/theme.h: remove fallback icons from struct.
        * src/core/iconcache.c (meta_read_icons): don't look for fallbacks.
        * src/*/ui.[ch] (meta_ui_get_fallback_icons): removed
        * src/ui/theme-parser.c (typedef, parse_toplevel_element): don't
          parse fallback specifications.

2008-10-13  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: add screen-bindings.h

2008-10-13  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: raw schemas is now .in.in
        * po/LINGUAS: add Latin

2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Make the bindings in src/core/*-bindings.h generate
        GConf schemas too.  Note that there's an i18n issue
        (documented in schema-bindings.c) which will be fixed
        next checkin.

        * src/core/schema-bindings.c: major fixup to make it
          ready for use as part of the actual build process.
        * src/Makefile.am: added magic to make it call schema-bindings
          after it builds it.
        * src/core/window-bindings.h: added comments;
          also, window menu was listed variously as alt-Space
          and alt-Print; it should have been alt-Space.
        * src/metacity.schemas.in.in: renamed from s/\.in$//,
          sentinel added for the generated bindings,
          warning at the top now untrue, and removed.

2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        Fix annoying bug where alt-tab and friends would jump
        backwards a space on initial movement.

        * src/core/screen-bindings.h: although reversed bindings
        are necessarily reversible, don't set both bits in the
        constant, or when we test for them we'll get confused.

2008-10-12  Thomas Thurman  <tthurman@gnome.org>

        An attempt to make life a little easier for our beloved translators;
        this has the same behaviour as before, but removes over thirty
        translation strings.

        * src/core/session.c (start_element_handler): all "attribute not found
          on element" strings are identical
        * src/ui/theme-parser.c (locate_attributes): allow attribute names to
          be preceded with "!" (in the code) to show they're required.
          (parse_aspect_ratio, parse_distance, parse_toplevel_element,
           parse_style_element, parse_gradient_element, static, parse_border,
           parse_style_set_element, parse_draw_op_element): use the new "!"
           prefix for locate_attributes(), or in some cases just the identical
           constant, for generating this error.
        * src/ui/theme.c (check_state, meta_theme_validate): add
          translator comments
        * src/ui/resizepopup.c (update_size_window): add
          translator comments

2008-10-06  William Lachance  <wrlach@gmail.com>

        Pass modified mouse button events down to panel windows
        instead of dealing with them ourselves.  Closes #554428.

        * src/core/display.c (prefs_changed_callback): don't grab mouse
          buttons on panels
        * src/core/window.c (meta_window_new_with_attrs): ditto

2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        Second half of the switch to using x-macros for keybindings so that
        we don't have lots of places with the same information which must
        stay in the same order.  This time it's screen bindings.

        * src/core/screen-bindings.h: New file, containing screen bindings.
        * src/core/schema-bindings.c: added ability to output screen bindings.
        * src/core/window-bindings.h: tiny tweak to comment
        * src/core/keybindings.c: generate function prototypes using s-b.h;
          several handlers modified to use ints rather than ints cast into
          pointers, or renamed.
        * src/include/prefs.h: generate names of bindings using s-b.h;
          generate screen_handlers using s-b.h;
          arguments to bindings are ints and not ints cast to pointers;
          several handler functions renamed to consistent names.
        * src/core/prefs.c (meta_prefs_set_num_workspaces, init_bindings):
          generate screen_handlers using s-b.h;
          generate screen_string_bindings using s-b.h (and add check for
          null bindings in init_bindings to enable this simply).

2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        * tools/ppa-magic.py: experimental tool for Launchpad upload

2008-10-05  Thomas Thurman  <tthurman@gnome.org>

        * metacity.doap: Havoc is an author; Thomas has an email address;
          add a ton of release information going back to the early days,
	  although not right to the beginning.

2008-09-26  Thomas Thurman  <tthurman@gnome.org>

        * autogen.sh: not all versions of /bin/sh can handle this script,
          so specify one.  Also update the error message because we don't
          use CVS these days.

2008-09-20  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: fix name of window-bindings.h

2008-09-20  Thomas Thurman  <tthurman@gnome.org>

        * po/POTFILES.in: added new files and re-sorted

2008-09-12  Vincent Untz  <vuntz@gnome.org>

        Install desktop files in both
        .../share/applications and .../share/gnome/wm-properties.
        Copied in from the 2.23.x branch.  Closes #549479.

        * src/metacity-wm.desktop.in: new file
        * src/.cvsignore: include the above
        * src/Makefile.am: install the above

2008-09-06  Thomas Thurman  <tthurman@gnome.org>

        An attempt to keep all information about window bindings
        in the same place.  Screen bindings to come.

        * src/core/window-bindings.h: new file, list of all window bindings
        * src/include/prefs.h: drop all the existing window-binding macros

        * src/core/schema-bindings.c (): output all the schema blocks that
        would appear in metacity.schema for these window bindings.  This
        ought to become part of the build process, and hopefully will soon.
        When this works it will also close #469361.

        * src/core/keybindings.c: generate handle_* prototypes using
        x-macros;  populate window_handlers using x-macros;  rename several
        functions to have consistent names;  do_handle_move_to_workspace(),
        handle_move_to_workspace_flip(), and handle_move_to_workspace() all
        merged into handle_move_to_workspace.

        * src/core/prefs.c: generate window_bindings and window_string_bindings
        using x-macros;  (meta_prefs_set_compositing_manager) fix unrelated
        problem with use of GConf functions when GConf was disabled.

        * src/core/core.c (meta_core_get_menu_accelerator): binding names
        given as literals since this is the only place in the code they
        now appear


2008-09-03  Thomas Thurman  <tthurman@gnome.org>

        * src/metacity.desktop.in: removed invalid "Window Manager" group
          at request of Matthias Clasen.

2008-09-02  Thomas Thurman  <tthurman@gnome.org>

        Desktop file moved, according to policy change.  Closes #549479.

        * src/metacity.desktop.in: Don't display the desktop file
        * src/Makefile.am: Desktop file goes in apps directory

2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.25.2.

2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.1 release.

2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        * src/core/workspace.c: When a workspace's list of struts
          is freed, free the struts too.  Closes #549952, and #468075.

2008-09-01  Thomas Thurman  <tthurman@gnome.org>

        Add new move_to_center keybinding, requested by Khanh-Dang Nguyen
        Thu Lam; closes #549979.

        * src/include/prefs.h (void): add name of new binding
        * src/core/prefs.c: added pref for it
        * src/core/keybindings.c (handle_move_to_center): new function
        * src/metacity.schemas.in: included new binding

2008-08-31  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.[ch] (meta_prefs_set_compositing_manager): new
          function.
        * src/core/main.c (meta_parse_options): turn the compositing
          manager on or off as necessary.

2008-08-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (process_property_notify): moving all
	messages about properties to the top, as a start at #549886

2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: fix version number which broke

2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release version bump to 2.25.1.

2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: correct incorrect version number

2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.25.1 release.

2008-08-18  Thomas Thurman  <tthurman@gnome.org>

        Adding doxygen headers to some files.

        * src/core/metacity-Xatomtype.h
        * src/core/main.c
        * src/core/screen-private.h
        * src/core/window-private.h
        * src/core/keybindings.h
        * src/core/session.h
        * src/core/workspace.h
        * src/core/window-props.h ()

2008-08-18  Eric Piel  <e.a.b.piel@tudelft.nl>

        * src/core/workspace.c (ensure_work_areas_validated): add a copy of
         each strut in a window to the workspace's strut list, instead of
         using the copy in the list (which would mean it was double-freed).
         Believed to fix #468075.

2008-08-16  Ted Percival  <ted@midg3t.net>

        Ensure the user_rect is set sanely for windows that start maximized.
        Prevents maximized windows from warping across the screen.
        Fixes bug #504692.

        * src/core/window.c (save_user_placement): renamed version of
        meta_window_save_user_rect().
        * src/core/window.c (force_save_user_placement): similar, but will
        always save user_rect even if the window is maximised or fullscreen.
        * src/core/window.c (meta_window_move_resize_internal): unplaced
        windows have force_save_user_placement() called instead of
        save_user_placement().

2008-08-14   Patrick Niklaus  <marex@compiz-fusion.org>

          Icons for windows are taken from the desktop theme, not from
          the Metacity theme or from the fallback icon that Metacity
          provided.  Closes #524343.

        * src/ui/ui.c: Use GtkIconTheme to load the default window icon.
          Assumes the existence of an icon called "window", otherwise
          falls back to "gtk-missing-image". Fixes #524343.
        * src/ui/preview-widget: See above.
        * src/include/common.h: Add META_DEFAULT_ICON_NAME.
        * src/Makefile.am: Remove default_icon.png from inlinepixbufs.h.
        * src/default_icon.png: Removed.

2008-08-14  Akira TAGOH  <akira@tagoh.org>

        * doc/man/metacity-message.1: new manual page.
        * doc/man/Makefile.am: added new reference.

2008-08-13  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-branch bump to 2.25.0.

2008-08-04  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.144.

2008-08-04  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.89 release.

2008-07-26  Thomas Thurman  <tthurman@gnome.org>

	* metacity.doap (added): DOAP file (first pass, anyway).

2008-07-14  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.89.

2008-07-14  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.55 release.

2008-07-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (event_callback): meta_display_screen_for_root()
        can return NULL, so check for that.  Fixes #422242.  Also tidying.

2008-07-13  Elijah Newren  <newren gmail com>

        * src/core/workspace.c (meta_workspace_free): Don't attempt to
        double-free struts, edges and regions if work areas have already
        been invalidated at the time of freeing a workspace.
        Possible fix to #361804.

2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/constraints.c (do_screen_and_xinerama_relative_constraints):
        Don't allocate memory for log messages unless we're logging.

2008-07-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/group.c (meta_window_get_group): This function can now
        officially return NULL.
        * src/core/window.c (meta_window_same_application): Two windows can't
        belong to the same application unless they both belong to some
        application.  (Both belonging to no application is not the same.)

2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.c (meta_bell_set_audible): Fix typo that
          slipped through.

2008-06-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.[ch]: Move comments for non-statics from the .c to .h.
        * Doxyfile: adapt better for C, and make quiet.

2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/theme-viewer.c (main): display the theme name
          in the title bar.  Closes #430198.

2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        Allow toggling of non-compositor effects (since there's a
        non-Metacity key to do so: /desktop/gnome/interface/enable_animations).
        Closes #92867.

        * src/include/prefs.h: add META_PREFS_GNOME_ANIMATIONS key and
          meta_prefs_get_gnome_animations() function
        * src/include/prefs.c: added meta_prefs_get_gnome_animations()
          function, and made supporting changes to structs.
        * src/core/effects.c (run_handler): checked whether enable_animations
          is set before running an effect.
        * src/core/effects.c (meta_effect_run_minimize): remove debug message.

2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/bell.c: remove meta_ prefix on all static functions.

2008-06-29  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.c (stack_sync_to_server): lose meta prefix
          since it's static. 
        * src/core/stack.c (meta_stack_remove, stack_do_window_deletions):
          replace our own cast with glib macro designed to do the same thing

2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c, src/compositor/compositor-xrender.c: add checks
          for HAVE_SHAPE where appropriate.
        * src/core/xprops.c: fix type error which was causing warnings.

2008-06-28  Thomas Thurman  <tthurman@gnome.org>

        Some refactoring, simplifying, and commenting of the non-composited
        effects code.  effects.c could still do with some polish, which will
        come along later.

        * src/core/effects.h (meta_push_effect_handler): removed since it's
          never used and does nothing very useful.
        * src/core/effects.h (meta_pop_effect_handler): removed since its
          only effect is to crash the program.
        * src/core/effects.h (META_MINIMIZE_ANIMATION_LENGTH,
          META_SHADE_ANIMATION_LENGTH): move to effects.c because they're used
          nowhere else.
        * src/core/effects.c: there were three versions of the box-zoom effect.
          Remove the one which was never used, and make only the ones which
          are used with certain configure settings be compiled.
        * src/core/effects.h (meta_effect_end): move to effects.c, make static,
          and rename to effect_free.
        * src/core/effects.h (meta_effects_draw_box_animation): move to
          effects.c, make static, and rename to draw_box_animation.
        * src/core/effects.h (MetaEffectType): remove the values which weren't
          used.
        * src/core/window.c (meta_window_shade): remove commented-out code to
          call effect for shading.
        * src/core/effects.h (MetaEffectFinish): remove useless MetaEffect
          parameter.
        * src/core/window.c (finish_minimize): remove MetaEffect parameter.

2008-06-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/stack.h: Commented everything.

2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Keep the compiler from giving some warnings.
        
        * src/compositor/compositor-xrender.c (xrender_begin_move,
          xrender_update_move, xrender_end_move, xrender_free_window): four
          functions which were never called and contain no code #iffed out.
        * src/tools/metacity-mag.c (grab_area_at_mouse): fixed typecast error.

2008-06-26  Thomas Thurman  <tthurman@gnome.org>

        Refactor so the long scary stack functions are less long and scary:

        * stack.c (stack_ensure_sorted): the five parts of this long function
          broken out into the new functions stack_do_window_deletions,
          stack_do_window_additions, stack_do_relayer, stack_do_constrain
          (which was already separate: see next) and stack_do_resort.
        * stack.c (constrain_stacking): renamed to stack_do_constrain.
        * stack.c (stack_ignore_sorted): lose meta prefix since it's static.
        
2008-06-16  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.55.

2008-06-16  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.34 release.

2008-06-16  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.34 release.

2008-06-13  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.c: Some commenting.

        * src/core/prefs.c: Added unified handling of integer preferences.
          Re-ordered fields in existing preferences so that changing to
          a union-based system will be easier in the future.

2008-06-10  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest/tokentest.c (draw_string_to_spec): doubles are
	  %f or %g, not %d
        * test/tokentest/tokentest.ini: re-created fair copy accordingly

2008-06-10  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest:  A preliminary attempt at a test for the
          theme expression tokeniser.

2008-06-05  Thomas Thurman  <tthurman@gnome.org>

        * src/compositor/compositor-xrender.c (paint_root, destroy_win,
        create_root_buffer, paint_windows, repair_screen, window_has_shadow,
        xrender_set_active_window, paint_dock_shadows, unmap_win, restack_win,
        make_shadow, resize_win, process_property_notify, free_win,
        process_configure_notify, process_circulate_notify, add_damage):
        defensive programming; check meta_screen_get_compositor_data()
        throughout in case it returns NULL.  In particular, when this
        happened in a certain situation in xrender_set_active_window
        this caused a segfault; refs #530702 (and LP#178953 has more data)
        but this doesn't close them.

2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.34 release.

2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: make sure compositor things don't get
        compiled when we're not using the compositor.

2008-06-02  Thomas Thurman  <tthurman@gnome.org>

        * test/metacity-test: new test script, imported from
        branch.

2008-05-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.h: fix comments (number)

2008-05-30  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window-props.h: commenting

2008-05-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (handle_preference_update_string,
        meta_prefs_remove_listener, queue_changed): Make disabling
        gconf work again.  Closes #530870.

2008-05-26  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.34.

2008-05-26  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.21 release.

2008-05-26  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: added in two files needed for Iain's
          changes earlier to work in a release tarball

2008-05-24  Iain Holmes  <iain@gnome.org>

	* src/compositor/compositor-xrender.c: Add Dropdown menu atoms so we
	can add shadows to them. Fixes #517442
	Handle tooltips as well. Fixes #517524

2008-05-24  Iain Holmes  <iain@gnome.org>

	* src/compositor/compositor.c: Check the compositor isn't NULL before 
	dereferencing it. Fixes #534569
	(meta_compositor_get_window_pixmap): Actually return a value

2008-05-19  Iain Holmes  <iain@gnome.org>

	* src/core/window.c: Applied patch from Ed Catmur to fix #528787

2008-05-19  Iain Holmes  <iain@gnome.org>

	* src/include/frame.h
	* src/include/display.h
	* src/include/xprops.h
	* src/include/compositor.h
	* src/include/types.h
	* src/include/window.h
	* src/include/errors.h
	* src/include/screen.h: New basic public API for compositor.

	* src/compositor/*: Separate the compositor out into its own separate
	directory and set it up for backends. Initial XRender backend.

	* src/core/compositor.[ch]: Remove

	* src/core/frame.h
	* src/core/screen.h
	* src/core/display.h
	* src/core/window.h: Rename to -private.h so as not to clash with the
	new files in include

	* src/core/delete.c
	* src/core/workspace.h
	* src/core/stack.[ch]
	* src/core/keybindings.[ch]
	* src/core/errors.c
	* src/core/effects.[ch]
	* src/core/core.c
	* src/core/group.h
	* src/core/edge-resistance.[ch]
	* src/core/window-props.[ch]
	* src/core/constraints.h
	* src/core/bell.[ch]
	* src/core/iconcache.h
	* src/core/session.[ch]
	* src/core/main.c
	* src/core/place.h
	* src/core/xprops.c
	* src/ui/tabpopup.c: Use the new -private headers
	
	* src/core/display.c
	* src/core/frame.c
	* src/core/window.c
	* src/core/screen.c: Add the API functions required by the compositor

	* src/Makefile.am: Relocate the new files

2008-05-13  Robert Escriva  <me@robescriva.com>

        * src/ui/theme.h (struct): remove color_set flag
        * src/ui/theme.c (meta_color_spec_render,
          meta_color_spec_new_from_string): remove check of color_set flag
          before rendering (we always do it now).  Closes #511826.

2008-05-12  Thomas Thurman  <tthurman@gnome.org>

        * tools/xlib.py: Basic Python-based Xlib client for testing
          and building upon.

2008-05-09  Elijah Newren  <newren gmail com>

	* src/ui/color.[ch]:
	Remove these two unused files

2008-05-04  Thomas Thurman  <tthurman@gnome.org>

        Added curly brackets in two places to keep -pedantic happy.

        * src/core/window-props.c (meta_display_init_window_prop_hooks)
        * src/core/group-props.c (meta_display_init_group_prop_hooks)

2008-05-03  Matt Krai  <mkraai@beckman.com>

        * src/core/delete.c (io_from_ping_dialog): fix type of "len" variable
          (refs #526049)
2008-05-02  Thomas Thurman  <tthurman@gnome.org>

        All information should live in exactly one place.  This means
        that the list of atoms should not be replicated anywhere.
        Therefore, we include it via x-macros.  Closes #530843.

        * src/core/atomnames.h: added list of atom names
        * src/Makefile.am: added reference to new file
        * src/core/display.h
        * src/core/display.c (twice)
        * src/core/screen.c: #included atomnames.h instead of having
          an enormous list of atoms
        * src/core/group-props.c
        * src/core/window.c
        * src/core/compositor.c
        * src/core/window-props.c
        * src/core/delete.c
        * src/core/workspace.c
        * src/core/stack.c
        * src/core/keybindings.c
        * src/core/iconcache.c
        * src/core/group.c
        * src/core/xprops.c: changed to new, simpler identifiers
          for atoms

2008-04-29  Chris Wang  <chris.wang@sun.com>

        * src/core/window.c (meta_window_new): XGetWindowAttributes
          can return an error value, and if it does its other results
          are invalid! (#530485)

2008-04-29  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/fixedtip.[ch]: documentation

2008-04-27  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.21.

2008-04-27  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.13 release.

2008-04-27  Erwann Chenede  <erwann.chenede@sun.com>

        * src/core/place.c (meta_window_place): re-enable cascade
          code which was wrongly removed a year ago.  Closes #529925.

2008-04-22  Carlos Garnacho  <carlos@imendio.com>

        * src/core/compositor.c (process_property_notify,
        find_window_in_display): Propagate opacity to frame window.

2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.13.

2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.8 release.

2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.21.8.
	(Which was seriously belated.  Sorry, folks.)

2008-04-22  Thomas Thurman  <tthurman@gnome.org>

        * src/core/effects.c: a few comments

2008-04-10  Lucas Rocha  <lucasr@gnome.org>

	* src/Makefile.am: no need to create a symlink to .desktop file in
	default-session directory anymore as gnome-session will find
	metacity's .desktop in its original place.

2008-04-07  iain  <iain@gnome.org>

	* src/core/compositor.c (hide_overlay_window): Hide the overlay window
	(meta_compositor_unmanage_screen): Release the compositor overlay.
	(#526770)

2008-04-07  Jens Granseuer  <jensgr@gmx.net>

	* src/core/session.c: (save_state),
	(warn_about_lame_clients_and_finish_interact):
	reorder declarations so we don't break C89 compilers.

2008-04-06  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.5 release.

2008-04-03  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (handle_preference_update_bool): preferences
        which have a null target don't get updated! (#526016)

2008-03-29  Lucas Rocha  <lucasr.at.mundo@gmail.com>

        * src/metacity.desktop.in, src/Makefile.am: make Metacity
        install its desktop files in the default session directory
        as required by the new gnome-session.  (Closes #525051.)

2008-03-29  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/preview-widget.c (meta_preview_get_clip_region):
        prevent null dereference if the theme was invalid, which
        caused crashes in gnome-appearance-properties.  No GNOME
        bug number, but I believe this is a fix for Launchpad bug
        #199402 and its many duplicates.

2008-03-28  Owen Taylor  <otaylor@redhat.com>

        * src/core/window.c (meta_window_new_with_attrs): Don't
        immediately unminimize an initially iconic window (#491090)

2008-03-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/session.c (regenerate_save_file, save_state, load_state):
        files are saved in ~/.config/metacity/sessions and checked for there
        and in ~/.metacity/sessions.  Fixes #518596.

2008-03-27  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (meta_display_close): fix regression
        where Metacity sometimes wouldn't quit when replaced

2008-03-26  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (event_callback): meta_display_screen_for_root
        is quite capable of returning NULL.

2008-03-25  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c (meta_display_queue_retheme_all_windows,
        meta_set_syncing, meta_display_set_cursor_theme, disable_compositor,
        meta_display_for_x_display, meta_display_open, meta_display_close,
        meta_display_ungrab): MetaDisplay becomes a singleton.  The static
        variable which holds this singleton is renamed "the_display" so as
        not to mask the this parameter in the methods.

        * src/core/main.c (main):
        * src/core/session.c (warn_about_lame_clients_and_finish_inte,
        save_state, io_from_warning_dialog):
        * src/core/core.c (meta_core_increment_event_serial):
        * src/core/delete.c (release_window_with_fd, search_and_destroy_window):
        sympathy changes for this, and consequent simplification.
        Closes #499301.

2008-03-21  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.5.

2008-03-21  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.3 release.

2008-03-21  Thomas Thurman  <tthurman@gnome.org>

        * src/ui/menu.c (activate_cb, get_workspace_name_with_accel): Workspaces
	whose name is the standard name plus a non-empty string are handled
	correctly in menus.  Closes #453678.

2008-03-19  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c (meta_compositor_set_active_window): Handle
	compositor being disabled and don't crash.

2008-03-19  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c (meta_compositor_set_active_window): Add a 
	screen argument.
	(process_property_notify): Damage the whole screen when the background	
	changes. Fixes 522599 
	(add_repair): Use the idle instead of the timeout. Fixes 522166
	(unmap_win): If the window is also focus window NULLify it.

	* src/core/window.c (meta_window_notify_focus): Notify when a window
	has lost focus, pass in screen as well.

2008-03-18  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c (window_has_shadow): Allow shaped windows 
	_with frames_ to have shadows.
	(meta_compositor_set_active_window): Watch for the focus of windows
	and change the size of the drop shadows.
	(generate_shadows): Create differently sized shadows.
	(meta_compositor_get_window_pixmap): Get the xwindow correctly.

	* src/core/window.c (meta_window_notify_focus): Set the active window
	in the compositor.

2008-03-18  Marco Pesenti Gritti  <mpgritti@gmail.com>

        * src/core/window.c (window_would_be_covered): newly created windows
	can't be considered to be above themselves; fixes bug #519188.

2008-03-11  Matthew Wilson  <msw@gimp.org>

        * src/core/keybindings.c (meta_display_process_key_event, process_event,
        find_handler, process_mouse_move_resize_grab): allow moving workspace
	while moving window with modifier
        * src/core/workspace.c (meta_workspace_activate_with_focus): remove the
	correct window on jumping workspace while moving

2008-03-10  Josh Lee  <jleedev@gmail.com>

        * src/core/compositor.c (window_has_shadow): Don't shadow
	shaped windows.

2008-03-07  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.3.

2008-03-07  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.2 release.

2008-03-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/prefs.c (mouse_button_mods_handler): remove
	debug statements (*blush*)

2008-03-06  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.2.

2008-03-06  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.1 release.

2008-03-06  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: basic md5 printing (not used yet);
	also print release announcements to stdout (eventually will
	need to be emailed to release list and blogged)

2008-03-06  Thomas Thurman  <tthurman@gnome.org>

	Part three of the great prefs refactor, this time
	dealing with string preferences.  (This was the most
	complicated part, and has been especially tested and
	valground before committing.  As ever, though, let us
	know if you find a problem.)

        * src/core/prefs.c (MetaStringPreference): new struct.
	* src/core/prefs.c (update_*): replaced with *_handler
	* src/core/prefs.c (meta_prefs_init): uses new string prefs
	  init; uses array of gconf dirs to monitor rather than
	  repeating code.
	* src/core/prefs.c (handle_preference_init_enum): tidying
	* src/core/prefs.c (change_notify): uses new string prefs

2008-03-04  Thomas Thurman  <tthurman@gnome.org>

        * MAINTAINERS: added some spacing to see whether it
	helps Pulse

2008-03-03  Cosimo Cecchi  <anarki@lilik.it>

	Add ability to vertically and horizontally maximise
	using the mouse, by clicking the titlebar in various
	ways.  A very similar patch was received from Jason Ribero.
	Thanks also go to Tony Houghton and Carlo Wood, who
	both submitted patches which solved this differently.
	Closes #358674.

        * src/include/common.h (MetaActionTitlebar): new values
	for the new actions
        * src/core/core.c (meta_core_maximize_{vertic|horizont}ally):
	new functions.
        * src/ui/frames.c (meta_frame_titlebar_event): handle the
	new action values
        * src/core/window.h: new macros (for regularity, not really
	necessary)
        * src/core/prefs.c (symtab_titlebar_action): new string
	representations of the action values
        * src/metacity.schemas.in: documentation

2008-02-29  Andrea Del Signore  <sejerpz@tin.it>

	Add support for "spacer" as a button type which adds some
	empty space. Closes #509165.

        * src/ui/theme.c (meta_frame_layout_calc_geometry),
          src/include/common.h (MetaButtonLayout),
          src/core/prefs.c (update_button_layout, button_layout_equal),
          src/metacity.schemas.in: add spacer support

2008-02-28  Thomas Thurman  <tthurman@gnome.org>

        * src/core/compositor.h: removed unnecessary #include which
	should have been in Jim's patch (not sure how it slipped
	through the tests!)

2008-02-27  Jim Huang  <jserv.tw@gmail.com>

        * src/core/spring-model.[ch]: deleted as no longer used
        * src/Makefile.am: modified accordingly

2008-02-27  Thomas Thurman  <tthurman@gnome.org>

	Lots of tiny fixes to make sure we compile with
	"gcc -ansi -Werror".

2008-02-26  Jens Granseuer  <jensgr@gmx.net>

        * src/core/constraints.c (constrain_aspect_ratio,
	constrain_size_limits, constrain_size_increments):
	reorder declarations so we don't break C89 compilers.
	Closes #518917.

2008-02-26  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.23.1.

2008-02-26  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.23.0 release.

2008-02-26  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: ANY post-release bump is now the
	most recent, not just the one that matches the current version.
	Otherwise, you can't use these tools straight after a branch.
	The changeset before this one was mislabelled because of this.
	It has now been excised from the changelog.

2008-02-25  Thomas Wood  <thos@gnome.org>

        * src/ui/preview-widget.[ch] (meta_preview_get_clip_region):
	allow users of the preview widget to get a mask for windows
	in the correct shape for the current theme.

2008-02-23  Thomas Thurman  <tthurman@gnome.org>

	Refactor handling of boolean preferences.

        * src/core/prefs.c (handle_preference_init_bool,
	handle_preference_update_bool): new functions.
	* src/core/prefs.c (meta_prefs_init, change_notify):
	use the new functions.
	* src/core/prefs.c (update_*): several of these removed whose
	only purpose was to receive boolean preferences.
	* src/core/prefs.c (cleanup_error, get_bool): moved down to make
	the flow of ideas more obvious.
	* src/core/prefs.c (maybe_give_disable_workarounds_warning): new
	function containing duplicated code from elsewhere.
	* src/core/prefs.c (init_button_layout): only compiled when
	HAVE_GCONF is not defined. Removed a compiler warning.

2008-02-23  Thomas Thurman  <tthurman@gnome.org>

	* tools/commit-wrangler.py: Print URL of changeset on success.

2008-02-23  Thomas Thurman  <tthurman@gnome.org>

        Refactored handling of enumerated preferences.

        * src/core/prefs.c (handle_preference_init_enum,
	handle_preference_update_enum): new functions.
        (meta_prefs_init, change_notify): use regularised
	forms and remove old copy-and-pasted code.
	Also many small similar functions removed which
	only existed to deal with each kind of enum.
	Also some amount of correction of which parts were
	and weren't inside "#ifdef HAVE_GCONF" blocks.


2008-02-21  Mikkel Kamstrup Erlandsen  <mikkel.kamstrup@gmail.com>

	* src/core/constraints.c: Respect requested position on
	_NET_MOVERESIZE_WINDOW. Closes #448183.

2008-02-18  Matthias Clasen  <mclasen@redhat.com>

	* src/core/window.h: Make skip-taskbar windows appear in the
	Ctrl-Alt-Tab list. Closes #106249.

2008-02-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: if we have libSM and its headers,
	that means we did find it, not that we didn't.
	Closes #328210.

2008-02-18  Thomas Thurman  <tthurman@gnome.org>

        * src/core/window.c (warp_grab_pointer): When
	resizing a window with the keyboard, stay one 
	pixels from the edges so that the cursor remains
	resting on a window edge even if we escape,
	whatever side it was on. Closes #436257.

2008-02-17  Thomas Thurman  <tthurman@gnome.org>

        * tools/commit-wrangler.py: added new script to manage commits

2008-02-17  Jim Huang  <jserv.tw@gmail.com>

        * src/core/prefs.c (update_binding): Allow compilation
	when gconf mode is disabled. Closes #515019.

2008-02-14  Jim Huang  <jserv.tw@gmail.com>

	* src/core/display.c, src/core/util.c: fixups to allow
	compilation in non-verbose mode. Closes #515152.
	
2008-02-12  Thomas Thurman  <tthurman@gnome.org>

	* configure.in: Correct help for verbose option name.
	
2008-02-12  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-branch bump to 2.23.0.

2008-02-12  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.21.21.

2008-02-11  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.13 release.

2008-02-04  Thomas Thurman  <tthurman@gnome.org>

        * src/core/compositor.c: only use compositor version if
	we have a compositor. Closes #514453.

2008-02-04  Thomas Thurman  <tthurman@gnome.org>

        * configure.in, src/ui/ui.c: remove workaround for a problem
        in GTK 1.3.9(!) which was causing problems. Closes #513737.

2008-01-28  Michael Meeks  <michael.meeks@novell.com>

	* src/core/display.c (meta_display_open),
	* src/core/compositor.c: fetch & use composite
	version, for remote screens that don't match the
	compile system's version.
	(meta_compositor_manage_screen): bin erroneous FIXME.
	(add_win): remove common warning churn for (very)
	transient windows

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/patch-wrangler.py: another program I use for maintenance
	which other people might find useful and which should probably
	be in svn. Also not very polished.

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * test/tokentest/tokentest.c, test/tokentest/tokentest.ini: added
	new files for a regression test on the tokeniser. (They aren't very
	polished at the moment and aren't included in the autotools build.)

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: Post-release bump to 2.21.13.

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.8 release.

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: Fix quoting error and added some
	more error checking.

2008-02-03  Thomas Thurman  <tthurman@gnome.org>

        * tools/release-wrangler.py: basic release script; needs work,
	but probably good enough for the current unstable release

2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: core.h is in include, not core. (Last one, I
	    promise.)

2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: main.h is in include, not core.

2008-02-02  Thomas Thurman  <tthurman@gnome.org>

        * src/Makefile.am: draw-workspace.h is in ui, not core.

2008-02-01  Alex R.M. Turner  <armtuk@gmail.com>

	* src/core/display.c (meta_get_tab_entry_list): Have the list also pull 
          windows that are in other workspaces that have the  
          wm_state_needs_attention flag set
        * src/core/window.c (meta_window_set_demands_attention): Make windows that
          are on other workspaces that demand attention that aren't obscured
          count as being obscured
	Bug #333548.

2008-01-28  Christian Persch  <chpe@gnome.org>

	* src/core/display.c (convert_property):
	* src/core/screen.c (meta_screen_calc_workspace_layout):
	* src/core/xprops.c (meta_prop_get_values): 
	Use G_STRFUNC instead of the deprecated G_GNUC_FUNCTION.
	Bug #512561.

2008-01-21  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/theme.[ch]: more commenting.

2008-01-18  Thomas Thurman  <tthurman@gnome.org>

	* src/ui/theme.[ch]: some more commenting.
	
2008-01-16  Thomas Thurman  <tthurman@gnome.org>

	* src/core/bell.c: Correct comment.
	* src/core/main.c: Correct comment.
	* src/ui/theme.c: Much commenting; #ifdeffed-out
	debug code removed.
	* src/ui/theme.h: Much commenting.

2008-01-13  Thomas Thurman  <tthurman@gnome.org>

	* src/core/bell.c: Commenting.
	* src/core/main.c: Commenting, and fixing existing comments.
	
2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.c: Refactor repeated lines in main() to
	iterate instead.

2008-01-12  Thomas Thurman  <tthurman@gnome.org>

	* src/core/main.[ch] (meta_get_main_loop): removed as it
	was never used.
	* src/core/main.c: lots of comments.
	* src/core/main.c (version): copyright year is 2008.
        * src/core/c-screen.[ch], src/core/c-window.[ch]: removed
	files from Søren's compositor which were removed by the
	merge with Iain's compositor but reintroduced by the split
	to separate subdirectories.
	* src/core/display.c: fix comments.

2008-01-12  Thomas Thurman  <tthurman@gnome.org>

	* src/core/display.c: reinstated missing first character!
	* Doxyfile: correct reordering of blank fields.

2008-01-12  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: change comments from /*! to /** because the
	other way makes doxygen think they are Qt comments, which messes
	up brief descriptions.
	* Doxyfile: check in so other people can generate documentation
	too.

2008-01-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: further commenting (trying to keep comment
	    addings down to once a day at most so you don't all get spammed
	    too much).

2008-01-07  Thomas Thurman  <tthurman@gnome.org>

        * src/core/main.c (main): g_free is a no-op on nulls; there is no
	need to test.

2008-01-06  Thomas Thurman  <tthurman@gnome.org>

        * src/core/display.c: Function commenting marathon; more to come.

2008-01-02  Thomas Thurman  <tthurman@gnome.org>

	* src/core/xprops.c (meta_prop_get_cardinal), src/core/compositor.c
	(timeout_debug): Two really minor coding standards layout tweaks.

2007-12-27  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c: Don't do anything in 
	meta_compositor_free_window, it doesn't seem to be needed and breaks
	things very badly. http://bugzilla.gnome.org/show_bug.cgi?id=504876

2007-12-27  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c: When a window is mapped, don't set damaged to
	TRUE. Fixes a bug when redrawing shadows.

2007-12-25  Iain Holmes  <iain@gnome.org>

	* src/core/compositor.c: USe the compositor overlay window instead of
	the root window. 
	
2007-12-21  Paolo Borelli  <pborelli@katamail.com>

	* src/core/core.c (meta_invalidate_default_icons): do not leak list.

	* src/core/edge-resistance.c 
	(meta_display_compute_resistance_and_snapping_edges): ditto.

	* src/core/workspace.c (meta_workspace_index): small cleanup in list
	handling.

2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/core/display.c (meta_display_open): fix a third warning
	about %d and long int

	* src/core/delete.c (io_from_ping_dialog): fix another warning
	about long int to %d

	* src/core/compositor.c (meta_compositor_new): fix a warning about
	long int to %d

	* src/core/iconcache.c (meta_read_icons): use
	meta_ui_get_fallback_icons() instead of incorrectly including theme.h

	* src/ui/ui.c (meta_ui_get_fallback_icons): new function

2007-12-19  Havoc Pennington  <hp@redhat.com>

	* src/ui, src/core, src/include: sort source files into these
	directories according to which part of the WM they are supposed to
	be in. In an eventual plan, we should also create
	src/compositor/render, src/compositor/fallback and move some of
	the compositor stuff into that.
	
	* autogen.sh: require a newer automake, so we don't have to use
	a recursive build

	* src/ui/tabpopup.c: put in a hack to make the build temporarily
	work, want to commit the large rearrangement before fixing this
	not to include workspace.h or frame.h

	* src/core/iconcache.c (meta_read_icons): temporarily break this
	to get the build to work, want to commit the large rearrangement
	before fixing this file not to include theme.h

2007-12-19  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.8.

2007-12-19  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.5 release.

2007-12-19  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: print "Subversion" and not "CVS".

2007-12-18  Thomas Thurman  <tthurman@gnome.org>

        * configure.in: compositor enabled by default.

2007-12-18  Iain Holmes  <iain@gnome.org>

        * configure.in, src/theme.c, src/display.c,
      src/theme.h, src/display.h, src/theme-parser.c,
      src/compositor.c, src/c-screen.c, src/compositor.h,
      src/c-screen.h, src/ui.c, src/screen.c, src/ui.h,
      src/screen.h, src/c-window.c, src/c-window.h,
      src/theme-viewer.c, src/Makefile.am: Merge compositor branch.

2007-12-14  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.5.

2007-12-14  Thomas Thurman  <tthurman@gnome.org>

        * NEWS: 2.21.3 release.

2007-12-11  Thomas Thurman  <tthurman@gnome.org>

        * src/theme-parser.c: remove dead code; closes #501365.

2007-12-08  Thomas Thurman  <tthurman@gnome.org>

	* src/metacity.schemas.in: rewrite long description of
	/schemas/apps/metacity/general/focus_new_windows because we
	love the translators really. Closes #474889.

2007-12-08  Matthias Clasen  <mclasen@redhat.com>

	* src/menu.c (meta_window_menu_new): check for null before adding
	menu; closes #496054.

2007-12-08  Thomas Thurman  <tthurman@gnome.org>

	* src/keybindings.c (meta_display_process_key_event): Recur if the
	keypress ended a grab, so it can be processed in its own right.
	Closes #112560.

2007-12-08  Martin Meyer  <elreydetodo@gmail.com>

	* src/theme-parser.c (parse_draw_op_element): Fix
	typo where wrong variable was checked (reported by
	Kjartan Maraas). Closes #501362.
	
2007-11-19  Lucas Rocha  <lucasr@gnome.org>

	* src/main.c (main): try to get the session client ID from 
	DESKTOP_AUTOSTART_ID environment variable in case the --sm-client-id 
	is not used. Closes #498033.

2007-11-17  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.3.

2007-11-17  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.21.2 release.

2007-11-17  Benjamin Gramlich  <benjamin.gramlich@gmail.com>

        * src/theme-parser.c (meta_theme_load): make our theme
        search compliant to the XDG Base Directory Specification.
        Closes #480026.

2007-11-15  Thomas Thurman  <thomas@thurman.org.uk>

	* src/api.[ch]: remove almost-unused files.
	* src/colors.[ch]: move the used parts of api.[ch] in here.
	Closes #496947.
	
2007-11-13  Peter Bloomfield  <pbloomfield@bellsouth.net>

        * src/window.c: (meta_window_save_user_rect): new helper, saves
	only unmaximized dimensions, and not when fullscreen.
        (meta_window_move_resize_internal,
	meta_window_move_resize_request): use it.  (#461927)

2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: Post-release bump to 2.21.2.

2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.21.1 release.

2007-11-11  Thomas Thurman  <thomas@thurman.org.uk>

        * src/window.c (meta_window_show): adjust expression which decides
        whether new windows should not go on top, so that restacking happens
        only the first time a window is mapped. Thanks to Olav Vitters for
        pointing out the problem. Re-fixes #486445.

2007-11-11  Alex R.M. Turner  <armtuk@gmail.com>

        * src/tabpopup.c (tab_entry_new, meta_ui_tab_popup_new): Instruct the
        GtkLabel in the tabpopup to ellipsize text that is too big.  Set the 
        maximum window width of the tabpopup to screen_width/4, which seems a 
        sensible size for the popup.

2007-11-09  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_new_with_attrs): If a window is
	launched without any kind of launch timestamp, grab the current
	time and stash it away.  When transients of that window are also
	launched without a timestamp, we can use the stashed timestamp
	from the parent.  Fixes #488468.

2007-11-07  Federico Mena Quintero  <federico@novell.com>

	* src/window-props.c (reload_net_wm_user_time_window): Fix typo;
	the arguments to meta_window_reload_property_from_xwindow() were
	reversed.  This is why the wm_user_time wasn't getting initialized
	properly from the _NET_WM_USER_TIME_WINDOW.  Fixes part of 
	http://bugzilla.gnome.org/show_bug.cgi?id=488468

2007-11-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/window.c (meta_window_move_resize_internal): save
	unmaximized part of client root coords. (#461927)

2007-11-06  Peter Bloomfield  <pbloomfield@bellsouth.net>

	* src/window.c (meta_window_move_resize_internal): do not save
	client root coords while window is maximized. (#461927)

2007-10-30  iain Holmes <iain@gnome.org>

	* src/main.c (meta_parse_options): Add --sync option
	(main): Check if the --sync option was passed on command line.

2007-10-28  Jans Granseuer  <jensgr@gmx.net>

        * src/preview-widget.c (meta_preview_finalize): Free title of
	preview when the preview is destroyed. Closes #469682.

2007-10-27  Alex R.M. Turner  <armtuk@gmail.com>

        * src/tabpopup.c (tab_entry_new): Truncate the string to 
        max_char_per_title before adding bold tags and fix general flow of
        function.

2007-10-16  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.c (window_would_be_covered): new function.
	* src/window.c (meta_window_show): rewrite assertion not
	to put window on top in terms of window_would_be_covered();
	remove assertion because it's no longer valid; explicitly
	don't focus windows that shouldn't be focussed; closes #486445.

2007-10-14  Thomas Thurman  <thomas@thurman.org.uk>

	* configure.in: Post-branch bump to 2.21.1.

2007-10-03  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Remove circular dep metacity<->gnomecc.

2007-09-15  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.20.1

2007-09-15  Elijah Newren  <newren gmail com>

	* configure.in:
	* NEWS:
	2.20.0 release

2007-09-15  Elijah Newren  <newren gmail com>

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	Patch from Alexey Rusakov to prevent a crash on logout with
	metacity subsequently not being restored in future sessions.
	Fixes #433253.

2007-09-01  Elijah Newren  <newren gmail com>

	* HACKING: update; cvs->svn & mention GConf needed
	* MAINTAINERS: Make it match idiotic format requirements (I love
	you Olav!)

2007-08-07  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.19.89.

2007-08-07  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.19.55 release.
	
2007-08-06  Thomas Thurman  <thomas@thurman.org.uk>

	If KEY_AUTO_RAISE_DELAY is undefined or non-integer, it is not treated
	as zero.

	* src/prefs.c (meta_prefs_init): check type of key, and behave sensibly
	if it's unexpected.
	* src/prefs.c (find_and_update_list_binding): remove old comment.

2007-08-03  Frederic Crozat  <fcrozat@mandriva.com>

	* src/delete.c: Fix mangled window title in "Force Quit"
	dialog when using non-UTF8 locale. Close #462734.

2007-08-02  Thomas Thurman  <thomas@thurman.org.uk>

        Move "close" to bottom of window menu; allow workspace list to appear
	at any position in the menu. Closes #104026.

	* src/menu.c (MetaMenuItemType): added new MENU_ITEM_WORKSPACE_LIST
        item.
	* src/menu.c (menuitems): reordered "close", added a workspace list.
	* src/menu.c (menu_item_new): return null for workspace lists.
	* src/menu.c (meta_window_menu_new): handle workspace lists.

2007-07-31  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.c (meta_window_show_menu): windows which are
	always on top have the "stick" menu option insensitive. (#460997).

2007-07-23  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.h (MetaWindow): Put all bitfields together to
	help with optimisation. Closes #450271 (for real this time).

2007-07-23  Matthias Clasen  <mclasen@redhat.com>

	* configure.in:
	* src/Makefile.am: Use the correct directory when
	installing keybindings.  (#454055)

2007-07-22  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.19.55.

2007-07-22  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.19.34 release.

2007-07-22  Rob Bradford  <rob@robster.org.uk>

	Fix a bug where the window can be focused without being raised
	if the maximize is aborted. Fixes #459027.

        * src/frames.c (meta_frames_button_press_event,
        meta_frames_button_release_event): When maximising only focus
	the window once the button press is released.

2007-07-22  Cosimo Cecchi  <anarki@lilik.it>

	Unset fullscreen is an allowed action where relevant. Fixes #449427.

	* src/window.c (set_allowed_actions_hint): Separate FULLSCREEN action
	from RESIZE action.

2007-07-22  Yair Hershkovitz  <yairhr@gmail.com>

	Reverse window buttons and align them to the left for RTL locales.
	Fixed #92212.

	* src/prefs.c (button_layout, init_button_layout, update_button_layout):
	Support reversing and left-aligning of buttons for both Gconf and
	NO-Gconf modes. 
	* src/main.c (main): Call meta_ui_init() before meta_prefs_init().
	meta_prefs_init() check for RTL locales which is initialized in
	meta_ui_init().
	* src/theme.c (meta_frame_layout_calc_geometry): Fixed access to
	button_layout to stop iterating when getting to a
	META_BUTTON_FUNCTION_LAST value.

2007-06-23  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.c (MetaWindow): Put all bitfields together to
	help with optimisation. Closes #450271.

2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

	* src/main.c (version): Update copyright year because it was
	five years out of date.

2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.19.34.

2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.19.21 release.

2007-06-18  Thomas Thurman  <thomas@thurman.org.uk>

	* src/place.c (find_first_fit, meta_window_place): Only open new
        windows on the current xinerama. Closes #145503, for now.

2007-06-17  Thomas Thurman  <thomas@thurman.org.uk>

	* src/screen.[ch] (meta_screen_apply_startup_properties): return a
	boolean instead a void, to show whether startup properties were
        applied. Also some commenting.
	* src/window-props.c: (reload_net_startup_id): Only activate the
        window if the startup_id was actually changed. Closes #400167.

2007-06-16  Damien Carbery  <damien.carbery@sun.com>

        * effects.h: MetaCloseEffect and MetaFocusEffect, which were empty
	structs, #ifdeffed out because they broke the build on Solaris.
	Closes #397296.

2007-06-16  Damien Carbery  <damien.carbery@sun.com>

	* window.h: make prototype of meta_window_unqueue match
	implementation. Closes #446535.

2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.19.21.

2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.19.13 release.

2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>

	Refactor thrice-duplicated queue code in window.c. Closes #376760.

	* src/window.c (meta_window_queue, meta_window_unqueue):
	New functiortl.patchns.
	* src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
	Removed functions.
	* src/window.c (meta_window_new_with_attrs, meta_window_free,
	meta_window_flush_calc_showing, queue_calc_showing_func,
	meta_window_minimize, meta_window_unminimize, meta_window_maximize,
	meta_window_make_fullscreen, meta_window_shade,
	meta_window_unshade, meta_window_move_resize_internal,
	window_stick_impl, window_unstick_impl,
	meta_window_client_message, process_property_notify): Modified to
	use new queueing functions.
	* src/window.c (idle_move_resize, idle_update_icon,
	idle_calc_showing): update to receive queue number from pointer.
	* src/window.h (MetaQueueType): new enum.
	* src/window.h (MetaWindow): *_queued replaced with is_in_queue
	bitfield.
	* src/core.c (meta_core_queue_frame_resize):
	* src/display.c (event_callback,
	meta_display_queue_retheme_all_windows): Using new queueing functions.
	* src/frame.c (meta_window_destroy_frame): Using new queueing functions.
	* src/screen.c (queue_resize, meta_screen_resize_func,
	queue_windows_showing): Using new queueing functions.
	* src/window-props.c (reload_mwm_hints, reload_wm_hints,
	reload_transient_for): Using new queueing functions.
	* src/workspace.c (meta_workspace_add_window,
	meta_workspace_remove_window, meta_workspace_queue_calc_showing,
	meta_workspace_invalidate_work_area): Using new queueing functions.

2007-06-09  Thomas Thurman  <thomas@thurman.org.uk>

	* src/50-metacity-key.xml.in: added switch_group; closes #444879.

2007-06-08  Elijah Newren  <newren gmail com>

	* src/metacity.schemas.in:
	Update the raise_on_click description to try to prevent misuses,
	to appropriately warn users, and to stop wasting the time of
	application developers.  #445447, #389923

2007-06-06  Thomas Thurman  <thomas@thurman.org.uk>

	* frames.c, core.[ch]: changed all tabs to spaces.
	* core.[ch] (meta_core_get_client_size, meta_core_window_has_frame,
	meta_core_titlebar_is_onscreen, meta_core_get_client_xwindow,
        meta_core_get_frame_flags, meta_core_get_frame_type,
	meta_core_get_mini_icon, meta_core_get_icon, meta_core_get_position,
	meta_core_get_size, meta_core_get_frame_workspace,
	meta_core_get_frame_extents, meta_core_get_screen_size): Removed
        and replaced with meta_core_get().
	* core.[ch] (meta_core_get): New function.
	* core.h (MetaCoreGetType): New enum.
	* frames.c (meta_frames_ensure_layout, meta_frames_calc_geometry,
	meta_frames_get_geometry, meta_frames_apply_shapes,
	meta_frame_titlebar_event, meta_frames_button_press_event,
	populate_cache, clip_to_screen, meta_frames_paint_to_drawable,
	meta_frames_set_window_background, get_control): Replace use of
        removed functions in ui.c with meta_core_get().

        All this should make things a little faster. Closes #377495.

2007-06-04  Thomas Thurman  <thomas@thurman.org.uk>

	* NEWS: Added translators' names from 2.19.8 (sorry, folks:
	I forgot to save NEWS with their names in it before shipping.)

2007-06-04  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.19.13.

2007-06-04  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.19.8 release.

2007-06-04  Thomas Thurman  <thomas@thurman.org.uk>

	* src/metaaccellabel.c (meta_accel_label_expose_event): fix
	label layout for RTL languages. Closes #433400.

2007-06-03  Thomas Thurman  <thomas@thurman.org.uk>

	* src/frames.c (meta_frames_ensure_layout): Pango layout for
	titlebars should take LTR/RTL-ness from the underlying widget
	and not from sniffing the content. Closes #438944.

2007-05-25  Yair Hershkovitz  <yairhr@yahoo.com>

	* src/workspace.c (meta_workspace_get_neighbor): Add support
	for RTL languages so that alt-tab, etc., go the other way.
	* src/keybindings.c (handle_activate_menu): In RTL locales,
	pop up the menu on the right-hand side when the menu keystroke
	is pressed.
	* src/fixedtip.c (meta_fixed_tip_show): right-justify tooltips
	in RTL locales.
	* src/menu.c (popup_position_func): popup menus in RTL locales
	are flush with the right-hand side of the window where possible.
	* src/frames.c (show_tip_now, meta_frames_button_press_event):
	tooltips are aligned with the right-hand side of buttons in
	RTL locales.
	* src/ui.[ch] (meta_ui_get_direction, enum MetaUIDirection):
	New content.
	* src/window.c (meta_window_show_menu): "move left" appears above
	"move right" in the window menu for LTR locales, and vice versa
	for RTL locales.

	This is all to close bug #387893.

2007-04-24  Linus Torvalds  <torvalds@woody.linux-foundation.org>

	* src/prefs.[ch] (init_action_meta_prefs, meta_prefs_init,
	action_change_titlebar, change_notify, update_action_titlebar,
	meta_preference_to_string): Add code to configure what happens
	when the titlebar is right or middle clicked as well as
	double clicked.

2007-04-23  Elijah Newren  <newren gmail com>

        * configure.in: post-release bump to 2.19.8.

2007-04-23  Elijah Newren  <newren gmail com>

        * NEWS: 2.19.5 release.

2007-04-23  Elijah Newren  <newren gmail com>

	Fix some uninitialized memory usage errors.  #427385

	* src/frame.c (meta_window_ensure_frame):
	* src/frames.c (meta_frames_manage_window):
	Do not try to set the window background in
	meta_frames_manage_window() since the frame window is not yet
	created and not yet registered with the corresponding MetaWindow.
	Do it inside meta_window_ensure_frame() instead.

2007-04-17  Elijah Newren  <newren gmail com>

	Fix some fallout from #426519; update user_rect for all position
	changes prior to the window being marked as placed.  Prevents
	emacs in particular from flickering on start and always being
	shoved to the upper-left corner.

	* src/window.c (meta_window_move_resize_internal):
	Record position in user_rect if the window is not yet marked as
	placed too

	* src/window.c (struct MetaWindow, meta_window_new_with_attrs,
	  meta_window_move_resize_internal):
	Remove window->user_has_move_resized; it's not needed or used
	anymore.

	* src/window.[ch] (meta_window_get_user_position):
	Remove this function as it is no longer needed or used.

2007-04-16  Elijah Newren  <newren gmail com>

	Prevent metacity from "forgetting" which machine a window is on.
	#418552

	* src/window.c (meta_window_new_with_attrs): reorder the property
	loading so that we know the wm_client_machine when we load the
	name of the window and can modify the window name accordingly.

2007-04-16  Elijah Newren  <newren gmail com>

        * configure.in: post-release bump to 2.19.5.

2007-04-16  Elijah Newren  <newren gmail com>

        * NEWS: 2.19.3 release.

2007-04-15  Elijah Newren  <newren gmail com>

	Preserve stacking order across restarts.

	* src/display.c (meta_display_unmanage_windows_for_screen):
	unmap windows in stacking order so that stacking is preserved upon
	shutdown

	* src/display.[ch] (meta_display_stack_cmp):
	* src/session.c (stack_cmp, save_state):
	rename stack_cmp() -> meta_display_stack_cmp() and move it to a
	different function so that it can be used in both
	session.c:save_state() and
	meta_display_unmanage_windows_for_screen()

2007-04-15  Elijah Newren  <newren gmail com>

	Remove incorrect usage of window.h from menu.c.  See #426791 &
	#382962.

	* src/menu.c (enum MetaMenuItemType, variable menuitems,
	  meta_menu_item_new):
	cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff

	* src/menu.c (variable menuitems):
	* src/core.c (meta_core_get_menu_accelerator):
	* src/window.c (menu_callback, meta_window_show_menu):
	* src/common.h (enum MetaMenuOp):
	reinstate META_MENU_OP_UNABOVE

	* src/menu.c (meta_window_menu_new):
	remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE
	and clean it up while just setting STICK/UNSTICK activeness as
	necessary

	* src/menu.[ch] (meta_window_menu_new):
	* src/ui.[ch] (meta_ui_window_menu_new):
	make the active_workspace parameter an unsigned long

2007-04-15  Bruno Boaventura <brunobol@gnome.org>

	* src/menu.c (meta_window_menu_new): don't show the current
	workspace as a possible workspace to switch to.  Fixes #426791.

2007-04-12  Elijah Newren  <newren gmail com>

	* src/place.c (meta_window_place): do not auto-maximize windows
	larger than the workarea in only a single direction.  Fixes
	#419810.

2007-04-11  Elijah Newren  <newren gmail com>

	Make sure apps have correct info about their coordinates, even on
	unmap.  Fixes temporary hang with libXt (XtVaSetValues setting x &
	y coordinates).  #399552.

	* src/frame.c (meta_window_destroy_frame): Add a comment noting
	that the current choice causes the need for a ConfigureNotify
	event

	* src/window.c (meta_window_free): Send a configure notify event
	due to our XReparentWindow coordinate choices on withdrawal,
	(unmaximize_window_before_freeing): no need to send a configure
	notify from here since it is always done in meta_window_free new,
	(send_configure_notify): have to special case the coordinates used
	when withdrawing the window

2007-04-11  Thomas Thurman  <thomas@thurman.org.uk>

	Workaround for a gdk bug which dies with BadAlloc if you try
	to allocate an insanely huge rectangle for an insanely huge
	window. Fixes #399529.

2007-04-11  Elijah Newren  <newren gmail com>

	Advertise support of Above and Below operations (assuming the
	proposed EWMH additions of _NET_WM_ACTION_(ABOVE|BELOW) will be
	accepted, otherwise these changes will have to be modified).  Part
	of #115247.

	* src/display.[ch] (meta_display_open, struct MetaDisplay):
	* src/screen.c (set_wm_check_hint):
	Add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW

	* src/window.c (set_allowed_actions_hints):
	add active_above and action_below

2007-04-10  Elijah Newren  <newren gmail com>

	* src/window.c (recalc_window_features): make sure to set
	_NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have sensitive
	but ineffective menu items.  The "On Top" item is now buggy, but
	due to the fact that _NET_WM_ACTION_ABOVE is not yet defined in
	the EWMH.  Fixes #115247.

2007-04-09  Elijah Newren  <newren gmail com>

	Add support for _NET_MOVERESIZE_WINDOW.  Based on patch from
	Magnus Therning.  #344521.

	* src/display.c (handle_net_moveresize_window, event_callback):
	Remove handle_net_moveresize_window() and the call to it; this
	code was highly buggy, though to be fair it was never tested and
	had simply been put into the code in commented out form.

	* src/screen.c (set_supported_hint):
	add atom_net_moveresize_window

	* src/window.[ch]:
	(meta_window_configure_request, meta_window_move_resize_request):
	Split out the moving/resize part of the configure request and put
	it into meta_window_move_resize_request

	(meta_window_client_message):
	check for NET_MOVERESIZE_WINDOW messages and call
	meta_window_move_resize_request() with the appropriate parameters
	to handle them

	(meta_window_move_resize_internal):
	fix some of the big comment at this function -- it wasn't quite
	right, use the passed in gravity instead of
	window->size_hints.win_gravity when calling adjust_for_gravity()
	to make sure the correct adjustments are used.

	(meta_window_get_gravity_position,
	 meta_window_get_geometry, meta_window_move_resize_request):
	add a gravity parameter to meta_window_get_gravity_position and
	have it use that gravity instead of window->size_hints.win_gravity

2007-04-09  Elijah Newren  <newren gmail com>

        * configure.in: post-release bump to 2.19.3.

2007-04-09  Elijah Newren  <newren gmail com>

        * NEWS: 2.19.2 release.

2007-04-08  Elijah Newren  <newren gmail com>

	Remove grab_start_serial, which we expect to be an ancient attempt
	to workaround sloppy/mouse focus bugs that have since been
	correctly fixed.  May fix some race conditions.  May cause nasty
	bugs in sloppy/mouse focus modes.  We'll find out soon enough...
	See #304430.

	* src/display.c (event_callback):
	remove event->xany.serial >= display->grab_start_serial in several
	event callback handlers

	* src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op):
	* src/keybindings.c (do_choose_window, handle_workspace_switch):
	* src/frames.c (meta_frames_button_press_event):
	* src/core.[ch] (meta_core_begin_grab_op):
	* src/window.c (meta_window_client_message, meta_window_begin_grab_op):
	don't require an event_serial to be passed to
	meta_display_begin_grab_op () and don't record it anymore.

	* src/ui.c (struct _EventFunc, filter_func,
	  meta_ui_get_last_event_serial)
	* src/core.h (meta_ui_get_last_event_serial):
	remove meta_ui_get_last_event_serial() function (don't ask me why
	it was declared in core.h) and the last_even_serial field of
	_EventFunc
	
2007-04-08  Elijah Newren  <newren gmail com>

	Fix move/resize events in relation to combinations of
	ConfigureRequest and WM_NORMAL_HINTS change notifications (plus a
	few code cleanups).  Fixes #426519.

	* src/window.c (meta_window_move_resize_now):
	move to the user_rect position, not some weird combination of rect
	and user_rect

	* src/window.c (meta_window_configure_request):
        set user_rect in response to ConfigureRequest events (after the
	ConfigureRequest values have been constrained) and add a big
	comment explaining this change, remove unused only_resize variable
	and irrelevant huge FIXME comment about it

	* src/window.[ch] (meta_window_get_client_root_coords):
	new function

	* src/display.c (meta_display_begin_grab_op):
	* src/keybindings.c (process_keyboard_move_grab):
	* src/window.c (meta_window_unmaximize,
	  meta_window_move_resize_internal, meta_window_begin_wireframe,
	  update_move, meta_window_refresh_resize_popup,
	  warp_grab_pointer)
	combine multi-step client rect root coord setting into a single
	function call to meta_window_get_client_root_coords()

2007-04-08  Thomas Thurman  <thomas@thurman.org.uk>

        * ChangeLog: removed conflict line.

2007-04-07  Elijah Newren  <newren gmail com>

	* src/prefs.[ch] (screen_bindings array,
	  META_KEYBINDING_SET_SPEW_MARK definition):
	* src/keybindings.c (handle_spew_mark, screen_handlers array):
	Add an (unbound by default) keybinding for setting spew marks in
	verbose debugging logs.  I'm not sure why this was ever removed;
	I've wanted it so many times.

	* HACKING:
	valgrind wants --log-file not --logfile.

2007-04-07  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_free): Fix memory bug (invalid free)
	introduced in 2007-04-02 strut cleanup commit.  Part of #427385.

2007-04-05  Thomas Thurman  <thomas@thurman.org.uk>

	* src/theme_parser.c: if theme is invalid and therefore got
	freed, don't attempt to read from it. Closes #423855.

2007-04-05  Bastien Nocera  <hadess@hadess.net>

	* src/50-metacity-desktop-key.xml.in:
	* src/50-metacity-key.xml.in:
	* src/Makefile.am:
	Add new control-center key bindings definitions (Closes: #420145)

2007-04-04  Elijah Newren  <newren gmail com>

        * configure.in: post-release bump to 2.19.2.

2007-04-04  Elijah Newren  <newren gmail com>

        * NEWS: 2.19.1 release.

2007-04-04  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_move_resize_internal): send synthetic
	configurenotify events also in response to MapRequest events when
	the window has a frame and the application specifies PPosition or
	UPosition hints.  I believe they are already sent for all other
	cases.  Should fix #322840.  Fixes the testcase at least.  :)

2007-04-04  Elijah Newren  <newren gmail com>

	Fix lots of little issues with min/max constraints and size
	increment constraints.  Fixes #329152, #418395, and possibly
	others.

	* src/window-props.c (meta_set_normal_hints):
	Do more checking to make sure application specified constraints
	are self-consistent, modifying the size_hints as necessary to
	achieve self-consistency.

	* src/constraints.c (setup_constraint_info): remove ugly
	copy-pasto, (constrain_size_increments): be careful that fixing
	violation of the constraints doesn't cause a violation of the
	minimum size constraints.

	* src/window.c (ensure_size_hints_satisfied): new function,
	(meta_window_unmaximize, meta_window_unmake_fullscreen): the
	saved_rect may no longer be valid (as in the case of #329152) so
	call ensure_size_hints_satisfied to fix it up.

	* doc/how-to-get-focus-right.txt: Some minor spacing and wording
	fixes completely unrelated to the rest of this commit

2007-04-03  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_unmaximize):
	Only use saved_rect for determining the position to unmaximize to
	for the previously-maximized direction(s).  Fixes #355497.

2007-04-03  Elijah Newren  <newren gmail com>

	* MAINTAINERS: Update.  #412319.

2007-04-03  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_update_active_window_hint):
	_NET_ACTIVE_WINDOW is a single xwindow id, not two.

2007-04-03  Elijah Newren  <newren gmail com>

	* src/keybindings.c (handle_panel_keybinding): turn mouse_mode off
	to prevent focus issues with the run application dialog.  Fixes
	#374752.

2007-04-03  Elijah Newren  <newren gmail com>

	Avoid some crashes when dragging windows partially offscreen.
	Possible (or at least partial) fix for #353513.

	* src/edge-resistance.c (apply_edge_resistance): be more careful
	about calls to find_index_of_edge_near_position() returning
	possibly invalid indices.  Also, add a warning comment to
	find_index_of_edge_near_position().

2007-04-03  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to do some miscellaneous code cleanups found
	while working on #358311.

	* src/constraints.c (do_screen_and_xinerama_relative_constraints):
	nicer way of avoiding compilation warning

	* src/boxes.c (meta_rectangle_clamp_to_fit_into_region,
	  meta_rectangle_clip_to_region, meta_rectangle_shove_into_region):
	Much cleaner way of ignoring invalid boxes in comparisons

2007-04-02  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to fix handling of unidirectional
	maximization and partial struts.  #358311.

	* src/constraints.c (constrain_maximization):
	determine target size for unidirectionally maximized windows by
	determining how far they can be maximized without hitting
	orthogonal struts.  Avoids weird "empty spaces".

	* src/boxes.[ch] (meta_rectangle_expand_to_avoiding_struts):
	new function

2007-04-02  Elijah Newren  <newren gmail com>

	Make the strut lists (stored in workspaces) record both the
	rectangle and the side that the strut is on.  Lots of code
	cleanups relating to struts.

	* src/boxes.h (struct MetaStrut):
	new struct for struts

	* src/window.[ch] (struct MetaStruts, struct MetaWindow,
	  meta_window_update_struts):
	overhaul to make window's struts remember their side as well as
	their rectangular location, and just use a list instead of several
	copies of near-identical code for left/right/top/bottom (allowing
	us to nuke MetaStruts struct as well)
	
	* src/testboxes.c (new_meta_strut, get_strut_list):
	* src/workspace.c (ensure_work_areas_validated):
	* src/boxes.c (meta_rectangle_get_minimal_spanning_set_for_region,
	  meta_rectangle_expand_to_avoiding_struts,
	  get_disjoint_strut_rect_list_in_region, fix_up_edges,
	  meta_rectangle_find_onscreen_edges,
	  meta_rectangle_find_nonintersected_xinerama_edges):
	modify to handle struts being rectangle + side instead of just rectangle

	* src/workspace.c (ensure_work_areas_validated):
	simplify strut list creation considerably given MetaWindow change,
	modify work_area computations to take advantage of region
	computations being done (makes the code shorter as well as more
	robust against pathological cases).

	* src/util.[ch] (meta_free_gslist_and_elements):
	new convenience function

	* src/common.h (enum MetaDirection):
	* src/edge-resistance.c (movement_towards_edge):
	* src/boxes.c (meta_rectangle_edge_aligns,
	  rectangle_and_edge_intersection, split_edge):
	Add more MetaDirection fields for convenience

	* src/boxes.h (enum FixedDirections):
	* src/constraints.c (setup_constraint_info, place_window_if_needed):
	add a FIXED_DIRECTION_NONE to the FixedDirections enum to make
	code more clear

2007-04-01  Bruno Boaventura <brunobol@gnome.org>

	* src/theme.c (kill_window_question): Fallback to NORMAL state after
	checking for the middle button. Fixes bug #419043.
	Patch from Benjamin Berg <benjamin@sipsolutions.net>.	

2007-03-31  Elijah Newren  <newren gmail com>

	Clean up event mask handling and meta_create_offscreen_window, to
	prevent nasty metacity/gdk interactions causing hangs. See #354213.

	* src/screen.[ch] (meta_create_offscreen_window):
	* src/display.c (meta_display_open):
	* src/screen.c (meta_screen_new):
	Add a valuemask parameter to meta_create_offscreen_window
	
	* src/display.c (meta_display_open):
	make it explicit that we can't rely on PropertyNotify events for
	the leader_window due to nasty metacity/gdk interaction

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	remove cut-and-paste code for timestamp pinging and just call
	meta_display_get_current_time_roundtrip

2007-03-30  Elijah Newren  <newren gmail com>

	Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on
	context switches.  Fixes #354213.

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	* src/screen.c (set_supported_hint):
	new atom

	* src/display.c (meta_display_open,
	  meta_display_get_current_time_roundtrip):
	* src/display.h (struct _MetaDisplay):
	create a dedicated timestamp pinging window instead of reusing
	display->leader_window

	* src/display.c (event_callback):
	* src/window-props.c (reload_net_wm_user_time_window):
	* src/window.c (meta_window_new_with_attrs, meta_window_free,
	  process_property_notify):
	* src/window.h (struct _MetaWindow):
	monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too
	
	* src/window-props.[ch]:
	new meta_window_reload_propert(y|ies)_from_xwindow() functions

	* src/window-props.[ch]
	  (init_net_wm_user_time_window, reload_net_wm_user_time_window,
	  meta_display_init_window_prop_hooks):
	* src/window.c (meta_window_new_with_attrs):
	new hooks to handle new atom

2007-03-26  Josselin Mouette  <joss@malsain.org>

	* src/session.c (meta_session_init): if previous client ID
	was supplied, use it in filename.
	* src/session.c (set_clone_restart_commands): use --sm-client-id
	in command line to restore session, not original file name.
	* src/session.c (regenerate_save_file): generate filename using
	client ID and not original file name.
	* src/session.c (base_save_file): removed function.
	Closes GNOME 407981, Debian 391287, Debian 315169.

2007-03-25  Elijah Newren  <newren gmail com>

	* configure.in: bump version to 2.19.1; doesn't make sense to have
	the development version have a version number less than the stable
	version.  ;-)

2007-03-20  Arthur Taylor  <theycallhimart@gmail.com>

        * src/frames.c (meta_frames_apply_shapes): adjusted the rounded
          corners so that they fit nicely with the arcs around them.
	  Fixes #399373.

2007-03-17  Kjartan Maraas  <kmaraas@gnome.org>

	* src/ui.c: Remove #include <pango/pangox.h> since it's
	apparently not installed anymore. Builds just fine without it too.

2007-03-10  Charlie Brej  <cbrej@cs.man.ac.uk>

	* src/metacity.schemas.in: add action_{middle|right}_click_titlebar.
	Closes #408903.

2007-03-09  Linus Torvalds  <torvalds@woody.linux-foundation.org>

	* src/frames.c (meta_frame_middle_click_event,
        meta_frame_right_click_event): honour preferences.
	* src/prefs.[ch] (meta_prefs_get_action_middle_click_titlebar,
        meta_prefs_get_action_right_click_titlebar): new functions.

2007-02-20  Kjartan Maraas  <kmaraas@gnome.org>

	* Makefile.am: Add MAINTAINERS to EXTRA_DIST so others
	can find out where to send patches. Hi Linus :-)

2007-02-17  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/common.h (MetaActionTitleBar): renamed from
	MetaActionDoubleClickTitleBar; added _LOWER and _MENU.
	* src/frames.c (meta_frame_titlebar_event): renamed
	enums as above; added code to handle _LOWER and _MENU,
	which is moved in from meta_frame_{middle|right}_click_event.
	* src/frames.c (meta_frame_middle_click_event,
        meta_frame_right_click_event): rewrote in terms of
        meta_frame_titlebar_event.
	* src/prefs.c: removed "DoubleClick" from names as above.
	* src/prefs.c (action_titlebar_from_string): added cases
	for "lower" and "menu".
	Fixes #408902.

2007-02-17  Linus Torvalds  <torvalds@woody.linux-foundation.org>

        * src/frames.c (meta_frames_button_press_event): Split out
	code for different kinds of click into separate functions.
	Fixes #408899.
	* src/frames.c (meta_frame_titlebar_event,
         meta_frame_double_click_event, meta_frame_middle_click_event,
         meta_frame_right_click_event): new functions.

2007-01-27  Bruno Boaventura <brunobol@gnome.org>

	* src/metacity-dialog.c (kill_window_question): Change dialog
	icon because gnome-icon-theme have no more "panel-force-quit".
	Patch from Jaap A. Haitsma <jaap@haitsma.org>.	

2007-01-16  Thomas Thurman  <thomas@thurman.org.uk>

        * doc/compositor-control.txt: fix silly thinko.

2007-01-16  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.17.8.

2007-01-16  Thomas Thurman  <thomas@thurman.org.uk>

        * doc/compositor-control.txt: New file.

2007-01-16  Thomas Thurman  <thomas@thurman.org.uk>

        * src/compositor.c (meta_compositor_new): Removed
        #ifdef SPIFFY_COMPOSITOR throughout the file. Replaced with check
	for environment variable METACITY_BLING, which may be temporary.

2007-01-13  Bruno Boaventura  <brunobol@gnome.org>

        * src/frames.c (meta_frames_motion_notify_event): Unmaximize
        button must keep preesed appearence when clicked (hold down),
        move off, and back over the button. Fixes #395560. Patch from
        Mad Alex <madalexonline@yahoo.co.uk>.
        
2007-01-02  Thomas Thurman  <thomas@thurman.org.uk>

        * src/c-screen.c (meta_comp_screen_redirect): Remove double unref
	of stacker object. Fixes #387761.

2006-12-27  Bruno Boaventura  <brunoboaventura@gmail.com>

        Move "On Top" option in menu. Fix #382962.

        * src/common.h, src/core.c: Remove META_MENU_OP_UNABOVE.
        * src/menu.c: remove unabove menu item and put above item
        next "Always on Visible Viewport".
        * src/window.c: remove handles of META_MENU_OP_UNABOVE.

2006-12-21  Thomas Thurman  <thomas@thurman.org.uk>

        * src/compositor.c: Disabled bling for now; added function for
	handling CirculateNotify XEvent; some commenting.
	* src/compositor.h, src/c-window.c: fix function prototype visibility.

2006-12-12  Thomas Thurman  <thomas@thurman.org.uk>

        * src/compositor.c (do_effect): Sanity check to avoid dereferencing
	a null pointer.

2006-12-10  Thomas Thurman  <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.17.5.

2006-12-10  Thomas Thurman  <thomas@thurman.org.uk>

        * NEWS: 2.17.3 release.

2006-12-05  Christof Krüger  <mail@pop2wap.net>

        * src/window.c (update_move): Fix flickering about when dragging
	maximised windows between xineramas. Closes #358715.

2006-12-03  Federico Mena Quintero  <federico@novell.com>

	Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127:

	* src/window.c (idle_calc_showing): Grab the server while the
	windows are being shuffled.  First show the windows to be shown, 
	and then hide the windows to be hidden, in order to minimize
	the number of expose events.

2006-11-15  Bruno Boaventura  <brunoboaventura@gmail.com>
2006-11-15  Björn Lindqvist   <bjourne@gmail.com>

	* src/menu.c: added MetaMenuItemType enum; added it
	to MenuItem; added values of this type to menuitems
	array.
	* src/menu.c (menu_item_new): rewrite to take a MenuItem
	instead of a set of parameters describing the menu item.
	* src/menu.c (meta_window_menu_new): use proper checkboxes
	or radio buttons on the window menu. (#343108)
	* src/window.c (meta_window_show_menu): unstick and stick
	are always shown.

2006-11-06  Thomas Thurman  <thomas@thurman.org.uk>

	* configure.in: post-release bump to 2.17.3.

2006-11-06  Thomas Thurman  <thomas@thurman.org.uk>

	* configure.in: pre-release bump to 2.17.2.
        * NEWS: 2.17.2 release.

2006-11-05  Priit Laes  <amd@store20.com>

	* src/main.c, src/ui.c: remove deprecated gtk stuff.

2006-11-05  Bruno Boaventura  <brunoboaventura@gmail.com>

	* src/theme.c, src/testgradient.c: remove deprecated gtk stuff.

2006-11-05  Kjartan Maraas  <kmaraas@gnome.org>

        * src/ui.c: use g_strdup to allocate a string, not strdup. Fixes
        #363354.
        * src/metacity-dialog.c: add missing spaces to string. Fixes
        #363355.

2006-11-05  Justin Mason  <jm@jmason.org>

        * src/keybindings.c: implement handle_move_to_{side|corner}_* to
	allow the user to flip a window to the side or corner of the
	screen. Fixes #317884.
	* src/prefs.h: keybindings for the above.
	* src/metacity.schemas.in: keybindings for the above.

2006-11-05  Elijah Newren  <newren gmail com>

        * src/frames.c: improved rounding of rounded corners. Fixes #360542,
	mostly.

2006-10-30  Dan Mick  <dan.mick@sun.com>

	* src/window.c: (__window_is_terminal): Fix strict focus
        mode by picking up on res_class. Fixes #361054, strict focus 
        mode still not working; should look for res_class, not res_name

2006-10-16  Elijah Newren  <newren gmail com>

        * NEWS: 2.17.1 release.

2006-10-13  Carlo Wood <carlo@alinoe.com>

	Fix cases when titlebar is allowed offscreen and shouldn't be (and
	vice-versa).  #333995.

	* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
	member

	* src/display.[ch] (meta_display_begin_grab_op):
	* src/window.[ch] (meta_window_begin_grab_op):
	* src/core.[ch] (meta_core_begin_grab_op):
	Add frame_action parameter (core & window versions pass it on to
	display)
	
	* src/display.c (event_callback):
	* src/window.c (meta_window_begin_grab_op,
	  meta_window_client_message, menu_callback):
	* frames.c (meta_frames_button_press_event):
	* keybindings.c (do_choose_window, handle_begin_move,
	  handle_begin_resize, handle_workspace_switch):
	Pass whether the action should be considered a 'frame_action',
	which will be used to determine whether to force the titlebar to
	remain onscreen, to meta_*_begin_grab_op

	* constraints.c (constrain_titlebar_visible):
	Replace previous ugly hack by using grab_frame_action (and whether
	the action is a user action) to determine whether to enforce the
	titlebar_visible constraint.

2006-10-10  Elijah Newren  <newren gmail com>

	* src/draw-workspace.c (draw_window, wnck_draw_workspace): Patch
	from Bruno Boaventura to sync metacity workspace previews with
	libwnck.  #341893

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * configure.in: post-release bump to 2.17.1.

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * NEWS: 2.17.0 release.

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * src/themes/Crux/metacity-theme-2.xml: removed hide_buttons.
	Closes #360498.

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * MAINTAINERS: added myself.

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * doc/theme-format.txt: described new theme format.

	* src/themes/Bright, src/themes/Crux: added version 2 themes.

2006-10-07  Thomas Thurman <thomas@thurman.org.uk>

        * common.h: Added "above" to the list of flags a frame can have, so
	that we know when to mark it as always on top.  Added six grab ops,
	one to do and one to undo each of the three new titlebar buttons
	(shade, above, stick).  Added six new button functions, similarly.
	(#96229)

        * frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X
         attribute, set META_FRAME_ABOVE in its flags.

        * frames.c (meta_frames_apply_shapes): Allow variable amounts of
         rounding. (#113162)

        * frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect,
	 get_control): extend handling of existing buttons to the
         3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_button_press_event): translate clicks on the 3*2
         new kinds of button to the new grab ops. (#96229)

        * frames.c (meta_frames_button_release_event): implement the various
        actions for the 3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_update_prelit_control,
         meta_frames_motion_notify_event): extend existing motion
         notifications for buttons to the 3*2 new kinds of button. (#96229)

        * frames.c (meta_frames_set_window_background): handle specified
         background colours and alpha transparency. (#151261)

        * frames.h (MetaFrameControl): New control types for the 3*2 new kinds
	 of button.  (#96229)

        * iconcache.[ch] (meta_read_icons): use theme's fallback icons if a
	 window has no icon; use metacity's fallback icons only if the theme
         does not provide any. (#11363) 

        * iconcache.[ch] (meta_invalidate_default_icons (new function)): clear
         icon cache on windows using default icons, and update them. (#11363) 

        * main.c (main): added \n to error message.
 
        * prefs.c (button_function_from_string): extend for 3 new button
	 types. (#96229) 

        * prefs.c (button_opposite_function (new function)): return a button
         function's inverse (shade -> unshade, etc) (#96229) 

        * prefs.c (update_button_layout): allocate space for a button's
	 inverse, if it has one. (#96229) 

        * theme-parser.c (ParseState): add state for fallback icons (#11363) 

        * theme-parser.c (ParseInfo): add format_version; remove
         menu_icon_* (#114305)

        * theme-parser.c (parse_positive_integer): add lookup for integer
	 constants (#331356)

        * theme-parser.c (parse_rounding (new function)): parse window
	 rounding amount (#113162)

        * theme-parser.c (parse_alpha): don't set error if the number can't
	 be parsed since it'll already be set; change tolerance in comparison
	 from 1e6 to 1e-6

        * theme-parser.c (parse_color (new function)): parse colour, including
	 possible constant lookup.
 
        * theme-parser.c (parse_toplevel_element): allow defining of various
	new kinds of constant; allow
	hide_buttons (#121639) and more detailed rounding attributes on
	<frame_geometry> (#113162); allow background and alpha attributes on
	<frame_style>; (#151261) remove support for <menu_icon> except as
	stub; (#114305) add support for loading stock images (#113465); add
        support for <fallback>. (#11363))

        * theme-parser.c (parse_draw_op_element): add from and to attribute
         for arcs. (#121603)

        * theme-parser.c (parse_style_element): add check for theme version
         supporting a button function. (#96229) 

        * theme-parser.c (parse_style_set_element): add ability for shaded
	 windows to be resizable (#114304)

        * theme-parser.c (meta_theme_load): add theme versioning routine.

        * theme.c ( meta_frame_layout_get_borders): return rectangles for
	 the new 3*2 kinds of button, except where they're
         inapplicable. (#96229)

        * theme.c (meta_frame_layout_calc_geometry): don't format buttons on
	windows with no buttons (#121639); strip the 3*2 new kinds of button
	correctly (#96229); allow variable amounts of rounding (#113162).

        * theme.c (meta_frame_style_new): set alpha to 255 by
        default. (#151261)

        * theme.c (meta_frame_style_unref): free colour spec if
        allocated. (#151261)

        * theme.c (meta_frame_style_validate): it's only an error not to
        include a button if that button is valid in the current
        theme. (#96229)

        * theme.c (button_rect): return rectangles for the new 3*2 kinds
	of button. (#96229)

        * theme.c (meta_frame_style_set_unref): free differently resizable
	shaded styles. (#114304)

        * theme.c (get_style): look up differently resizable styles
        for shaded windows. (#114304)
 
        * theme.c (free_menu_ops (removed function), get_menu_icon
	 (removed function), meta_theme_draw_menu_icon (removed function),
         meta_menu_icon_type_from_string (removed function),
         meta_menu_icon_type_to_string (removed function),
         meta_theme_free, meta_theme_validate): removed menu icon code. (#114305)
   
        * theme.c (meta_theme_load_image): add size_of_theme_icons
	parameter. (#113465)
 
        * theme.c (meta_theme_define_color_constant (new function),
        meta_theme_lookup_color_constant (new function)): allow
        definition of colour constants. (#129747)

        * theme.c (meta_button_type_from_string, meta_button_type_to_string):
        add the 3*2 new kinds of button. (#96229)

        * theme.c (meta_theme_earliest_version_with_button (new function)):
        return the theme version each button was introduced in. (#96229)

        * theme.h ( MetaFrameLayout): add "hide_buttons" flag (#121639) and
	corner radiuses. (#113162)

        * theme.h (MetaFrameGeometry): add rectangles for the 3*2 new
	buttons. (#96229)

        * theme.h (MetaButtonType): the 3*2 new buttons. (#96229)
 
        * theme.h (MetaFrameStyle): add window_background_color and
        window_background_alpha so that we can specify background on a
        <frame_style>. (#151261)

        * theme.h (MetaFrameStyleSet): shaded_styles gets resize
	dimension. (#114304)

        * theme.h (MetaTheme): added format_version, color_constants
        hash, (#129747) fallback_icon and fallback_mini_icon, (#11363)
        and removed menu_icons. (#114305)
 
        * theme.h (META_THEME_ALLOWS (new macro)): return whether a theme
        supports a given feature. Also, several macros representing
        new features in v2.

        * ui.c (meta_ui_set_current_theme)): also invalidate default
        icons. (#11363) 

        * window.[ch] (meta_window_update_icon_now)): became
	non-static. (#11363) 

2006-10-06  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c (kill_window_question): Be nice to
	translators; remove unnecessary markup from strings marked for
	translation (oops, I missed this in my review before previous
	commit)

2006-10-06  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c (kill_window_question): Patch from Bruno
	Boaventura to improve the "Force Quit" dialog.  #121936

2006-10-02  Elijah Newren  <newren gmail com>

	Ignore edge resistance for size-increment windows when resizing
	with the keyboard.  #346782.

	* src/edge-resistance.c (apply_edge_resistance_to_each_side):
	ignore edge resistance for size-increment windows when resizing
	with the keyboard, (apply_edge_resistance_to_each_side,
	meta_window_edge_resistance_for_move,
	meta_window_edge_resistance_for_resize): pass a is_resize
	parameter as well

2006-10-01  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_set_input_focus_window):
	* src/window.c (meta_window_focus):
	Don't require a push/pop trap around
	meta_display_set_input_focus_window(), but rather move the
	push/pop into that function surrounding the XSetInputFocus() call
	directly.  Follow up to #358514.

2006-10-01  Elijah Newren  <newren gmail com>

	* src/*.[ch]: Stick an emacs comment directive at the beginning of
	all the code files so that people using emacs will be more likely
	to get coding style correct in their patches.  We still need a
	similar vi directive.  #358866

2006-10-01  Elijah Newren  <newren gmail com>

	Patch from Carlo Wood to ensure that maximized and minimized
	properties are maintained across restarts.  #358042.

	* src/constraints.c (place_window_if_needed): fix up partial
	maximization handling and add minimize_after_placement handling.

	* src/display.[ch] (struct MetaDisplay, meta_display_open): add a
	new display->display_opening flag to allow handling startup
	differently where needed.

	* src/window-props.c (reload_net_wm_state): handle
	_net_wm_state_hidden as well, setting
	window->minimize_after_placement appropriately

	* src/window.[ch] (struct MetaWindow, meta_window_new_with_attrs):
	add a window->minimize_after_placement field

	* src/window.c (meta_window_new_with_attrs): only unminimize the
	window and its transients if the display isn't being opened,
	(unmaximize_window_before_freeing): don't reset the state unless
	the window is becoming withdrawn, if the screen is being closed be
	sure to save the unmaximized state of the window so the next
	window manager can restore it

2006-10-01  Elijah Newren  <newren gmail com>

	* src/window-props.c (set_title_text): surround the
	XDeleteProperty() call with a
	meta_error_trap_push/meta_error_trap_pop pair to prevent a crash
	when closing a remote instance of gedit (and perhaps other apps).
	#358514.

2006-10-01  Elijah Newren  <newren gmail com>

	Fix longstanding focus bug with mouse (not sloppy) focus mode with
	popup override-redirect windows, particularly mozilla and
	firefox's location bar autocompletion.  #357695.

	* src/display.c (event_callback -- EnterNotify & LeaveNotify events):
	for mouse focus, defocus the focused window when the mouse enters
	the desktop window rather than when the mouse leaves the focused
	window.

	* doc/how-to-get-focus-right.txt:
	update for the slightly nuanced definition of mouse focus (people
	without a DESKTOP window like nautilus get sloppy focus behavior
	now)

2006-09-27  Elijah Newren  <newren gmail com>

	* src/menu.c (var menuitems): Patch from Bruno Boaventura to add
	notes to remind translators to keep translations in sync with
	libwnck.  #355620.

2006-09-18  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_show): Patch from Jens Granseuer to
	fix c89 cleanness, again.  #356631.

2006-09-18  Elijah Newren  <newren gmail com>

	* src/constraints.c (constrain_maximization): Ignore maximum size
	hints when maximizing.  Should fix #327543 (see comment 4 and comment
	5).

2006-09-18  Elijah Newren  <newren gmail com>

	* src/ui.c (filter_func): avoid a compilation warning by making
	sure to return something.  #348067

2006-09-18  Thomas Thurman  <thomas@thurman.org.uk>

	Branched for Gnome 2.17.
	
	* configure.in: bump version to 2.17.0.

2006-09-18  Thomas Thurman <thomas@thurman.org.uk>

	* configure.in: post-release bump to 2.16.3

2006-09-18  Thomas Thurman <thomas@thurman.org.uk>

        * NEWS: 2.16.2 release

2006-09-18  Elijah Newren  <newren gmail com>

	Partial audit to fix timestamp usage.  One step towards fixing
	#355180; see important comments in that bug.

	* src/core.[ch] (meta_core_unshade, meta_core_shade):
	* src/delete.c (meta_window_present_delete_dialog,
	  delete_ping_timeout_func):
	* src/display.[ch] (meta_display_open, meta_display_close,
	  event_callback, meta_display_begin_grab_op,
	  process_selection_clear, meta_display_unmanage_screen,
	  meta_display_unmanage_windows_for_screen):
	* src/frames.c (meta_frames_button_press_event):
	* src/keybindings.c (handle_toggle_shade):
	* src/main.c (main):
	* src/screen.[ch] (update_num_workspaces, meta_screen_new,
	  meta_screen_free, prefs_changed_callback):
	* src/window.[ch] (meta_window_free, finish_minimize,
	  implement_showing, meta_window_show, meta_window_maximize,
	  meta_window_make_fullscreen_internal,
	  meta_window_unmake_fullscreen, meta_window_shade,
	  meta_window_unshade, window_activate, send_sync_request,
	  meta_window_client_message, menu_callback,
	  meta_window_update_keyboard_resize):
	Remove usage of CurrentTime, meta_display_get_current_time() and
	meta_display_get_current_time_roundtrip() where possible, or
	document why it isn't possible, or at very least add a FIXME with
	some explanation of my laziness and what needs to be done.

2006-09-18  Elijah Newren  <newren gmail com>

	* src/spring-model.c (on_end_move, model_is_calm): Patch from Maik
	Beckmann to remove compilation warnings.  Fixes #355876.

2006-09-18  Elijah Newren  <newren gmail com>

	* configure.in: Make detection of stable vs. unstable automatic
	and based upon the version number.  Partially based on patch from
	Christian Hamar in #356122.  Fixes #356122.

2006-09-13  Elijah Newren  <newren gmail com>

	* HACKING: update -- we depend on gtk+ >= 2.10 since Vincent's
	July patches for #348633.

2006-09-13  Elijah Newren  <newren gmail com>

	* src/window.c (meta_window_show): Patch from Thomas Andersen to
	make windows be stacked correctly before showing them, to prevent
	flicker with focus stealing prevention.  #332385.

2006-09-13  Elijah Newren  <newren gmail com>

	* src/common.h (MetaWindowMenuFunc):
	* src/core.[ch] (meta_core_user_lower_and_unfocus,
	  meta_core_user_focus, meta_core_show_window_menu,
	  meta_core_begin_grab_op, meta_core_end_grab_op):
	* src/delete.c (delete_ping_reply_func, delete_ping_timeout_func,
	  meta_window_delete):
	* src/display.[ch] (struct MetaDisplay, struct MetaPingData,
	  sanity_check_timestamps, meta_display_open, event_callback,
	  meta_spew_event, meta_display_set_grab_op_cursor,
	  meta_display_begin_grab_op, meta_display_end_grab_op,
	  meta_display_ping_timeout, meta_display_ping_window,
	  process_pong_message, timestamp_too_old,
	  meta_display_set_input_focus_window):
	* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard,
	  meta_screen_grab_all_keys, meta_window_grab_all_keys,
	  meta_window_ungrab_all_keys, error_on_generic_command,
	  error_on_command, error_on_terminal_command):
	* src/metacity-dialog.c (on_realize, warn_about_no_sm_support,
	  error_about_command, main):
	* src/screen.[ch] (struct _MetaScreen, meta_screen_new,
	  meta_screen_show_desktop, meta_screen_apply_startup_properties):
	* src/session.c (warn_about_lame_clients_and_finish_interact):
	* src/window.[ch] (struct _MetaWindow,
	  intervening_user_event_occurred, window_activate,
	  meta_window_delete, meta_window_focus,
	  meta_window_send_icccm_message, meta_window_client_message,
	  menu_callback, meta_window_show_menu, struct EventScannerData,
	  check_use_this_motion_notify, meta_window_begin_grab_op,
	  meta_window_set_user_time):
	* src/workspace.[ch] (focus_ancestor_or_mru_window,
	  meta_workspace_activate_with_focus, meta_workspace_activate,
	  meta_workspace_focus_default_window,
	  focus_ancestor_or_mru_window):
	Fix issues on 64-bit machines with timestamps by using guint32
	(like gtk+ does) instead of Time.  #348305

2006-09-12  Elijah Newren  <newren gmail com>

	* src/theme.c (meta_gtk_arrow_from_string,
	meta_gtk_arrow_to_string): patch from Bruno Boaventura de Oliveira
	to fix a compiler warning about not handling GTK_ARRROW_NONE.
	#355490.

2006-09-12  Elijah Newren  <newren gmail com>

	* src/compositor.c: Patch from Bruno Boaventura de Oliveira
	Lacerda to fix warnings about unused function and global var.
	#355489.

2006-09-11  Thomas Thurman <thomas@thurman.org.uk>

	* configure.in: post-release bump to 2.16.2

2006-09-11  Thomas Thurman <thomas@thurman.org.uk>

	* NEWS: 2.16.1 release

22006-09-09  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_open): Fix build when XKB not found.
	#354211

2006-09-09  Elijah Newren  <newren gmail com>

	Avoid a stuck grab, preventing focus from being transferred
	between windows.  Thanks to Fryderyk Dziarmagowski for steps to
	reproduce.  Fixes at least part of #354422.

	* src/display.c (meta_display_begin_grab_op,
	meta_display_end_grab_op): pass timestamp to
	meta_screen_ungrab_all_keys, meta_screen_ungrab_all_keys, and
	meta_window_ungrab_all_keys

	* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard): add a
	timestamp parameter and remove call to
	meta_display_get_current_time(), (meta_screen_grab_all_keys,
	meta_screen_ungrab_all_keys, meta_window_ungrab_all_keys): add a
	timestamp parameter and pass it on to grab_keyboard and
	ungrab_keyboard

2006-09-07  Elijah Newren  <newren gmail com>

	* src/constraints.c (update_onscreen_requirements): make sure
	windows returning from fullscreen mode are constrained to be
	"onscreen"; fixes #353699.

2006-08-30  Colin Watson  <cjwatson@ubuntu.com>

	* src/window-props.c (reload_transient_for): Clear
	window->xtransient_for after emitting the invalid window warning.
	#353540

2006-09-07  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c: Patch from Bruno Boaventura de Oliveira
	Lacerda to replace copy_of_gdk_x11_window_set_user_time() with
	gdk_x11_window_set_user_time().  We've long since adopted gtk+ >=
	2.6 as a dependency.  #352293

2006-09-04  Thomas Thurman  <thomas@thurman.org.uk>

	* configure.in: post-release version bump to 2.16.1

2006-09-04  Thomas Thurman  <thomas@thurman.org.uk>

	* NEWS: 2.16.0 release

2006-08-22  Elijah Newren  <newren gmail com>

	* src/metacity-dialog.c (main): Patch from Jens Granseuer to fix
	the build with c89/gcc 2.95.

2006-08-21  Elijah Newren  <newren gmail com>

	* NEWS: Oops, forgot to mention the translators in the 2.15.34
	release; add them retroactively

2006-08-21  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.55

2006-08-21  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.34 release

2006-08-21  Elijah Newren  <newren gmail com>

	Patch from Thomas Andersen to fix metacity-dialog handling of
	arguments.  #340690

	* src/metacity-dialog.c (main): replace hackish argument parsing
	with GOption parsing.  Much nicer.  :)

2006-08-21  Elijah Newren  <newren gmail com>

	Patch from Ed Catmur to fix keybindings with hex-values (coming
	from special extended keyboard keys).  #140448.

	* src/keybindings.c (struct _MetaKeyBinding): change keycode from
	KeyCode to unsigned int (comment from Elijah: why???),
	(reload_keycodes): only grab keysyms for keybindings that have
	them, (count_bindings, rebuild_binding_table): bindings can be
	valid either due to a valid keysym or a valid keycode,
	(display_get_keybinding_action, meta_change_keygrab,
	process_tab_grab, process_workspace_switch_grab): handle keycode
	as well as keysym

	* src/prefs.[ch] (struct MetaKeyCombo, update_binding,
	update_list_binding): handle keycode as well as keysym

	* src/ui.[ch] (meta_ui_accelerator_parse): new function special
	cases strings of the form "0x[0-9a-fA-F]+" and otherwise calling
	gtk_accelerator_parse(), (meta_ui_parse_accelerator,
	meta_ui_parse_modifier): call meta_ui_accelerator_parse instead of
	gtk_accelerator_parse.

2006-08-21  Elijah Newren  <newren gmail com>

	Allow drags & resizes to be reverted by hitting escape.  Based on
	patch from Thomas Andersen.  #126497.

	* src/display.c (grab_op_is_mouse_only): new function,
	(meta_display_begin_grab_op): grab the keyboard when moving or
	resizing too so that we can get escape keypresses

	* src/display.h (struct _MetaDisplay): add a comment to remind
	that grab_was_cancelled is only used in wireframe mode

	* src/keybindings.[ch] (process_mouse_move_resize_grab): add new
	function for handling keypresses during mouse-only moving and
	resizing, (meta_window_grab_all_keys): add a timestamp parameter
	and pass it to meta_window_focus(),
	(meta_display_process_key_event): make sure
	process_mouse_move_resize_grab() gets called when needed,
	(process_keyboard_move_grab, process_keyboard_resize_grab):
	rearrange some code slightly and improve the comments to make it
	more readable

2006-08-21  Elijah Newren  <newren gmail com>

	Fix several bugs with handling of fullscreen windows, causing them
	to not actually be fullscreen.  #343115 (and also #346927,
	#350547, #351643, the recent additional WINE-related issue
	mentioned on the mailing list, and probably others...)

	* src/constraints.c (setup_constraint_info): if a window tries to
	resize to fullscreen-size and it has a fullscreen function but
	isn't actually marked as fullscreen then assist it by marking it
	as such, (constrain_fully_onscreen, constrain_titlebar_visible):
	ignore this constraint for fullscreen windows since such windows
	have a separate specialized constraint

	* src/stack.c (window_is_fullscreen_size, get_standalone_layer):
	remove the old window_is_fullscreen_size() hack for detecting
	windows to treat as fullscreen since it doesn't work well with the
	new constraints framework (i.e. we needed a slightly different
	hack)

	* src/window.[ch] (meta_window_new_with_addrs): shuffle the order
	of adding the window to the stack and moveresizing the window
	since moveresizing can cause stack changes if the window's initial
	size is fullscreen size, (meta_window_make_fullscreen,
	meta_window_make_fullscreen_internal): split
	meta_window_make_fullscreen() similar to meta_window_maximize() so
	that constraints can make use of it

2006-08-19 Baptiste Mille-Mathias <baptiste.millemathias@gmail.com>

	* src/stock_delete.png: Update the pixmap to a new one which
	fit better with the other pixmaps of the menu. First patch in
	metacity, woot! #345498

2006-08-18  Elijah Newren  <newren gmail com>

	* src/tabpopup.c (meta_ui_tab_popup_new): Patch from Willie Walker
	to restore the part of the patch that I should not have reverted
	in #123372, in order to fix accessibility.  #350624

2006-08-09  Elijah Newren  <newren gmail com>

	* src/window.c (intervening_user_event_occurred): Vytautus Liuolia
	totally rocks; he tested and debugged and tracked down where we
	were using the focus window's net_wm_user_time even when it was
	uninitialized.  This may fix bug 311868 and others I've heard
	about (with Valknut, IIRC).  It definitely fixes the issues Vytas
	was seeing with his single instance library.  :-)

2006-08-07  Elijah Newren  <newren gmail com>

	* src/constraints.c (setup_constraint_info): patch from Stéphane
	Rosi to allow moving maximized windows between xineramas again.
	#323820

2006-08-07  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.34

2006-08-07  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.21 release

2006-08-07  Elijah Newren  <newren gmail com>

	Add a constrain_titlebar_visible constraint; should fix both bug
	333328 and bug 345522.  Not perfect (minor annoying snap pulling
	windows back onscreen, plus an ugly hack almost as bad as the old
	one), but tarballs are due in less than half an hour.  ;-)

	* src/boxes.[ch] (meta_rectangle_overlaps_with_region):
	new function

	* src/constraints.c (constrain_titlebar_visible): new function,
	  (enum ConstraintPriority, array all_constraints,
	  update_onscreen_requirements): various small changes to
	  accomodate the new function

	* src/edge-resistance.c: remove the infinite edge resistance,
	which was a big hack of a way to workaround the lack of a
	titlebar_visible constraint

	* src/window.[ch] (MetaWindow): new require_titlebar_visible
	bitfield, (meta_window_new_with_attrs): initialized here

2006-08-07  Elijah Newren  <newren gmail com>

	* src/frames.c (meta_frames_button_press_event): Patch from Chris
	Ball to not minimize in response to double clicks on the titlebar
	when minimiziation should not be allowed.  #347377

2006-08-07  Elijah Newren  <newren gmail com>

	Patch from Björn Lindqvist to fix button lighting with dragged
	clicks.  #321474.

	* src/frames.c (meta_frames_button_press_event): update the
	prelit_control, (meta_frames_button_release_event): some code
	refactoring to simplify things a bit, and make sure to update the
	prelit_control

2006-08-07  Elijah Newren  <newren gmail com>

	* src/keybindings.c (process_keyboard_move_grab): Patch from
	Thomas Andersen to return the window to maximized state if the
	window was "shaken loose" from maximized state during a resize but
	the resize is later aborted.  #346719.

2006-08-07  Elijah Newren  <newren gmail com>

	Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes,
	as proposed for the new startup-notification/EWMH spec.  #347515

	* src/window-props.c (reload_net_startup_id): be sure to act on
	the new id instead of just recording it

	* src/window.[ch] (window_activate, meta_window_activate,
	  meta_window_activate_with_workspace, meta_window_client_message):
	change window_activate() to take a workspace parameter instead of
	hardcoding to the current workspace, add
	meta_window_activate_with_workspace() function needed by
	reload_net_startup_id().

2006-08-07  Thomas Thurman  <thomas@thurman.org.uk>

	* src/frames.h: add new MetaButtonSpace struct; use it for
	close_rect, max_rect, min_rect and menu_rect. (#97703)

	* src/frames.c (control_rect, get_control): modify to support
	the new fields in MetaButtonSpace.

	* src/theme.c (meta_frame_layout_get_borders, rect_for_function,
	meta_frame_layout_calc_geometry, button_rect): add support for
	the new fields in MetaButtonSpace.

2006-08-07  Elijah Newren  <newren gmail com>

	* src/screen.c (meta_screen_resize_func): patch from Dmitry
	Timoshkov to make sure window features get recalculated when the
	screen is resized via XRandR.  Part of #346927.

2006-08-04  Elijah Newren  <newren gmail com>

	Patch from Dmitry Timoshkov to fix the heuristic for determining
	if windows can be made fullscreen (needed for WINE and possible
	also some legacy applications).  Part of #346927.

	* src/window.c (recalc_window_features): ignore window decoration
	when checking size for determing whether an unresizable window
	should be allowed ot be considered for fullscreening

2006-07-31  Björn Lindqvist  <bjourne@gmail.com>

	* src/window.c: Make it so maximized windows do not have rounded
	corners. #336850.

2006-07-30  Jens Granseuer  <jensgr@gmx.net>

	* src/tabpopup.c: Fix another C89 vs. C99 issue. #347621.

2006-07-26  Vincent Untz  <vuntz@gnome.org>

	* src/update-from-egg.sh: also kill this

2006-07-25  Vincent Untz  <vuntz@gnome.org>

        * src/Makefile.am, ui.c: Kill usage of libegg. #348633.

2006-07-24  Thomas Thurman  <thomas@thurman.org.uk>

	* configure.in: post-release version bump to 2.15.21

2006-07-24  Thomas Thurman  <thomas@thurman.org.uk>

	* NEWS:	2.15.13 release
	
2006-07-24  Björn Lindqvist  <bjourne@gmail.com>

	* src/display.c (meta_display_grab_window_buttons): Grab
	Alt+Shift+Button1 as well to partially fix operation ordering
	issues when trying to snap-move windows.  Part of #112478.
 
2006-07-21  Thomas Thurman <thomas@thurman.org.uk>

	* ui.[ch] (filter_func): Avoid a case where a struct's
	fields might be updated after it was freed. #348067.

2006-07-10  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.13

2006-07-10  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.8 release

2006-06-12  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.8

2006-06-12  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.5 release

2006-06-10  Elijah Newren  <newren gmail com>

	Patch from Aidan Delaney to tidy tabpopup.c by factoring out
	tab_entry_new().  #166890.

	* src/tabpopup.c (tab_entry_new): new function,
	(meta_ui_tab_popup_new): use tab_entry_new() to remove a big chunk
	of code, plus a few other small cleanups.

Tue Jun  6 12:46:42 2006  Søren Sandmann  <sandmann@redhat.com>

	* configure.in (GETTEXT_PACKAGE): Bunp intltool requirement to
	0.35.0.

2006-05-29  Elijah Newren  <newren gmail com>

	* HACKING: Slightly more detailed instructions on setting up a
	build environment to mention relevant development tools in
	addition to the needed development libraries.

Fri May 26 16:48:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/effects.c (meta_effect_run_unminimize): Run an unminimize effect

	* src/window.c (meta_window_unminimize): Store a "was_minimized"
	boolean in the window.

	* src/window.c (meta_window_show): If the window was minimized,
	run an unminimize animation.

	* src/c-window.c (meta_comp_window_run_unminimize): Add an
	unminimize animation, running the minimize one in reverse.

Fri May 26 14:55:07 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (meta_comp_window_run_focus): Rename from
	_bounce() to _focus().

2006-05-26  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_close): Fix a crash on exit/logout
	from assuming a compositor would always exist

2006-05-25  Elijah Newren  <newren gmail com>

	* src/place.h:
	* src/common.h:
	Remove MetaWindowEdgePosition enum that isn't used anymore

Thu May 25 15:56:43 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/effects.h (struct MetaEffect): Move duplicated window field
	outside the union

	* src/compositor.c: delete duplicated code to get at the window.

Thu May 25 15:17:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c: Fix compilation in non-compositor case, by
	moving the stack functions into the HAVE_COMPOSITOR defines.

Thu May 25 15:11:58 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.h: Add a destroy notifier to the window.

	* src/c-screen.c (on_window_destroy): New function.

	* src/c-screen.c (meta_comp_screen_add_window): Use the destroy
	notifier here.

	* src/c-window.c (generate_phases): New function. Simplify the
	minimize animation a lot by generating all the rectangle
	information into an array, then processing that.

2006-05-25  Adam Jackson  <ajax@freedesktop.org>

	* src/c-window.c:
	* src/c-window.h:
	* src/compositor.c:
	* src/compositor.h:
	* src/effects.c:
	* src/effects.h:
	* src/spring-model.c:
	* src/window.c:
	Bounce on window focus.

Wed May 24 22:15:01 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (do_effect): Make sure windows are kept on top
	of the panel during minimize.

Wed May 24 21:17:59 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (do_effect): Shrink the window instead of
	explode it. 

	* src/compositor.c (do_effect): don't read the frame if it is
	NULL.
	
	* src/c-window.c (meta_comp_window_run_minimize): Resurrect the
	shrinking minimize animation.

	* src/c-window.c (meta_comp_window_fade_in): Make dialogs 90%
	translucent. 

	* src/c-window.c (update_fade): End at end_fade, not 1.0.

Wed May 24 19:15:45 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (cancel_fade): Add a fade-in animation when
	windows are mapped.

Wed May 24 16:37:11 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (private_metacity_window): New function

	* src/c-window.c (meta_comp_window_refresh_attrs): Map metacity's
	own windows directly.

Wed May 24 16:35:54 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (private_metacity_window): 

Wed May 24 14:36:42 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (meta_comp_window_{freeze,thaw}_stack: Add a
	stack-freeze feature to CWindow.

	* src/c-screen.c (meta_comp_screen_restack): Don't restack if the
	window is frozen.

Wed May 24 13:09:49 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c: Fix compilation in the non-composited case.

Wed May 24 12:57:32 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (meta_comp_window_free): return TRUE when the
	window is actually freed.

	* src/compositor.c (do_effect): Disable updating before exploding
	the window.

	* src/c-window.c: Make MetaCompWindow refcounted.

	* src/c-window.[ch]: New functions meta_comp_window_{show,hide}

	* src/c-screen.c (meta_comp_screen_unmap): Call
	meta_comp_window_hide() instead of directly setting the viewable
	status of the node.

	* src/c-screen.c (meta_comp_screen_remove_window): Only remove the
	window when it is actually freed.

Wed May 24 12:45:21 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c: Delete unused meta_comp_screen_hide_window().

2006-05-23  Adam Jackson  <ajax@freedesktop.org>

	* src/c-window.c:
	* src/c-window.h:
	* src/compositor.c:
	* src/effects.c:
	* src/effects.h:
	* src/window.c:
	Move shrink effect code from compositor.c to c-window.c.  Stubs for
	restore effect.  Notes in various places for where to hook in
	other effects.

Tue May 23 16:36:04 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (do_effect): Also use explode when windows close.

	* src/c-window.c (meta_comp_window_explode): Add refcounting to
	comp window, and use it in the explosion effect

	* src/effects.h (struct MetaEffect): Add new MetaCloseEffect.

	* src/display.c (event_callback): Run it from the UnmapNotify
	event handler.

Tue May 23 15:23:58 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (send_sync_request): New function to send a sync
	request to newly mapped windows.
	(on_request_alarm): Show the window here.
	
2006-05-23  Adam Jackson  <ajax@freedesktop.org>

	* src/effects.h:
	Add more effect tokens.

Mon May 22 17:35:52 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/effects.[ch]: Beginning of new layer that abstracts
	transition effects. 

	New functions:
	(meta_push_effect_handler): Install an effect handler
	(meta_pop_effect_handler): Remove last effect handler
	(meta_effect_run_minimize): Create a minimize effect and pass it
	to the handler.
	(meta_effect_end): Called by handler when the effect is finished.

	* src/compositor.c: Move explosion code form there to src/c-window.c.

	* src/c-screen.c: Delete explosion related code.
	
2006-05-22  Björn Lindqvist  <bjourne@gmail.com>

	* common.h (enum MetaCursor):
	* display.c (meta_display_create_x_cursor): Make mouse cursor when
	moving windows become a hand. Fixes #337376.
 
2006-05-19  Björn Lindqvist  <bjourne@gmail.com>

	* frames.c: Fix a logic bug so that the whole titlebar becomes
	sensitive to mouse clicks. Fixes #336320.

2006-05-18  Björn Lindqvist  <bjourne@gmail.com>

	* resizepopup.c: Remove the unused attributes resize_gravity,
	width_inc, height_inc, min_width, min_height, frame_left,
	frame_right, frame_top, frame_bottom, tick_origin_x, tick_origin_y
	from the MetaResizePopup struct. Delete all code that references
	those attributes.

2006-05-15  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.5

2006-05-15  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.3 release

2006-05-15  Elijah Newren  <newren gmail com>

	Revert the accessibility module loading workaround from Gnome
	2.6, since gtk+ has long since fixed this for us.  #123372.

	* src/Makefile.am: remove METACITY_LIBDIR define

	* src/main.c (find_accessibility_module,
	accessibility_invoke_module, accessibility_invoke, main): remove
	the first three of these functions and all calls to them

	* src/tabpopup.c (meta_ui_tab_popup_new): not sure if this part of
	120025 needed to be reverted but doing the reversion, if wrong, is
	the best way to get someone from the accessibility team to scream,
	er, I mean comment.  ;-)

2006-05-15  Elijah Newren  <newren gmail com>

	* src/screen.c (reload_xinerama_infos): Patch from
	jylefort@FreeBSD.org to prevent a crash when changing resolution.
	Fixes #340847.

2006-05-15  Björn Lindqvist  <bjourne@gmail.com>

	* places.[ch] (intcmp, window_get_edges,
	get_windows_showing_on_same_screen, get_vertical_edges,
	get_horizontal_edges, meta_window_find_next_vertical_edge,
	meta_window_find_next_horizontal_edge,
	meta_window_find_nearest_vertical_edge,
	meta_window_find_nearest_horizontal_edge): Remove the preceeding
	functions as they are all obsoleted by the new edge-resistance
	stuff. Fixes #341561.

2006-05-15  Paolo Borelli  <pborelli@katamail.com>

	* src/prefs.c (update_binding): plug a small leak.

2006-05-12  Elijah Newren  <newren gmail com>

	* configure.in: I don't think we want a config file for the
	no-gconf case; embedded people would prefer hard-coding things
	into the binary
	(http://mail.gnome.org/archives/metacity-devel-list/2006-May/msg00010.html)

2006-04-25  Elijah Newren  <newren gmail com>

	* HACKING: Clarify that gnome-common is needed now that autogen.sh
	has been rewritten to use gnome-autogen.sh

Fri May  5 12:50:58 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.c (has_counter): Some experimental code to handle
	sync counter notifications on a window.

	* src/c-screen.c (meta_comp_screen_add_window): Pass a MetaDisplay

2006-04-25  Elijah Newren  <newren gmail com>

	Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
	longer being used.  Fixes #330671.

	* src/window.[ch] (struct MetaWindow): new
	using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
	(meta_window_new_with_attrs): initialize these new bits to false
	
	* src/window-props.c (set_title_text, set_window_title, set_icon_title):
	if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
	doesn't need to be this time, make sure to clear it

2006-04-25  Elijah Newren  <newren gmail com>

	* rationales.txt: add three new tracker bugs

Thu May  4 13:30:04 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/ui.h: Delete unused META_PRIORITY_COMPOSITE

	* src/ui.c: Delete argument from meta_ui_get_display().

	* src/c-window.c: Remove the xid->window hashtable and associated
	code. 

	* src/c-screen.[ch]: Rename MetaScreenInfo to MetaCompScreen. Put the
	xid->windows table here instaed of as a static variable. Also make
	sure that CompWindows are freed when the screen is unredirected.

	* src/display.c: Delete non USE_GDK_DISPLAY case, as it didn't
	work and hasn't been compiled for a long time.
	
	* src/display.[ch] (meta_display_open): Remove argument as it was
	always NULL (and couldn't possibly be anything else in the
	USE_GDK_DISPLAY case).

Tue May  2 17:12:54 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-window.[ch]: New files
	
	* src/c-screen.c: Move WindowInfo struct to new c-window.[ch]
	files. Delete various bits of obsolete, commented-out code.

Fri Apr 28 12:53:23 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/core.c (get_window): New function. 
	* src/core.c: Use get_window() instead of cutted-and-pasted code
	all over the place.

2006-04-25  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.3

2006-04-25  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.2 release

2006-04-25  Elijah Newren  <newren gmail com>

	* autogen.sh: Nuke the old version, copy one from gcalctool that
	uses gnome-autogen.sh.  Seems to fix the
	translations-aren't-included-in-the-tarball problem.  Fix from
	Rodney in IRC.

2006-04-25  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.15.2

2006-04-25  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.1 release
	* configure.in: belated post-release version bump to 2.15.1
	* src/Makefile.am: Include boxes.h so that control-center won't
	fail to build  #339708.

2006-04-24  Elijah Newren  <newren gmail com>

	* NEWS:	2.15.0 release

2006-04-20  Brian Pepple  <bdpepple@gmail.com>

	#337951.

	* po/LINGUAS: New file listing all supported languages.

	* configure.in: Use po/LINGUAS instead of including all languages
	directly in this file. See the wiki for more information:
	http://live.gnome.org/GnomeGoals/PoLinguas.

2006-04-19  Thomas Andersen  <phomes@gmail.com>

        * src/window-props.c (reload_transient_for): warn and ignore if
	transient_for is set to a non-top-level window.  Fixes #335524.

2006-04-19  Björn Lindqvist  <bjourne@gmail.com>

	* src/frames.c (struct CachedPixels, meta_frames_destroy,
	invalidate_cache, generate_pixmap, populate_cache,
	cached_pixels_draw, meta_frames_expose_event,
	meta_frames_paint_to_drawable):

	Replace while loops iterating over sequences with for loops. Also,
	replace the attributes in the CachedPixels struct with a list of
	four CachedFramePiece:s, this allows iteration over the four
	pixmaps instead of treating each one separately. Fixes #338359.
  
2006-04-18  Björn Lindqvist  <bjourne@gmail.com>

	* makefile.am: Add boxes.{c,h} to libmetacity_private
	* src/theme-parser.c (check_expression):
	* src/theme-viewer.c (run_position_expression_tests):
	Use meta_rect ().

	* src/theme.c: Replace while loops iterating over sequences with
	for loops.

	* src/theme.c, src/theme.h (struct _MetaPositionExprEnv,
	meta_draw_op_draw, meta_draw_op_list_draw,
	meta_theme_draw_menu_icon): Use MetaRectangles in function
	prototypes instead of x, y, with, height ints where applicable.

2006-04-18  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Remove obsolete entry for no_NO
	* po/no.po: And the translation.

2004-04-17  Thomas Thurman <thomas@thurman.org.uk>

	* keybindings.c (count_bindings, rebuild_binding_table):
	* prefs.c (change_notify, screen_bindings,
	window_bindings, init_bindings, update_binding,
	find_and_update_list_binding, update_list_binding,
	meta_prefs_get_window_binding): Allow any keybinding pref
	to be specified either with <foo>, a string, or <foo>_list,
	a list of strings, or both. Fixes #164831.

2006-04-16  Elijah Newren  <newren gmail com>

	Patch from Dan Sanders to fix #334899.

	* window.c (meta_window_new_with_attrs): Unminimize ancestors of
	new windows when mapped; this prevents e.g. confirmation windows
	from causing applications to appear locked when closing via the
	window list.

2006-04-15  Elijah Newren  <newren gmail com>

	Patch from Dan Sanders to fix #335076.

	* src/core.c (meta_core_maximize, meta_core_toggle_maximize,
	  meta_core_unmaximize):
	* src/window.c (meta_window_client_message):
	Raise windows on maximize/unmaximize.

2006-04-15  Elijah Newren  <newren gmail com>

	* src/display.h: Patch from Andy Morum to fix the build with
	--disable-xsync.  #336605

2006-04-14  Elijah Newren  <newren gmail com>

	* HACKING: Include instructions on setting up a minimal
	building/testing environment

2006-04-14  Thomas Thurman   <thomas@thurman.org.uk>

	Add a tabbing function, bound to alt-f6 by default, to cycle
	through the windows of the current application. Fixes #94682.

	* src/common.h: two new MetaGrabOpts values for group switching
	* src/display.c (ping_data_free, meta_display_in_grab_op,
	IN_TAB_CHAIN): adapt to new MetaGrabOpts
	* src/display.h: new enum value for MetaTabList for group switching
	* src/keybindings.c (meta_display_process_key_event):
	adapt to new MetaGrabOpts
	(process_tab_grab): adapt to new MetaGrabOpts, and use switch
	statement for cancelling instead of if statement
	* src/metacity.schemas.in: new keybindings
	* src/prefs.c, src/prefs.h: handle new keybindings
	* src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro

2006-04-14  Elijah Newren  <newren gmail com>

	* HACKING: Include reasons why gdk/gtk.h and core includes like
	display.h/window.h must be kept separate.  Taken from a private
	email from Havoc.

2006-04-13  Alejandro Andres <fuzzy.alej@gmail.com>

	* README: Fixed broken links.  #333303

Thu Apr 13 12:23:28 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_add_window): Check for both
	POPUP and DROPDOWN. 

2006-04-13  Björn Lindqvist  <bjourne@gmail.com>

	* src/async-getprop.c, src/async-getprop.h
	(async_get_property_handler, ag_task_get_reply_and_free):
	* src/testasyncgetprop.c (try_get_reply, run_speed_comparison):
	Change unsigned chars to chars.
	
	* src/display.h (struct MetaDisplay):
	* src/keybindings.c (reload_modmap):
	Change unsigned ints to ints.
	
        * src/screen.c (set_workspace_names)
	* src/stack.c (meta_stack_sync_to_server):
	* src/xprops.c (utf8_string_from_results, utf8_list_from_results,
	class_hint_from_results, meta_prop_get_values):
	Introduce casts.

	Add a number of casts and change signedness on a number of
	variables so that Metacity compiles with many fewer
	warnings. Fixes #336032.

2006-04-12  Elijah Newren  <newren gmail com>

	Patch from Ron Yorston to add a focus_new_windows option.  Default
	is 'smart' (focus by default but normal focus-stealing-prevention
	can kick in); 'strict' is current other choice (like 'smart'
	except that programs launched by the terminal will not be
	focused).  Fixes remainder of #326159.  Should also close #152004
	and a bunch of others.

	* src/common.h:
	Add a MetaFocusNewWindows enum giving the current types allowed
	
	* src/display.h:
	Update docs on allow_terminal_deactivation to note that it is only
	relevant when focus_new_windows is 'strict'
	
	* src/metacity.schemas.in: add the new gconf key and explanation

	* src/prefs.[ch] (#define KEY_FOCUS_NEW_WINDOWS, static gboolean
	  focus_new_windows, update_focus_new_windows, meta_prefs_init,
	  change_notify, meta_prefs_get_focus_new_windows,
	  meta_preference_to_string):
	Add all the normal preference handling stuff for this new
	focus-new-windows option.
	
	* src/window.c (window_state_on_map, meta_window_set_user_time):
	Don't focus windows launched from a terminal

Mon Apr 10 16:44:51 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (is_menu): Check if the window is a menu and make
	it 90% opaque in that case.

	* src/c-screen.c (claim_selection): Handle CM_Sn selection
	properly. 

	* src/c-screen.c: Remove debug spew

	* src/screen.c (meta_screen_composite_all_windows): Remove debug spew

2006-04-10  Björn Lindqvist  <bjourne@gmail.com>

	* display.c (meta_display_open, event_callback):
	* ui.c (meta_ui_get_double_click_timeout):
	
	Delete dead code that used to handle double click on the
	titlebar. Remove the attributes last_button_time,
	last_button_xwindow, last_button_num and is_double_click from
	MetaDisplay and the functions meta_ui_get_double_click_timeout()
	and meta_display_is_double_click() from their respective
	files. Fixes #337507.

2006-03-27  Gora Mohanty  <gmohanty@cvs.gnome.org>

        * src/metacity.schemas.in:
	* src/theme.c:
	Changes strings to make them more readable, and more translatable.
	Fixes #335720.

2006-04-02  Elijah Newren  <newren gmail com>

	Fix constraints bug causing negative width windows and crashes.
	#336651

	* src/constraints.c (constrain_partially_onscreen): Don't
	accidentally shove & resize the window by requiring more pixels to
	be onscreen than the size of the window.

Fri Mar 31 16:44:56 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_unredirect): Release the GL
	window here. Disconect from the magnifier, not the stacker.

Fri Mar 31 12:24:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Only use magnifier
	when USE_MAGNIFIER is set.

	* src/compositor.c (meta_compositor_free_window): Only wobble when
	USE_WOBBLE is set. 

Fri Mar 31 12:13:21 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Don't hardcode
	screen size.

Thu Mar 30 17:01:12 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (struct MetaCompositor): Fix the memory
	corruption in a better way.

Thu Mar 30 16:38:35 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_begin_move): Fix an illegal write.

Thu Mar 30 16:13:52 2006  Søren Sandmann  <sandmann@redhat.com>

	* composite.c: Turn wobbling back on  Add new explosion effect.

2006-03-29  Elijah Newren  <newren gmail com>

	Fix grouping in the presence of ancestors; caught by Björn.
	#336184

	* src/group.c (meta_window_compute_group): Use new
	meta_window_find_root_ancestor() function to get ancestor; for the
	computed group, use the ancestor's group instead of the ancestor
	itself

	* src/window.[ch] (meta_window_find_root_ancestor,
	meta_window_raise): split meta_window_find_root_ancestor()
	functionality of meta_window_raise() and make it available
	elsewhere

2006-03-29  Elijah Newren  <newren gmail com>

	* rationales.txt: Add bugs about pointer warping; update
	raise-on-click ones.

2006-03-29  Thomas Thurman   <thomas@thurman.org.uk>

	Abstract out the functions for setting/unsetting demands attention
	hint and avoid doing it when the window isn't obscured.  Fixes the
	remainder of #305882.

	* src/window.c, src/window.h (meta_window_set_demands_attention,
	meta_window_unset_demands_attention): new functions to mark a
	window as needing or not needing the user's attention
	* src/window.c (meta_window_show, window_activate,
	meta_window_focus, meta_window_configure_request,
	meta_window_client_message): use the new set/unset
	demands attention functions. 

2006-03-29  Björn Lindqvist  <bjourne@gmail.com>

	* src/resizepopup.c:
	* src/resizepopup.h:
	* src/window.c (meta_window_refresh_resize_popup):
	Aggregate the x, y, width and height attributes of MetaResizePopup
	to one MetaRectangle rect attribute and update code using the
	MetaResizePopup struct. Fixes #335177.

2006-03-28  Elijah Newren  <newren gmail com>

	* MAINTAINERS: New file.  #335026.  ;-)

Tue Mar 28 09:57:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_add_window): Also check for overlay_window.

	* src/c-screen.c (meta_screen_info_redirect): Trap errors out of
	unredirect(). 

2006-03-25  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window.c, src/window.h (update_net_wm_state,
	update_mwm_hints, update_wm_class, update_transient_for):
	deleted and moved into window-props.c
	(meta_window_new_with_attrs): added constructing field
	and four new initial properties (as above)
	(meta_window_recalc_features,
	meta_window_recalc_window_type): new functions

	* src/window-props.c (init_net_wm_state, reload_net_wm_state
	init_mwm_hints, reload_mwm_hints, init_wm_class,
	reload_mwm_class, init_transient_for, reload_transient_for):
	new functions, moved in from window.c

	(meta_display_init_window_prop_hooks): initialise new properties

	Closes #309567.

2006-03-25  Paolo Borelli  <pborelli@katamail.com>

	* src/prefs.c: use g_str_has_prefix instead of a local copy
	of the function.

2006-03-16  Ray Strode  <rstrode@redhat.com>

	Add patch from Elijah Newren to fix type
	for compositing_manager schema entry (bug 335901)

	* src/metacity.schemas.in: Change type from "boolean" to "bool"
	and default value from "FALSE" to "false"

Wed Mar 22 13:16:48 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_remove_window): Actually
	remove the window.

	* src/c-screen.c (meta_screen_info_remove_window): Only remove
	node if non-NULL

Wed Mar 22 10:33:21 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Put a square below
	the desktop stack.

Mon Mar 20 11:50:44 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_redirect): Put the desktop into
	a magnifier.

	* src/c-screen.c (struct MetaScreenInfo): Add a CmMagnifier

	* src/c-screen.c (meta_screen_info_redirect): Move some of the gl
	window related stuff here.

2006-03-16 Soren Sandmann (sandmann@daimi.au.dk)

	* src/c-screen.c (meta_screen_info_set_target_rect): Put inside
	COMPOSIT_EXTENSIONS

2006-03-03  Thomas Thurman  <thomas@thurman.org.uk>

	Always set _NET_WM_STATE when a window is shown or
	hidden, even if it wasn't mapped. Fixes #315142.

	* src/window.c (meta_window_hide, meta_window_show):
	call set_net_wm_state unconditionally

2006-03-16  Elijah Newren  <newren gmail com>

	Add debugging information for edge resistance

	* src/edge-resistance.c (cache_edges): print out the edges that
	are being cached if in verbose mode,
	(meta_window_edge_resistance_for_move,
	meta_window_edge_resistance_for_resize): if edge resistance kicked
	in then print out a message about it
	
	* src/util.c:
	* src/util.h:
	Add META_DEBUG_EDGE_RESISTANCE to MetaDebugTopic enum list

Thu Mar 16 14:55:18 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (struct WindowInfo): Maintain the size of the
	window.

Wed Mar 15 16:30:09 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (set_geometry): Use set_target_rect() instead
	of set_size(). 

	* src/c-screen.c: Add set_target_rect() as a way of scaling windows.

	* src/window.c (meta_window_handle_mouse_grab_op_event): Turn
	updates on after a button release.

	* src/window.c (meta_window_move_resize_internal): Fix
	indentation. 

Wed Mar 15 11:34:54 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_add_window): Use unset_patch()
	instead of unset_geometry().

Tue Mar 14 11:57:46 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Comment out wobbling
	
	* src/compositor.c (blow_up): remove this function
	
	* src/compositor.c (process_configure_notify): Uncomment
	set_size(). 

	* src/c-screen.c (meta_screen_info_set_updates): When updates are
	true, set all the properties such as size and shape.

	* src/c-screen.c (meta_screen_info_add_window): Create a special
	WindowInfo structure for each window.

	* src/c-screen.c (meta_screen_info_set_size): Set size and output
	shape of the drawable node.

2006-03-13  Elijah Newren  <newren gmail com>

        * README:
	* configure.in:
	Update to reflect that we're now targetting 2.15 development.

2006-03-12  Thomas Thurman  <thomas@thurman.org.uk>

	* src/window-props.c (set_title_text): Mark a particular
	string for translation.  #334332.

2006-03-06  Ryan Lortie  <desrt@desrt.ca>

	* src/window.c (meta_window_free): Only unmaximise window before
	freeing if the window is actually maximised.  #333563.

Fri Mar  3 15:31:04 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/c-screen.c (meta_screen_info_new): Update for libcm API
	change.

Wed Mar  3 13:25:03 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c, src/c-screen.[ch]: Split the ScreenInfo data
	structure into separate, new files c-screen.[ch].
	
	* src/errors.c (x_error_handler): Forward foreign errors to
	foreign displays.

	* src/errors.c (meta_errors_register_foreign_display): Implement
	this function
	
	* src/errors.h: Add new meta_errors_register_foreign_display()

Tue Feb 28 14:49:23 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Put the windows in a stacker rather than
	do the traversing outselves.

2006-02-27  Elijah Newren  <newren gmail com>

        Patch from Thomas Thurman to prevent setting cycle_windows to
        keybindings that won't work.  #329676

        * src/prefs.c (update_binding):
        Make sure that bindings which require a modifier key are set to a
        keybinding with one or else that the binding is reverted.

        * src/ui.[ch] (meta_ui_accelerator_name):
        New function

2006-02-27  Elijah Newren  <newren gmail com>

        Patch from Thomas Thurman to work around buggy application
	grouping with transient windows.  #328211

        * src/group.c (meta_window_compute_group):
        Put transients in the same group with their parent, always.

        * src/window.c (update_transient_for):
        Update group too

2006-02-27  Elijah Newren  <newren gmail com>

        * configure.in:
        Patch from Sylvain Bertrand to fix build issues with library
        search order.  #330695.

Sat Feb 25 14:50:17 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/window.c: Remove include of flash.h

Sat Feb 25 11:46:14 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/display.c (meta_display_begin_grab_op): Call
	meta_compositor_begin_move if there is a compositor

	* src/compositor.c (meta_compositor_begin/update/end_move):
	Implement those functions.

	* src/spring-model.[ch]: New files
	
Thu Feb 23 15:40:52 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen): Don't attempt
	to manage the screen if it already is managed.

	* src/compositor.c (meta_compositor_unmanage_screen): Synchronize
	the display. 

2006-02-19  Thomas Thurman  <thomas thurman org uk>

        Removed "move to another workspace" menu when there are
        exactly two workspaces.  Fixes #151183.

        * src/menu.c (meta_window_menu_new): clear
        META_MENU_OP_WORKSPACES bit when n_workspaces==2

Fri Feb 17 11:56:35 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/screen.c (meta_screen_free): Only uncomposite the screen if
	there is a compositor.

	* src/compositor.c (meta_compositor_new): Warn and fail if the
	server doesn't have composite

Thu Feb 16 18:57:48 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Fix the build when --enable-compositor is
	there.

Thu Feb 16 15:54:48 2006  Søren Sandmann  <sandmann@redhat.com>

       * src/compositor.c: Insert #ifdef's to make it build again

Thu Feb 16 15:24:42 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/screen.c (meta_screen_composite_all_windows): New function.

	* src/prefs.[ch], src/metacity.schemas.in: Add new
	compositing_manager key.

	* src/display.c (prefs_changed_callback): Handle
	META_PREF_COMPOSITOR_MANAGER

	* src/display.c (event_callback): Only call
	meta_compositor_process_event() if there is in fact a compositor.

	* src/display.c (enable/disable_compositor): Add code to
	enable/disable compositor at runtime

Wed Feb 15 18:42:03 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.[ch]: Add code to destroy compositor. Implement
	unmanage_screen() functionality.

Wed Feb 15 14:47:50 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_unminimize): Add unused wobbly
	unminimize animation by Kristian

	* src/compositor.c (meta_compositor_minimize): Add wobbly minimize
	animation by Kristian.

	* src/compositor.c: Add support for turning updates on and off.

	* src/window.c (meta_window_move_resize_internal): Use
	sync counter to make composited resizing tear free

2006-02-14  Elijah Newren  <newren gmail com>

	Patch from Jens Granseuer to fix more build issues with gcc 2.95.
	#331166.

	* src/prefs.c (meta_prefs_init):
	Remove C99 style variable initiailization

2006-02-13  Elijah Newren  <newren gmail com>

	* configure.in: post-release version bump to 2.13.144

2006-02-13  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.89 release

2006-02-13  Elijah Newren  <newren gmail com>

	* src/keybindings.c (process_tab_grab):
	We had that prev_window code in multiple places and it was all
	identical.  Let's just stick it in one place to make the function
	easier to read.

2006-02-13  Thomas Thurman  <thomas thurman org uk>

	* src/keybindings.c (process_tab_grab):
	Allow alt-escape to cancel alt-tabbing, and vice versa.  Fixes
	#141425.

2006-02-11  Thomas Thurman  <thomas thurman org uk>

        Disable alt-f7 if a window can't be moved, and alt-f8 if it
        can't be resized.  Fixes #328920.

        * src/keybindings.c (handle_begin_move, handle_begin_resize):
        check window->has_*_func before beginning operation

2006-02-11  Elijah Newren  <newren gmail com>

	Add a man page for metacity.  Original version taken from Debian
	(written by Thom May and Akira Tagoh) and updated by Luke Morton
	and Philip O'Brien.  Necessary auto-fu supplied by Philip O'Brien.
	Fixes #321279.

2006-02-11  Elijah Newren  <newren gmail com>

	* src/stack.h (enum MetaStackLayer):
	* src/stack.c (get_standalone_layer):
	actually use META_LAYER_TOP but just manually make it equal to
	META_LAYER_DOCK.  Add a note point to the EWMH for why we do this.
	#330717
	
2006-02-11  Elijah Newren  <newren gmail com>

	* src/window.c (enum GnomeWinLayer): remove this legacy cruft that
	we stopped using years ago

2006-02-10  Thomas Thurman  <thomas thurman org uk>

	Avoid a memory leak when checking which workspace(s) a window is
	on.  Fixes #322059.

        * src/workspace.h (struct MetaWorkspace):
        * src/workspace.c (meta_workspace_new, meta_workspace_free):
	added list_containing_self member to MetaWorkspace

        * src/window.c (meta_window_get_workspaces): use
	window->workspace->list_containing_self instead of allocating (and
	leaking) such a list on the fly.

2006-02-09  Thomas Thurman  <thomas thurman org uk>

        * src/testboxes.c (test_regions_okay, test_clamping_to_region):
        add messages to explain that warnings are harmless

Tue Feb  7 00:58:05 2006  Soeren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Wrap fade code in #ifdef HAVE_COMPOSITE_EXTENSIONS

Mon Feb  6 17:45:39 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: New fancy minimize animation. Fade windows in
	and out.

2006-02-03  Thomas Thurman  <thomas thurman org uk>

        * src/display.c (event_callback): produce warning when invalid
        events with no timestamp are received, rather than failing an
        assertion

Thu Feb  2 17:58:22 2006  Søren Sandmann  <sandmann@redhat.com>

	* compositor.c (process_map): update the pixmap.
	(update) print out framerate. 
	(dump_stacking_order) new debug
	function.
	(meta_compositor_add_window) error trap fixes
	(MiniInfo): Make the minimize animation fade out.

2006-01-30  Elijah Newren  <newren gmail.com>

	* configure.in: post-release version bump to 2.13.89

2006-01-30  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.55 release

2006-01-30  Elijah Newren  <newren gmail com>

	* src/display.[ch] (struct MetaDisplay), meta_display_open,
	meta_display_set_input_focus_window,
	meta_display_focus_the_no_focus_window): Track the active_screen,
	(event_callback): If the mouse enters a window on a different
	screen, activate the default window on the new screen.  May need
	to be modified for click-to-focus; we'll wait for feedback.  Fixes
	#319348.

2006-01-23  Elijah Newren  <newren gmail com>

	* src/display.c (meta_display_check_threshold_reached): change the
	order of the ||'ed items in the if to avoid using an uninitialized
	value

	* src/prefs.c (meta_prefs_init): fix a couple uninitialized value
	problems

2006-01-21  Elijah Newren  <newren gmail com>

	Patch from Christian Kirbach to prevent a critical warning crasher
	when switching themes.  #327847.

	* src/theme.c (meta_theme_free): since themes are only constructed
	as needed and may be NULL, check for that before freeing theme
	hash tables

2006-01-21  Elijah Newren  <newren gmail com>

	* src/common.h (enum MetaActionDoubleClickTitlebar):
	* src/frames.c (meta_frames_button_press_event):
	* src/prefs.c (action_double_click_titlebar_from_string):
	* src/metacity.schemas.in:
	Patch from Dick Marinus to add a minimize
	double-click-titlebar-action; slightly modified to also include a
	none action.  #300210.
	
2006-01-20  Elijah Newren  <newren gmail.com>

	* configure.in: post-release version bump to 2.13.55

2006-01-20  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.34 release

2006-01-20  Elijah Newren  <newren gmail com>

	* src/constraints.c (setup_constraint_info): fixed_directions is
	only meant for explicit user interactions; disable it for
	everything else.  There are other bugs and improvements that could
	be made with fixed_directions that I should be filing too, but at
	least put a FIXME there for now--I'm so lame.  Fixes #327822.

2006-01-20  Elijah Newren  <newren gmail com>

	Avoid flashing when closing a maximized window.  Fixes #317254.

	* src/window.c (unmaximize_window_before_freeing): new function
	that just fixes the net_wm_state and sends a configure_notify,
	(meta_window_free): use unmaximize_window_before_freeing() instead
	of meta_window_unmaximize() to avoid flicker
	
2006-01-20  Elijah Newren  <newren gmail com>

	Fix unitialized value problem when in raise-on-click mode.  Søren,
	#327572.

	* src/display.c (meta_display_check_threshold_reached): make
	function be a no op if raise_on_click!=FALSE
	
	* src/display.h (struct MetaDisplay): point out that
	grab_initial_[xy] and grab_threshold_movement_reached are only for
	raise_on_click==FALSE mode.

2006-01-20  Elijah Newren  <newren gmail com>

	Patch from Søren to fix some reading-from-free'd-data errors.
	#327575

	* src/edge-resistance.c (meta_display_cleanup_edges): store the
	edges in a hash table so that we can still read their values
	within the loop from the other array they are stored in, then free
	them all at the end.
	
2006-01-20  Elijah Newren  <newren gmail com>

	Fix various initialization and default issues, especially for
	--disable-gconf.  Make --disable-gconf actually work.  #326661.

	* configure.in: Fix compilation with --disable-gconf
	* src/metacity.schemas.in: Add a note that if any defaults are
	  changed in this file, src/prefs.c may need to be updated to
	  reflect the change
	* src/prefs.c: set various static global vars to the right default
	value, (meta_prefs_init): get the titlebar_font and current_theme
	handled better when not using gconf, (struct MetaSimpleKeyMapping,
	screen_string_bindings, window_string_bindings): helper vars to
	allow some keybindings to work even without gconf,
	(init_bindings): initialize bindings for the without-gconf case
	too, (init_commands): make sure these are all NULL for the
	non-gconf case so that we don't access random memory,
	(init_workspace_names): just give these all a default name for the
	non-gconf case,
	(meta_prefs_change_workspace_name): actually change the name for
	the non-gconf case too
	
2006-01-20  Elijah Newren  <newren gmail com>

	More careful error handling of values returned by GConf.  Fixes
	#326615.

	* src/prefs.c (get_bool): new helper function, (meta_prefs_init):
	use get_bool to handle the case of a gconf key not existing,
	(update_cursor_size): sanity check for sane values

2006-01-20  Elijah Newren  <newren gmail com>

	Prevent rapidly repeated visual bells from hanging metacity.
	Fixes #322032.

	* src/display.h (struct MetaDisplay): add a last_bell_time field,
	(XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS macro,
	XERVER_TIME_IS_BEFORE macro): add parentheses around usage of
	macro parameter

	* src/display.c (meta_display_open): initialize last_bell_time,
	(event_callback): don't allow more than one bell per second
	
2006-01-20  Elijah Newren  <newren gmail com>

	* src/async-getprop.c:
	* src/common.h:
	* src/display.c:
	* src/eggaccelerators.c:
	* src/frames.c:
	* src/gradient.c:
	* src/iconcache.c:
	* src/keybindings.c:
	* src/metaaccellabel.c:
	* src/place.c:
	* src/prefs.c:
	* src/preview-widget.c:
	* src/screen.c:
	* src/session.c:
	* src/stack.c:
	* src/tabpopup.c:
	* src/theme-viewer.c:
	* src/theme.c:
	* src/window-props.c:
	* src/window.c:
	* src/workspace.c:
	* src/tools/metacity-window-demo.c:
	* src/wm-tester/test-gravity.c:
	* src/wm-tester/test-resizing.c:
	* src/wm-tester/test-size-hints.c:
	Patch from Kjartan Maraas to fix a lot of tiny issues (unused
	variable removal, making unused variables used again, correction
	of types passed/declared for printf arguments, removal of unneeded
	breaks and returns, dead code removal, dead code revival, renaming
	to prevent shadowed variables, declaring unexported functions as
	static) spotted by the intel compiler.  #321439

2006-01-20  Elijah Newren  <newren gmail com>

	Patch from Björn Lindqvist to fix #98340.

	* src/screen.c (meta_screen_ensure_tab_popup): Make sure an
	outline border is shown even if a window frame's width is 0.
	Also, correctly handle window outlines in showing desktop mode.

Fri Jan 20 16:42:25 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Make minimize animation update again.

Thu Jan 19 18:05:47 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen):
	g_object_unref() rather than ws_region_unref().

Thu Jan 19 16:50:50 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Port to changes in libcm

Tue Jan 17 17:25:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Port to changes in libcm.

2006-01-16  Elijah Newren  <newren gmail com>

	* src/window-props.c: manually define HOST_NAME_MAX if not already
	defined to fix Solaris compilation issue.  Caught by Damien
	Carbery, patch from Havoc.  #326745

2006-01-16  Elijah Newren  <newren gmail.com>

	* configure.in: post-release version bump to 2.13.34

2006-01-16  Elijah Newren  <newren gmail com>

	* NEWS:	2.13.21 release

Mon Jan 16 11:55:20 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen): Really turn
	off draw-in-a-loop.

2006-01-15  Kyle Ambroff  <kambroff@csus.edu>

	* src/workspace.c (focus_ancestor_or_mru_window): 
	If no valid window is found in the MRU list, then set focus to the
	desktop window. (#317405)

2006-01-15  Elijah Newren  <newren gmail com>

	Fix accidental overzealous focus holding by the terminal
	introduced by the original patch in bug 326159.  Windows launched
	from panel icons, the panel menu, or global keybindings should get
	focus now.  #326159.

	* src/display.c (meta_display_open, event_callback): 
	* src/display.h (struct MetaDisplay):
	* src/keybindings.c (process_event):
	* src/window.c (meta_window_set_user_time):
	Add a new allow_terminal_deactivation field to MetaDisplay and use
	it to track whether the user's last action was interaction with
	the terminal or some outside action (global keybinding, clicking
	on a dock, etc.) likely to launch a new window.

	* src/window.c (window_state_on_map):
	Allow the focus switch from a terminal to something else if
	allow_terminal_deactiviation is true.

	* src/keybindings.c (handle_panel_keybinding):
	Remove some unneeded code.

2006-01-15  Elijah Newren  <newren gmail com>

	Patch from Jens Granseuer to fix more build issues with gcc 2.95.
	#327050.

	* src/boxes.c (meta_rectangle_edge_cmp_ignore_type):
	* src/window.c (meta_window_show):
	Remove C99 style variable initiailization

2006-01-14  Elijah Newren  <newren gmail com>

	* src/window.c (__window_is_terminal): Don't dereference a NULL
	string.  Fixes #327013.

2006-01-14  Elijah Newren  <newren gmail com>

	* src/compositor.[ch]: fix compilation when
	HAVE_COMPOSITE_EXTENSIONS is undefined.  #326912

Fri Jan 13 16:37:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (update): Only update on damage events. 

2006-01-13  Elijah Newren  <newren gmail com>

	Patch from Damien Carbery.  Fixes #326746.

	* src/util.c: explicitly #include Xlib.h to fix a compilation
	issue on Solaris.

Fri Jan 13 14:40:19 2006  Søren Sandmann  <sandmann@redhat.com>

	* configure.in: Add a dependency on libcm when building with
	compositor.

	* src/window.c (meta_window_hide): Make this function static.

	* src/window.c (implement_showing): Use meta_compositor_minimize()
	to do a weird minimize effect.

	* src/compositor.[ch]: Beginning of new GL based compositor.
	
	* src/screen.h (struct _MetaScreen): Add void pointer to
	compositor data. 

	* src/screen.c (meta_screen_new): Remove obsolete compositor
	stuff; initialize compositor_data. Don't composite manage screen
	out of this function.

	* src/errors.c (x_error_handler): Check that display is non-NULL
	before using it. Add comment about how that can happen.

	* src/display.c (meta_display_{begin,end}_grab_op): Remove
	explicity damage of windows. 

	* src/display.c (meta_display_open): Composite manage all the
	screens. 

2006-01-11  Elijah Newren  <newren gmail com>

	* src/textboxes.c (test_area, test_intersect, test_equal,
	  test_overlap_funcs, test_basic_fitting, test_merge_regions,
	  test_regions_okay, test_region_fitting, test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region,
	  test_find_onscreen_edges,
	  test_find_nonintersected_xinerama_edges, test_gravity_resize,
	  test_find_closest_point_to_line):
	Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser
	compilers don't support the former.  Caught by Damien Carbery, fix
	suggested by Ray Strode.  #326281.

2006-01-10  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.21

2006-01-10  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.13 release

2006-01-10  Elijah Newren  <newren@gmail.com>

	* src/bell.c:
	* src/boxes.c:
	* src/boxes.h:
	* src/constraints.c:
	* src/core.c:
	* src/display.c:
	* src/display.h:
	* src/edge-resistance.c:
	* src/frames.c:
	* src/keybindings.c:
	* src/main.c:
	* src/prefs.c:
	* src/prefs.h:
	* src/screen.c:
	* src/screen.h:
	* src/window.c:
	* src/window.h:
	Whoops, I forgot to keep my copyright info updated with my previous
	commits as Havoc had asked me to do.  Doing that now...

2006-01-10  Elijah Newren  <newren@gmail.com>

	Add a raise on click option, basically only because all the major
	distros are patching it in anyway.  See #326156.

	* src/metacity.schemas.in: add the new gconf key and explanation

	* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
	  raise_on_click, update_raise_on_click, meta_prefs_init,
	  change_notify, meta_prefs_get_raise_on_click,
	  meta_preference_to_string):
	Add all the normal preference handling stuff for this new
	raise-on-click option.

	* src/core.c (meta_core_show_window_menu):
	* src/display.c (event_callback, meta_display_begin_grab_op):
	* src/window.c (window_activate, meta_window_configure_request, ):
	Only raise the window if in raise_on_click mode.

	* src/display.c (meta_display_begin_grab_op,
	  meta_display_end_grab_op, meta_display_check_threshold_reached):
	* src/display.h (struct MetaDisplay):
	* src/window.c (meta_window_handle_mouse_grab_op_event):
	if not in raise-on-click mode only raise on button release if the
	click didn't start a move or resize operation; needs a few extra
	MetaDisplay fields to handle this

	* src/core.c (meta_core_user_lower_and_unfocus):
	no need to do the MRU shuffling if not maintaining the stacking
	order == MRU order invariant

	* src/frames.c (meta_frames_button_press_event):
	* src/window.c (meta_window_begin_grab_op):
	remove an unneeded window raising that is already handled elsewhere

2006-01-10  Elijah Newren  <newren@gmail.com>

	Don't "steal" focus from terminal windows for new window mappings
	as the difference in usage between terminals and other apps seems
	to suggest this difference in treatment.  See #326159 for details,
	feedback welcome.

	* src/window.[ch] (__window_is_terminal): New function, currently
	an ugly hack and should be replaced by a new property set by
	applications if the behavior works to our liking,
	(window_state_on_map): don't transfer focus to new windows from
	terminals unless the new window is a transient of the focused
	terminal

	* src/keybindigns.c (handle_panel_keybinding): panel run dialog
	keybinding should be counted as an explicit transfer of focus to
	the new window, so override the
	don't-transfer-focus-from-terminals in this case

2006-01-09  Elijah Newren  <newren@gmail.com>

	More thorough handling of source indication.  Part of #326041.
	
	* src/window.c (window_activate): new function based off the old
	meta_window_activate but which also takes source indication into
	account, (meta_window_active): just call window_activate() with
	the necessary source indication to get the behavior wanted,
	(meta_window_client_message): check source indication too for
	_net_active_window messages

	* src/window.h (enum MetaClientType): convenience enum for source
	indication handling
	
2006-01-09  Elijah Newren  <newren@gmail.com>

	Make the taskbar less flash happy and fix up some related stacking
	issues.  #326035.

	* src/window.c (windows_overlap): new function,
	(meta_window_show): if a window is denied focus but doesn't
	overlap with the focus window there is no need to set the demands
	attention hint nor stack that window below the focus window,
	(meta_window_get_outer_rect): we're not modifying the window so
	declare it to be const

2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix window outline for minimized windows when using alt-esc.
	#325092.

	* src/display.c (meta_display_begin_grab_op): Specify the showing
	type of tabbing operation (Alt tab vs. alt-esc) in addition to the
	listing type of tabbing operation (docks vs normal windows) to
	meta_screen_ensure_tab_popup().

	* src/display.h (enum MetaTabShowType): new convenience enum

	* src/screen.[ch] (meta_screen_ensure_tab_popup): require the
	showing type be specified in addition to the tabbing type; put the
	outline around the window instead of the icon when in alt-esc
	mode.

2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix reduced resources resize handling for windows with sizing or
	resizing constraints.  #325774.

	* src/display.c (meta_display_end_grab_op): Provide constraints.c
	with the correct gravity information.
	
2006-01-09  Elijah Newren  <newren@gmail.com>

	Be more strict about what is considered a valid region with
	partial struts.  Fixes #322070.

	* src/boxes.[ch]:
	(meta_rectangle_expand_region_conditionally):
	new function behaving like meta_rectangle_expand_region() but
	which only does so when the width and height of the rectangles
	meet a certain threshold

	(replace_rect_with_list):
	Remove a compiling warning

	* src/constraints.c:
	(constrain_partially_onscreen):
	provide minimum thresholds in each direction for the size of the
	rectangles to avoid cases where only a single pixel thick layer of
	a window might be showing

2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/bell.c (meta_bell_notify_frame_destroy): Use the right
	function to remove the timeout so that we don't crash if removed
	at an inopportune time.  Fixes #322031.

2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	"pull-away" edge resistance.  Fixes another of the zillions of
	issues covered in #321905.

2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Revert to the old
	edge resistance behavior for keyboard movement/resizing based
	resistance.  Not only makes the code much simpler and shorter, but
	also fixes another of the zillions of issues covered in #321905.

2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	timeout resistance at screen/xinerama edges for the whiners.
	Okay, it made sense.  Fixes another of the zillions of issues
	covered in #321905.

2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Make extra
	timeout edge resistance apply even if one edge already offscreen.
	Fixes another of the zillions of issues covered in #321905.

2006-01-09  Elijah Newren  <newren@gmail.com>

	Allow edge resistance at both sides of a window and also when
	edges don't overlap but are a single pixel away from doing so.
	Fixes one of the zillions of issues covered in #321905.

	* src/boxes.[ch]:
	(meta_rectangle_edges_align):
	new function to handle the overlap or off by one determining
	whether edge resistance should kick in for an edge.

	(meta_rectangle_edge_cmp_ignore_type):
	new function to sort edges but ignore the type so that e.g. left &
	right edges of windows can be used interchangeably.

	(meta_rectangle_edge_cmp): 
	now uses meta_rectangle_edge_cmp_ignore_type() to do most the work
	and just adds an extra condition

	* src/edge-resistance.c:
	(find_nearest_position):
	use meta_rectangle_edges_align() now to determine whether the
	edges align,

	(apply_edge_resistance, apply_edge_resistance_to_each_side):
	have the edge resistance kick in if either the beginning or ending
	positions would cause overlap in the given direction -- fixes an
	uncommon but annoying corner case,
	
	(apply_edge_snapping, apply_edge_resistance_to_each_side,
	 meta_display_cleanup_edges,
	 stupid_sort_requiring_extra_pointer_dereference, cache_edges):
	mix edges from both sides now
	
2006-01-09  Elijah Newren  <newren@gmail.com>

	Plug a few leaks.  Fixes #309178.

	* src/main.c (main): remove an unneeded g_set_prgname() call, free
	some strings allocated by the GOptions parsing
	
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to fix a logic error.  #322149.

	* src/window.c (update_resize): && should have been ||.
	
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Jens Granseuer to fix build with gcc 2.95.  #322622.

	* src/boxes.c (meta_rectangle_region_to_string,
	  meta_rectangle_edge_list_to_string, fix_up_edges):
	* src/constraints.c (meta_window_constrain, setup_constraint_info,
	  place_window_if_needed, constrain_maximization,
	  constrain_fullscreen, constrain_size_increments,
	  constrain_size_limits, constrain_aspect_ratio,
	  do_screen_and_xinerama_relative_constrai,
	  constrain_to_single_xinerama, constrain_fully_onscreen,
	  constrain_partially_onscreen):
	* src/edge-resistance.c (find_nearest_position,
	  apply_edge_resistance, apply_edge_resistance_to_each_side):
	* src/testboxes.c (test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region):
	* src/window.c (meta_window_new_with_attrs,
	  meta_window_apply_session_info, meta_window_resize,
	  meta_window_resize_with_gravity, meta_window_configure_request):
	Remove C99 style variable initiailization

2006-01-02  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.13

2006-01-02  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.8 release

2005-12-27  Elijah Newren  <newren@gmail.com>

	Make the workspace switcher work with dual-head (non-xinerama)
	setups.  Fixes #319423.

	* src/display.c (meta_display_open, event_callback,
	  meta_display_focus_the_no_focus_window):
	* src/display.h (struct MetaDisplay,
	  meta_display_focus_the_no_focus_window):
	* src/keybindings.c (primary_modifier_still_pressed):
	* src/screen.c (meta_screen_new):
	* src/screen.h (struct MetaScreen):
	* src/window.c (meta_window_new_with_attrs, meta_window_show):
	* src/workspace.c (meta_workspace_focus_default_window):
	Replace display->no_focus_window with a no_focus_window for each
	screen.

	* src/display.[ch] (meta_display_xwindow_is_a_no_focus_window,
	  event_callback):
	* src/window.c (meta_window_new_with_attrs):
	New utility function, meta_display_xwindow_is_a_no_focus_window(),
	for checking if the given xwindow is a no_focus_window for one of
	the screens.

2005-12-27  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): since the title is going
	to be treated as markup, escape it.  Fixes #324846.

2005-12-13  Kang Jeong-Hee  <Keizi@mail.co.kr>

	* src/compositor.c: replace old call to width and height
	of MetaScreen struct with rect.width and rect.height.
	Now compile ok.
	* src/delete.c: make an int variable into unsigned int.
	Now compile warning has gone.

2005-12-12  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.8

2005-12-12  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.5 release

2005-12-12  Elijah Newren  <newren@gmail.com>

	* src/window.c (update_net_frame_extents): make the debugging
	message actually correspond to the code.  Patch from Björn
	Lindqvist.  Fixes #322051.

2005-11-29  Kjartan Maraas  <kmaraas@gnome.org>

	* src/screen.h: Make the wireframe a bit slimmer.
	Closes bug #320051.

2005-11-24  Davyd Madeley  <davyd@fugro-fsi.com.au>

	* src/window-props.c: display hostname in titlebar for remote X
	  clients. Closes bug #322202.

2005-11-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.5

2005-11-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.3 release

2005-11-22  Elijah Newren  <newren@gmail.com>

	Don't allow removing a window from maximized or fullscreened state
	to place the titlebar under the top panel.  Fixes #322075.

	* src/display.c (handle_net_moveresize_window): fix up previous
	comments now that I know a little more, modify the code just
	slightly to clarify that this is NOT a manual user move/resize
	operation

	* src/window.c (meta_window_unmaximize,
	  meta_window_unmake_fullscreen,
	  meta_window_shove_titlebar_onscreen):
	don't claim that these are manual user move/resize operations

2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (constrain_partially_onscreen): Relax the
	partially onscreen constraint to allow the titlebar to touch the
	bottom panel in order to make the new constraints code function
	the same as the old version.  Fixes #322071.
	
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): When updating the
	xinerama due to placement, update which maximal/spanning rect set
	to use as well.  Fixes #322068.
	
2005-11-21  Elijah Newren  <newren@gmail.com>

	* doc/strut-and-related-updating.txt: It took me a little while to
	figure out how struts & workareas are updated and to learn what
	all the related functions were used for so I thought I'd clean up
	my notes and make them available.  This will probably be more
	useful now since regions and edges are also computed and stored at
	the same time as the workareas.

2005-11-20  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): compute the frame
	geometry due to maximization only after actually maximizing.
	Fixes #321902.

2005-11-21  Davyd Madeley  <davyd@fugro-fsi.com.au>

	* src/edge-resistance.c (meta_display_compute_resistance_and_snap):
	  Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
	  64-bit architectures without warning.

2005-11-19  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): differentiate
	between movement towards an edge and movement away from one.  Pick
	smaller constants for movement away from an edge.

2005-11-19  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.3

2005-11-19  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.2 release

2005-11-18  Elijah Newren  <newren@gmail.com>

	Merge of all the changes on the constraints_experiments branch.
	This is just a summary, to get the full ChangeLog of those
	changes (approx. 2000 lines):
	  cvs -q -z3 update -Pd -r constraints_experiments
	  cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog

	Bugs fixed:
	  unfiled - constraints.c is overly complicated[1]
	  unfiled - constraints.c is not robust when all constraints
	            cannot simultaneously be met (constraints need to be
	            prioritized)
	  unfiled - keep-titlebar-onscreen constraint is decoration
	            unaware (since get_outermost_onscreen_positions()
	            forgets to include decorations)
	  unfiled - keyboard snap-moving and snap-resizing snap to hidden
	            edges
	    86644 - resize should have a shift option like move does
	   109553 - gravity w/ simultaneous move & resize doesn't work
	   113601 - maximize vertical and horizontal should toggle and be
	            constrained
	   122196 - windows show up under vertical panels
	   122670 - jerky/random resizing of window via keyboard[2]
	   124582 - keyboard and mouse snap-resizing and snap-moving
	            erroneously moves the window multidimensionally
	   136307 - don't allow apps to resize themselves off the screen
	            (*cough* filechooser *cough*)
	   142016, 143784 - windows should not span multiple xineramas
	            unless placed there by the user
	   143145 - clamp new windows to screensize and force them
	            onscreen, if they'll fit
	   144126 - Handle pathological strut lists sanely[3]
	   149867 - fixed aspect ratio windows are difficult to resize[4]
	   152898 - make screen edges consistent; allow easy slamming of
	            windows into the left, right, and bottom edges of the
	            screen too.
	   154706 - bouncing weirdness at screen edge with keyboard moving
	            or resizing
	   156699 - avoid struts when placing windows, if possible (nasty
	            a11y blocker)
	   302456 - dragging offscreen too restrictive
	   304857 - wireframe moving off the top of the screen is misleading
	   308521 - make uni-directional resizing easier with
	            alt-middle-drag and prevent the occasional super
	            annoying resize-the-wrong-side(s) behavior
	   312007 - snap-resize moves windows with a minimum size
	            constraint
	   312104 - resizing the top of a window can cause the bottom to
	            grow
	   319351 - don't instantly snap on mouse-move-snapping, remove
	            braindeadedness of having order of releasing shift and
	            releasing button press matter so much

	   [1] fixed in my opinion, anyway.
	   [2] Actually, it's not totally fixed--it's just annoying
	       instead of almost completely unusable.  Matthias had a
	       suggestion that may fix the remainder of the problems (see
	       http://tinyurl.com/bwzuu).
	   [3] This bug was originally about not-quite-so-pathological
	       cases but was left open for the worse cases. The code from
	       the branch handles the remainder of the cases mentioned in
	       this bug.
	   [4] Actually, although it's far better there's still some minor
	       issues left: a slight drift that's only noticeable after
	       lots of resizing, and potential problems with partially
	       onscreen constraints due to not clearing any
	       fixed_directions flags (aspect ratio windows get resized in
	       both directions and thus aren't fixed in one of them)
	
	New feature:
	    81704 - edge resistance for user move and resize operations;
	            in particular 3 different kinds of resistance are
	            implemented:
             	 Pixel-Distance: window movement is resisted when it
	     	   aligns with an edge unless the movement is greater than
	     	   a threshold number of pixels
             	 Timeout: window movement past an edge is prevented until
	     	   a certain amount of time has elapsed during the
	     	   operation since the first request to move it past that
	     	   edge
             	 Keyboard-Buildup: when moving or resizing with the
	     	   keyboard, once a window is aligned with a certain edge
	     	   it cannot move past until the correct direction has
	     	   been pressed enough times (e.g. 2 or 3 times)

	Major changes:
	  - constraints.c has been rewritten; very few lines of code from
	    the old version remain.  There is a comment near the top of
	    the function explaining the basics of how the new framework
	    works.  A more detailed explanation can be found in
	    doc/how-constraints-works.txt
	  - edge-resistance.[ch] are new files implementing edge-resistance.
	  - boxes.[ch] are new files containing low-level error-prone
	    functions used heavily in constraints.c and edge-resistance.c,
	    among various places throughout the code.  testboxes.c
	    contains a thorough testsuite for the boxes.[ch] functions
	    compiled into a program, testboxes.
	  - meta_window_move_resize_internal() *must* be told the gravity
	    of the associated operation (if it's just a move operation,
	    the gravity will be ignored, but for resize and move+resize
	    the correct value is needed)
	  - the craziness of different values that
	    meta_window_move_resize_internal() accepts has been documented
	    in a large comment at the beginning of the function.  It may
	    be possible to clean this up some, but until then things will
	    remain as they were before--caller beware.
	  - screen and xinerama usable areas (i.e. places not covered by
	    e.g. panels) are cached in the workspace now, as are the
	    screen and xinerama edges.  These get updated with the
	    workarea in src/workspace.c:ensure_work_areas_validated()

2005-11-14  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.2

2005-11-14  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.1 release

2005-11-11  Aidan Delaney  <a.j.delaney@brighton.ac.uk>

       * src/tabpopup.h: (struct _MetaTabEntry):
       * src/tabpopup.c: (meta_ui_tab_popup_new):
       * src/screen.c: (meta_screen_ensure_tab_popup):
       Changed the 'minimized' field of the MetaTabEntry struct to
       'hidden'.  Fixes reopened bug #168455.

2005-10-29  Kjartan Maraas  <kmaraas@gnome.org>

	* src/eventqueue.c: (meta_event_queue_new): Merge fix
	for bug #320050 from stable.

2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>

	* configure.in: Added ku (Kurdish) to ALL_LINGUAS

2005-10-25  Philip O'Brien  <philip.obrien@dal.ca>

	* src/prefs.c (meta_preference_to_string): add handling for
	META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete
	debug info

2005-10-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.1

2005-10-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.0 release

2005-10-23  Elijah Newren  <newren@gmail.com>

	Fix edge snapping for multi-screen (non-xinerama) setups.  #319425

	* src/place.c (get_windows_showing_on_same_screen,
	get_vertical_edges, get_horizontal_edges): rename
	get_windows_on_same_workspace() to
	get_windows_showing_on_same_screen()
	
	* src/place.c (get_windows_showing_on_same_screen): exclude windows
	in the list that are on a different screen

2005-10-20  Elijah Newren  <newren@gmail.com>

	* HACKING: Clarify why METACITY_VERBOSE=1 is bad without
	META_USE_LOGFILE=1; point to bug 305091 for details.

2005-10-13  Muktha  <muktha.narayan@wipro.com>

	* src/themes/Simple/metacity-theme-1.xml: Make the unfocussed
	Simple window border visible with high contrast inverse theme.
	Fixes #121361.

2005-10-08  Elijah Newren  <newren@gmail.com>

	Fix a crash that occurs when removing some virtual desktops and
	windows happen to be on those desktops.  #318306.

	* src/workspace.c (meta_workspace_relocate_windows): Since windows
	cannot be on more than one workspace at a time, remove the window
	from the old workspace before adding it to the new one.

2005-10-08  Elijah Newren  <newren@gmail.com>

	Add my copyright notice to a number of files on which it should
	already exist.

2005-10-03  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: clarify the meaning of the auto_raise
	preference.  Fixes one of the issues in #312421.

2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc consistent with alt-tab by
	leaving stacking of unselected windows unchanged.  Fixes #314285.

	* src/keybindings.c (process_tab_grab): before raising and showing
	the next candidate, reset the stack positions to what they were
	at the beginning of the grab

2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc (show windows instantly)
	actually show minimized windows too.  Fixes #107072.

	* src/keybindings.c (process_tab_grab): initialize tab_unminimized
	to FALSE for the target window when starting the grab, when
	advancing through the list check to find the previous window and
	re-minimize it if it was tab-unminimized, unminimize the new
	window we're alt-esc'ing to if it's minimized, (do_choose_window):
	raise and unminimize the initial window as well in alt-esc'ing

	* src/window.h (struct _MetaWindow): add a tab_unminimized field

	* src/window.c (meta_window_new_with_attrs): initialize
	tab_unminimized to false

2005-10-03  Elijah Newren  <newren@gmail.com>

	Branched for Gnome 2.13.  :-)
	
	* configure.in: bump version to 2.13.0.  Add UNSTABLE warning.
	* README: add 2.13.x to the list of unstable branches

2005-10-03  Elijah Newren  <newren@gmail.com>

	A combination of a couple memory leaks fixes, from Kjartan,
	Soeren, and I.  Fixes #313030.

	* src/bell.c (meta_bell_flash_screen): call XFreeGC()

	* src/frames.c (invalidate_cache): free pixels

	* src/window.c (meta_window_show_menu): call
	meta_screen_free_workspace_layout()

2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist fix the workspace switcher tabpopup to
	display the right windows and to fix the
	pick-a-new-window-to-focus algorithm in order to not select
	windows that aren't showing.  Fixes #170475.

	* src/tabpopup.c (meta_convert_meta_to_wnck,
	meta_select_workspace_expose_event): factor out conversion code
	from meta_select_workspace_expose_event() into the new
	meta_convert_meta_to_wnck() function

	* src/tabpopup.c (meta_select_workspace_expose_event):
	* src/workspace.c (focus_ancestor_or_mru_window):
	replace the buggy window->minimized logic with
	!meta_window_showing_on_its_workspace (window)

2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to have ancestors come along with the
	transient when moving the window from one workspace to another.
	Fixes #314977.

	* src/window.c (meta_window_change_workspace): have all ancestors
	change workspaces too

2005-10-03  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.2

2005-10-03  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.12.1 release

2005-10-03  Elijah Newren  <newren@gmail.com>

	Truncate ridiculously long titles to avoid crashing or letting the
	pager crash.  Based on patch from Ray, incorporating suggestions
	from Havoc and some extensions of my own.  Fixes #315070.

	* src/display.c (set_utf8_string_hint, meta_display_open):
	* src/xprops.[ch] (meta_prop_set_utf8_string_hint):
	Move set_utf8_string_hint() to props.[ch], namespace it
	("meta_prop_"), and make it public

	* src/tabpopup.c (utf8_strndup, meta_ui_tab_popup_new):
	* src/util.[ch] (meta_g_utf8_strndup):
	Move utf8_strndup() to util.[ch], namespace it ("meta_g_"), and
	make it public

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	add net_wm_visible_name and net_wm_visible_icon_name atoms to the
	list of atoms we work with

	* src/window-props.c (set_window_title, set_icon_title): If title
	length is greater than 512, truncate it and set
	_NET_WM_VISIBLE_NAME or _NET_WM_VISIBLE_ICON_NAME accordingly

2005-10-03  Elijah Newren  <newren@gmail.com>

	Get the tabbing window outline to work with gtk+ 2.8.4 again.
	Fixes #317528.

	* src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the
	mapped state of its windows (see bug 316180), and since we
	manually map with gdk_window_show_unraised() we need to manually
	set the mapped state too

2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.1

2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in:
	* README:
	* NEWS:
	2.12.0 release

2005-09-04  Danilo Šegan  <danilo@gnome.org>

	* configure.in: Added Armenian (hy) to ALL_LINGUAS.

2005-09-03  Elijah Newren  <newren@gmail.com>

	* HACKING: Add tips on how to more easily get the ids of windows,
	and how to shorten xprop output.

2005-09-02  Brent Smith  <gnome@nextreality.net>

	* src/place.c: (meta_window_place): Moved the call to
	meta_screen_get_natural_xinerama_list to earlier in
	function so that xineramas_list is allocated before
	find_first_fit is called.  Fixes #315000

2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.5

2005-08-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.3 release

2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: Patch from Björn Lindqvist to check for the
	appropriate versions of glib and gtk.  Fixes #314116.

2005-08-12  Elijah Newren  <newren@gmail.com>

	* src/place.c (meta_window_place): Avoid obscuring
	centered-on-desktop windows which are denied focus.  Fixes
	#313234.

2005-08-08  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.3

2005-08-08  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.2 release

2005-08-08  Elijah Newren  <newren@gmail.com>

	Patch from Brent Smith to fix a duplicate string.  Fixes #309774.

	* src/theme-parser.c (parse_toplevel_element, parse_draw_op_element):
	Change "No \"%s\" attribute on element <%s>" string to "No \"%s\"
	attribute on <%s> element"

2005-08-03  Ray Strode  <rstrode@redhat.com>

	Improve the behavior of keyboard move/resize and edge
	snapping.  Still not perfect, bug 310888.

	* src/effects.c (draw_xor_rect): Make the outside of a
	wireframe rectangle line up with the outside edge of its
	window, instead of centering the wireframe edges on the
	window edges.

	* src/keybindings.c (process_keyboard_move_grab): allow
	edge snapping in wireframe mode.  Adjust code to take
	into account changed semantics of find_next_*_edge
	functions.
	(process_keyboard_resize_grab_op_change): new function 
	to take some orthogonal logic out of
	process_keyboard_resize_grab_op.  Only allow keyboard
	resize cursor to go to flat edges, not corners.
	(process_keyboard_resize_grab):  allow edge snapping in
	wireframe mode.  Fix up snapping logic.

	* src/place.c (get_{vertical,horizontal}_edges): use 
	GArray instead of int *, since the number of output
	edges isn't known until the middle of the function now.
	Use xor rect extents instead of window extends if in
	wireframe mode.
	(meta_window_find_next_{vertical,horizontal}_edge: add
	new source_edge_position parameter to specify which edge
	on the active window to start from when looking for next
	edge on the screen. Return the coordinate of the edge 
	found and not the coordinate of where the window should be
	moved to snap to where the edge was found.

	* src/window.c (update_move): all the user to specify
	an edge to resize with mouse in keyboard resize mode.
	window

2005-08-01  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: Change default theme from "Simple" to
	"Clearlooks".

2005-07-31  Elijah Newren  <newren@gmail.com>

	* src/stack.c (is_focused_foreach, get_standalone_layer): use only
	the expected_focus_window instead of both the focused_window and
	the expected_focus_window.  Removes an infinite flicker loop in
	sloppy and mouse focus, and an ugly one time flicker in click to
	focus.  Fixes #311400.

2005-07-30  Elijah Newren  <newren@gmail.com>

	Patch from Jaap Haitsma to make sure that Metacity dialogs have
	icons.  Fixes #309876.
	
	* src/metacity-dialog.c (kill_window_question,
	warn_about_no_sm_support, error_about_command): call
	gtk_window_set_icon_name() to set the dialog icon

2005-07-28  Elijah Newren  <newren@gmail.com>

	* src/place.c (avoid_being_obscured_as_second_modal_dialog):
	remove some unneeded debug spew that was causing crashes.  Fixes
	#311819.

2005-07-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.2

2005-07-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.1 release

2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/place.c (find_most_freespace): try to place windows denied
	focus near the focus window and fix a xinerama bug with the
	placement, (avoid_being_obscured_as_a_second_modal_dialog): avoid
	modal dialogs being obscured in somewhat pathologically strange
	circumstances that Eclipse seems to be good at triggering,
	(meta_window_place): have dialog windows make use of
	avoid_being_obscured_as_a_second_modal_dialog().  Fixes one of the
	issues found in #307875.

2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_raise): raise the window as well as
	its ancestor; fixes a stacking bug with an ancestor that has more
	than one child window.  Fixes one of the issues in #307875.

2005-07-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_free): restore original window size if
	the window was maximized, as the FIXME says.  ;-) Fixes #137185.
	Thanks to Christian Persch for the testcase that made this easier
	to track down.

2005-07-23  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_activate): revert the patch from
	#128380--change _NET_ACTIVE_WINDOW behavior to what it originally
	was.

2005-07-18  Matthias Clasen  <mclasen@redhat.com>
	
	* configure.in: Add checks for Xcursor, to make the changes
	done on 2005-07-11 effective.

2005-07-14  Elijah Newren  <newren@gmail.com>

	Patch from Ken Harris to provide a more lenient threshold for
	drawing rounded corners.  Fixes #122065.

	* src/theme.c (meta_frame_layout_calc_geometry): use height +
	width > 5 instead of height > 3 && width > 3 as criterion

2005-07-13  Elijah Newren  <newren@gmail.com>

	Fix a slight bug (causing possible miscoloring of parts of the
	titlebar) introduced by the patch from #169982.

	* src/gradient.c:
	(meta_gradient_create_interwoven):
	(meta_gradient_create_multi_vertical):
	
	bitshifting operators do not take precedence over typecasting, so
	make sure to use parentheses to get the right operation order.

2005-07-12  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.1

2005-07-12  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.0 release

2005-07-12  Elijah Newren  <newren@gmail.com>

	Patch from Andrew Johnson to speed up vertical gradients.  Fixes
	#169982.

	* src/gradient.c:
	(meta_gradient_create_interwoven):
	(meta_gradient_create_vertical):
	(meta_gradient_create_multi_vertical):
	
	use memcpy instead of really long loops to set values in memory to
	a given pattern.

2005-07-12  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to split up main() into more manageable
	chunks and make use of GOpt.  Closes #305331.

	* src/main.c (usage): remove this function,
	(meta_print_compilation_info): new function taken from main(),
	(meta_print_self_identity): new function taken from main(),
	(struct MetaArguments) new struct to replace some free variables,
	(meta_parse_options): new funcion taken from main() but now using
	GOpt, (meta_select_display): new function taken from main()

2005-07-12  Aivars Kalvans <aivars.kalvans@inbox.lv>

	* src/screen.c (meta_screen_free): free ->xinerama_infos
	Closes #307884

2005-07-11  Elijah Newren  <newren@gmail.com>

	Stuff I forgot to do when I branched an hour or so ago before
	Matthias' commit...
	
	* configure.in: bump version to 2.11.0.  Add UNSTABLE warning.
	* README: add 2.11.x to the list of unstable branches

2005-07-11  Matthias Clasen  <mclasen@redhat.com>

	React to cursor theme changes: (#308106)
	
	* src/prefs.h: 
	* src/prefs.c: Expose the GConf keys for cursor theme
	and size as preferences META_PREF_CURSOR_THEME and
	META_PREF_CURSOR_SIZE with getters meta_prefs_get_cursor_theme()
	and meta_prefs_get_cursor_size().

	* src/display.c (meta_display_open): Initialize the cursor 
	theme and size.
	
	* src/display.h:
	* src/display.c (meta_display_set_cursor_theme): New function 
	to change the cursor theme and update all cursors.

	* src/screen.h 
	* src/screen.c (meta_screen_update_cursor): New function to
	refesh the root cursor of a screen.

	* src/main.c (prefs_changed_callback): Update the cursor
	theme when the cursor preferences change.

2005-06-27  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.3

2005-06-27  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.10.2 release

Sun Jun 26 11:19:18 2005  Soeren Sandmann  <sandmann@redhat.com>

	* src/frames.c: Add a cache of pixmaps for recently exposed frame
	areas. Makes metacity a bit faster when dragging windows around.
	See bug 141813.

2005-06-10  Ryan Lortie  <desrt@desrt.ca>

	* src/frames.c: Prevent using the address of a local variable
	  as a hash key.  (Bug #307209)

	* src/xprops.c (meta_prop_get_values): Fix a small leak in the
	  case of a SYNC_COUNTER property value and HAVE_XSYNC not
	  defined.  (Bug #307214)

2005-06-07  Ray Strode  <rstrode@redhat.com>

	Cleanup font data when done with it (bug 306720).

	* src/effects.c (draw_xor_rect): free font info structure.
	* src/screen.c (meta_screen_new): pass a 1 not a 0 to
	XFreeFontInfo to free font info structure.
	(meta_screen_free): call XUnloadFont on GC font before freeing
	the GC.

2005-06-02  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_focus): if the window has a modal
	transient which is being unmanaged, don't focus it.  Fixes the
	Metacity issue reported in #305362.

2005-05-30  Ray Strode  <rstrode@redhat.com>

	Bug 305564 again.

	When drawing XOR resize popup use "fixed" font instead of
	-misc-fixed-*-16-* xlfd.  Should work on more xservers.

	Also take steps to fail better if the xserver isn't 
	cooperating. 
	
	* src/effects.c (draw_xor_rect): if we can't draw font box
	for whatever reason, at least draw grid frames.
	
	* src/screen.c (meta_screen_new): use fixed alias instead
	of a xfld.  Don't pass GCFont to XCreateGC if font couldn't
	be loaded.  Print a warning if font couldn't be loaded.

2005-05-26  Elijah Newren  <newren@gmail.com>

	* HACKING: Add a clarification that METACITY_VERBOSE needs to be
	accompanied by METACITY_USE_LOGFILE

2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_configure_request): Patch from Greg
	Hudson to make sure window position is calculated correctly for
	reconfigure requests when part of the XWindowChanges structure is
	uninitialized.  Fixes #305257.

2005-05-26  Ray Strode  <rstrode@redhat.com>
	
	Actually commit the stuff mentioned in the last 
	ChangeLog entry.

2005-05-26  Ray Strode  <rstrode@redhat.com>

	Add a resize popup when resizing constrained 
	windows, (bug 305564).

	* src/display.c: 
	(meta_display_begin_grab_op), 
	(meta_display_end_grab_op): 
	* src/keybindings.c (process_keyboard_move_grab),
	(process_keyboard_resize_grab): Call 
	meta_window_{begin,update,end}_wireframe convenience 
	functions instead of the meta_effects counterparts.

	* src/display.h: keep track of old wireframe geometry to
	clean up xor popup on resize

	* src/effects.[ch] (meta_effects_begin_wireframe),
	(meta_effects_update_wireframe),
	(meta_effects_end_wireframe),
	(draw_xor_rect): take optional width and height arguments
	to show to user in resize popup. Draw resize popup if
	width and height >= 0 and wireframe isn't smaller than
	the popup would be.

	* src/screen.c (meta_screen_new): load a largish font for
	the resize popup

	* src/window.[ch] 
	(meta_window_move_resize_internal): update
	wireframe resize popup when the window is resized.
	(meta_window_get_wireframe_geometry): new function to
	calculate the numbers to display in resize popup
	(meta_window_begin_wireframe),
	(meta_window_update_wireframe),
	(meta_window_end_wireframe): new functions to reduce
	repetitive wireframe code.  Functions handle updating
	wireframe and resize popup geometry.
	(update_move), (update_resize),
	(meta_window_refresh_resize_popup): remove fixme and
	add debug message.

2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c (check_maximize_to_work_area): don't accidentally
	treat maximize vertically as maximize in both directions.  Fixes
	#302204.

2005-05-26  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_new_with_attrs): put all transients
	of the new window, if any exist, in the calc_showing queue.  Fixes
	#303284.  Thanks to Billy Biggs for the testcase that made this
	easy to track down.

2005-04-11  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.2

2005-04-11  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.10.1 release

2005-04-05  Dan Winship  <danw@novell.com>

	* src/metacity-dialog.c (warn_about_no_sm_support): Make sure the
	"Close" button has the focus, not the table. (#172703)

2005-04-05  Pawan Chitrakar  <pawan@nplinux.org>

	* configure.in: Added ne in ALL_LINGUAS

2005-03-31  Steve Murphy  <murf@e-tools.com>

        * configure.in: Added "rw" to ALL_LINGUAS.

2005-03-17  Lex Hider  <Lex.Hider@gmail.com>

	* doc/Makefile.am (EXTRA_DIST): add doc/code-overview.txt and
	doc/how-to-get-focus-right.txt

2005-03-10  Adi Attar  <aattar@cvs.gnome.org>

	* configure.in: Added "xh" to ALL_LINGUAS.

2005-03-07  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.10.1

2005-03-07  Elijah Newren  <newren@gmail.com>

	* configure.in:
	* README:
	* NEWS:
	2.10.0 release

2005-02-28  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.55

2005-02-28  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.34 unstable release

2005-02-28  Elijah Newren  <newren@gmail.com>

	Patch from Aidan Delaney to make sure that icons in the alt-tab
	popup are dimmed for all hidden windows, not just minimized ones.
	Fixes #168455.

	* src/screen.c: (meta_screen_ensure_tab_popup): make use
	meta_window_showing_on_its_workspace() instead of just checking if
	the window is minimized.

2005-02-25  Elijah Newren  <newren@gmail.com>

	Prevent the visual bell from changing the focus window.  Fixes
	#123366.

	* src/bell.c: (meta_bell_flash_screen): if not in click-to-focus
	mode and mouse_mode is also false, increment the focus sentinel so
	that we can ignore spurious EnterNotify and LeaveNotify events.

	* src.display.c: (event_callback): make sure to also ignore
	LeaveNotify events when the focus sentinel isn't clear

2005-02-23  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): Fix crash that
	occurs when stupid apps claim that a window is its own parent.
	#168207

2005-02-21  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.34

2005-02-21  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.21 unstable release

2005-02-21  Elijah Newren  <newren@gmail.com>

	Handle keynav vs. mousenav in mouse and sloppy focus modes.  Fixes
	#167545.

	* doc/how-to-get-focus-right.txt: Update due to this new method
	for handling keynav vs. mousenav, plus various other updates that
	I previously forgot.

	* src/display.h: (struct _MetaDisplay): add a mouse_mode boolean

	* src/display.c: (meta_display_open): initialize mouse_mode to
	true, (event_callback): have EnterNotify and LeaveNotify events
	set mouse_mode to true when focusing a window

	* src/keybindings.c: (process_tab_grab): set mouse_mode to false
	when using alt-tab/alt-esc, (do_choose_window): likewise,
	(do_handle_move_to_workspace): set mouse_mode to false on
	move-window-to-workspace-<n> keybindings

	* src/window.c (idle_calc_showing): if we're in keynav mode while
	using sloppy or mouse focus, use metacity_sentinel to avoid
	EnterNotify events being generated from events other than mouse
	movement.

	* src/workspace.c (meta_workspace_activate_with_focus): add a
	FIXME in a potentially duplicate section of code,
	(meta_workspace_focus_default_window): use the same focus choice
	as click-to-focus if in keynav mode.

2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/display.c: (event_callback): Handle _NET_CURRENT_DESKTOP
	messages that come with timestamps.  Fixes the metacity portion of
	#161361 other than the portion handled by #128380.

2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): when receiving a
	_NET_ACTIVE_WINDOW message, switch to the desktop where the window
	is located before activating instead of moving the window to the
	current desktop.  Thanks to Lubos Lunak for catching this issue.
	Fixes #128380.

2005-02-20  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_show): Ignore all focus and
	focus-stealing-prevention code in meta_window_show when not
	showing the window for the first time.  Fixes #167199.

2005-02-20  Elijah Newren  <newren@gmail.com>

	Fix an obscure xinerama placement bug with windows that are too
	large to fit in the workarea in both dimensions.  #166757

	* src/place.c: (meta_window_place): use the current xinerama
	instead of arbitrarily resetting to 0

2005-02-20  Elijah Newren  <newren@gmail.com>

	Patch from Joe Marcus Clarke to fix a possible crash on logout.
	#167935.  Thanks for fixing my mistakes, Joe!

	* src/display.c: (meta_display_open): initialize
	display->grab_old_window_stacking to NULL.

2005-02-20  Elijah Newren  <newren@gmail.com>

	Big patch to cover about 6 different issues in order to correct
	rare problems with timestamps (make sure window selected in
	tasklist actually gets focus, sanity check timestamps to avoid
	rogue apps hosing the system, correct the updating of
	net_wm_user_time, correctly handle timestamps of 0 when comparing
	xserver timestamps for those who have had their systems up for
	over 25 days or so, add some debugging information to verbose
	logs, some code cleanups).  Fixes all issues listed in #167358.

	* src/display.h: (struct _MetaDisplay): clarify comment on
	last_focus_time, introduce a new variable--last_user_time,
	(XSERVER_TIME_IS_BEFORE macro): put this functionality into a
	separate macro and then introduce a new macro with this name that
	uses the old one but adds additional special-case checks for
	timestamps that are 0, (comment to
	meta_display_set_input_focus_window): add information about how
	last_user_time should be used in this function
	
	* src/display.c (santiy_check_timestamps): new function,
	(meta_display_open): intialize display->last_user_time,
	(meta_display_get_current_time_roundtrip): use the timestamp,
	which is known to be good, in order to sanity_check_timestamps,
	(event_callback): use the new meta_window_ste_user_time() function
	in order to correct problems, use the timestamp of KeyPress and
	ButtonPress events, which are known to be good, in order to
	sanity_check_timestamps, (timestamp_too_old): new function for
	common behavior of meta_display_focus_the_no_focus_window and
	meta_display_set_input_focus_window, with added checking for
	display->last_user_time in addition to display->last_focus_time,
	(meta_display_set_input_focus_window): replace some of the code
	with a call to timestamp_too_old(),
	(meta_display_focus_the_no_focus_window): replace some of th ecode
	with a call to timestamp_too_old()

	* src/window.h: (meta_window_set_user_time): new function to
	abstract the many things that need to be done when updating the
	net_wm_user_time of any window

	* src/window.c: (meta_window_activate): add debugging spew, make
	sure the comparison is made with last_user_time NOT
	last_focus_time, use meta_window_set_user_time() function in order
	to correct problems, (meta_window_client_message): add a newline
	to a debugging message to make them easier to read,
	(meta_window_set_user_time): new function

	* src/window-props.c (reload_net_wm_user_time): use the new
	meta_window_ste_user_time() function in order to correct problems

2005-02-16  Elijah Newren  <newren@gmail.com>

	* src/display.c: (event_callback): trivial fix to a log message:
	change %d to %lu (see debugging log from bug 167358).

2005-02-12  Elijah Newren  <newren@gmail.com>

	Raise the ancestor of a window instead of the window itself.
	Fixes #166894.

	* src/window.c: (find_root_ancestor): new function,
	(meta_window_raise): get the ancestor of the given window and
	raise it if possible instead of the window

2005-02-12  Elijah Newren  <newren@gmail.com>

	Don't unconditionally place splashscreens (and other
	not-to-be-focused windows) below the focus window.  Fixes #167042.

	* src/window.c: (intervening_user_event_occurred): new function
	taken from the timestamp comparison portion of the old
	window_takes_focus_on_map function, (window_state_on_map): new
	function with remainder of old window_takes_focus_on_map function
	that determines both whether the window will take focus and
	whether it should be placed on top, (meta_window_show): use
	place_on_top_on_map to determine window stacking instead of trying
	to infer it from takes_focus_on_map

2005-02-11  Elijah Newren  <newren@gmail.com>

	Avoid new windows being obscured by the focus window (and thus
	possibly lost).  Fixes #166524.

	* src/place.c: new MetaWindowDirection enum,
	(find_most_freespace): new function to find where there is the
	most space available around the focused window,
	(meta_window_place): if a window is denied focus and the window
	overlaps the focused window, retry the first-fit algorithm only
	paying attention to the focus window position and if that fails
	just find the location on the screen with the most space
	available.

	* src/window.h: (struct MetaWindow): new
	denied_focus_and_not_transient bitfield

	* src/window.c: (meta_window_new_with_attrs): initialize
	denied_focus_and_not_transient, (meta_window_show): set and unset
	the denied_focus_and_not_transient field appropriately

2005-02-08  Aidan Delaney  <adelaney@cs.may.ie>

	Removed useless function call.  #166730

	* src/tabpopup.c: (outline_window_expose): Removed unused
	references to variables and an unnecessary function call to
	gdk_window_get_size().

2005-02-08  Elijah Newren  <newren@gmail.com>

	Avoid using CurrentTime when focusing, handle it better in case we
	miss any cases.  Fixes #166732.

	* src/window.c: (meta_window_shade): use
	meta_display_get_current_time_roundtrip() to ensure we have a
	valid timestamp, (meta_window_unshade): same

	* src/display.c: (meta_display_set_input_focus_window): If
	CurrentTime was passed, get one from the XServer in addition to
	throwing a warning, (meta_display_focus_the_no_focus_window): same

2005-02-08  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_activate): If we're not passed a
	timestamp, make sure to manually get one.  Fixes #166728.

2005-02-07  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.21

2005-02-07  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.13 unstable release

2005-02-06  Elijah Newren  <newren@gmail.com>

	Set a _METACITY_VERSION property (a utf8 string) on the WM check
	window.  #165350.

	* src/display.h: (struct MetaDisplay): add a atom_metacity_version
	field
	
	* src/display.c: (meta_display_open): initialize the
	_METACITY_VERSION property on the WM check window to the current
	version of Metacity.

2005-02-06  Elijah Newren  <newren@gmail.com>

	Ignore xconfigurerequest events for stacking when it should be
	safe to do so.  Again, thanks to Crispin Flowerday for the test
	case.  Thanks to KWin for the inspiration (and to Google for
	indexing their source code).  Fixes the other half of #166395.

	* src/window.c: (meta_window_configure_request): if the
	active_window is from a separate application than the one getting
	the configure request and the net_wm_user_time of the active
	window is later than that of the window getting the configure
	request, then ignore the request.

2005-02-06  Elijah Newren  <newren@gmail.com>

	If activation requests are too old, set the demands_attention hint
	instead of actually activating.  Thanks to Crispin Flowerday for
	the test case and for testing the patch.  Fixes half of #166395.

	* src/window.c: (meta_window_activate): if the request came before
	the last focus time, set the demands attention hint instead

2005-02-04  Dave Ahlswede  <mightyquinn@letterboxes.org>

	* src/metacity.schemas.in: Add period to the end of
	reduced_resources' description.  Fixes #165780.
 	
2005-02-04  Elijah Newren  <newren@gmail.com>

	Make sure window->border_only is initialized so we don't get
	random windows without decorations.  Thanks to Sinisa Segvic and
	Owen Taylor for providing test cases.  Fixes #145131.

	* src/window.c: (update_mwm_hints): Be sure to call
	recalc_window_features even if no MWM hints are set

2005-02-02  Elijah Newren  <newren@gmail.com>

	Focus parents of dismissed transient windows in preference to the
	window that most recently had keyboard focus.  Fixes #157360.

	* doc/how-to-get-focus-right.txt: Note the distinction between
	"most recently used window" and "most recent to have keyboard
	focus" that we are now making.

	* src/workspace.c: (focus_ancestor_or_mru_window): rename from
	meta_workspace_focus_mru_window, and first check whether we need
	to focus an ancestor window before looking for the mru window,
	(record_ancestor): helper function for
	focus_ancestor_or_mru_window,
	(meta_workspace_focus_default_window): update due to the function
	rename from meta_workspace_focus_mru_window to
	focus_ancestor_or_mru_window

2005-01-31  Elijah Newren  <newren@gmail.com>

	Try 2 to correct misleading and inaccurate wording.  Hopefully,
	really fixes #165380.

	* src/menu.c: Change wording of menu from "Always on Current
	Workspace" to "Always on Visible Workspace".  "Always on Current
	Workspace" could sound like a synonym of "Only on This Workspace"
	when it was supposed to be the opposite.

2005-01-31  Elijah Newren  <newren@gmail.com>

	Correct the stacking when return from fullscreen mode.  Fixes
	#165718.
	
	* src/window.c: (meta_window_unmake_fullscreen): Update the layer
	after resizing the window

2005-01-31  Muktha  <muktha.narayan@wipro.com>

	src/themes/Atlanta/metacity-theme-1.xml:
	src/themes/Simple/metacity-theme-1.xml:
	src/themes/Bright/metacity-theme-1.xml:	
	Make the unfocussed title bar distinguishable. Fixes #125291.

2005-01-28  Elijah Newren  <newren@gmail.com>

	Patch from RHEL-3 (Havoc doesn't remember how it got there) that
	Havoc posted in bug 156511 to fix the problem with fullscreen
	windows on a different xinerama monitor not staying on top.  I
	updated to HEAD.  Should fix #156511.

	* src/stack.c: (windows_on_different_xinerama): new function,
	(get_standalone_layer): let windows on a different screen than the
	one with the focus window stay in the fullscreen layer

2005-01-28  Elijah Newren  <newren@gmail.com>

	* src/metacity-dialog.c: (warn_about_no_sm_support): make this
	dialog be sticky.  Fixes #164745.

2005-01-28  Elijah Newren  <newren@gmail.com>

	Patch from Tim Herold to handle xcomposite pkgconfig version
	regression.  Fixes #149368.

	* configure.in: Change XCOMPOSITE_VERSION from 1.0 to 0.2

2005-01-28  Elijah Newren  <newren@gmail.com>

	Correct misleading and inaccurate wording.  Fixes #165380.

	* src/menu.c: Change wording of menu to "Always on Current
	Workspace" from "Put on All Workspaces", remove a quick-key
	conflict between "On _Top" and "Only on _This Workspace" by
	switching the latter to "_Only on This Workspace"

	* src/window.c: Remove a comment that is no longer necessary
	(since bug 87531 has been fixed)

2005-01-28  Elijah Newren  <newren@gmail.com>

	Take into account the appropriate list of windows when placing a
	new one.  Fixes #165381.

	* src/place.c: (meta_window_place): use
	meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
	also take into account sticky windows

	* src/window.[ch]: rename window_showing_on_its_workspace to
	meta_window_showing_on_its_workspace and export it

2005-01-27  Elijah Newren  <newren@gmail.com>

	Plug a pair of leaks.  Fixes #165378

	* src/place.c: (meta_window_place, get_windows_on_same_workspace):
	free list returned by meta_display_list_windows.

2005-01-27  Elijah Newren  <newren@gmail.com>

	Treat splashscreens same as other windows for stacking.  Fixes
	#165243.

	* src/stack.h: (MetaStackLayer enum): remove META_LAYER_SPLASH
	from the list

	* src/stack.c: (get_standalone_layer): remove the special casing
	of META_WINDOW_SPLASHSCREEN

2005-01-27  Elijah Newren  <newren@gmail.com>

	* src/window.c: (set_net_wm_state): shaded windows should not show
	up in pagers.  Fixes #165377.

2005-01-26  Elijah Newren  <newren@gmail.com>

	Stick and unstick transients with their parent automatically.
	Fixes #152283.

	* src/window.c: (window_stick_impl, window_unstick_impl): rename
	from meta_window_stick and meta_window_unstick respectively,
	(stick_foreach_func): a function to assist calling
	window_(un)stick_impl on each transient, (meta_window_stick,
	meta_window_unstick): new functions that call window_stick_impl or
	window_unstick_impl for the window and each of its transients.

2005-01-26  Elijah Newren  <newren@gmail.com>

	Patch from John Paul Wallington to keep tooltip on screen
	horizontally for xinerama.  Fixes #165261.

	* src/fixedtip.c: (meta_fixed_tip_show): rename screen_width and
	screen_height to screen_right_edge and screen_bottom_edge, set
	them using xinerama info instead of just screen geometry, and use
	them to determine where to place the tooltip window.

2005-01-26  Arvind Samptur  <arvind.samptur@wipro.com>

	Don't wireframe when accessibility is on, it apparently
	causes a desktop wide freeze.

	* src/prefs.[ch] (meta_prefs_init) (change_notify)
	(update_gnome_accessibility) (meta_preference_to_string)
	(meta_prefs_get_gnome_accessibility) : Add code to monitor
	accessibility status.

	* src/display.c (meta_display_begin_grab_op): Check
	accessibility status before going ahead with wireframe.
	Fixes #159538

2005-01-25  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c: (meta_select_workspace_expose_event): ignore
	sticky windows for non-active workspaces.  Fixes #165259.

2005-01-25  Elijah Newren  <newren@gmail.com>

	* src/window.c: (meta_window_new_with_attrs): set the window state
	hints _after_ applying session information.  Fixes #164677.

2005-01-25  Elijah Newren  <newren@gmail.com>

	Add man pages for metacity-window-demo and metacity-theme-viewer.
	Man pages from Jose Moya, auto-fu from Dave Ahlswede. (#143513)

	* doc/man/metacity-theme-viewer.1:
	* doc/man/metacity-window-demo.1:

	New man pages

	* doc/man/Makefile.am:
	* doc/Makefile.am:
	* configure.in:

	Make sure to install the man pages
	
	* doc/man/.cvsignore:
	
	Silence cvs

2005-01-25  Benjamin Kahn  <xkahn@novell.com>

	New 48x48 default icon as specified in bug #160660

2005-01-25  Elijah Newren  <newren@math.utah.edu>

	Patch from Stephane LOEUILLET in bug #151850.

	* src/metacity.desktop.in: specify encoding

2005-01-25  Balamurali Viswanathan <balamurali.viswanathan@wipro.com>
 
 	* src/prefs.c (meta_prefs_init): Get gconf to load the
 	terminal dir so that we get the notifications when
 	the command is changed. Fixes bug #160934
 
2005-01-25  Elijah Newren  <newren@gmail.com>

	Refuse to focus a window with a modal transient, and focus the
	transient instead.  Fixes #164716.

	* src/window.c: (get_modal_transient): new function,
	(meta_window_focus): if the window has a modal transient, make
	sure it is on the current workspace and then focus it instead.

2005-01-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.13

2005-01-24  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.8 unstable release

2005-01-24  Elijah Newren  <newren@gmail.com>

	* src/display.c: (meta_display_begin_grab_op): don't forget to
	initialize display->grab_old_window_stacking.  Thanks to Sebastien
	Bacher and the bleeding edge Ubuntu users for catching the
	occasional crash this could cause so quickly, and for verifying
	that the patch worked (I couldn't duplicate).  Fixes #165093.

2005-01-23  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.8

2005-01-23  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.5 unstable release
	* README: there are more stable releases beyond 2.8.6...

2005-01-23  Elijah Newren  <newren@gmail.com>

	Restore original stacking when aborting an alt-esc window switch
	operation.  Fixes #123576.

	* src/display.c: (GRAB_OP_IS_WINDOW_SWITCH): new macro,
	(meta_display_close): clear grab_old_window_stacking if non-NULL,
	(event_callback): restore stack positions if alt-esc op cancelled
	with button press, (meta_display_begin_grab_op): store the old
	stacking positions, (meta_display_end_grab_op): free the old stack
	positions

	* src/display.h: (struct _MetaDisplay): add a
	grab_old_window_stacking list

	* src/keybindings.c: (process_tab_grab): restore stack positions
	if alt-esc op cancelled with an errant key press

	* src/stack.c: (compare_just_window_stack_position): new
	GCompareFunc function, (meta_stack_get_positions): get current
	stack positions, (compare_pointers): new GCompareFunc function,
	(lists_contain_same_windows): simple utility func to see if two
	lists contains the same windows, (meta_stack_set_positions): new
	function to set the positions of all the windows in the stack

	* src/stack.h: (meta_stack_get_postions,
	meta_stack_set_positions): new functions

2005-01-23  Elijah Newren  <newren@gmail.com>

	Patch from John Paul Wallington to fix #163420.

	* src/window.c: (check_maximize_to_work_area): fix vertical
	maximization for second screen

2005-01-21  Elijah Newren  <newren@gmail.com>

	* rationales.txt: Add a tracker bug for modal dialog issues

2005-01-20  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c (dimm_icon): use pixbuf, not dimmed_pixbuf (which
	isn't defined yet).  Fixes crash from #136666.

2005-01-20  Vincent Noel  <vnoel@cox.net>

	* src/screen.c: (meta_screen_ensure_tab_popup),
	(meta_screen_ensure_workspace_popup):
	* src/tabpopup.c: (meta_ui_tab_popup_new), (display_entry):
	* src/tabpopup.h: Show labels in bold for windows that demand
	attention. Fixes #164590.

2005-01-18  Vincent Noel  <vnoel@cox.net>

	* src/screen.c: (meta_screen_ensure_tab_popup),
	(meta_screen_ensure_workspace_popup):
	* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
	(free_entry):
	* src/tabpopup.h: In the tab task switcher popup, dim the window
	icon and put its name between brackets when the window is
	minimized. Fixes #136666.

2005-01-11  Elijah Newren  <newren@gmail.com>

	Correct highlighting of windows in workspace switcher popup.
	Fixes #163450.

	* src/tabpopup.c (meta_select_workspace_expose_event): Remove race
	between FocusIn/FocusOut events and the expose event by replacing
	window->has_focus with
	window==window->display->expected_focus_window.

2005-01-09  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.5

2005-01-09  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.3 unstable release

2005-01-09  Elijah Newren  <newren@gmail.com>

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	* src/window.c (meta_window_free, meta_window_client_message,
	meta_window_notify_focus):

	Remove the hack from bug 128200; it isn't needed anymore with the
	fix from bug #160470.

2005-01-09  Elijah Newren  <newren@gmail.com>

	Don't focus the panel on click.  Fixes #160470 (and 100470 and
	removes the need for the hack from 128200)

	* doc/how-to-get-focus-right.txt: Update section on focusing
	non-decorated windows (specifically, DOCKS and DESKTOPS)

	* src/display.c (event_callback): don't focus dock windows on
	click

2005-01-06  Elijah Newren  <newren@gmail.com>

	Make sure the save session dialog appears focused.  Fixes #162983.

	* src/session.c (warn_about_lame_clients_and_finish_inter): Get a
	timestamp by explicit request from Xserver, since none is
	available otherwise.

2005-01-06  Leena Gunda  <leena.gunda@wipro.com>

	* src/window.c (meta_window_unmaximize): Restore the wireframe
	rectangle co-ordinates to saved window co-ordinates. Fixes
	bug #161236.

2005-01-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* src/Makefile.am (install-data-local): Install schema data from
	builddir not srcdir.

2005-01-02  Elijah Newren  <newren@gmail.com>

	Provide more documentation to make it easier for people to
	contribute to Metacity.  (#162646)

	* HACKING: Add lots of information to extend this document: more
	on relevant standards and X properties, lots of information on
	debugging and testing, and add a list of some other important
	things to read; also move some information to
	src/code-overview.txt and organize this file into sections.
	
	* doc/code-overview.txt: New file including some small parts from
	the old HACKING file and lots of new stuff.  This file gives a
	brief overview of some of the bigger structures and files, with
	guides for a variety of task categories providing places to start
	looking in the code and things to look for.

2004-12-28  Elijah Newren  <newren@gmail.com>

	Allow users to move the window around immediately after
	double-clicking to shade (#90290)

	* src/display.c (event_callback): only end the grab op if either
	there is no frame or else the frame is not mapped

2004-12-27  Elijah Newren  <newren@gmail.com>

	Focus windows that manually position themselves too (fixes
	#107347).

	* src/window.h (struct _MetaWindow): add a new
	showing_for_first_time flag

	* src/window.c (meta_window_new_with_attrs): initialize
	showing_for_first_time flag to !mapped, (meta_window_show):
	replace did_placement with showing_for_first_time in the section
	to decided whether to focus since did_placement isn't quite what
	we want

2004-12-27  Elijah Newren  <newren@gmail.com>

	* src/display.c (meta_display_set_input_focus_window,
	meta_display_focus_the_no_focus_window): Spew warning if
	CurrentTime is passed to the function, but don't exit prematurely.
	(fixes #162353)

2004-12-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (meta_window_show_menu): Don't show menu if all
	options are invalid (fixes #148915)

2004-12-24  Elijah Newren  <newren@gmail.com>

	* src/window.c (window_takes_focus_on_map): Fix error in
	distinguishing < vs. <= introduced by the patch in #154598,
	restructure code so that verbose log matches code better in order
	ensure such mistakes are harder to make in the future (fixes
	#162172)

2004-12-24  Elijah Newren  <newren@gmail.com>

	Thanks to mild7@users.sourceforge.net for this fix.

	* src/window.h: (META_WINDOW_IN_NORMAL_TAB_CHAIN): Excludes
	windows with skip_taskbar hint set from the alt-tab list; they'll
	appear in the ctrl-alt-tab list instead. (fixes #106249)

2004-12-22  Elijah Newren  <newren@gmail.com>

	Wrap XSetInputFocus, making display->expected_focus_window a
	little more reliable (see #154598)

	* src/display.h: (struct _MetaDisplay): add a large comment about
	the expected_focus_window, add a last_focus_time field,
	(XSERVER_TIME_IS_BEFORE): new macro moved from window.c but fixed
	for 64-bit systems, (meta_display_set_input_focus_window): new
	function

	* src/display.c (meta_display_open): initialize last_focus_time,
	add a comment about brokenness of trying to set intial focus
	window, (meta_display_set_input_focus_window): new function that
	wraps XSetInputFocus,
	(meta_display_focus_the_no_focus_window): make this function
	closer to a wrapping of XSetInputFocus for the no_focus_window.

	* src/window.c (XSERVER_TIME_IS_LATER): remove this macro in favor
	of the improved one added to display.h

	* src/display.c (meta_display_open):
	* src/window.c (meta_window_focus):
	use meta_display_focus_the_no_focus_window and
	meta_display_set_input_focus instead of XSetInputFocus

2004-12-22  Elijah Newren  <newren@gmail.com>

	* src/core.c (meta_core_user_lower_and_unfocus):
	* src/display.c (meta_display_get_current_tab):
	* src/stack.c (get_default_focus_window, meta_stack_list_windows):
	* src/window.c (set_net_wm_state, meta_window_should_be_showing,
	implement_showing, meta_window_activate,
	meta_window_notify_focus):
	* src/window.h:
	* src/workspace.c (meta_workspace_list_windows):

	Rename meta_window_visible_on_workspace to
	meta_window_located_on_workspace (whether or not the window was
	showing wasn't taken into account, which made "visible"
	confusing).  Fixes #136314.

2004-12-22  Elijah Newren  <newren@gmail.com>

	Partially resolve the conflicting requirements of windows on
	multiple workspaces and hidden being a global quantity for windows
	(fixes bug 156182; the remainder of the work is bug 87531 and is a
	libwnck issue)

	* src/display.c (event_callback):
	* src/window.c (meta_window_visible_on_workspace, meta_window_unstick):
	* src/workspace.c (meta_workspace_add_window,
	meta_workspace_contains_window,
	meta_workspace_queue_calc_showing):
	* src/workspace.h:

	Remove meta_workspace_contains_window, replace with simple
	comparison utilizing window->workspace

	* src/place.c (meta_window_place):
	* src/window.c (meta_window_shares_some_workspace):
	* src/window.h:

	Remove meta_window_shares_some_workspace, replace with a simple
	comparison utilizing window->workspace

	* src/session.c (save_state),
	* src/window.c (meta_window_new_with_attrs,
	meta_window_apply_session_info, meta_window_free,
	window_showing_on_its_workspace,
	meta_window_change_workspace_without_transients,
	meta_window_unstick, meta_window_set_current_workspace_hint,
	meta_window_get_workspaces):
	* src/window.h:
	* src/workspace.c (meta_workspace_free, meta_workspace_add_window,
	meta_workspace_remove_window):

	Only one workspace now

2004-12-20  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.3

2004-12-20  Elijah Newren  <newren@gmail.com>

	* NEWS: Metacity 2.9.2 unstable release

2004-12-20  Elijah Newren  <newren@gmail.com>

	* configure.in: re-add the note	about Fibonacci sequence micro
	version numbers that was lost with 2.8.5

2004-12-19  Elijah Newren  <newren@gmail.com>

	Thanks to Baptiste Mille-Mathias for this fix.

	* src/metacity.schemas.in: Add a missing period at the end of a
	sentence.

2004-12-19  Elijah Newren  <newren@gmail.com>

	When snap-moving, don't snap to transients of minimized windows
	since they are hidden.  Fixes #157180

	* src/place.c (get_windows_on_same_workspace): make the logic to
	determine hidden windows more thorough by calling
	meta_window_should_be_showing()

	* src/window.c (meta_window_should_be_showing): rename this
	function from window_should_be_showing and also export it,
	(implement_showing):
	s/window_should_be_showing/meta_window_should_be_showing/,
	(idle_calc_showing):
	s/window_should_be_showing/meta_window_should_be_showing/

	* src/window.h (meta_window_should_be_showing): Add this function
	to the list so that it can be used in src/place.c

2004-12-19  Elijah Newren  <newren@gmail.com>

	Focus the desktop when showing it.  Fixes #159257.

	* src/display.c (event_callback): obtain a timestamp to pass to
	meta_screen_show_desktop

	* src/keybindings.c (handle_toggle_desktop): obtain a timestamp to
	pass to meta_screen_show_desktop

	* src/screen.c (meta_screen_show_desktop): add a timestamp
	parameter, get the most recently used window of type DESKTOP (if
	there is one) and focus it

	* src/screen.h (meta_screen_show_desktop): add a timestamp
	parameter

2004-12-19  Elijah Newren  <newren@gmail.com>

	Thanks to ash@contact.bg for this fix.
	
	* po/POTFILES.in: Remove reference to metacity-properties.* files
	since Alex removed them in his 2004-12-07 commit.

2004-12-13  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.9.2 that I forgot
	to do last week (oops)

2004-12-07  Alex Duggan  <aldug@astrolinux.com>

	* configure.in:
	* src/tools/Makefile.am:
	
	Remove deprecated capplet from GNOME 2.0
	
	* src/tools/metacity-properties.c:
	* src/tools/metacity-properties.desktop.in:
	* src/tools/metacity-properties.glade:
	* src/tools/metacity-properties.png:
	
	Removed from cvs
	
2004-12-06  Elijah Newren  <newren@math.utah.edu>

	* NEWS: Metacity 2.9.1 unstable release

2004-12-06  Benjamin Kahn <xkahn@novell.com>

	* src/default_icon.png: Use a better default application
	icon.  Fixes bug #160373

2004-11-16  Marco Pesenti Gritti  <marco@gnome.org>

	* src/Makefile.am:

	Fix build out of src directory. Bug #158325

2004-11-10  James Henstridge  <james@jamesh.id.au>

	* Makefile.am (DISTCLEANFILES): remove intltool stuff on distclean.

	* src/themes/Makefile.am (uninstall-local): add uninstall rule.

	* src/Makefile.am (libmetacity_private_la_CFLAGS): set this
	variable so that the files shared with metacity get compiled with
	different names.

	* configure.in: use more modern macros in some places, and make
	sure that $ACLOCAL_AMFLAGS is set so that rebuilds work better.

	* autogen.sh (conf_flags): use newer automake.

2004-11-06  Vincent Untz  <vincent@vuntz.net>

	* src/metacity.schemas.in: gnome-panel-screenshot was renamed to
	gnome-screenshot

2004-11-01  Elijah Newren  <newren@math.utah.edu>

	* configure.in: bump version to 2.9.1

2004-11-01  Elijah Newren  <newren@math.utah.edu>

	* NEWS, README: Metacity 2.9.0 (unstable release)

2004-10-25  Elijah Newren  <newren@math.utah.edu>

	Don't lower newly mapped windows when they're denied focus, if
	they are transients of the focused window.  Instead, defocus the
	currently focused window.  (fixes #151996).

	(Also, reenable focus stealing prevention and do a small spacing
	cleanup)

	* src/window-props.c (init_net_startup_id): fix spacing

	* src/window.c (window_takes_focus_on_map): re-enable focus
	stealing prevention, (meta_window_show): if the new window is
	denied focus and is a transient of the currently focused window,
	defocus the currently focused window but keep the transient on
	top; remove some old code about transients and focus; make sure
	that EnterNotify events won't accidentally focus the new window.

2004-10-25  Elijah Newren  <newren@math.utah.edu>

	Fix the alt-tab order--if the most recently used window is not
	focused, start alt tabbing with that window instead of the one
	after it (fixes #156251)

	* src/display.c (find_tab_forward): add a skip_first parameter,
	(find_tab_backward): add a skip_last parameter,
	(meta_display_get_tab_next): if a beginning window wasn't given
	and the focused window isn't the tab chain, don't skip the MRU
	window

2004-10-22  Elijah Newren  <newren@math.utah.edu>

	Update _NET_WM_STATE_HIDDEN so the pager on the panel will know
	whether to display windows as visible or hidden (#105665)

	* src/screen.c (queue_windows_showing): Revert the
	queue_windows_showing portion of the patch committed on 2004-10-16
	for #142198--it was an ill-advised optimization.

	* src/window.c (window_showing_on_its_workspace,
	window_should_be_showing): split the old window_should_be_showing
	into these two functions, (set_net_wm_state): hidden state is more
	complex; use window_showing_on_its_workspace to determine the
	correct value

2004-10-20  Elijah Newren  <newren@math.utah.edu>

	Patch from Soeren to fix the modifier key breakage introduced by
	an Xorg change. (fixes #151554)

	* src/keybindings.c: include X11/XKBlib.h if available,
	(handle_spew_mark): remove this unused function declaration,
	(end_keyboard_grab): new function, uses XKB if available,
	(process_tab_grab): use end_keyboard_grab to determine whether to
	end the grab, (error_on_command): make key a const char *,
	(process_workspace_switch_grab): use end_keyboard_grab to
	determine whether to end the grab
	
2004-10-19  Anders Carlsson  <andersca@gnome.org>

	* src/frame.c: (meta_window_ensure_frame):
	Don't try to use an ARGB visual at all if the depth isn't
	32-bit. This caused major slowdowns with Composite enabled.
	
2004-10-16  Elijah Newren  <newren@math.utah.edu>

	Make the "showing desktop" mode be per-workspace instead of
	per-screen. (fixes #142198)

	* src/keybindings.c (handle_toggle_desktop): access
	showing_desktop through the active workspace

	* src/screen.c (meta_screen_new): remove initialization of
	screen->showing_desktop,
	(meta_screen_update_showing_desktop_hint): rename and make not
	static and access showing_desktop through the active workspace,
	(queue_windows_showing): replace meta_display_list_windows() with
	screen->active_workspace->windows,
	(meta_screen_minimize_all_on_active_workspace_except): renamed
	from meta_screen_minimize_all_except since it now only works on
	the active workspace, (meta_screen_show_desktop,
	meta_screen_unshow_desktop): access showing_desktop through the
	active workspace

	* src/screen.h (struct _MetaScreen): remove showing_desktop field,
	(meta_screen_minimize_all_on_active_workspace_except): rename from
	meta_screen_minimize_all_except,
	(meta_screen_update)_showing_desktop_hint): export this function too

	* src/window.c (maybe_leave_show_desktop_mode): access
	showing_desktop through the active workspace and use new name for
	meta_screen_minimize_all_on_active_workspace_except,
	(window_should_be_showing): access showing_desktop through the
	active workspace

	* src/workspace.c (meta_workspace_new): initialize
	workspace->showing_desktop, (meta_workspace_activate_with_focus):
	add note that old can be NULL, update showing_desktop_hint if
	different on this workspace than the previous one

	* src/workspace.h (struct _MetaWorkspace): add showing_desktop
	field

2004-10-16  Elijah Newren  <newren@math.utah.edu>

	* rationales.txt: Add new tracker bugs

2004-10-15  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c (reload_keymap): Fix from Rob to correct
	requested number of keycodes (#155247)

2004-10-13  Elijah Newren  <newren@math.utah.edu>

	Code cleanup

	* src/window.c (is_in_dock_group, docks_at_end_cmp,
	shuffle_docks_to_end): removed functions,
	(meta_window_notify_focus): no need to call is_in_dock_group or
	shuffle_docks_to_end because of the patch from #120100 that was
	committed.

2004-10-13  Vincent Untz  <vincent@vuntz.net>

	Add a keybinding to launch a terminal

	* src/keybindings.c: (handle_run_terminal): new function,
	(error_on_generic_command): new function, (error_on_command): wrapper
	around error_on_generic_command(), (error_on_terminal_command): new
	function

	* src/metacity.schemas.in: add run_command_terminal key

	* src/prefs.[ch]: (meta_prefs_init): cache the terminal command and
	register a gconf callback to update it, (change_notify): handle the
	notification of terminal command changes, (meta_preference_to_string):
	add the terminal command case, (update_terminal_command): new function,
	(meta_prefs_get_terminal_command): new function,
	(meta_prefs_get_gconf_key_for_terminal_command): new function

2004-10-11  Rob Adams  <readams@readams.net>

	* configure.in: bump version to 2.9.0.  Add UNSTABLE warning.

2004-10-11  Rob Adams  <readams@readams.net>

	* NEWS, README: Metacity 2.8.6 (stable release)

2004-10-08  Elijah Newren  <newren@math.utah.edu>

	Fix middle-frame-click-to-lower focus inconsistency (#154601)

	* src/core.c (meta_core_user_lower_and_unfocus): focus the default
	window in all focus modes, not just click-to-focus (EnterNotify
	events will not handle this case for sloppy and mouse focus)

	* src/display.c (event_callback): replace window->has_focus with
	window == display->expected_focus_window to avoid a race issue

2004-10-08  Elijah Newren  <newren@math.utah.edu>

        Alter the meaning of expected_focus_window; doesn't affect
	current operation but assists in fixing some other bugs
	(#154598)
	
	* src/display.c (meta_display_focus_the_no_focus_window): set the
	expected_focus_window to NULL.

	* src/window.c (meta_window_notify_focus): don't NULL the
	expected_focus_window when that window receives a FocusIn event

2004-10-04  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): if the root window gets focused,
	set the focus to the default window; this fixes the
	"focus-follows-mouse" behavior seen for click-to-focus mode after
	cancelling log out (fixes #153220)

2004-10-04  Elijah Newren  <newren@math.utah.edu>

	Fix a variety of issues with autoraise (#134206)

	* src/display.h: (struct _MetaDisplay): add an autoraise_window
	parameter

	* src/display.[hc] (meta_display_focus_the_no_focus_window): new
	function, (meta_display_queue_autoraise_callback): new function,
	(meta_display_remove_autoraise_callback): new function

	* src/display.c (meta_display_open): intialize
	display->autoraise_window too, (meta_display_close): remove any
	pending autoraise callback, (window_raise_with_delay_callback):
	clear out auto_raise->display->autoraise_window too,
	(event_callback): call meta_display_queue_autoraise_callback
	instead of having the code inline, call
	meta_display_focus_the_no_focus_window to handle focusing that
	window

	* src/window.c (meta_window_focus): If there's a window with an
	autoraise timeout that isn't the window being focused, remove the
	autoraise timeout

	* src/workspace.c (meta_workspace_focus_default_window): If no
	autoraise timeout is queued for the given window then queue one
	now, call meta_display_focus_the_no_focus_window to handle
	focusing that window, (meta_workspace_focus_mru_window): call
	meta_display_focus_the_no_focus_window to handle focusing that
	window

2004-10-04  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): When no window becomes focused,
	focus the default window instead of punting to the
	no_focus_window.  Also, change the warning to a verbose
	message--this will happen frequently due to brain-damage in the X
	protocol.  (see #125492)

2004-10-04  Elijah Newren  <newren@math.utah.edu>

	Fix a variety of focus race conditions in all focus modes, or at
	least make them harder to trigger (fixes #152000)

	* src/core.[ch] (meta_core_user_lower_and_unfocus): add a
	timestamp parameter; pass it along to
	meta_workspace_focus_default_window

	* src/display.[ch] (meta_display_get_current_time_roundtrip): new
	function

	* src/display.c (event_callback): pass a timestamp to the
	meta_workspace_activate and meta_workspace_focus_default_window
	function calls

	* src/frames.c (meta_frames_button_press_event): pass a timestamp
	to meta_core_user_lower_and_unfocus

	* src/keybindings.c (handle_activate_workspace): pass a timestamp
	to meta_workspace_activate, (process_workspace_switch_grab): pass
	a timestamp to meta_workspace_focus_default_window and
	meta_workspace_activate, (handle_toggle_desktop): pass a timestamp
	to meta_workspace_focus_default_window,
	(do_handle_move_to_workspace): pass a timestamp to
	meta_workspace_activate_with_focus, (handle_workspace_switch):
	meta_workspace_activate

	* src/screen.c (meta_screen_new): pass a timestamp to
	meta_workspace_activate

	* src/window.c (meta_window_free): pass a timestamp to
	meta_workspace_focus_default_window, (idle_calc_showing): don't
	increment the focus sentinel here, (meta_window_minimize): pass a
	timestamp to meta_workspace_focus_default_window,
	(meta_window_client_message), pass a timestamp to
	meta_workspace_focus_default_window

	* src/workspace.h (meta_workspace_activate): add timestamp
	parameter, (meta_workspace_activate_with_focus): add timestamp
	parameter, (meta_workspace_focus_default_window): add timestamp
	parameter

	* src/workspace.c (meta_workspace_focus_mru_window): make this
	function take a timestamp and use it for meta_window_focus or
	XSetInputFocus, (meta_workspace_activate_with_focus): make this
	function take a timestamp and pass it along to meta_window_focus
	and meta_workspace_focus_default_window,
	(meta_workspace_activate): make this function take a timestamp and
	pass it to meta_workspace_activate_with_focus),
	(meta_workspace_focus_default_window): make this function take a
	timestamp, warn if its 0 but try to handle that case sanely, and
	pass the timestamp on to meta_window_focus or
	meta_workspace_focus_mru_window or XSetInputFocus

2004-09-22  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c (process_workspace_switch_grab): Focus the
	default window after the user dismisses the workspace switcher
	popup (fixes #123803; note that an alternate fix was made
	independently by David Baron for sloppy and mouse focus users)

2004-09-22  Elijah Newren  <newren@math.utah.edu>

	Fix some uninitialized variable errors reported by valgrind (see
	#153338)

	* src/display.c (meta_display_open): initialize
	display->grab_resize_timeout_id, and display->grab_have_keyboard

	* src/ui.c (meta_ui_create_frame_window): initialize attrs.width
	and attrs.height

2004-09-17  Elijah Newren  <newren@math.utah.edu>

	* src/workspace.c (meta_workspace_focus_mru_window): Don't focus a
	window that is minimized (fixes #147947)

2004-09-17  Kjartan Maraas  <kmaraas@gnome.org>

	* src/bell.c: (meta_bell_flash_screen):
	* src/compositor.c:
	* src/effects.c: (meta_effects_draw_box_animation):
	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/frame.c: (find_argb_visual):
	* src/frames.c: (unsigned_long_hash), (meta_frames_manage_window),
	(meta_frames_apply_shapes):
	* src/iconcache.c: (find_largest_sizes), (find_best_size):
	* src/keybindings.c: (meta_spawn_command_line_async_on_screen):
	* src/main.c: (main):
	* src/menu.c: (meta_window_menu_new):
	* src/prefs.c: (meta_prefs_get_visual_bell),
	(meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type),
	(meta_prefs_get_action_double_click_titlebar),
	(meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay),
	(meta_prefs_get_reduced_resources):
	* src/screen.c: (meta_create_offscreen_window):
	* src/tabpopup.c: (meta_ui_tab_popup_get_selected):
	* src/theme-parser.c: (meta_theme_load):
	* src/theme.c: (meta_gtk_widget_get_font_desc):
	* src/tools/metacity-mag.c: (mouse_press), (begin_area_grab):
	* src/util.c: (meta_unsigned_long_hash): A load of fixes of issues
	reported by sparse. Closes bug #152849

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): Remove some redundant code
	regarding focusing the default window (#152117)

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Patch from Ken Harris in #135786 to focus a new default window
	when lowering via middle-click on the frame.

	* src/core.[hc], src/frames.c: rename meta_core_user_lower to
	meta_core_user_lower_and_unfocus

	* src/core.c (meta_core_user_lower_and_unfocus): if in
	click-to-focus mode then also move the window to the back of the
	mru list and focus the new default window for the active workspace

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Focus the no_focus_window if no suitable window is in the mru list
	(should fix the almost contrived extra issue found in #147475)

	* doc/how-to-get-focus-right.txt: We no longer need to lie about
	only focusing panels upon explicit request.

	* src/workspace.c: (meta_workspace_focus_top_window): removed this
	function--it was more code than needed and was unreliable anyway,
	(meta_workspace_focus_mru_window): if a suitable window isn't in
	the mru list, focus the no_focus_window instead of calling
	focus_top_window.

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Prevent focus inconsistencies by only providing one focus method
	(fixes #151990)

	* src/screen.c (meta_screen_show_desktop): remove call to
	meta_workspace_focus_top_window (it was merely focusing a window
	that was going to be hidden anyway, and likely the one that
	already had focus)

	* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
	meta_workspace_focus_top_window from workspace.h, make them static
	functions in workspace.c
	
2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Remove race condition for focus window choice on window close
	followed by rapid mouse movement in sloppy and mouse focus modes
	(partially fixes #152000)

	* src/window.c (meta_window_free): Don't increment the focus
	sentinel for windows being freed, (idle_calc_showing): don't
	increment the focus sentinel for windows being minimized

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Fix unwanted loss of focus to the mouse window when using keynav
	(fixes #101190)

	* src/display.c (event_callback): Ignore EnterNotify events with
	xcrossing.mode of either NotifyGrab or NotifyUngrab

2004-09-15  Elijah Newren  <newren@math.utah.edu>

	Focus correct window after minimizing via the tasklist (fixes
	#128200; see also #107681)

	* src/display.h (struct _MetaDisplay): track the
	previously_focused_window

	* src/display.c (meta_display_open): initialize
	previously_focused_window

	* src/window.c (meta_window_free): clear the
	previously_focused_window if it's being freed,
	(meta_window_client_message): if we get a request to minimize the
	previously_focused_window and the focus_window is a dock or the
	desktop, focus the default window, (meta_window_notify_focus):
	update the previously_focused_window

2004-09-13  Rob Adams  <readams@readams.net>

	* configure.in: post-release increment

2004-09-13  Rob Adams  <readams@readams.net>

	* configure.in: bump version number

	* NEWS: 2.8.5 release

	* README: 2.8.5 release

2004-09-14  Gora Mohanty  <gmohanty@cvs.gnome.org>

	* configure.in: Added 'or' to ALL_LINGUAS.
   
2004-09-07  Elijah Newren  <newren@math.utah.edu>

	Add a new write-up on making window focus consistent (see #152004)

	* doc/how-to-get-focus-right.txt: New document

	* rationales.txt: Remove references to focus bugs, instead point
	to doc/how-to-get-focus-right.txt

2004-09-06  Elijah Newren  <newren@math.utah.edu>

	* rationales.txt: Add bugs regarding window focus

2004-08-29  Elijah Newren  <newren@math.utah.edu>

	* NEWS: 2.8.4 release

2004-08-29  Elijah Newren  <newren@math.utah.edu>

	* src/window.c (window_takes_focus_on_map): Disable
	focus-stealing-prevention for now; there are still some issues and
	hard code freeze is tomorrow...so this will have to wait until
	Gnome 2.10.

2004-08-27  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_new): disable NameWindowPixmap
	stuff always for now, it seemed kind of busted
	(paint_screen): don't grab the server during repaint, adds to the
	speed, though only slightly.

	* src/frames.c (meta_frames_set_window_background): factor out all
	the set_background stuff to one function; disable setting
	background to transparent, because it breaks existing themes. We
	need to add a flag in the theme XML file to say "start me with a
	transparent background"

2004-08-27  Elijah Newren  <newren@math.utah.edu>

	Prevent an assertion failure that can occur after increasing the
	number of workspaces; also fix a warning and stacking order when a
	window is denied focus (fixes #150615)

	* src/window.c (meta_window_stack_just_below): the position of the
	window should be set equal to that of the one we want to be below,
	not 1 lower than that number

	* src/workspace.c (maybe_add_to_list): new function to add
	on_all_workspace windows to an mru_list, (meta_workspace_new):
	call maybe_add_to_list for all windows on the screen in order to
	initialize the mru_list

2004-08-26  Havoc Pennington  <hp@redhat.com>

	* src/frame.c: delete extra copy of find_argb_visual so things
	compile

	* src/compositor.c (HAS_NAME_WINDOW_PIXMAP): copy the
	XCompositeNameWindowPixmap() stuff from xcompmgr, though I can't
	say I really know what it's supposed to help with (painting the
	window border?)

2004-08-26  Havoc Pennington  <hp@redhat.com>

	* src/frame.c, src/theme.c: couple of cosmetic tweaks from
	resolving my local patch with the bugzilla patch from the 8-19
	entry below

2004-08-26  Havoc Pennington  <hp@redhat.com>

	* configure.in: move the have_xrender variable initialization up
	in the file since it can be set as part of composite check

2004-08-19  Havoc Pennington  <hp@redhat.com>

	Fixes from Rich Wareham

	* src/display.h (struct _MetaDisplay): add render extension check
	to the display

	* src/display.c: check for render

	* configure.in: don't build compositing manager by default, don't
	want any nasty surprises; check for render separately from
	compositing manager

	* src/frame.c: use an ARGB visual when available for the window 
	frame, so we can be all cool-ass

2004-08-25  Elijah Newren  <newren@math.utah.edu>

	Make dialogs that Metacity shows follow focus-stealing-prevention
	conventions. (fixes one issue in #149028; see comments 47-54)

	* src/delete.c (delete_ping_reply_func,
	delete_ping_timeout_func): Make callback functions take a
	timestamp arg, (delete_ping_timeout_func): pass the timestamp to
	metacity-dialog

	* src/display.c (meta_display_ping_timeout): add a timestamp to
	the call to the ping_timeout_func, (meta_display_ping_window,
	process_pong_message): add a timestamp to the call to the
	ping_reply_func

	* src/display.h (MetaWindowPingFunc typedef): add a timestamp to
	this function typedef

	* src/keybindings.c (error_on_command): require a timestamp and
	pass the timestamp on to metacity-dialog, (handle_run_command):
	pass a timestamp to error_on_command

	* src/metacity-dialog.c (copy_of_gdk_x11_window_set_user_time):
	new function (temporary; only for use while using gtk+-2.4),
	(kill_window_question, warn_about_no_sm_support,
	error_about_command): make these functions take a timestamp and
	call copy_of_gdk_x11_window_set_user_time, (main): require the
	first two args to the program to be "--timestamp <timestamp>"

	* src/session.c (warn_about_lame_clients_and_finish_inter): pass a
	timestamp of 0 to metacity-dialog to prevent focus (it's a popup
	not generated by and kind of user request).

Fri Aug 20 12:54:12 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c (meta_display_end_grab_op): Move wireframe code
	before grab is released to prevent endless loops with fullscreen
	windows.

2004-08-18  Havoc Pennington  <hp@redhat.com>

	* src/display.h (struct _MetaDisplay): track the last_xor_rect
	separately from the current window size, and then use that to 
	paint the wireframe including the frame, and taking into 
	account shaded windows.

	* src/window.c (meta_window_get_xor_rect): new function to compute
	the xor rect; it is not really 100% right, because it uses the
	frame dimensions from the window at the start of the move/resize.
	But probably won't break in practice.

2004-08-17  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "bs" to ALL_LINGUAS.

2004-08-16  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Added nb to ALL_LINGUAS.

2004-08-15  Rob Adams  <readams@readams.net>

	* configure.in: Bump version to 2.8.4

2004-08-15  Rob Adams  <readams@readams.net>

	* NEWS: 2.8.3 release

2004-08-15  Rob Adams  <readams@readams.net>

	* src/windows.c (meta_window_update_struts): use height and
	top/bottom struts to compute gap (copy/paste bug).

2004-08-15  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_update_struts): Allow struts larger
	than 1/2 the screen width/height, as long as there's a minimum
	sized gap between them.  Patch from Bill Haneman <billh@gnome.org>
	for bug #144126.
	
2004-08-13 Gurban M. Tewekgeli  <gmtavakkoli@yahoo.com>
	* po/tk.po: Added Turkmen translation.
	* configure.in: Added "tk" to ALL_LINGUAS.

Mon Aug  9 05:38:33 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/effects.c (graphics_sync): New function. 
	* src/effects.c (effects_draw_box_animation_timeout): Use it here
	to synchronize with the hardware between each frame.

2004-08-08  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_move_resize_internal): Add #ifdef
	around XSYNC code; fixes compile problem if XSYNC is disabled.
	Path for #149314 from Peter O'Shea and independently Mike Castle.

Sun Aug  8 14:20:00 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/frame.c (meta_frame_set_screen_cursor): Flush after setting
	cursor. (Rest of #149413).

2004-08-07  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): activating the current workspace
	should be a no-op.  This prevents a race condition in focus window
	choice when activating a window via the taskbar.  Fix for #149589.

2004-08-07  Elijah Newren  <newren@math.utah.edu>

	* src/window.c, src/window.h: Revert Rob's 2004-07-31 patch that
	ignored net_wm_user_time when unminimizing a window

	* src/window.c (meta_window_activate): If a nonzero timestamp is
	passed, update the window's net_wm_user_time accordingly.  (see
	comments 102-108 of bug 118372)

2004-08-07  Rob Adams  <readams@readams.net>

	Remove some extraneous items that could sometimes appear in the
	window menu.  Fix for #144493.
	
	* src/menu.c (menuitems): Change the second separator to key on
	whether there are any workspaces.
	(meta_window_menu_new): use NULL label instead of 0 op to identify
	separator

	* src/window.c (meta_window_show_menu): Change the conditions on
	the directions to take into account "holes" in the workspace
	layout and also only set META_MENU_OP_WORKSPACES when there's more
	than one workspace.
	
2004-08-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_set_cursor): add XFlush() after
	setting cursor, #149413

2004-08-06  Elijah Newren  <newren@math.utah.edu>

	* src/display.c (event_callback): Focusing a window upon unshowing
	the desktop in various ways (panel applet or keybinding) was
	inconsistent for sloppy and click focus modes.  Fix this by
	calling meta_workspace_focus_default_window after unshowing the
	desktop via a _NET_SHOWING_DESKTOP message.  (resolves #149543)

2004-08-06  Elijah Newren  <newren@math.utah.edu>

	* src/workspace.c (meta_workspace_focus_default_window): prevent
	keyboard from "getting locked" upon workspace switch, by making
	sure that the no_focus_window has focus if no other window does.
	(fixes #147475)

2004-08-05  Elijah Newren  <newren@math.utah.edu>

	Have newly mapped windows that are denied focus appear after the
	focused window in the alt-tab list.  This allows one to switch to
	such a window with a single alt-tab press.  (fixes #149366)
	
	* src/window.c (ensure_mru_position_after): new function,
	(meta_window_show): If newly mapped window is denied focus, call
	ensure_mru_position_after to make the window appear after the
	focus window in the mru list.

2004-08-05  Elijah Newren  <newren@math.utah.edu>

	* src/window.c (meta_window_stick): prepend window to mru list
	instead of appending, since making the window sticky should imply
	that it is the most recently used, not the least recently.  (fixes
	#149369)

2004-08-04  Elijah Newren  <newren@math.utah.edu>

	* configure.in: post-release version bump (2.8.3) that I forgot to
	do yesterday.

2004-08-03  Elijah Newren  <newren@math.utah.edu>

	Released 2.8.2

	* NEWS, README: update

2004-08-02  Elijah Newren  <newren@math.utah.edu>

	Fix some bugs (reported in #120100) regarding the focus window
	when using the workspace switcher.
	
	* src/display.c (event_callback): When switching workspaces due to
	a _NET_CURRENT_DESKTOP message, make sure to focus the default
	window as well.

	* src/workspace.c (meta_workspace_focus_default_window,
	meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows
	have lower priority than others when choosing a window to focus.
	(For the former function, this means don't focus them at all; for
	the latter, this means only focus them (via the
	meta_workspace_focus_top_window call) if no other mru window can
	be found.)

2004-07-31  Rob Adams  <readams@readams.net>

	Fix bug that caused windows to not be focused on unminimizing
	because of user time support.
	
	* src/window.c (meta_window_new_with_attrs): initialize
	focus_despite_user_time bit
	(window_takes_focus_on_map): focus if focus_despite_user_time
	despite user time, interestingly enough
	(meta_window_show): reset focus_despite_user_time after showing

	* src/window.h (_MetaWindow): add focus_despite_user_time bit

2004-07-31  Rob Adams  <readams@readams.net>

	Fix some support for EWMH hints, and fix USER_TIME support to
	include the DEMANDS_ATTENTION hint.  Also includes some code for
	implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but
	this is disabled pending feature thaw.
	
	* COMPLIANCE: update with new information

	* src/display.c (meta_display_open): add new hints to list

	* src/display.h (_MetaDisplay): Add new atoms to struct

	* src/screen.c (set_supported_hint): update the list of support
	hints.
	(set_desktop_viewport_hint): new function sets the viewport hint
	to (0,0) as required by the spec for WMs with no viewport support.
	(set_desktop_geometry_hint): new function to set the desktop size
	hint to the size of the display, since we don't implement large
	desktop support, as required by the spec.
	(meta_screen_resize): update the geometry hint on screen resize

	* src/window.c (meta_window_new_with_attrs): Initialize
	demands_attention state
	(set_net_wm_state): Set demands_attention hint in the window state
	(meta_window_show): If we don't pop up a window because of
	USER_TIME, set DEMANDS_ATTENTION on the window.
	(meta_window_focus): When a window receives focus, remove
	DEMANDS_ATTENTION hint
	(meta_window_client_message): Allow other apps to set
	DEMANDS_ATTENTION on a window.  Also, if the _NET_ACTIVE_WINDOW
	hint includes a timestamp, use it.
	(update_net_wm_state): Read DEMANDS_ATTENTION state also

	* src/window.h (_MetaWindow): add wm_state_demands_attention bit.
	
2004-07-22  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Add trailing quotes to keybinding
	explanation text.  Patch from Emil Soleyman-Zomalan.

Fri Jun 25 17:41:53 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* configure.in: Require startup-notification 0.7

2004-06-25  Rob Adams  <readams@readams.net>

	* COMPLIANCE: indicate that _NET_WM_USER_TIME is now supported

2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/keybindings.c: (handle_toggle_desktop): Choose correct
	window to focus when "un-showing" the desktop.  Fixes #144900.

2004-06-24  Elijah Newren  <newren@math.utah.edu>

	Make choice of focus window be consistent for each focus mode.
	Fixes #135810.

	* src/delete.c: (meta_window_delete): In some #if 0'ed code,
	replace meta_workspace_focus_mru_window with
	meta_workspace_focus_default_window (just in case the code becomes
	un-#if 0'ed out).

	* src/screen.c, src/screen.h: Change
	meta_screen_focus_mouse_window to meta_screen_get_mouse_window,
	and don't focus the window when found but rather return it.

	* src/window.c: (meta_window_free, meta_window_minimize): replace
	meta_workspace_focus_mru_window with
	meta_workspace_focus_default_window.

	* src/workspace.c: (meta_workspace_focus_default_window): Focus
	appropriately for the given focus method:
	   click-to-focus: focus MRU window (== toplevel window)
	   sloppy focus:   focus the window under the pointer if there is
	                   such a window, otherwise focus the mru window
	   mouse focus:    focus the window under the pointer if there is
	                   such a window, otherwise don't focus anything

2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/window.c: Avoid a race condition on the choice of window to
	focus after the previously focused window gets closed or
	minimized.  Fixes #131582.

2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/metacity.schemas.in: make naming for "move a window"/"move
	the window"/"move window" more consistent.  Patch from Michael
	Terry for #142235.

2004-06-24  Elijah Newren  <newren@math.utah.edu>

	* src/session.c: Change meta_warning to meta_topic on failure to
	connect to a session manager.  Fixes #136218.

2004-06-17  Elijah Newren  <newren@math.utah.edu>

	Add support for _NET_WM_USER_TIME
	
	* src/display.c:
	(meta_display_open): Add _NET_WM_USER_TIME to atom_names[],
	(event_callback): Manually set _NET_WM_USER_TIME upon KeyPress
	(doesn't work since keyboard isn't grabbed) and ButtonPress (does
	work), this is just a fallback for applications that don't update
	this themselves.

	* src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field
	
	* src/screen.c: (meta_screen_apply_startup_properties): Check for
	TIMESTAMP provided from startup sequence as well.
	
	* src/stack.c: 
	s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/,
	(meta_window_set_stack_position): New function which calls the
	meta_window_set_stack_position_no_sync function followed immediately
	by calling meta_stack_sync_to_server.

	* src/window-props.c: 
	(init_net_wm_user_time), (reload_net_wm_user_time): new functions,
	(reload_wm_hints): also load atom_net_wm_user_time
	
	* src/window.c:
	new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound),
	(meta_window_new_with_attrs): add timestamp attributes,
	(window_takes_focus_on_map): use TIMESTAMP from startup
	notification and _NET_WM_USER_TIME to decide whether to focus new
	windows,
	(meta_window_show): if app doesn't take focus on map, place it
	just below the focused window in the stack
	(process_property_notify): check for changes to _NET_WM_USRE_TIME,
	(meta_window_stack_just_below): new function
	
	* src/window.h:
	(_MetaWindow struct): new fields for initial_timestamp,
	initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time,
	(meta_window_stack_just_below): new function

2004-06-21  Anders Carlsson  <andersca@gnome.org>

	* src/common.h:
	* src/menu.c: (menu_closed), (activate_cb):
	* src/window.c: (menu_callback):
	Add a timestamp argument to menu functions and
	use it in meta_window_delete.
	
2004-06-21  Anders Carlsson  <andersca@gnome.org>

	* src/window.c: (meta_window_client_message):
	Get the timestamp from the client message.

Sat Jun 19 02:21:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	Fix bug 143333, support for update counter spec, and 109362,
	schedule compensation events when events are ignored.
	
	* src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and
	_NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old
	METACITY_SYNC_COUNTER stuff.
	(meta_display_begin_op): Setup the sync counter

	* src/xprops.c, src/xprops.h, src/window-props.c, src/display.h:
	Add new atoms.
	
	* src/window.c (send_sync_request): new function.
	(meta_window_move_resize_internal): send a sync request before
	resizing.
	(check_move_resize_frequence): Rework logic to also check the SYNC
	case. If an event is ignored return the remaining time.
	(update_resize_timeout): Timeout that gets called when a
	compensation event is scheduled.
	(uddate_resize): schedule compensation events when an event is
	ignored.
	(meta_window_handle_mouse_grap_op_event): When an alarm is
	received and sync was turned off, turn it back on.
	
	* src/window.h (struct MetaWindow)  Add some variables

2004-06-16  Havoc Pennington  <hp@redhat.com>

	* configure.in: bump version, add the UNSTABLE note

	* Branch off GNOME 2.6, we are now officially unstable

2004-06-04  Jeff Waugh  <jdub@perkypants.org>

	* src/metacity.schemas.in: Set titlebar_uses_system_font = false. The
	previous default was almost violent in its lack of appreciation for
	human beings. In fact, this entire setting should probably be removed, but
	for now, let's just fix the default. Permission granted by Havoc.

2004-05-04  Elijah Newren  <newren@math.utah.edu>

	* configure.in: 2.8.1

	* NEWS: update

2004-05-02  Rob Adams  <readams@readams.net>

	* src/metacity-dialog.c (warn_about_no_sm_support): make the no sm
	support warning dialog resizable, since the default GTK warning
	dialog not has default not resizable.  Fix for #141672 from
	Olivier Crete.

2004-04-29  Rob Adams  <readams@readams.net>

	* src/prefs.c (change_notify): Add a value type check for the
	visual bell/audible bell gconf settings.  Patch from Jarrod
	Johnson for #141409.

2004-04-19  Mark McLoughlin  <mark@skynet.ie>
	
        Syncing across this change from libwnck.
	Patch from Neil Muller <neil@dip.sun.ac.za> in bug #133979.
	
	* src/iconcache.c: (find_largest_sizes), (find_best_size):
	Don't down-size nitems from a gulong to an int. Fixes a
	crash with enlightenment, apparently.

2004-04-16  Iñaki Larrañaga  <dooteo@euskalgnu.org>

	* configure.in: Added "eu" (Basque) to ALL_LINGUAS.

2004-04-15  Elijah Newren  <newren@math.utah.edu>

	* src/display.c: Prevent unwanted grab op from occurring.
	Previously, for some people under certain conditions, clicking and
	releasing the mouse button rapidly enough would result in Metacity
	starting a move operation due to ignoring the button release.
	This should fix that problem (it does for me).  See bug 136587.

2004-04-11  Rob Adams  <readams@readams.net>

	* configure.in: Make the --enable-xinerama switch work properly.
	Fix for #138562 from foser@gentoo.org.
	
2004-04-09  Guntupalli Karunakar  <karunakar@freedomink.org>

        * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.

2004-03-27  Tõivo Leedjärv  <toivo@linux.ee>

	* configure.in: Added et to ALL_LINGUAS.

2004-03-24  Guntupalli Karunakar  <karunakar@freedomink.org>

        * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.

2004-03-21  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.8.0

	* NEWS: update

2004-03-07  Elijah Newren  <newren@math.utah.edu>

	* rationales.txt: Bring up to date (see bug 136252).

2004-03-07  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.7.1

2004-03-04  Paisa Seeluangsawat  <paisa@users.sf.net>

	* configure.in: Added "th" (Thai) to ALL_LINGUAS.

2004-03-01  Rob Adams  <readams@readams.net>

	* src/stack.c (compute_layer): don't promote due to transiency; we
	handle that elsewhere now.
	(ensure_above): perform layer promotion here as well as stack
	position promotion.  Note that this means that we need to do stack
	constraints now on layer change now.
	(get_maximum_layer_of_ancestor): remove function
	(max_layer_func): remove function
	(MaxLayerData): remove struct

2004-02-28  Rob Adams  <readams@readams.net>

	Revert 2/27 patch for layer promotion.

2004-02-27  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_notify_focus): only move on MRU list
	if the window belongs on the workspace, since the FocusIn event
	could be for a window whose workspace we've since switched away
	from.  Possible fix for #122016.

	* src/workspace.c (meta_workspace_contains_window): search for the
	workspace in window->workspaces rather than the window in
	workspace->windows.  Since the number of workspaces is at most 36,
	this is a O(1) lookup rather than a O(n) lookup.  Sorry; couldn't
	resist.

2004-02-27  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Change
	move_to_workspace_left/right/up/down keybindings to
	<Control><Alt><Shift> arrow to avoid conflicting with new
	keybindings in spacial nautilus.

2004-02-27  Rob Adams  <readams@readams.net>

	Handle layer promotion of transient descendants of layer-promoted
	windows to also be layer promoted, using a simple iterative
	algorithm.

	* src/stack.c (compute_layer): change name to promote_layer, and
	convert to simply perform any necessary layer promotion without
	computing the standalone layer.
	(max_layer_func): use window->layer instead of
	get_standalone_layer
	(get_maximum_layer_of_ancestor): use window->layer instead of
	get_standalone_layer
	(meta_stack_ensure_sorted): implement iterative algorithm,
	explained in a long comment.
	
	* src/window.h: add a tmp_layer field used by stack.c for
	determining if the stack is dirty or not, since maintaining this
	information in meta_stack_ensure_sorted is no longer practical.

2004-02-23  Rob Adams  <readams@readams.net>

	Add my copyright notice to a number of files on which it should
	already exist.
	
	* src/window.c (meta_window_notify_focus): modify code to move to
	front of MRU list so that we can have an assert that it was there
	in the first place.  This code may be causing some crashes.  See
	#131196.
	
2004-02-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "en_CA" to ALL_LINGUAS.

2004-02-19  Rob Adams  <readams@readams.net>

	* src/prefs.h: remove trailing comma in MetaKeyBindingAction enum.
	Fix for #134868 thanks to bugzilla-gnome@thewrittenword.com.

2004-02-16  Rob Adams  <readams@readams.net>

	* src/window.c (update_move): reset drag state after shaking loose
	or reattaching.  Fix for #132625.

2004-02-15  Anders Carlsson  <andersca@gnome.org>

	* src/menu.c (meta_window_menu_new): Actually translate a message,
	don't just mark it for translation.

2004-02-14  Elijah Newren  <newren@math.utah.edu>

	* src/workspace.c: When moving a window to a different workspace,
	prepend it to the mru list insted of appending it.  Fixes #134368.

2004-02-14  Rob Adams  <readams@readams.net>

	If we're moving a window and receive a _NET_CURRENT_DESKTOP
	message indicating a workspace switch, bring along the drag window
	to the new workspace, solving a potentially weird bug where the
	window would be lost on the old workspace.  This also makes it
	possible to implement edge flipping in an external program with
	just a few lines of code.  Patch for #131630 from ed@catmur.co.uk.
	
	* src/keybindings.c (switch_to_workspace): remove function -- no
	longer needed.
	(handle_activate_workspace): call meta_workspace_activate instead
	of switch_to_workspace

	* src/workspace.c (meta_workspace_activate_with_focus): if we're
	in a move grab op, bring along the drag window.

2004-02-14  Rob Adams  <readams@readams.net>

	* configure.in: Add configure option to not even try using
	xinerama, to make metacity buildable on systems with no shared
	library version of the xinerama libraries.  Patch for #134203 from
	Julio M. Merino Vidal.

2004-02-01  Rob Adams  <readams@readams.net>

	* COMPLIANCE: Bring up to date with current draft EWHM.

2004-01-27  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Use the 'utility' frame
	for dialogs too.

2004-01-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Updated this theme.

2004-01-21  Elijah Newren  <newren@math.utah.edu>

	* src/screen.c (set_supported_hint): Removed some duplicate
	entries.

2004-01-17  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: Default binding removed for
	toggle_shaded, since we don't have anything in the graphical UI
	for it any more.

2004-01-17  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_show_menu): Don't show
	left/right/up/down if a window is sticky.  Make "On Top"
	insensitive for docks, splash screens, and desktops since it has
	no effect anyway.

2004-01-10  Rob Adams  <readams@readams.net>

	* src/metacity.schemas.in: update default
	action_double_click_titlebar to be toggle_maximize instead of
	toggle_shade.  See #131126.
	
2004-01-10  Rob Adams  <readams@readams.net>

	* src/constraints.c (meta_window_constrain): if we maximize after
	placement, and the window is too big to fix in the work area,
	define a sane saved_rect approximately with dimensions
	three-quarters approximately three quarters the size of the work
	area.  This avoids the problem where large windows would
	unmaximize and actually get bigger.  See #93590.

2004-01-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.

	* src/display.c: include xprops.h
	(process_request_frame_extents): new function
	(meta_display_open): add _NET_FRAME_EXTENTS and
	_NET_REQUEST_FRAME_EXTENTS atoms
	(event_callback): handle frame extents message

	* src/display.h (struct _MetaDisplay): add atom_net_frame_extents
	and atom_net_request_frame_extents

	* src/theme.c (meta_pango_font_desc_get_text_height): make font_desc
	parameter const

	* src/ui.c: include prefs.h
	(meta_ui_theme_get_frame_borders): new function

	* src/window.c (update_net_frame_extents): new function
	(meta_window_move_resize_internal): update frame extents
	property when frame geometry changes

	* src/screen.c (set_supported_hint): add atom_net_frame_extents
	and atom_net_request_frame_extents

2004-01-09  Calum Benson  <calum.benson@sun.com>

	* src/themes/Atlanta/metacity-theme-1.xml:

	Ensure Atlanta window buttons get larger when using large
	print themes. Fixes #123469.

2003-01-04  Rob Adams  <readams@readams.net>

	Maintain the button grab for sloppy and mouse focus all the time.
	This fixes a number of problem introduced by trying to drop the
	grab; we now do this only for click to focus mode.  This has the
	unfortunate effect that #102209 reappears for sloppy and mouse
	focus, but this seems unavoidable, because of limitations in the X
	protocol.  See #115072.

	* src/display.c (meta_display_grab_focus_window_button): #if 0 the
	section on not grabbing unless in click-to-focus mode.

	* src/window.c (meta_window_notify_focus): drop focus button grab
	on FocusIn and acquire it on FocusOut only when in click-to-focus
	mode.
	
2004-01-03  Robert Sedak  <robert.sedak@sk.htnet.hr>

        * configure.in: Added "hr" in ALL_LINGUAS.

2003-01-02  Rob Adams  <readams@readams.net>

	* README: Update reference to EWMH.

	* HACKING: Add a reference to COMPLIANCE and to the ICCCM and
	EWHM.

2003-12-25  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (process_reparent): handle ReparentNotify, and
	add a lot of debug output.

2003-12-25  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_process_event): change to
	track all children of the root window, not only mapped children;
	this keeps us from losing track of the stacking order

	* src/display.c (event_callback): don't do any of the compositor
	event handling inline, do it all in compositor.c

2003-12-21  Rob Adams  <readams@readams.net

	* src/main.c (main): fix minor punctuation error in a string.  Fix
	for #129805.

2003-12-20  Rob Adams  <readams@readams.net>

	Reorganize the window menu according to discussion on #110904.
	The workspace name mnemonic chunk of the patch is thanks to
	Jonathan Blandford.
	
	* src/common.h: add MENU_OP_ABOVE, MENU_OP_UNABOVE, MENU_UP_MOVE_TO_*
	menu ops.

	* src/core.c (meta_core_get_menu_accelerator): add accelerator for
	the new menu ops.

	* src/menu.c: add checked attribute in _MenuItem struct to display
	a checkmark next to a menu item.  Add the new menu items to
	menuitems.
	(get_workspace_name_with_accel): Add mnemonics even to renamed
	workspaces.
	(menu_item_new): provide support for the checked attribute
	(meta_window_menu_new): construct new submenu for workspace
	switching.

	* src/window.c (menu_callback): implement support for the new menu
	ops.
	(meta_window_show_menu): don't use the OP_*SHAPE operations, and
	compute which of the OP_MOVE_TO_* ops should be used for the
	current workspace and workspace layout.  Add the OP_*ABOVE
	operations.
	
2003-12-20  Arafat Medini <lumina@silverpen.de>

	* configure.in: Added Arabic locale "ar" to ALL_LINGUAS

2003-12-17  Rob Adams  <readams@readams.net>

	* src/display.c (meta_display_open): initialize
	grab_wireframe_active to FALSE.  Fix for #128090.

2003-12-17  Rob Adams  <readams@readams.net>

	* src/tabpopup.c (meta_ui_tab_popup_new): Don't try to call
	utf8_strndup on a null title for an entry.  Fix for #128566.

	* src/workspace.c (meta_workspace_free): Call g_list_free on the
	mru_list, since with sticky windows that MRU list could well not
	be emtpy.  See #122016.

2003-12-13  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
	in all cases _before_ adding to the workspaces, so that windows
	initially on all workspaces are added correctly to the MRU lists.
	Fix for #120907.

	* src/workspace.c (meta_workspace_add_window): handle sticky
	windows so that we add to add mru lists if needed
	(meta_workspace_remove_window): handle sticky windows so that they
	are removed from all mru lists if needed.

2003-12-12  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_free): unstick window to get it out of
	mru_list it should not be in; assert that window has been removed
	from all mru_list. Perhaps fixes #122016 crash.

2003-11-29  Havoc Pennington  <hp@redhat.com>

	* fix up compositing manager to somewhat work

2003-11-26  Rob Adams  <readams@readams.net>

	* COMPLIANCE: fix a couple of minor typos.

2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c (meta_compositor_new): fix the extension checks

2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/iconcache.c (meta_icon_cache_init): init prev_mask field

	* src/window.c (meta_window_new_with_attrs): init xgroup_leader
	prior to use

2003-11-24  Havoc Pennington  <hp@redhat.com>

	* src/display.c (meta_display_begin_grab_op): add an event_serial
	argument and use it when the pointer is already grabbed
	automatically on the button press. May fix bug #126871

2003-11-24  Havoc Pennington  <hp@redhat.com>

	* Apply patch from Gregory Merchan to avoid using CurrentTime when
	setting input focus. Bug #108881

2003-11-23  Havoc Pennington  <hp@redhat.com>

	* src/compositor.c: move xcompmgr code in here (minus drop
	shadows), untested since Keith's server just crashes at the
	moment. "It compiles"

2003-11-20  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new_with_attrs): new function

	* src/display.c, src/screen.c: create the compositor and feed
	windows and events to it

2003-11-20  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_notify_focus): revert the change here
	
2003-11-17  Rob Adams  <readams@readams.net

	* src/window.c (set_allowed_actions_hint): increment i between
	resize and fullscreen.

2003-11-16  Rob Adams  <readams@readams.net>

	Create COMPLIANCE document describing metacity specification
	compliance.  Right now gives detailed EWMH compliance; still need
	to add ICCCM compliance information.  Also some minor fixes to
	bring metacity into compliance on some points.
	
	* COMPLIANCE: new file

	* src/display.h, src/display.c (meta_display_open),
	src/screen.c (set_supported_hint): add
	atom_net_wm_action_fullscreen and atom_net_wm_action_minimize

	* src/window.c (set_allowed_actions_hint): some fixes to which
	hints to set and add fullscreen and minimize.
	
2003-11-16  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_notify_focus): add paranoia check to
	make sure a window is really on a workspace before inserting it at
	the beginning of the MRU list.  Maybe there's a race condition
	with focusing and workspace switching.  Hopefully a fix for
	#122016.

2003-11-15  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): fix warning

	* src/compositor.c: add a new file to contain compositing manager
	functionality; not yet implemented at all.

2003-11-15  Rob Adams  <readams@readams.net>

	Inherit visual from frame window so that metacity will work with
	the new compositing manager extension work by Keith on
	freedesktop.org, so that ARGB windows can be full
	alpha-transparent without a metacity frame getting drawn in the
	background.  In the long term, we need to actually set alpha
	values when drawing the frame so that it will really work; this is
	a stopgap solution.  Patch from Keith Packard; see Bug 126875.
	
	* src/frame.c (meta_window_ensure_frame): pass client visual to
	frame.

	* src/ui.[ch] (meta_ui_create_frame_window): add new xvisual
	parameter and use it to create new window.
	
2003-11-15  Rob Adams  <readams@readams.net>

	* src/window.c (update_net_wm_type): don't set window->type_atom
	here so that the type-inference code will actually be called.  Fix
	for #126873 from Keith Packard.

2003-11-08  Rob Adams  <readams@readams.net>

	* src/window.c (meta_window_move_resize_internal): configure frame
	first if we grow more than we shrink combined in both dimensions.
	Patch from Soren Sandmann for #108925.

2003-11-07  Rob Adams  <readams@readams.net>

	* src/place.c (meta_window_place): use maximize_after_placement to
	automaximize in meta_window_place; avoids a problem with not
	recalculating the frame geometry after auto-maximizing.

2003-11-07  Rob Adams  <readams@readams.net>

	* src/window.c (window_should_be_showing): show the window if it's
	a transient of a dock or desktop, since otherwise such windows are
	invisible in show desktop mode.  Fix for #124648.

2003-11-07  Rob Adams  <readams@readams.net>

	* src/main.c (main): Try harder to find a theme in the event that
	the theme in the preference cannot be found.  Patch from Marcin
	Krzyzanowski.  See #125815.

	* src/place.c (meta_window_place): use "visual" centering for
	dialog placement and clip new dialogs to an xinerama workspace.
	Fix for #118336.

2003-10-30  Havoc Pennington  <hp@redhat.com>

	* src/menu.c (meta_window_menu_new): patch to avoid creating
	stick/unstick menu items when only one workspace, bug #116563
	from Michael Terry

2003-10-25  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_notify_focus): if a window is focused
	which is not either a dock or a transient in the same group as a
	dock, shuffle all dock/desktop windows to the end of the MRU list
	so they won't annoyingly get focus all the time. #123816

2003-10-15  Yukihiro Nakai  <nakai@gnome.gr.jp>

	Gettextize metacity-theme-viewer. #121747

	* src/theme-viewer.c: gettextize.
	* po/POTFILES.in: Add src/theme-viewer.c

2003-10-13  Havoc Pennington  <hp@redhat.com>

        In the "prefs cause code complexity" department, here's a "sloppy
	focus die die die" kind of moment.

	* src/display.c (meta_display_grab_focus_window_button): don't
	grab in sloppy focus mode, since we were dropping the grab on
	window enter anyway this just removes races from the current
	behavior.

	* src/display.c (prefs_changed_callback): ungrab/grab on focus
	mode changes, since we treat sloppy and click differently.
	
2003-10-12  Havoc Pennington  <hp@redhat.com>

        Merge reduced_resources mode patch from the branch. Offers
	wireframe and no-animations.
	
	* src/window.c (implement_showing): no animation if we are 
	in reduced resources mode

	* src/prefs.c: add REDUCED_RESOURCES pref

	* src/window.c (meta_window_update_keyboard_resize): fix to 
	modify grab_anchor_window_pos to grab_wireframe_rect if 
	appropriate instead of window->rect

	* src/display.h (struct _MetaDisplay): add grab_start_serial used
	to avoid responding to events that occurred prior to the grab
	initialization.

	Still broken in various ways, specifically EnterNotify that
	occurred prior to XGrabPointer is processed as if it occurred
	after.
	
	* src/window.c (meta_window_update_keyboard_move): add this
	instead of meta_window_warp_pointer() crack

	* src/effects.c (meta_effects_update_wireframe): draw a kind of
	grid for the wireframe, instead of just a rectangle, like twm

	* src/screen.c (meta_screen_new): line width of 3 for the XOR gc

        "Reduced resources" mode based on wireframe patch from
	Erwann Chenede. Still pretty buggy.
	
	* src/keybindings.c (process_keyboard_move_grab)
	(process_keyboard_resize_grab): add gruesome wireframe hacks

	* src/display.c (meta_display_end_grab_op): end wireframe
	(meta_display_begin_grab_op): begin wireframe

	* src/effects.c (meta_effects_end_wireframe) 
	(meta_effects_update_wireframe, meta_effects_begin_wireframe): 
	routines to draw the wireframe stuff

	* src/window.c (window_should_be_showing): hide window when 
	doing wireframe, commented out as it breaks grab
	* src/window.c (meta_window_refresh_resize_popup): handle wireframe

	* src/screen.c (meta_screen_new): create a screen->root_xor_gc 
	for use in drawing wireframes
	
	* src/frames.c (meta_frames_push_delay_exposes): repaint
	everything before we delay

2003-10-11  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_begin_grab_op): initialize
	display->grab_have_pointer to FALSE, previously I think you could
	get a case where we didn't have the grab and thought we did.
	Bugs were reported with this happening. Of course we still have
	the "why did the grab fail" problem, but it should be less
	noticeable with this fixed.

2003-10-06  Rob Adams  <readams@readams.net>

	* src/constraints.c (constraint_onscreen_*_func): disable onscreen
	resize constraints for right, left, and bottom, since there is no
	way to violate onscreen constraints by resizing in these
	directions and the code to implement the constraints made some
	incorrect assumptions.  Fix for #120701, #120756, #123165,
	#123631, #123838.

2003-10-06  Žygimantas Beručka  <uid0@tuxfamily.org>

	* configure.in: Added "lt" to ALL_LINGUAS

2003-10-01  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 2.6.2

2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_queue_move_resize): add the moveresize
	idle at META_PRIORITY_RESIZE so it runs before GTK does any
	drawing, may fix bug #109211 (seems to for me)
	
	* src/ui.h (META_PRIORITY_RESIZE): add this between GTK
	resize/redraw priorities

	* src/display.c (meta_display_queue_retheme_all_windows): remove
	some debug spew from meta_warning

2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/testasyncgetprop.c: remove nonstandard header include, 
	#121870

2003-09-30  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-message.c (main): call
	bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743

2003-07-28  Rached Ben Mustapha <rached@benmur.net>

        Fix bug #118428
	
        * src/window.c (redraw_icon): Also redraw window icon if the window
	is not mapped but its frame is.
	(idle_update_icon): Unset the window->update_icon_queued flag.	
	
2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on
	number of characters in the title of each window, bug #109301

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* configure.in: put -lXext in Xrandr check, bug #115996

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/wm-tester/test-size-hints.c: a little program to test size
	hints, for now just a 0x0 min size to verify bug #113320

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/async-getprop.c (async_get_property_handler): attempt to fix
	this to return the data as an array of long even on 64-bit as with
	XGetWindowProperty() breakage, bug #114035, credit to Gwenole
	Beauchesne for tracking down.

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/xprops.c (cvtINT16toInt): fix the 64-bit check not to use 
	macros from the X tree that don't get set

	* configure.in: check for sizes of various types

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/delete.c (meta_window_delete): don't move the focus after
	you click the close button on a window. bug #108706

2003-09-29  Havoc Pennington  <hp@redhat.com>

	* src/main.c (find_accessibility_module): fix warnings (one was a
	real bug)
	
	* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): fix warning that
	probably explains remaining crash on bug #116923. Jeez, need to 
	use -Werror here or something.

        Fix #103575, spawn child processes on proper screen.
	
	* src/keybindings.c (error_on_command): pass --screen to
	metacity-dialog
	(handle_run_command): launch user command with DISPLAY reflecting 
	the screen you launch it from

	* src/delete.c (delete_ping_timeout_func): pass --screen to
	metacity-dialog

2003-09-26  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): when focus on root window
	becomes None, set it to something other than None so keybindings
	keep working and print a warning about how some application sucks.
	#84564
	(event_callback): Fix debug spew to print focus event details
	properly
	(meta_display_open): when setting initial focus, always use
	RevertToPointerRoot and fix the focus if it's None or PointerRoot

2003-09-26  Padraig O'Briain  <padraig.obriain@sun.com>

	* src/Makefile.am: Add -DMETACITY_LIBDIR to support loading of modules
	* src/main.c: Add functions find_accessibility_module, 
	accessibility_invoke_module and accessibility_invoke
	(main); Check whether GConf accessibility key is true and if so
	load accessibility modules. This code is based on the libgnome code.

	src/tabpopup.c (meta_ui_tab_popup_new): Set accessible role of 
	accessible for label containing window name to STATUSBAR so
	AT can be aware of window name.

	This fixes bug #120025

2003-09-24  Havoc Pennington  <hp@pobox.com>

	* src/session.c (io_from_warning_dialog): fix hang when we get
	EOF, #121376 from Laurent Vivier

2003-09-22  Taneem Ahmed  <taneem@bengalinux.org>

	* configure.in: Added "bn" to ALL_LINGUAS.

2003-09-20  Åsmund Skjæveland  <aasmunds@fys.uio.no>

	* configure.in: Added Norwegian (nynorsk) translation code to
	ALL_LINGUAS

2003-09-20  Rob Adams <readams@readams.net>

	Fix bug where multiple entries could appear in MRU lists, or no
	entry when sticking/unsticking windows.  Fix for #122016

	* src/window.c (meta_window_stick): use window->screen->workspaces
	instead of window->workspaces.
	(meta_window_unstick): use window->screen->workspaces instead of
	window->workspaces.

2003-09-19  Rob Adams <readams@readams.net>

	Fix a bug with partial-width panel struts caused by incorrect
	computation of rectangle widths, and another when using different
	screen resolutions on xineramas.  See #122404.  Also fix a crash
	bug with the MRU list when sticking and unsticking windows.  See
	#120809.
	
	* src/constraints.c (get_outermost_onscreen_positions): Fix
	off-by-one error with partial-width struts.

	* src/window.c (meta_window_update_struts): Fix off-by-one error
	with partial-width struts.
	(meta_window_stick): assign back to GList after g_list_append
	(meta_window_unstick): assign back to GList after g_list_append
	
	* src/workspace.c (ensure_work_areas_validated): For right and
	bottom struts, compute strut relative to root window and not to
	xinerama edge in compliance with EWMH recommendations.


2003-09-17  Fatih Demir <kabalak@gtranslator.org>

	* configure.in: Added "ta" (Tamil) to the languages' list.

Wed Sep 10 15:38:09 2003  Jonathan Blandford  <jrb@redhat.com>

	* configure.in: Rerelease 2.4.0.1 to fix glib-gettext problem.

2003-09-08  Havoc Pennington  <hp@redhat.com>

	* configure.in: remove "this is the unstable branch" warning

2003-09-08  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.6.0

2003-09-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.5.5

	* HACKING: add instructions on how to make a release

2003-08-29  Rob Adams  <robadams@ucla.edu>

	* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): harden against null
	return from gdk_pixmap_foreign_new.  Fix for #116923.

2003-08-26  Guntupalli Karunakar  <karunakar@freedomink.org>

	* configure.in: Added "hi" (Hindi) to ALL_LINGUAS.

2003-08-20  Rob Adams  <robadams@ucla.edu>

	Complete the transition to using the MRU window as the default
	focus window instead of the topmost window; fixes a number of
	problems with sloppy focus and utility windows.  See #112031.

	* src/window.c (meta_window_free): call
	meta_workspace_focus_mru_window
	(meta_window_minimize): call meta_workspace_focus_mru_window

2003-08-20  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): do northwest resize
	when maximizing and fullscreening to avoid potential "off-by-one"
	problems.

2003-08-19  Rob Adams  <robadams@uclu.edu>

	* src/stack.c (get_standalone_layer): put windows with
	wm_state_below at the bottom.  Make this higher priority than full
	screen layer; see #120238.

2003-08-18  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): recalculate frame
	geometry if the window gets maximized after placement, since it's
	likely to change.  Fix for #120117.

2003-08-17  Ray Strode  <halfline@hawaii.rr.com>

	* src/delete.c (meta_window_delete): Use MRU list to find focusing 
	window after a window is deleted instead of using top window. Fix 
	for #108643.

2003-08-16  Havoc Pennington  <hp@pobox.com>

	Patch from Soeren Sandmann #108926 to improve opaque resize
	
	* src/frame.c (meta_window_ensure_frame): new function

	* src/ui.c (meta_ui_create_frame_window): new function to create
	a frame with GDK, so that GDK's invalidation etc. work properly

2003-08-16  Havoc Pennington  <hp@pobox.com>

	* src/display.c (xcursor_for_op): fix cursor for
	META_GRAB_OP_MOVING, #111943 from John Paul Wallington

2003-08-15  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): move to upper left
	corner since we're resizing/moving instead of moving/resizing.
	Fix for #119988.
	
2003-08-15  Ray Strode  <halfline@hawaii.rr.com>

	Changed MRU list to be per workspace instead of per display, so
	sticky windows don't hijack the window focus after workspace 
	switching (Bug #97635).

	* src/delete.c (meta_window_delete): Use 
	meta_workspace_focus_top_window instead of 
	meta_screen_focus_top_window.

	* src/display.c (meta_display_open): Stop using display->mru_list.
	(find_tab_forward): 
	(find_tab_backward): 
	(meta_display_get_tab_list): Use workspace->mru_list instead of 
	display->mru_list and remove unneeded calls to 
	meta_window_visible_on_workspace 

	* src/display.h: Remove mru_list from MetaDisplay

	* src/keybindings.c (handle_toggle_desktop): Use 
	meta_workspace_focus_top_window instead of 
	meta_screen_focus_top_window.

	* src/screen.c (meta_screen_focus_top_window): 
	(meta_screen_focus_default_window): Remove functions.
	(meta_screen_show_desktop): Use meta_workspace_focus_top_window
	instead of meta_screen_focus_top_window.

	* src/screen.h: Remove meta_screen_focus_top_window and 
	meta_screen_focus_default_window declarations.

	* src/window.c (meta_window_new): Stop using display->mru_list.
	(meta_window_free): Use meta_workspace_focus_top_window
	instead of meta_screen_focus_top_window and stop using 
	display->mru_list.
	(meta_window_stick): Add sticky window to all workspace MRU lists.
	(meta_window_unstick): Remove non-sticky window from the workspace
	MRU lists it doesn't belong in.
	(meta_window_notify_focus): Move newly focused window to the front
	of active workspace's MRU list.

	* src/workspace.c (meta_workspace_new): Initialize 
	workspace->mru_list to NULL.
	(meta_workspace_add_window): Add window to workspace's MRU list.
	(meta_workspace_remove_window): Remove window from workspace's MRU 
	list.
	(meta_workspace_activate_with_focus): Use 
	meta_workspace_focus_default_window instead of 
	meta_screen_focus_default_window.
	(meta_workspace_focus_default_window):
	(meta_workspace_focus_mru_window):
	(meta_workspace_focus_top_window): Add functions.

	* src/workspace.h: Add mru_list to MetaWorkspace and add function
	declarations for meta_workspace_focus_default_window, 
	meta_workspace_focus_mru_window, meta_workspace_focus_top_window.

2003-08-14  Rob Adams  <robadams@ucla.edu>

	Allow windows that are too tall for the workarea to break the
	onscreen constraints just enough so that their bottom edges can be
	made visible.  Fix for #106740.  Also, changes constraints to
	constrain the resize and then the move to avoid complexities in
	the code for the above fix.

	* src/constraints.c (get_outermost_onscreen_positions)
	Compute the "effective" height of the work area and the minimum
	size for the window to compute a value by which a window is
	allowed to violate the top constraint.
	(meta_window_constrain): convert to a resize then a move instead
	of a move then resize.
	
2003-08-13  Rob Adams  <robadams@ucla.edu>

	* configure.in: remove metacity.spec from AC_OUTPUT

2003-08-13  Havoc Pennington  <hp@redhat.com>

	* metacity.spec.in: remove, nobody is maintaining it.

2003-08-13  Laurent Dhima  <laurenti@alblinux.net>

	* configure.in: Added "sq" to ALL_LINGUAS.

2003-08-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): don't select for button
	press/release events, as that keeps other clients from doing so, 
	and it doesn't seem that metacity has any reason to do it.
	Patch from Andreas Volz.

2003-08-08  Bastien Nocera  <hadess@hadess.net>

	* src/metacity-dialog.c: (kill_window_question),
	(warn_about_no_sm_support): fix markup being ignored when a window
	title has a forbidden character in it (eg. "Send & Receive")
	* src/tools/metacity-window-demo.c: fix warning

2003-07-29  Arvind Samptur  <arvind.samptur@wipro.com>

	* src/xprops.c (utf8_list_from_results): Number of
	strings we are processing is one more than required.
	
	Also get the string count right even without a null byte at the end.
	Pointed out by Havoc.

2003-07-27  Rob Adams  <robadams@ucla.edu>

	* src/window.c (update_move):  Update window shaking loose so that
	the window is moved to the pointer and certain drag state is
	properly restored once windows "reattach".  Fix for #115000 based
	on the patch by Jurg Billeter.

	* src/screen.c (meta_screen_resize): Invalidate work areas after
	an xrandr screen size update.  Fix for #117230.

	* src/stack.c (window_is_fullscreen_size): Check the bottom corner
	of the window in addition to the top corner.  Fix for #118194.

	* src/constraints.c (meta_window_constrain): Support aspect ratio
	hints in the new constraints code.  Fix for #113798.

	* src/tools/metacity-window-demo.c (toggle_aspect_ratio): toggle
	the aspect ratio hints to force a 16:9 aspect ratio.
	(do_appwindow): add a button to toggle aspect ratio.

2003-07-27  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c (run_theme_benchmark): also measure wall
	clock time, and run over a number of window sizes.

2003-07-15  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 2.5.3
	
2003-07-12  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Walloon (wa) to ALL_LINGUAS

2003-07-04  Havoc Pennington  <hp@pobox.com>

	* Makefile.am (EXTRA_DIST): add rationales.txt

2003-07-02  Jordi Mallach  <jordi@sindominio.net>

	* src/metacity.desktop.in: Add X-GNOME-Bugzilla entries.

2003-07-01  Padraig O'Briain  <padraig.obriain@sun.com>

	* src/keybindings.c (process_tab_grab): Activate window before ending
	grab. This fixes bug #114037.

2003-06-20  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_unmaximize): Update grab state when we
	unmaximize so double-clicking doesn't cause weird window-jumping
	problems.  See #116292.

2003-06-29  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): Actually maximize
	after placement.  See #116285.
	
2003-06-26  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_invalidate_work_area): nuke the
	lists of struts here, to improve confidence that we never try to
	use them after a window with rects in the list gets freed.
	(it wasn't broken before I don't think, just making the 
	code more robust against future mods)

	* src/window.c (meta_window_update_struts): replace magic "75"
	with a macro

	* src/constraints.c (constraint_hints_applies_func): don't apply
	hints to maximized or fullscreen, rather than only fullscreen
	(constrain_move): add paranoia max number of iterations to the 
	heuristic loop

2003-06-26  Rob Adams  <robadams@ucla.edu>

	Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on
	windows.  Disabled by default.  See #98387.

	* src/keybindings.c (handle_toggle_above): new function implements
	the keybinding

	* src/metacity.schemas.in: add toggle_above keybinding

	* src/prefs.[ch]: add toggle_above keybinding

	* src/window.[ch] (meta_window_make_above): new function to put a
	window into the above state
	(meta_window_unmake_above): new function takes a window out of the
	above state

2003-06-26  Mohammad DAMT  <mdamt@bisnisweb.com>

	* po/id.po: Added Indonesian translation
	* configure.in: Added "id" to ALL_LINGUAS

2003-06-25  Rob Adams  <robadams@ucla.edu>

	Update constraints code to support the new _NET_WM_STRUT_PARTIAL
	EWMH draft specification.  See #86682.  Also, fix a bug involving
	work area invalidation on metacity startup.  Fix for #108497.
	Finally, some minor fixes for full screen windows.

	* src/window.h: Add new MetaStruts structure to store strut rects
	for a window.  Remove has_struts and do_not_cover flag, and
	support new MetaStruts instead of the four ints.
	
	* src/window.c (meta_window_new): change initialization to work
	with new struts.  Also, move meta_window_update_struts call to
	after the workspaces are initialized to fix #108497.  Remove
	do_not_cover and related code.
	(process_property_notify): add strut_partial
	(update_struts): change function name to meta_window_update_struts
	and expose in external MetaWindow API.  Support partial width
	struts and the new strut rects.

	* src/workspace.h: add new GSLists containing pointers to all
	relevant struts for this workspace.

	* src/workspace.c (meta_workspace_new): initialize the list of
	strut rects for this workspace.
	(meta_workspace_free): free the strut rect lists
	(ensure_work_areas_validated): support new struts and new strut
	rect lists.  Unleash the per-xinerama work areas.

	* src/constraints.c (get_outermost_onscreen_positions): Use the
	current window position along with the new per-workspace strut
	rects to compute the constraints that apply to a particular
	window.
	(constraint_hint_applies_func): don't do hints constraints on
	fullscreen windows
	(update_position_limits): for maximized windows use the work areas
	to set the position limits; for other windows rely on the struts
	constraints to be computed later in
	get_outermost_onscreen_positions
	(meta_window_constrain): don't apply aspect ratio hints to full
	screen windows

	* src/display.c (meta_display_open): add _NET_WM_STRUT_PARTIAL atom
	(meta_rectangle_equal): new helper function for MetaRectangles
	(event_queue_callback): #ifndef out if USE_GDK_DISPLAY not set to
	avoid compiler warning

	* src/display.h: add atom_net_wm_strut_partial, and add
	meta_rectangle_equal.

	* src/screen.c (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.
	(meta_screen_resize_func): update struts on windows with struts
	since struts are relative to the screen size, and this function is
	called when the screen size updates.

	* src/screen.h (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hook for strut_partial

	* src/tools/metacity-window-demo.c: Support partial-width struts
	on the dock window tests for metacity testing purposes.
 
2003-06-22  SamÃÂºel JÃÂ³n Gunnarsson  <sammi@techattack.nu>

	* configure.in: Added "is" to ALL_LINGUAS

2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/display.c (event_callback): Focus on mouse click in
	sloppy/mouse to fix keynav.  Fix for #115072.

2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/Makefile.am: honor --disable-schemas-install.  Fix for
	#106123 from Julio Merino

2003-06-12  Rob Adams  <robadams@ucla.edu>

	Remove legacy support for Gnome 1 hints, since we deem it unlikely
	that anyone is running a current metacity with Gnome 1.  The
	removed hints are _WIN_WORKSPACE, _WIN_LAYER, _WIN_PROTOCOLS,
	_WIN_SUPPORTING_WM_CHECK, and _WIN_HINTS.  Thanks to Ben Jansens
	for much of this patch.

	* display.c (meta_display_open): remove hints

	* display.h: remove atoms for hints

	* screen.c (set_wm_check_hint): don't set legacy hint
	(set_supported_hint): don't set legacy hint

	* window-props.c (init_win_workspace): removed
	(reload_win_workspace): removed
	(meta_display_init_window_prop_hooks): remove hints

	* window.h: remove do_not_cover flag
	
	* window.c: remove GnomeWinHints enum
	(recalc_do_not_cover_struts): removed
	(meta_window_new): don't initialize removed flags or compute
	legacy struts
	(move_resize_cmp): removed
	(idle_move_resize): Don't bother sorting the idle queue
	(meta_window_client_message): don't set legacy hint
	(process_property_notify): remove hints
	(update_net_wm_type): don't fall back to WIN_LAYER hint
	(update_struts): remove legacy struts
	
2003-06-12  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): make raise-on-click explicitly 
	only happen in click to focus mode.

	* src/window.c (update_move): apply patch from Jurg Billeter to
	allow you to "shake loose" maximized windows and move them between
	Xinerama heads. #93586

	* src/display.c: delete event_queue_callback

	* src/display.h (struct _MetaDisplay): get rid of
	grab_current_window_pos and grab_current_root_[xy] as I could find
	absolutely no code using them for anything. They were just sort of
	randomly assigned to for no apparent reason.
	
	* src/display.c (event_callback): double-click timeout is per
	screen, so get the screen and pass screen->ui to
	meta_ui_get_double_click_timeout()

	* src/ui.c (meta_ui_get_double_click_timeout): take a MetaUI
	argument so we get the right settings for each screen
	(meta_ui_get_drag_threshold): new function

2003-06-09  Rob Adams  <robadams@ucla.edu>

	Revamp placement policy for windows that are maximized when they
	are mapped, including windows that set a hint to be maximized or
	windows that are auto-maximized using our heuristic.  See #111902.

	* src/window.h: add new flag maximize_after_placement and new
	function meta_window_maximize_internal.
	
	* src/window.c (meta_window_new): initialize
	maximize_after_placement to FALSE and remove the automaximize
	heuristic.
	(meta_window_maximize_internal): new function accepts a saved_rect
	argument to be used as the new saved_rect for the window, and does
	not queue a move_resize.
	(meta_window_maximize): re-implement using
	meta_window_maximize_internal.
	(update_net_wm_state): If a window has a maximize hint set on
	startup set maximize_after_placement to TRUE

	* src/constraints.c (meta_window_constrain): Update the xinerama
	information in the ConstraintInfo after placing the window, and
	maximize the window after placement if
	window->maximize_after_placement

	* src/place.c (find_first_fit): take a natural xinerama list as an
	argument instead of generating it here
	(constrain_placement): remove function, since it is no longer
	needed
	(meta_window_place): generate the natural xinerama list here and
	pass it into find_first_fit.  If find_first_fit fails, use the
	list to find empty xineramas where we can place windows that may
	be maximized later.  This makes maximized windows follow the
	correct placement policy.  Move the automaximize heuristic here.

2003-06-09  Rob Adams  <robadams@ucla.edu>

	* src/metacity-dialog.c (warn_about_no_sm_support): install an
	alarm to timeout the no-sm-dialog after 4 minutes of inactivity.
	Patch from Ximian.  See #114789.

2003-06-07  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): call meta_group_compute_group
	after setting window->desc to avoid SIGSEGV when verbose mode is
	enabled.

2003-06-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): drop the mouse button
	grabs for the focused window; we'll see if this breaks anything. 
	It should fix #102209

Fri Jun  6 19:27:53 2003  Jonathan Blandford  <jrb@gnome.org>

	* src/metacity.schemas.in: fix the location of the schemas file.

2003-06-04  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): don't be stupid and set
	window->group = NULL after calling meta_window_compute_group.

	* src/group.c (meta_window_get_group): assert that window->group
	!= NULL in here instead of computing the group to ensure
	robustness.

2003-06-04  Rob Adams  <robadams@ucla.edu>

	Precompute groups to guarantee that meta_group_list_windows always
	returns the correct list of windows.  See Bug #96973

	* src/window.h: change cached_group variable to group

	* src/window.c (meta_window_new): change cached_group to group and
	call meta_window_compute_group
	
	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
	(meta_window_group_leader_changed): call meta_window_compute_group
	instead of meta_window_get_group

2003-05-29  Rob Adams  <robadams@ucla.edu>

	Use a new property _METACITY_SENTINEL to eliminate a race
	condition that causes focus to behave badly with sloppy/mouse
	focus when lots of windows are mapped/unmapped, such as with a
	workspace switch.  The EnterNotify events on a display are ignored
	until the PropertyNotify sent after all the window maps is
	received.  This is a fix for #110970.
	
	* src/display.[ch]: New _METACITY_SENTINEL atom.
	(event_callback): ignore EnterNotify if the sentinel isn't clear,
	and decrement the sentinel counter when the PropertyNotify is
	received.
	(meta_display_increment_focus_sentinel): new function.  Increments
	the sentinel counter and updates the property on a root window on
	this display.
	(meta_display_decrement_focus_sentinel): Decrement the sentinel
	counter.
	(meta_display_focus_sentinel_clear): returns whether the sentinel
	counter is zero.

	* src/window.c (idle_calc_showing): after showing windows, call
	meta_display_increment_focus_sentinel on each display for windows
	to be shown.

	* src/workspace.[ch] (meta_workspace_activate_with_focus): new
	function activates a workspace and focuses a particular window
	after the workspace is activated.
	(meta_workspace_activate): now just a wrapper for
	meta_workspace_activate_with_focus

	* src/keybindings.c: use new meta_workspace_activate_with_focus
	function to ensure that focus will follow the focused window
	through the workspace switch.

2003-05-29  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): s/int/gsize/ for
	g_file_get_contents() (found independently by 
	marcus@freebsd.org on SPARC and James Laska on s390x; 
	#113661

	* src/main.c (main): fix theme location mentioned in error message

2003-05-29  Ray Strode  <halfline@hawaii.rr.com>

	Get and use double-click speed from GtkSettings (Bug #103218).

	* src/ui.c, src/ui.h: 
	add function meta_ui_get_double_click_timeout for looking up
	the global double-click speed.

	* src/display.c, src/display.h: remove double_click_time
	field from MetaDisplay and use meta_ui_get_double_click_timeout 
	instead.

2003-05-29  Rob Adams  <robadams@ucla.edu>

	* src/main.c (main): chdir to the user's home directory on
	startup.  See #113755.

	* src/stack.c (get_standalone_layer): a window should be in the
	fullscreen layer if it or any of its transient descendants are
	focused or expecting the focus and it is either fullscreen or
	fullscreen sized.  Fix for #104369.

	* src/stack.c (is_focused_foreach): foreach used by
	get_standalone_layer to find focused transient descendants.
	
2003-05-20  Havoc Pennington  <hp@pobox.com>
	
	* src/keybindings.c (meta_change_keygrab): the mask 
	display->ignored_modifier_mask wasn't being bound, 
	due to "<" instead of "<=" (most people didn't notice
	as display->ignored_modifier_mask included Scroll_Lock).
	Red Hat bugzilla #91301 reported by Youssef Makki

	* src/display.c (meta_change_button_grab): make corresponding
	change for button grabs.
	
2003-05-20  Havoc Pennington  <hp@redhat.com>

	* NEWS: update

	* configure.in: 2.5.2

2003-05-20  Anders Carlsson  <andersc@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Split up the strings to make life easier for translators.
	
2003-05-20  Anders Carlsson  <andersca@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Fix the wording and HIGify the dialog.

2003-05-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (unminimize_window_and_all_transient_parents):
	revert broken change that assumed foreach_ancestor iterated
	over the window itself. Andrew Sobala, Rob Adams, 
	#113232

2003-05-16  Rob Adams  <robadams@ucla.edu>

	Flip the workspace when using up/down/left/right for move window
	to, but not when specifying a workspace explicitly as in move to
	workspace 4.  Possible fix for #105492.

	* src/keybindings.c (do_handle_move_to_workspace): new function
	moves a window to a workspace with the option to flip to that
	workspace.
	(handle_move_to_workspace): Use new do_handle_move_to_workspace
	function without flipping (a keybinding)
	(handle_move_to_workspace_flip): Use new
	do_handle_move_to_workspace function with flipping (a keybinding)

2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): fix for 
	bug #104018 from David Santiago, change button state to 
	normal while it's being pressed if you move the mouse 
	outside it. Do this by tracking prelit_control for whether 
	to draw a button as active, not just for whether to draw 
	it as prelit.
	(meta_frames_motion_notify_event): also update prelit_control 
	while clicking a button

2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): fill in window->desc sooner
	since we use it sooner now.

	* src/display.c (meta_display_open): init
	display->grab_update_alarm

	* src/window.c (meta_window_new): initialize the always_sticky
	field
	(meta_window_new): initialize the update_icon_queued field

        Patch from Julien Olivier bug #92335 for converting "show desktop 
	mode" to "all windows are minimized" when you open a new window, 
	instead of just mapping all the windows again.
	
	* src/window.c (meta_window_activate): minimize all windows before
	coming out of show desktop mode.
	(meta_window_unminimize): don't toggle show desktop mode here

	* src/screen.c (meta_screen_minimize_all_except): new function	

2003-05-01  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): fix memleak on error

2003-05-16  Telsa Gwynne  <hobbit@aloss.ukuu.org.uk>

	* configure.in: Added "cy" (Welsh) to ALL_LINGUAS.

2003-05-06  Danilo Ã egan  <dsegan@gmx.net>

	* configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.

2003-05-03  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_move_to_workspace): when moving
	window to another workspace, don't switch to that workspace.

	* src/window.c (menu_callback): when moving window to another
	workspace, don't switch to that workspace.

2003-05-03  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.5.1

	* NEWS: update

2003-05-01  Rob Adams  <robadams@ucla.edu>

	* src/constraints.c (constraint_onscreen_applies_func): Don't
	apply onscreen constraints to full screen windows.  Fix for
	#110048

2003-04-29  Havoc Pennington  <hp@redhat.com>

	* src/bell.h: include Xlib.h before XKBlib.h which is required on
	Solaris. #111877 from Peter O'Shea

2003-04-23  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (process_keyboard_move_grab): support
	diagonal keypad keybindings, from Dafydd Harries

2003-04-21  Havoc Pennington  <hp@redhat.com>

	* purge HAVE_GTK_MULTIHEAD from the source code, not just from
	configure.in. Yes I am a loser.
	
2003-04-19  Masahiro Sakai  <sakai@tom.sfc.keio.ac.jp>

	* configure.in: call AC_LIBTOOL_WIN32_DLL.

	* src/Makefile.am: add -no-undefined to libmetacity_private_la_LDFLAGS
	and write dependency libraries in libmetacity_private_la_LIBADD.

2003-04-06  Rob Adams  <robadams@ucla.edu>

	* src/place.c (find_next_cascade): cascade on xinerama with
	pointer instead of on first xinerama.

2003-04-05  Rob Adams  <robadams@ucla.edu>

	Update placement policy for screen with multiple xineramas.
	Windows will be placed preferentially on the xinerama with the
	pointer, and progressively further away as needed to find a place
	where the window does not overlap other windows.
	
	* src/place.c (rect_fits_in_work_area): function
	fit_rect_in_xinerama greatly simplified to work with new placement
	policy.
	(find_first_fit): implement new first fit placement scheme

	* src/screen.c (meta_screen_get_xinerama_neighbor): look for an
	xinerama in the xinerama list that is adjacent to the specified
	xinerama.
	(meta_screen_get_natural_xinerama_list): return a list of
	xineramas in the order to be preferred by the placement algorithm
	as determined by the current location of the pointer.

	* src/screen.h: add function prototypes and an enum used by
	meta_screen_get_xinerama_neighbor.

2003-04-05  Rob Adams  <robadams@ucla.edu>

	* src/place.c (center_tile_rect_in_area):  Fix a minor off-by-one
	error.  See #110079.

2003-03-30  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_move_resize_internal): When passing
	frame geometry to meta_window_constrain, send null if no frame.
	Possible fix for #109039.

2003-03-29  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/test-gravity.c (main): add --noframes option for
	testing, showing how broken we currently are.

Fri Mar 28 14:13:37 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/window.c (update_resize): Only cap refresh rate when not
	using SYNC. Remove bogus update-if-we-moved-more-than-a-delta.

	* src/window.c (update_move): Don't cap refresh rate during
	moves. Remove bogus update-if-we-moved-more-than-a-delta.

2003-03-26  Havoc Pennington  <hp@pobox.com>

	* NEWS: update

	* configure.in: release 2.5.0

Sun Mar 23 23:04:06 2003  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c (meta_spew_event): just return if we are not
	verbose.

2003-03-11  Havoc Pennington  <hp@pobox.com>

	Should fix #108108, #106217, tracked down by Owen Taylor and
	Frederic Crozat
	
	* src/window.c (meta_window_foreach_transient): change
	MetaWindowForeachFunc to return a boolean for whether to continue
	(meta_window_foreach_ancestor): new function
	(window_should_be_showing): use meta_window_foreach_ancestor	
	(unminimize_window_and_all_transient_parents): ditto
	(update_sm_hints): ditto
	(meta_window_is_ancestor_of_transient): ditto

	* src/stack.c (get_maximum_layer_of_ancestor): use
	meta_window_foreach_ancestor
	
2003-03-16  Rob Adams <robadams@ucla.edu>

	* window.c (meta_window_show_menu): Free old window menu if it
	already exists so we don't end up with more than one.  Fix for
	#108392.

2003-03-14  Rob Adams <robadams@ucla.edu>

	* contraints.c (get_outermost_screen_positions): Don't try to
	force a window onscreen by more than its width.  Fix for #94815.

2003-03-13  Rob Adams <robadams@ucla.edu>

        Make it so that the alt-tabbing won't try to go to a minimized
	window by default.  Fix for #107071.
	
	* display.c (meta_display_get_tab_list): use a GList instead of a
	GSList
	(meta_display_get_tab_next): use meta_display_get_tab_list to
	decide what the next/previous tab window should be.

	* display.h (meta_display_get_tab_list): update function prototype
	to return GList instead of GSList.

	* screen.c (meta_screen_ensure_tab_popup): update function to deal
	with GList returned by meta_display_get_tab_list instead of GSList.
	
2003-03-13  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "ml" to ALL_LINGUAS.

2003-03-11  Paul Duffy <dubhthach@zion.nuigalway.ie>

        * configure.in: Added "ga" to ALL_LINGUAS

2003-03-11  Rob Adams <robadams@ucla.edu>

	* src/constraints.c (meta_window_constrain): include left frame
	geometry when maximizing or fullscreening windows.  Fix for
	#108127.

2003-03-10  Roozbeh Pournader  <roozbeh@sharif.edu>

	* configure.in: Added "fa" to ALL_LINGUAS.

2003-02-27  Havoc Pennington  <hp@redhat.com>

	Switch over to new constraints code, unquestionably introduces
	some bugs, but should get us on the right path.
	
	* src/window.c (meta_window_get_work_area_all_xineramas): create
	this function again as it turned out to be legitimate for window 
	position constraint
	(adjust_for_gravity): use the width/height from the configure
	request to compute the requested move
	(meta_window_move_resize_internal): use meta_window_constrain
	(update_size_hints): clamp max size to MAXSHORT to avoid worrying
	about overflow stuff

	* src/constraints.c (meta_window_constrain): don't base placement
	on uninitialized variables, general hacking

	* src/Makefile.am (metacity_SOURCES): add constraints.c,
	constraints.h

	* src/constraints.c (meta_window_constrain): update the 
	cut-and-paste aspect ratio code to have latest bugfixes
 
2003-03-08  Rob Adams <robadams@ucla.edu>

	* src/window-props.c (reload_normal_hints):  Check that window min
	and max size hints are at least 1.  Fix for #107110.

2003-02-27  Havoc Pennington  <hp@pobox.com>

	Changes made on plane from FOSDEM, syncing from laptop.
	
	* src/main.c (main): add more debug spew about conditional 
	build stuff
	(main): panic to "Simple" theme

	* src/window.c, src/window-props.c: move WM_NORMAL_HINTS and
	WM_PROTOCOLS to new property system; don't queue move resize on
	updating WM_PROTOCOLS; move WM_HINTS to new property system;
	reload icon in an idle handler.
	
2003-02-28  Mark McLoughlin  <mark@skynet.ie>

	Give me back my keys.

	* src/keybindings.c: (meta_window_grab_keys): don't
	grab keys on DOCK windows.

	* src/window.c: (recalc_window_type): re-grab the
	keys.

2003-02-26  Dmitry G. Mastrukov  <dmitry@taurussoft.org>

	* configure.in: Added Belarusian to ALL_LINGUAS.

2003-02-26  Mark McLoughlin  <mark@skynet.ie>

	* src/keybindings.c: (handle_panel_keybinding): release
	the keyboard grab before sending the action message to
	the panel.

2003-02-24  Mark McLoughlin  <mark@skynet.ie>

	Take control of the panel's global keybindings. The
	screenshot utility is hooked up using a special case
	run_command and the menu and run dialog bindings are
	done using the _GNOME_PANEL_ACTION ClientMessage
	protocol.

	* src/display.[ch]: (meta_display_open): add some atoms.

	* src/keybindings.c:
	(handle_panel_keybinding): impl to handle a keybinding
	by sending an action message to the panel.

	* src/metacity.schemas.in: add schemas for the panel and
	screenshot keybindings and the screenshot commands.

	* src/prefs.[ch]: (update_command),
	(meta_prefs_get_gconf_key_for_command): impl special case
	handling for the screenshot commands. They are stored at
	the the end of the commands array but have named keys.

2003-02-23  Havoc Pennington  <hp@pobox.com>

	Patch from Rob Adams addresses #95014 (placement issues), 
	makes first fit algorithm "center tile", adds most code 
	for per-xinerama workspaces (#86682) but disables it for now.
	
	* src/workspace.c (meta_workspace_get_work_area_for_xinerama)
	(meta_workspace_get_work_area_all_xineramas): new xinerama
	functions, maintain workspace->work_areas with a different 
	work area for each xinerama. However for now all the work 
	areas are the same, because haven't quite figured out how 
	_NET_WM_STRUT is supposed to work

	* src/window.c: adapt to new meta_window_* xinerama APIs
	(meta_window_get_work_area_current_xinerama): new xinerama 
	API
	(meta_window_get_work_area_for_xinerama): new xinerama API
	(constrain_position): be a bit more clever about which xinerama's
	work area we choose to use.

	* src/stack.c: adapt to new Xinerama API

	* src/screen.c (reload_xinerama_infos): invalidate all work areas
	(meta_screen_get_xinerama_for_rect): new function
	(meta_screen_window_intersects_xinerama): new function

	* src/place.c (find_first_fit): change to use 
	"center tiling" (center a screen full of tiled windows, 
	rather than aligning them top left). Adapt to new 
	xinerama functions.

2003-02-22  Rob Adams <robadams@ucla.edu>

	* src/metacity.schemas.in: change toggle_maximized to
	toggle_maximize and toggle_shaded to toggle_shade in
	action_double_click_titlebar long description to match the values
	used by metacity

	* po/*.po: change toggle_maximized to toggle_maximize and
	toggle_shaded to toggle_shade in action_double_click_titlebar long
	description to match the values used by metacity

2003-02-22  Rob Adams <robadams@ucla.edu>

	* window.c (set_wm_state): modify comment to explain why the icon
	window element is set to None.  Fix for #97357 thanks to Gregory
	Merchan.

2003-02-22  Havoc Pennington  <hp@pobox.com>

	* README: fix a typo, pointed out by Steve Kemp

2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (MAX_REASONABLE_WORKSPACES): change max workspaces
	to 36 #81855

2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): fix to unfocus window only when 
	you leave the window frame, not when you leave the window itself, 
	unless window has no frame. #100248 fix from Orien Vandenbergh

2003-02-22  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_next): when tabbing
	backward, we are still tabbing *from* the most recently used
	window, not from the least recently used window.

	* src/keybindings.c (struct _MetaKeyBinding): make keycode
	unsigned to match XEvent

	Patch for #84999 based on patch from Mark McLoughlin
	
	* src/prefs.c: add an add_shift field to MetaKeyPref to 
	add shift when grabbing the given keybinding.

	* src/keybindings.c (rebuild_screen_binding_table)
	(rebuild_window_binding_table): refactor to share code, 
	and honor add_shift field in MetaKeyPref

2003-02-20  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (create_constraints): don't create constraints
	between windows on different screens, #106086 tracked down 
	by Arvind

2003-02-14  Arvind Samptur <arvind.samptur@wipro.com>

	* src/screen.c: (meta_screen_new) : Update the workspace
	names from gconf and set the NET_DESKTOP_NAMES atom.
	Renamed update_workspace_names() to set_workspace_names().
	Fixes #105498

2003-02-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: require GTK+ 2.2.0

	* src/ui.c (meta_ui_init): remove hackaround for Pango X core
	fonts backend

2003-02-05  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Added "en_GB" and "nl" to ALL_LINGUAS.

2003-02-05  Akira TAGOH  <tagoh@gnome.gr.jp>

	* src/main.c (usage): fix a typo and missing option. (#105186)

2003-02-04  Havoc Pennington  <hp@redhat.com>

	* src/themes/Simple/ChangeLog: nuke subdir ChangeLog, 
	there can be only one true ChangeLog.

2003-01-30  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (process_event): match handlers to key events 
	using key codes, not key syms

Thu Jan 30 22:55:16 2003  Jonathan Blandford  <jrb@redhat.com>

	* src/themes/Makefile.am (THEMES): add Simple to the list of
	themes.

	* src/metacity.schemas.in: change default theme to Simple.

2003-01-29  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): don't create workspaces
	menu items if only 1 workspace. Fix for #101952 from 
	Orien Vandenbergh

2003-01-28  Bill Haneman <bill.haneman@sun.com>

	* Re-instated visual-bell patch 
	(please see ChangeLog entry for 2002-12-16 for details).

	* src/prefs.c:
	(visual_bell_type_from_string):
	Accept a NULL string for 'visual-bell-type'.
	
2003-01-25  Havoc Pennington  <hp@pobox.com>
	
	* src/stack.c (window_is_fullscreen_size): When checking if a
	window is fullscreen size, only require it to be at the origin 
	of the work area, not at the origin of the screen/xinerama.
	Still require it to be full screen in width x height.
	May fix xine in the case where the user has a top panel.

	* src/window.c (constrain_position): restore the ability for
	undecorated windows to position themselves overlapping the top
	panel, but don't let decorated windows do so. Oh the hacks...
	
2003-01-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_apply_startup_properties): small code
	snippet to fix startup sequences that set legacy class/name

2003-01-22  Havoc Pennington  <hp@redhat.com>
	
	* src/async-getprop.c (async_get_property_handler): do not read 
	sizeof(long) off the X connection. The X protocol does not vary 
	by architecture. Fixes longstanding hang on all 64-bit platforms.

2003-01-22  Havoc Pennington  <hp@redhat.com>
	
	* src/tools/Makefile.am: fix conditional so we get
	metacity-properties.c in the distribution #103071

2003-01-22  Havoc Pennington  <hp@pobox.com>
	
	* src/window.c (update_struts): be robust against the panel's 
	lame "set a negative number for struts" thing, even though 
	we'll also fix the panel.

2003-01-21  Havoc Pennington  <hp@pobox.com>

        Fix for the "mangles focus window when switching workspaces 
	and using mouse focus" bug
	
	* src/stack.c (meta_stack_get_default_focus_window_at_point): new
	function

	* src/screen.c (meta_screen_focus_mouse_window): new function
	(meta_screen_focus_default_window): new function
	
	* src/workspace.c (meta_workspace_activate): use the 
	new meta_screen_focus_default_window()

2003-01-17  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_handle_mouse_grab_op_event): fix event
	compression code to use GDK algorithm suggested by Owen, should be 
	more efficient.

2003-01-22  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "mn" to ALL_LINGUAS.

2003-01-21  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): only hop window to the current
	workspace if the window was previously minimized. Should keep
	mozilla from popping windows over to your current workspace.
	
2003-01-20  Havoc Pennington  <hp@redhat.com>

        Attempt to fix #85916
	
	* src/keybindings.c (primary_modifier_still_pressed): new function
	(handle_workspace_switch): handle modifier release prior to
	getting the grab
	(do_choose_window): handle modifier release prior to getting the 
	grab

	* src/keybindings.c (grab_keyboard): properly return failure
	if the GrabKeyboard doesn't work

2003-01-19  Havoc Pennington  <hp@pobox.com>

	* configure.in: add note about how this is the unstable branch,
	set version to 2.5.0

2003-01-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize, meta_window_unmaximize) 
	(meta_window_make_fullscreen, meta_window_unmake_fullscreen): 
	recalc_window_features() after making these changes, should fix 
	#103317
	
2003-01-14  Rob Adams <robadams@ucla.edu>

	* src/prefs.c: Increase the number of run_command bindings in
	screen_bindings from 12 to 32.

	* src/prefs.h: Increase the number of META_KEYBINDING_COMMAND_N
	macros from 12 to 32.
	
	* src/keybindings.c: Increase the number of run_command handlers
	from 12 to 32.

2003-01-11  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_handle_mouse_grab_op_event): implement
	compression of motion events (drop all but the most recently
	received), guessing at fixes for #103009

2003-01-11  Havoc Pennington  <hp@pobox.com>

	* configure.in: add ability to --disable-shape

2003-01-11  Akira TAGOH  <tagoh@gnome.gr.jp>

	* configure.in: fix the behavior of --enable-*.

2003-01-10  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am (desktopfiles_in_files): revert that change, I
	got the wrong .desktop file. doh.

2003-01-10  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am (desktopfiles_DATA): don't install .desktop file
	for properties dialog if we aren't building/installing the
	properties dialog.

2003-01-10  Havoc Pennington  <hp@pobox.com>

	* NEWS: update

	* configure.in: bump to 2.4.13, require 2.2.0 for multihead

2003-01-09  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Use a line for the titlebar
	text bg.

2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/window.c (recalc_window_features): argh, we were making all
	dialogs skip taskbar; when did that get added.  Fix to match
	libwnck, only skip taskbar when the dialog is transient for some
	other app window.

2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: change Windows+click back to Alt+click,
	Windows+click just surprised everybody and didn't work half the
	time. Maya users can configure it, and GTK DND can change its
	default.

2003-01-08  Havoc Pennington  <hp@pobox.com>
	
	* src/metacity.schemas.in: assign Alt+F12 to shade window, 
	per #102658

2003-01-07  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (update_num_workspaces): fix off-by-one, patch from
	readams@hmc.edu, #102806
	
2003-01-06  Arvind Samptur <arvind.samptur@wipro.com>

	* src/window.c: (constrain_position) don't apply
	offscreen height difference. This would get the
	window under the panel on a resize or a move.
	Fixes #102418

2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_calc_workspace_layout): invert
	vertical_workspaces cases (we want to go down each column if 
	it's vertical, and across each row if horizontal). Patch 
	from readams@hmc.edu

2003-01-05  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Macedonian (mk) to ALL_LINGUAS

2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): put in the
	HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0

2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): focus new windows even in 
	mouse focus mode, #89981, patch from readams@hmc.edu

2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): redo using new
	calc_workspace_layout to fix #98302
	
	* src/util.c (topic_name): shorten default prefix

	* src/screen.c (meta_screen_calc_workspace_layout): enhance this
	to handle all the funky layouts and calculate more information
	than before

2003-01-05  Pauli Virtanen <pauli.virtanen@hut.fi>

	* configure.in (ALL_LINGUAS): Added "fi" (Finnish).

2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): handle 
	the client having a shape mask, fixes #101806
	
	* src/core.c (meta_core_get_client_xwindow): new function

	* src/frame.c, src/frame.h: keep a flag for whether we need to 
	update the frame shape
	
	* src/window.c (meta_window_new): select for ShapeNotify

	* src/display.h, src/display.c: actually query the shape
	extension, instead of just using it all over the place.

	* src/prefs.c (update_application_based): don't let people turn on
	application_based, as it just causes funky bugs. We can reenable
	the pref when/if it ever does something useful.

2003-01-03  Havoc Pennington  <hp@redhat.com>

	* src/display.c: include the Xrandr header file

	* src/window.c (meta_window_fill_horizontal) 
	(meta_window_fill_vertical): maximize to work area, not entire
	screen. doh.

2002-12-19  Ross Burton  <ross@burtonini.com>

	* doc/metacity-theme.dtd: Fix a typo and loosen the requirements
	for the resize element.

2002-12-19  Havoc Pennington  <hp@pobox.com>

	* Reverted visual bell patch, #99886

2002-12-19  Yanko Kaneti <yaneti@declera.com>

	* configure.in: (ALL_LINGUAS) Added Bulgarian (bg).

2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask 
	on toplevel windows, maybe a partial fix for #101478

Tue Dec 17 17:50:19 2002  HideToshi Tajima  <hidetoshi.tajima@sun.com>

	* src/themes/AgingGorilla/metacity-theme-1.xml: added support for
	border only windows. #100984.

2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_begin_grab_op): don't use "(null)"
	for null pointers, use "none", so I can distinguish
	glibc-generated (null) which is a bug.
	(key_event_description): ditto
	(meta_display_begin_grab_op): ditto

	* src/window.c (update_sm_hints): ditto

	* src/keybindings.c (reload_modmap): ditto
	(meta_display_process_key_event): ditto
	
2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: s/focussed/focused/

2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): add a comma to message #101401

2002-12-16 Bill Haneman <bill.haneman@sun.com>
   
	* configure.in:
	Check for XKB extension.

	* src/Makefile.am: 
	Added bell.c and bell.h to metacity sources.

	* src/common.h:
	(MetaFrameFlags):
	Added META_FRAME_IS_FLASHING flag.

	* src/frame.h:
	(MetaFrame): Added is_flashing field.
	
	* src/frame.c:
	(meta_window_ensure_frame):
	Initialize the is_flashing flag to FALSE.
	(meta_frame_get_flags):
	Handle the FRAME_IS_FLASHING flag.
	(meta_window_destroy_frame):
	Call meta_bell_notify_frame_destroy.
	
	* src/prefs.h:
	(MetaPreference):
	Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL,
	META_PREF_VISUAL_BELL_TYPE.
	(MetaVisualBellType): New enum.
	(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): 
	(meta_prefs_get_visual_bell_type): 
	New accessor declarations.
	
	* src/prefs.c:
	(#includes): Include "display.h", since we now call
	meta_displays_list() in our update func.
	(#defines):
	Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL,
	and KEY_VISUAL_BELL_TYPE.
	(provide_visual_bell, bell_is_audible, visual_bell_type):
	New static state variables.	
	(update_visual_bell): New method to update visual-bell
	boolean settings from keys "visual_bell" and "audible_bell".
	(update_visual_bell_type): 
	New method to update visual-bell type setting.
	(visual_bell_type_from_string) : 
	New method to convert from gconf string to visual-bell
	type enum.  Only currently recognized values are "fullscreen"
	and "frame_flash".
	(change_notify):
	Handle changes to visual and audible bell properties.
	(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): 
	(meta_prefs_get_visual_bell_type): 
	New accessor definitions.
	(meta_prefs_init): Added a second call to notify_add,
	listens to "/desktop/gnome/interface" as well as "apps/metacity".
	Also call the update funcs for the new visual-bell gconf keys.
	(meta_preference_to_string):
	Handle the visual/audible bell cases.

	* src/bell.h:
	(meta_bell_notify);
	New method, calls a visual notifucation
	method based on the visual-bell-type, or none if the type
	is unrecognized or invalid.
	(meta_bell_set_audible): 
	New public method for setting the audible bell setting,
	used in updater for new gconf key "audible_bell".
	(meta_bell_init):
	Initialize the bell notification for a display.
	(meta_bell_shutdown):
	Shutdown the bell notification for a display.
	(meta_bell_notify_frame_destroy):
	Remove pending idle handlers on notification.

	* src/bell.c:
	Include "bell.h", and conditionally include <Xll/Xkblib.h>.
	(meta_bell_set_audible):
	If XKB is present, enable/disable the audible system 
	bell based on the gconf key /desktop/gnome/interface/audible_bell.
	(meta_bell_init):
	Query and initialize XKB if present, register for notification
	on the bell, and set audible bell according to gconf settings.
	(meta_bell_flash_screen):
	Maps and unmaps a fullscreen X window (painted white, then
	black), which causes a fullscreen 'flash' transient.	
	(meta_bell_flash_window_frame):
	Flashes the titlebar of a specified window.
	(meta_bell_flash_frame):
	Calls meta_bell_flash_window_frame on the window which 
	was the source of the current bell event, or the currently 
	focussed window if the event source cannot be determined.
	(meta_bell_unflash_frame):
	Restore the frame's appearance to normal.
	(meta_bell_flash_fullscreen):
	Call meta_bell_flash_fullscreen for all screens.
	(meta_bell_shutdown):
	New method.
	(meta_bell_notify_frame_destroy):
	Remove pending idle handlers on notification, 
	testing for frame->is_flashing first.
	
	* src/display.h:
	(MetaDisplay): Added xkb_base_event_type field.
	
	* src/display.c:
	Check for XKB and include "X11/XKBlib.h" if present.
	(meta_display_open): Call meta_bell_init.
	(event_callback): Call meta_bell_notify
	when event comes from XKB and is XkbBellNotify
	(prefs_changed_callback): 
	Handle META_PREF_AUDIBLE_BELL notification.

	* src/screen.h:
	(MetaScreen): Add flash_window field.
	
	* src/screen.c:
	(meta_screen_new):
	Initialize flash_window field.

	* src/theme.c:
	(theme_get_style):
	New heuristic for focus-style, to invert sense of focus
	flag when META_FRAME_IS_FLASHING flag is set.
	
	* src/metacity.schemas.in:
	Added scheme information for 
	/apps/metacity/general/visual_bell,
	/apps/metacity/general/audible_bell, and
	/apps/metacity/general/visual_bell_type.
	
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (init_wm_name): argh, screwed that up. get
	WM_NAME as VALUE_TEXT_PROPERTY #101383

2002-12-16 Bill Haneman <bill.haneman@sun.com>
   
	* configure.in:
	Check for XKB extension.

	* src/Makefile.am: 
	Added bell.c and bell.h to metacity sources.

	* src/common.h:
	(MetaFrameFlags):
	Added META_FRAME_IS_FLASHING flag.

	* src/frame.h:
	(MetaFrame): Added is_flashing field.
	
	* src/frame.c:
	(meta_window_ensure_frame):
	Initialize the is_flashing flag to FALSE.
	(meta_frame_get_flags):
	Handle the FRAME_IS_FLASHING flag.
	(meta_window_destroy_frame):
	Call meta_bell_notify_frame_destroy.
	
	* src/prefs.h:
	(MetaPreference):
	Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL,
	META_PREF_VISUAL_BELL_TYPE.
	(MetaVisualBellType): New enum.
	(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): 
	(meta_prefs_get_visual_bell_type): 
	New accessor declarations.
	
	* src/prefs.c:
	(#includes): Include "display.h", since we now call
	meta_displays_list() in our update func.
	(#defines):
	Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL,
	and KEY_VISUAL_BELL_TYPE.
	(provide_visual_bell, bell_is_audible, visual_bell_type):
	New static state variables.	
	(update_visual_bell): New method to update visual-bell
	boolean settings from keys "visual_bell" and "audible_bell".
	(update_visual_bell_type): 
	New method to update visual-bell type setting.
	(visual_bell_type_from_string) : 
	New method to convert from gconf string to visual-bell
	type enum.  Only currently recognized values are "fullscreen"
	and "frame_flash".
	(change_notify):
	Handle changes to visual and audible bell properties.
	(meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): 
	(meta_prefs_get_visual_bell_type): 
	New accessor definitions.
	(meta_prefs_init): Added a second call to notify_add,
	listens to "/desktop/gnome/interface" as well as "apps/metacity".
	Also call the update funcs for the new visual-bell gconf keys.
	(meta_preference_to_string):
	Handle the visual/audible bell cases.

	* src/bell.h:
	(meta_bell_notify);
	New method, calls a visual notifucation
	method based on the visual-bell-type, or none if the type
	is unrecognized or invalid.
	(meta_bell_set_audible): 
	New public method for setting the audible bell setting,
	used in updater for new gconf key "audible_bell".
	(meta_bell_init):
	Initialize the bell notification for a display.
	(meta_bell_shutdown):
	Shutdown the bell notification for a display.
	(meta_bell_notify_frame_destroy):
	Remove pending idle handlers on notification.

	* src/bell.c:
	Include "bell.h", and conditionally include <Xll/Xkblib.h>.
	(meta_bell_set_audible):
	If XKB is present, enable/disable the audible system 
	bell based on the gconf key /desktop/gnome/interface/audible_bell.
	(meta_bell_init):
	Query and initialize XKB if present, register for notification
	on the bell, and set audible bell according to gconf settings.
	(meta_bell_flash_screen):
	Maps and unmaps a fullscreen X window (painted white, then
	black), which causes a fullscreen 'flash' transient.	
	(meta_bell_flash_window_frame):
	Flashes the titlebar of a specified window.
	(meta_bell_flash_frame):
	Calls meta_bell_flash_window_frame on the window which 
	was the source of the current bell event, or the currently 
	focussed window if the event source cannot be determined.
	(meta_bell_unflash_frame):
	Restore the frame's appearance to normal.
	(meta_bell_flash_fullscreen):
	Call meta_bell_flash_fullscreen for all screens.
	(meta_bell_shutdown):
	New method.
	(meta_bell_notify_frame_destroy):
	Remove pending idle handlers on notification, 
	testing for frame->is_flashing first.
	
	* src/display.h:
	(MetaDisplay): Added xkb_base_event_type field.
	
	* src/display.c:
	Check for XKB and include "X11/XKBlib.h" if present.
	(meta_display_open): Call meta_bell_init.
	(event_callback): Call meta_bell_notify
	when event comes from XKB and is XkbBellNotify
	(prefs_changed_callback): 
	Handle META_PREF_AUDIBLE_BELL notification.

	* src/screen.h:
	(MetaScreen): Add flash_window field.
	
	* src/screen.c:
	(meta_screen_new):
	Initialize flash_window field.

	* src/theme.c:
	(theme_get_style):
	New heuristic for focus-style, to invert sense of focus
	flag when META_FRAME_IS_FLASHING flag is set.
	
	* src/metacity.schemas.in:
	Added scheme information for 
	/apps/metacity/general/visual_bell,
	/apps/metacity/general/audible_bell, and
	/apps/metacity/general/visual_bell_type.
	
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c: use META_PROP_VALUE_STRING_AS_UTF8 so 
	we convert old Latin-1 WM_NAME to UTF-8

	* src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a
	latin1 string then convert.

2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): get window name before anything
	else.

	* src/xprops.c (validate_or_free_results): instead of suggesting
	how to get window title etc. with xprop, just print out the 
	window title. much better.

2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): make the warning about
	strange property contents blame the application and explain how to 
	use xprop to diagnose which app is causing the problem.

2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL
	string to gconf_client_set_string #101237

2002-12-13  Havoc Pennington  <hp@redhat.com>

	* src/tools/Makefile.am (Desktop_in_files): only install .desktop
	file for metacity-properties if we actually install
	metacity-properties

	* src/display.c (event_callback): not focusing on button 2 click
	was crack, revert that change.

2002-12-09  Havoc Pennington  <hp@pobox.com>

	* AUTHORS: add myself here, bug #100789

	* src/display.c (meta_display_set_grab_op_cursor): drop
	PointerMotionHintMask

	* src/window.c (meta_window_handle_mouse_grab_op_event): don't use
	XQueryPointer, as we aren't using PointerMotionHint now

	* src/display.c (event_callback): rearrange a bit of code 
	for slight speedup and clarity

	* src/window.c (update_resize) 
	(meta_window_handle_mouse_grab_op_event): implement 
	usage of the _METACITY_UPDATE_COUNTER
	(meta_window_handle_mouse_grab_op_event): fix code that 
	used event->xbutton with a motion event

	* src/display.c (meta_display_open): add new atoms, and 
	initialize Xsync if we have it
	(grab_op_is_resizing): new function
	(meta_display_begin_grab_op): create an alarm monitoring 
	window's _METACITY_UPDATE_COUNTER
	(meta_spew_event): conditionalize this on WITH_VERBOSE_MODE
	and print alarm events. 

	* src/window.c (meta_window_new): fetch _METACITY_UPDATE_COUNTER

	* configure.in (HAVE_XSYNC): check for Xsync extension

Mon Dec  9 22:09:56 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c, src/window.c: Handle crossing events during
	resizing. (#93384).

2002-12-09  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.4.8

2002-12-08  Havoc Pennington  <hp@pobox.com>

	* README: updates

	* src/window.c (MAX_RESIZES_PER_SECOND): change to 20 instead of
	30, just as an experiment.
	(MOVE_THRESHOLD): change 15 to 20
	(RESIZE_THRESHOLD): change 15 to 20

	* src/util.c (ensure_logfile): kill this function when verbose
	mode is disabled.

2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_fill_vertical) 
	(meta_window_fill_horizontal): new functions to resize to 
	fill screen

	* src/keybindings.c: add vert, horiz maximize

	* src/prefs.c: had vert, horiz maximize

	* src/metacity.schemas.in: shorten some overlong short
	descriptions that make the keybindings capplet look ugly.
	Add maximize_vertically, maximize_horizontally keys.
	
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_get_application_based): make this always
	return FALSE for now, to avoid bug reports.

	* src/util.c (ensure_logfile): put "opened log file" message on
	stderr so it will normally land in ~/.xsession-errors

	* configure.in: remove extra AC_ARG_PROGRAM

	* src/display.c (event_callback): handle the toggle-verbose message

	* src/tools/metacity-message.c: add a toggle-verbose message, been
	meaning to do this for a while.

	* src/util.c (meta_set_verbose): if verbose mode is enabled and we
	don't support it, then exit.

	* src/prefs.c: allow building without gconf (currently means some
	prefs are no-ops)

	* src/util.c, src/util.h: support defining macros to 
	kill all verbose output entirely. (Removes the code and strings
	associated with it)

	* configure.in: don't get METACITY_PROPS_LIBS if not building the 
	config dialog.
	(HAVE_GCONF): allow building sans gconf, if you are size-sensitive
	and not using gnome.
	(WITH_VERBOSE_MODE): add ability to disable all the verbose debug
	spew strings, to shrink the binary.
	(--disable-sm): allow SM support to be forced on or off
	(--disable-startup-notification): allow forcing this on or off

2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (update_workspace_name): also treat empty string as 
	"unset" in this function.

Thu Dec  5 18:41:02 2002  HideToshi Tajima  <hidetoshi.tajima@sun.com>

	* src/window.h (META_WINDOW_IN_NORMAL_TAB_CHAIN,
	META_WINDOW_IN_DOCK_TAB_CHAIN) : never use a window with input =
	FALSE take_focus = FALSE in the	normal and dock tab chains. #90409

Thu Dec  5 13:56:52 2002  HideToshi Tajima  <hidetoshi.tajima@sun.com>

	* src/display.c (event_callback): move a window to the current
	space on the MapRequest when it's not on the space yet. #100390

2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (get_control): rearrange this function a bit, so
	that we return CONTROL_TITLE for anything above the bottom of the
	titlebar, in the fallback case where no other control was found. 
	Also, don't return RESIZE_N for title rect above the top resize
	size, unless the window is resizable.
	(meta_frames_button_press_event): only start a move when clicking 
	control TITLE, not control NONE. This way you don't start moving 
	a nonresizable window if you click its edges.

2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/tools/Makefile.am: conditionalize building the config dialog

	* configure.in (BUILD_CONFIG_DIALOG): add --enable-config-dialog
	option to turn on the "window focus" dialog. This is part of
	deprecating this dialog.

2002-11-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds

	* src/util.c (utf8_fputs): hmm, return a value

	* src/screen.c (meta_screen_apply_startup_properties): new
	function to apply initial workspace based on startup sequence.

	* src/window.c (meta_window_new): load _NET_STARTUP_ID
	(meta_window_get_startup_id): new function

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hooks for _NET_STARTUP_ID

	* src/display.c (event_callback): send property events to 
	groups.

	* src/xprops.c (meta_prop_get_values): make a type of INVALID 
	mean to ignore that property (don't fetch its value).

	* src/group.c (meta_group_property_notify): new function

	* src/screen.c (set_supported_hint): support _NET_STARTUP_ID

	* src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms
	we initialize

	* src/group-private.h: private header shared between
	group-props.c, group.c

	* src/group-props.h, src/group-props.c: new files to contain 
	functions for retrieving group properties

	* src/window.c (meta_window_same_application): change this a bit
	to work with new definition of group

	* src/group.c (meta_window_get_group): always create a group for
	every window, using the window's own ID as group leader if
	required.

	* src/window.c (update_wm_hints): handle changes to group leader

	* src/group.c (meta_window_group_leader_changed): new function

	* src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH,
	not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen.

	* src/screen.c (startup_sequence_timeout): when timing out a
	startup sequence, send a remove message, don't just time it out
	locally.

2002-11-26 Calum Benson  <calum.benson@sun.com>

	* src/themes/Crux :
	
	Removed alpha layers from the pixmaps that don't need them.
	Fixes #98389, results in 10-15% speedup on most machines.

2002-11-26  Glynn Foster  <glynn.foster@sun.com>

	* configure.in: 2.4.5

2002-11-23  Dan Mills  <thunder@ximian.com>

	* Makefile.am: remove theme-format.txt, it's now in doc/.

2002-11-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): patch from 
	Hidetoshi Tajima to move a window's transients when moving 
	the window between workspaces. #98900

2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): init ret_to to
	RevertToPointerRoot out of sheer paranoia; don't want no 
	RevertToNone in my code!

2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_initial_workspace): delete
	(meta_window_new): add getting initial workspace to the batch
	property get call

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	net_wm_desktop and win_workspace support

2002-11-20  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (set_icon_title): remove unused variable

	* src/screen.c (meta_screen_new): read an existing
	_NET_CURRENT_DESKTOP and restore it if set. Makes a restart even
	less visible.

	* src/workspace.c (set_active_space_hint): don't set the hint 
	during the process of unmanaging a screen

2002-11-20  Havoc Pennington  <hp@pobox.com>

	* configure.in: add doc/Makefile

	* doc/metacity-theme.dtd: add DTD for themes from Ross Burton

	* doc/Makefile.am: doc subdir

	* doc/theme-format.txt: move to doc subdir

2002-11-19  Havoc Pennington  <hp@pobox.com>

	Should really fix #98303
	
	* src/prefs.c (meta_prefs_change_workspace_name): add 
	bad hack to treat empty string the same as null

	* src/menu.c (get_workspace_name_with_accel): allocate one more
	than the length of "name" so we have room for a nul byte (and
	don't malloc(0) on empty strings). Also some formatting cleanups.

2002-11-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): do a
	recalc_window_features after setting new wm_state in order
	to update skip_pager in addition to wm_state_skip_pager
	(set_net_wm_state): base _NET_WM_STATE on skip_pager not 
	wm_state_skip_pager, ditto for skip_taskbar

2002-11-19  Havoc Pennington  <hp@pobox.com>

        Fix #98303 and assorted cleanup
	
	* src/prefs.c (meta_preference_to_string): handle
	META_PREF_WORKSPACE_NAMES

	* src/menu.c (get_workspace_name_with_accel): assert that the
	workspace has a name

	* src/screen.c (meta_screen_ensure_workspace_popup): assert that
	we got a workspace name
	(meta_screen_ensure_workspace_popup): assert that we got a
	workspace name

	* src/prefs.c (update_workspace_name): fix screwiness (strcmp with
	a freed string, assorted bad logic)
	(init_workspace_names): assert that we filled in a default
	workspace name
	(meta_prefs_get_workspace_name): assert non-NULL workspace name

2002-11-16  Bill Haneman <bill.haneman@sun.com>

	* src/themes/Atlanta/metacity-theme-1.xml:
	Changed outer bevel and focus line color to 
	work better with inverse themes (no effect on
	Default or other existing gtk+ themes).
	
2002-11-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): fix a multihead safety thing (use proper
	system colormap for the drawable's screen)

Thu Nov 14 17:30:10 2002  Jonathan Blandford  <jrb@gnome.org>

	* src/Makefile.am (libmetacityinclude_HEADERS): include common.h.

2002-11-12  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (draw_op_as_pixbuf): don't read from op->data.image 
	when the op is an icon

2002-11-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (meta_stack_get_default_focus_window): never use a
	window with input = FALSE take_focus = FALSE as the default focus
	window #95454 fix from Hidetoshi Tajima

2002-11-10  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Major changes
	to look of theme. I'd also recommend "minimize,maximize:close"
	for the button_layout, it looks really slick :-).

2002-11-08  Mark McLoughlin  <mark@skynet.ie>

	* src/workspace.c:
	(meta_motion_direction_to_string),
	(meta_screen_corner_to_string): impl for nice debugging.
	(meta_workspace_get_neighbor): fix broken logic and
	cleanup debugging.

Thu Nov  7 17:07:21 2002  Jonathan Blandford  <jrb@redhat.com>

	* src/libmetacity-private.pc.in: add a pc file for
	libmetacity-private

	* src/Makefile.am: Install a few files as a shared library so that
	others can draw metacity themes.

2002-11-06  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (grab_keys): push an error trap around the
	whole window-key-grab loop
	(ungrab_all_keys): avoid requiring return value from the error 
	trap, unless in debugging mode
	(regrab_window_bindings, regrab_screen_bindings): push traps
	around the loops, for efficiency

	* src/display.c (event_callback): fix from Padraig O'Briain to
	compress extra MappingNotify events to avoid extra work.

2002-11-05  Calum Benson  <calum.benson@sun.com>

	* src/themes/Crux/active-restore-button.png:
	* src/themes/Crux/inactive-restore-button.png:
	* src/themes/Crux/metacity-theme-1.xml: add a restore button
	for maximized windows, and un-hard-code titlebar text colors.
	Fixes #97759.

2002-11-05  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_get_neighbor): apply patch from 
	Nikos Mouat to fix this function

2002-11-04  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in
	case where scaling was done in both directions.

2002-11-04  Havoc Pennington  <hp@pobox.com>

        Patch from Brian Cameron to implement the vertical/horizontal 
	striped image accelerated scaling from the gtk pixbuf engine.
	
	* src/theme.c (scale_and_alpha_pixbuf): if an image is
	vertical/horizontal stripes, use special extra-fast scaling 
	routines.

	* src/theme-parser.c (parse_draw_op_element): when loading an
	image, mark it as vertically/horizontally striped when appropriate

2002-11-04 Erwann Chenede - <erwann.chenede@sun.com>
	
	* src/xprops.c (meta_prop_get_values): changed __FUNCTION__
	to G_GNUC_FUNCTION as __FUNCTION__ is not portable.

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab): remove XSync calls from here
	(meta_display_ungrab): remove XSync from here, but put in 
	an XFlush to be sure we get the ungrab sent.

	* src/util.c (meta_topic): track sync count here

	* src/errors.c: move sync count out of here

        Throughout: error spew on all XSync() calls
	
	* src/run-metacity.sh: don't set METACITY_DEBUG

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (meta_display_init_window_prop_hooks): add 
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support

	* src/window.c (meta_window_new): use window-props.h for 
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use window-props.h stuff for a
	couple of properties 
	(implement_showing): fix printf string

	* src/xprops.c (meta_prop_free_values): new function

	* src/window-props.h, src/window-props.c: start moving code that
	handles loading window properties into this file.

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (create_constraints): filter out windows that aren't
	in the stack for whatever reason, avoids a crash

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_calc_showing): split into "see if we
	should be showing" and "actually show/hide" functions
	(idle_calc_showing): rework to first unmap all newly-hidden
	windows from bottom to top then map all newly-showing windows from
	top to bottom resulting in fewer exposes, #95220

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett
	LeSage for which button backgrounds we draw when

2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_name): new function, 
	and remove workspace->name field, instead just get the 
	name from prefs each time

	* src/screen.c (meta_screen_update_workspace_names): update the
	gconf key to persist workspace names here, instead of changing 
	the names we use

	* src/util.c (topic_name): add META_DEBUG_PREFS

	* src/prefs.c: change NUM_COMMANDS to 32 to allow more custom
	commands, implement workspace names

	* src/metacity.schemas.in: add workspace_names/name_NN gconf keys.

2002-11-01  Christian Neumair  <chris@gnome-de.org>

	* configure.in: We want at least autoconf 2.5.

2002-10-29  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.4.3, why not

2002-10-28  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_size_hints): use meta_prop_get_size_hints

	* src/xprops.c: add support for getting XSizeHints

2002-10-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/display.c: store the window menu on the
	display and blow it away when a window closes, so we don't 
	get funny stuck menus. Patch from Martin Garton #87514

2002-10-27  Anders Carlsson  <andersca@gnu.org>

	* configure.in: Make XRandr detection work better.

2002-10-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): move
	meta_window_shutdown_group() much earlier in the destroy process.
	May fix #96928 tracked down by Kjartan Maraas and Martin Garton.

	* src/group.c (meta_window_get_group): never add window to a group 
	after we've started unmanaging the window

2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/iconcache.c: include config.h

	* src/group.c: include config.h

	* src/frame.c: include config.h

	* src/core.c: include config.h so it doesn't crash all over the
	place due to #ifdef HAVE_STARTUP_NOTIFICATION

	* src/util.c (meta_print_backtrace): export from this file

	* src/main.c (log_handler): print backtrace here

2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/main.c (evil_timeout): make windows randomly
	transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928

2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_text_property): new function
	(meta_prop_get_wm_hints): new function
	(meta_prop_get_class_hint): new function

2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use multi-value-get on a couple
	of properties for testing

	* src/xprops.c (meta_prop_get_values): implement multi-value-get

	* src/window.c (update_mwm_hints): XFree motif hints as we changed
	it to use Xmalloc

	* src/xprops.c: massively rework this to set up a
	get-multiple-properties-at-once API.

	* src/async-getprop.c (ag_Xmalloc): new function

2002-10-25  Havoc Pennington  <hp@pobox.com>

        Add "busy cursor on app startup" support, conditionally - works 
	only if libstartup-notification is found, and in practice requires
	a GTK patch that's not in yet.
	
	* src/screen.c: monitor startup events and set busy cursor if
	appropriate

	* src/display.c (meta_display_open): create SnDisplay

	* configure.in: check for startup notification, 
	and add the cute "configure summary" at the end

2002-10-24  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): if only one
	right-corner button, use right_right_background not
	right_left_background

2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_icon_geometry): make public

	* src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab 
	highlight-window indicator on the icon, not the window itself, 
	if the window is minimized.

2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_list): put minimized windows
	at the end of Alt+Tab, #89416

2002-10-23  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): initialize the 
	left button background rectangles.

2002-10-21  Havoc Pennington  <hp@redhat.com>

	Optimizations for managing new windows (do not all take effect if
	METACITY_DEBUG=1). Bug #96404
	
	* src/keybindings.c (meta_change_keygrab): use error trap nesting
	and conditionalize on meta_is_verbose() to avoid a ton of XSync

	* src/display.c (meta_change_button_grab): ditto
	
	Throughout: move to new error trap setup to save on XSync calls, 
	new setup is:
	
	* src/errors.c (meta_error_trap_push_with_return): new function, 
	an error trap that needs to care about return value and thus 
	sync even if an outer trap still exists
	(meta_error_trap_pop_with_return): new function
	(meta_error_trap_pop): add "last_request_was_roundtrip" 
	argument allowing us to avoid XSync() if we just did 
	a GetProperty or whatever.

	* src/util.c (meta_warning): flush the warning file descriptor
	
	* src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
	
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_new): put multihead stuff in 
	HAVE_GTK_MULTIHEAD, reported by John Palmieri

2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_raise_or_lower): check above->mapped 
	before deciding if it overlaps the window being raiselowered, 
	fix from Stephane Chauveau 

2002-10-19  Jeremy Katz  <katzj@redhat.com>

	* configure.in: make Xrandr check less noisy

2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/effects.c (meta_effects_draw_box_animation): call
	meta_image_window_new in multihead-safe way

	* src/ui.c (meta_image_window_new): multihead safety

2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_refresh_resize_popup): only create the 
	resize popup if width_inc or height_inc are > 1

	* src/resizepopup.c: Clear out all the weird tickmark cruft, 
	saves us about 2.5K of binary size, whee
	(meta_ui_resize_popup_new): take display/screen arguments and make
	multihead-safe #94349
	
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (do_choose_window): don't start the cycle
	process if the binding for switching windows has no modifier bits, 
	just focus the window immediately.

	* src/prefs.c, src/keybindings.c: add a keybinding to move between
	windows that goes in the opposite direction.  This is mostly
	useful if you want to bind unmodified keys to the switch windows
	functions, e.g. if you have "Forward" and "Back" keys on your
	keyboard. Patch from Shilad Sen <shilad sourcelight com>

2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/prefs.c, src/frames.c: add "what happens when you double
	click the titlebar" setting, patch from Sean Middleditch bug
	#95625.  This is basically an "add Windows emulation mode" patch.

2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: move window-click to Super+click not
	Alt+click by default. Super should be the Windows key on keyboards
	that have one and are so configured.  Prepare for the FAQ on this.

2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_size): fix min aspect handling, 
	patch from Martin Garton #94943

2002-10-18  Andras Timar  <timar@gnome.hu>

	* configure.in: Added hu to ALL_LINGUAS.

2002-10-18  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (constrain_stacking): replace the old
	apply_constraints with wacky new approach involving graphing all
	the constraints then walking the graph.  Fixes #94876 and probably
	other stacking bugs as well, thanks to Arvind for tracking down
	the issue.

	(compute_layer): add FIXME and reference to bug #96140

2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): don't place
	transient-for-whole-group windows above _each other_, only 
	above other windows in the group that aren't themselves
	transient-for-whole-group. Should help with part of #94876	

2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): fix memory leak of
	group_windows, and don't use the variable name "tmp" twice. Shadow
	variables bad.

2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (dialog_cb): add code to create
	big stacks of dialogs transient for each other, for testing.

2002-10-16  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c: workspaces are all per-screen now, fix
	accordingly

	* src/core.c: fix multihead workspace stuff

	* src/keybindings.c: multihead-rama

	* src/screen.c (meta_screen_show_desktop): new functions to
	replace display equivalents

	* src/display.c (meta_display_get_workspace_by_screen_index): get
	rid of this
	(meta_display_get_workspace_by_index): get rid of this
	(event_callback): handle _NET_SHOWING_DESKTOP message per-screen

	* src/screen.c (meta_screen_get_workspace_by_index): new function

	* src/screen.h (struct _MetaScreen): move workspace list, and 
	showing_desktop flag, to be per-screen

	* src/window.c (window_query_root_pointer): return whether pointer
	is on window's screen
	(meta_window_handle_mouse_grab_op_event): don't use coordinates
	from other screens when updating a window operation on the current 
	screen. I can't believe no one has reported this...

2002-10-16  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): update window layer
	when above/below state is changed. Fixed by Ross Burton.

2002-10-14  Federico Mena Quintero  <federico@ximian.com>

	* src/display.c (event_callback): Ignore EnterNotify events when
	the detail field is set to NotifyInferior.  Fixes #95747.

2002-10-12  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: button layout key

	* src/prefs.c: Add button layout gconf key
	(change_notify): use some "else if" instead of "if" where we
	should have been

2002-10-11  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): don't raise window on button 2
	click, only on button 1 and button 3.

	* src/frames.c (meta_frames_button_press_event): lower on button 2
	press on frame

	* src/core.c (meta_core_user_lower): new function

2002-10-11  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (window_is_fullscreen_size): make the checks here
	allow windows larger than the screen in addition to
	exactly-screen-size

	* src/window.c (meta_window_configure_request): delete the "try to
	auto-enter-fullscreen-state" hack here, because it was broken, and
	the changes to the stacking code to move screen-size focused
	windows to the fullscreen layer should work better.
	(meta_window_new): remove auto-fullscreen hack from here too

2002-10-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (apply_constraints): also keep utility/menu/toolbar
	windows above their whole group.

	(get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but
	only use META_LAYER_FULLSCREEN while the fullscreen window has
	focus.  Also, put screen-sized windows in the fullscreen layer,
	even if we didn't dare to actually put them in the fullscreen
	state.

2002-10-07  Havoc Pennington  <hp@redhat.com>

        Add a modifier key preference for the Alt+click stuff. 
	Can be set to "disabled" as well.
	
	* src/run-metacity.sh: load .Xmodmap in the Xnest if it exists

	* src/display.c (meta_display_ungrab_window_buttons): ungrab
	AnyModifier in case the modifier changed since we grabbed
	(meta_display_open): rearrange code to use meta_display_close() to
	mop up when we can't find any screens, avoiding the need to 
	keep the bail-out code in sync with meta_display_close.

	* src/keybindings.c (devirtualize_modifiers): move this function
	to a public place in display.c

	* src/metacity.schemas.in: add setting for the modifier key 
	to use for Alt+left/middle/right click.

	* src/prefs.c (update_binding): add a missing newline to a warning
	(meta_prefs_get_mouse_button_mods): new function	

	* src/ui.c (meta_ui_parse_modifier): new function

2002-10-07  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: don't include unportable Xproto.h, fix from
	Glynn Foster.

2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: change to add only one _XAsyncHandler per
	display, speeding things up a bit.

2002-10-06  Havoc Pennington  <hp@pobox.com>

	* src/async-getprop.c: Add wacky hack suggested by Keith Packard
	to get X properties asynchronously. Not actually used by metacity
	yet, but thinking about it.	

2002-10-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: actually link to RANDR_LIBS

2002-10-04  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): do XRRUpdateConfiguration() 
	if we have RandR extension, else poke in Xlib's screen struct to
	update the screen size.

	* configure.in: fix a bogus overwrite of cppflags, 
	add a check for RandR extension
	
2002-10-04  Arvind Samptur <arvind.samptur@wipro.com>

	* src/window.c (meta_window_change_workspace): call
	meta_window_unstick before adding window to workspace.
	(menu_callback): call meta_workspace_activate before
	meta_window_change_workspace.  This would avoid us running an
	extra loop for determining the window workspace list.

	Patches from Jeyasudha and Arvind. Fixes #92575

2002-10-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: only specify the 
	middle backgrounds, let left/right fall back to middle

	* src/theme.c (get_button): fall back to middle_background draw
	routines when missing the left/right button backgrounds.
	(button_rect): fix to handle drawing middle button backgrounds
	(meta_frame_style_draw): draw middle background once per middle
	button

2002-10-03  Havoc Pennington  <hp@pobox.com>

        Button-reordering patch. Has all the code except actually
	installing a gconf schema and reading the gconf key in prefs.c.
	metacity-theme-viewer displays the button layouts for testing 
	themes.
	
	* src/preview-widget.c (meta_preview_size_request): make up a
	width/height if no child widget

	* src/prefs.c (meta_prefs_get_button_layout): new function

	* src/frames.c: get the button layout from prefs and 
	use it when drawing

	* src/theme.c (meta_frame_layout_calc_geometry): enhance to be
	able to lay out buttons in different arrangements
	(button_rect): draw the new button background rectangles
	(meta_theme_draw_frame): require a button layout argument
	(meta_theme_calc_geometry): pass in the button layout

	* src/preview-widget.h: mod to handle button layouts

	* src/theme-viewer.c: mod to handle button layouts
	
2002-10-03  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.4.2

2002-10-03  Havoc Pennington  <hp@redhat.com>

	* src/window.c (check_moveresize_frequency): handle the case where
	the clock is set backward

2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): try extra cascades alongside
	the first, if the first fails; patch from readams@hmc.edu

2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): put ABOVE windows in same
	layer as docks.

2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_resize_func): make it static

	* src/stack.c (get_standalone_layer): put above/below windows 
	in an appropriate layer.

	* src/screen.c (set_supported_hint): say we support above/below

	* src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE, 
	_NET_WM_STATE_BELOW atoms

	* src/window.c (meta_window_client_message): handle above/below
	state messages
	(set_net_wm_state): handler above/below state
	(update_net_wm_state): handle above/below states

2002-10-01  Mark McLoughlin  <mark@skynet.ie>

	* src/screen.c: (meta_screen_new): default to
	topleft starting corner.
	(meta_screen_update_workspace_layout): handle
	new property format : orient,x,y,starting corner.
	Fixes #89373.

	* src/screen.h: add MetaScreenCorner enum.

2002-10-01  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): always align fullscreen
	windows to top, as we do with maximized windows.

2002-10-01  Stanislav Brabec  <sbrabec@suse.cz>

	* configure.in: Added cs to ALL_LINGUAS.

2002-09-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (reload_xinerama_infos): fix compilation on
	Solaris, patch from Satyajit Kanungo

2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/eggaccelerators.c: update from libegg to get fix from Ralph
	Loader for <Super> <Hyper> <Meta> parsing, #93005

2002-09-29  Havoc Pennington  <hp@pobox.com>

	* src/effects.h (META_MINIMIZE_ANIMATION_LENGTH): shorten minimize
	animation a bit

2002-09-28  Havoc Pennington  <hp@pobox.com>

        Patch from Keith Packard to handle root window resizes.
	
	* src/screen.c (reload_xinerama_infos): factor out Xinerama code
	(meta_screen_resize): implement this, to be called from display.c
	on screen resize

	* src/display.c (event_callback): handle ConfigureNotify on root
	windows

2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW
	layer, should now work correctly.

2002-09-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/stack.c: Rewrite stack code to work a lot
	differently. Should be better now, and not lose relative positions
	of windows when moving among layers. Also should now be possible
	to get session management to restore the stacking order.  Probably
	breaks some stuff, and makes all the stack.c changes I made
	yesterday sort of irrelevant.

2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (get_standalone_layer): Temporarily disable use of
	the FOCUSED_WINDOW layer, because given the fact that moving
	multiple windows into the same layer changes the Z-order of those
	windows, it was breaking click-to-focus.

2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_focus_top_window): raise the focused
	window, since it may not be the window on top, given the below
	change.

	* src/stack.c (meta_stack_get_default_focus_window): make this
	more complex to prefer to focus the transient parent, followed by
	other windows in group, followed by topmost non-dock, followed by
	dock. Previously was just topmost non-dock followed by dock
	ignoring groups and transiency.

2002-09-27  Havoc Pennington  <hp@pobox.com>

	* src/place.c (constrain_placement): constrain placement to try to
	keep windows from going offscreen to the right/bottom

	* src/stack.c (compute_layer): rearrange the logic here to say
	that a window must always be in at least as high a layer as any of
	its transient parents or group members, rather than special-casing
	fullscreen. Also, group_member_is_fullscreen was leaking the list
	of group members every time, a fairly major memory leak.
	
2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): use AgingGorilla not Gorilla
	(renamed on the CVS server)

2002-09-27  Havoc Pennington  <hp@redhat.com>

        Try to handle Solaris Xinerama, all coded blind, someone 
	on Solaris will need to debug the typos.
	
	* src/display.c: updates for Solaris Xinerama

	* src/screen.c: updates for Solaris Xinerama

	* configure.in: make Xinerama check more complicated to catch
	Solaris Xinerama

2002-09-27  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_transient_for): keep a flag 
	transient_parent_is_root_window for whether the
	root-window-as-parent convention was used.

2002-09-25  Arvind Samptur <arvind.samptur@wipro.com>

 	* src/stack.c (sort_window_list): Keep dialogs without 
 	transient parent above entire app. Fixes #88926
 
2002-09-26  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): use MetaAccelLabel to display
	accelerators for the menu items

	* src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to
	use virtual modifiers

	* src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc]

	* src/prefs.c (meta_prefs_get_window_binding): new function

	* src/core.c (meta_core_get_menu_accelerator): new function
	
2002-09-25  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: Change short desc of switch_windows and
	cycle_windows to be different

2002-09-24  Havoc Pennington  <hp@pobox.com>

	* src/place.c (fit_rect_in_xinerama): update best_overlap as we go
	through the loop - doh. Fix from readams@hmc.edu for #90799.
	(find_first_fit): try the origin of each xinerama screen
	after the first. Also from readams@hmc.edu

2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_save_rect): new function, 
	only saves rect after checking current state, #93795
	(meta_window_make_fullscreen): use new function
	(meta_window_maximize): use new function

2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_update_layer): new function

	* src/stack.c (compute_layer): put focused window in a layer above
	all other windows, in click-to-focus mode. #93022

	* src/window.c (meta_window_notify_focus): update window layer on
	focus change.

2002-09-24  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): support --version, #92796 patch from 
	Christian Neumair

	* autogen.sh: change gettext test to be happy with
	glib-gettextize, #81425

	* src/menu.c: change mnemonics to match bug #78999

	* src/theme.c (meta_theme_validate): consolidate some
	nearly-identical themes for ease of translation, #70962
	
2002-09-24  Arvind Samptur  <arvind.samptur@wipro.com>

	* src/menu.c: Replace strings Shade with Roll Up and 
	Unshade with Unroll.

2002-09-23  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): re-enable the log handler, maybe it will
	break something, I don't remember why I turned it off.

	* src/display.c: s/_NET_SHOW_DESKTOP/_NET_SHOWING_DESKTOP/ which
	is what's in the spec

2002-09-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): small reordering of 
	code

	* src/display.c (meta_spew_event): more spew for MapNotify,
	UnmapNotify

	* src/window.c (recalc_window_features): spew more stuff

	* src/display.c (meta_spew_event): spew override_redirect field of 
	ConfigureNotify

2002-09-20  Arvind Samptur <arvind.samputr@wipro.com>
	* src/metacity.schemas.in: added keybindings for
	moving windows between workspaces.

	Patch from Jeyasudha. Fixes #91944.

2002-09-19  Arvind Samptur <arvind.samptur@wipro.com>
	* src/tools/metacity-properties.desktop.in :
	change in the tooltip suggested in ui-review.
	
2002-09-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_net_wm_state): handle fullscreen state
	here.

2002-09-15  Havoc Pennington  <hp@pobox.com>

	* src/session.c (save_state): escape the window title before 
	saving in the session file, reported by Jos Vos

2002-09-12  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_screen_index)
	(meta_workspace_index): fix compiler warnings

	* src/tools/metacity-window-demo.c (menu_items): add a test for
	dialogs with no transient parent

	* src/place.c (find_first_fit): Try placing window at origin of
	first Xinerama, even if there are no windows to place next to;
	makes placement work when no other windows are open on the screen.
	
2002-09-09  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.4.1

2002-09-09  Christian Neumair  <chris@gnome-de.org>

	* src/keybindings.c: Make virtual desktops apply
	instantly and still show the pager popup by
	Benjamin Kahn <xkahn@zoned.net>, fixes #86590.

2002-09-06  Frederic Crozat  <fred@crozat.net>

	* src/themes/Crux/metacity-theme-1.xml: Fix titlebar 
	glitch on small dialogs.

2002-09-06  Arvind Samptur <arvind.samptur@wipro.com>
	* theme-format.txt : corrected some of the attributes
	which were not in sync with theme-parser.c
	Patch  from Jim Bowen. #92057.

2002-09-05  Havoc Pennington  <hp@pobox.com>

	* configure.in: put ro back in ALL_LINGUAS

2002-09-05  Havoc Pennington  <hp@redhat.com>

	* configure.in (ALL_LINGUAS): remove 'ro' from ALL_LINGUAS, it
	contained invalid XML and broke the build. No <> in the
	translations of gconf keys!

2002-09-04  Marius Andreiana <mandreiana@yahoo.com>

	* configure.in: added 'ro' to ALL_LINGUAS

2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_current): new function

	* src/keybindings.c (do_choose_window): apply modified patch from
	JeyaSudha to still display tab popup if only one window is on the
	desktop.

2002-06-25 JeyaSudha <jeyasudha.duraipandy@wipro.com>
 
 	* src/session.c, src/window.c: Session saves the unmaximized
	postion, size of a maximized window. #86059
 
2002-09-03  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_update_prelit_control): don't filter
	out prelight for unmaximize button. #83860
	(meta_frames_paint_to_drawable): handle unmaximize here as well

2002-08-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): always apply
	rounding for shaded windows, fixes Bluecurve theme when shaded

2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): when freeing a fullscreen
	window, update layers of the window's group.

2002-08-25  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): _NET_SUPPORTING_WM_CHECK is
	supposed to have type WINDOW not CARDINAL. reported by 
	Ben Jansens

2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (process_property_notify): recalculate mapped-ness
	of frame after toggling decorations on/off, so that windows don't
	disappear when decorations are toggled on.

	* src/tools/metacity-window-demo.c (toggle_decorated_cb): add a
	test for toggling decoration state on the fly

2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_sm_hints): hack around bug in kmail etc.
	where SM_CLIENT_ID was set on the window, not the client leader.

	* src/theme.c (meta_frame_layout_calc_geometry): don't round
	corners unless we have enough frame to chop off.

2002-08-24  Havoc Pennington  <hp@redhat.com>

	* src/util.c: translate some strings that should have been, and
	convert to locale encoding before printing stuff.

	* src/stack.c (group_member_is_fullscreen): if window itself is
	fullscreen, return TRUE immediately.

	* src/window.c (meta_window_configure_request): add hack to
	fullscreenize large undecorated windows.

2002-08-21  Deepa Natarajan  <deepa.natarajan@wipro.com>

	* src/keybindings.c, src/metacity.schemas.in, src/prefs.[ch]:
	add  maximize and unmaximize keybinding setting. Partly fixes
	bug# 78999.

2002-08-20  Steve Fox <drfickle@k-lug.org>

	* metacity.spec.in: Add so that the spec file gets auto-updated
	whenever configure.in gets bumped. Include some missing 
	directories.

	* Makefile.am
	* configure.in: Necessary changes for spec file magic
	
2002-08-20  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (get_control): if in the title rect check for y 
	<= TOP_RESIZE_HEIGHT

	* src/display.c (meta_spew_event): put x/y coordinates in spew for
	enter/leave notify

	* src/frames.c (meta_frames_motion_notify_event): move cursor
	changing from here to update_prelit_control so it happens on enter
	notify as well
	(get_control): change test "y < TOP_RESIZE_HEIGHT" to 
	"y <= TOP_RESIZE_HEIGHT"

	* src/Makefile.am (EXTRA_DIST): include .in files in EXTRA_DIST

2002-08-17  Simos Xenitellis  <simos@hellug.gr>

	* configure.in (ALL_LINGUAS): Added Greek (el).

2002-08-17  Evandro Fernandes Giovanini <evandrofg@ig.com.br>

	* configure.in (ALL_LINGUAS): Added Brazilian Portuguese (pt_BR).

2002-08-15  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: default to "Sans Bold 10" for the
	titlebar font.

2002-08-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): leave has_fullscreen_func
	set to TRUE if the window is screen sized and undecorated, even if
	the window isn't resizable. idea from Christian - Manny Calavera -
	Neumair

	* src/keybindings.c (handle_toggle_fullscreen) 
	(handle_toggle_maximize): these disabled fullscreen/maximize if
	the window wasn't resizable, should have used has_fullscreen_func
	has_maximize_func instead.

2002-08-15  Havoc Pennington  <hp@pobox.com>
	
	* src/keybindings.c: implement raise/lower

	* src/metacity.schemas.in: add raise/lower

	* src/prefs.c: add "raise" and "lower" prefs to keybindings

	* src/display.c (meta_display_set_grab_op_cursor): assert that 
	the screen arg is non-NULL in appropriate cases

2002-08-14  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/display.c (meta_display_set_grab_op_cursor):
        In XGrabPointer, set the confine_to argument to the root window
        of the screen the window is on.

	* src/display.h: add screen argument.

	* src/window.c (meta_window_update_resize_grab_op):
        pass screen argument as NULL.

2002-08-14  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: use button positioning
	theme stuff.

2002-08-14  Mark McLoughlin  <mark@skynet.ie>

	* src/screen.c: (set_number_of_spaces_hint), move from
	workspace.c.
	(update_num_workspaces): set the hint here. Fixes #90123.

	* src/workspace.c:
	(meta_workspace_new), (meta_workspace_free): don't set
	the hint here.
	(update_num_workspaces): move to screen.c

2002-08-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (compute_layer): window is in fullscreen layer if
	any member of its group is fullscreen

	* src/window.c (meta_window_unmake_fullscreen): update layer for
	whole window group
	(meta_window_make_fullscreen): ditto

	* src/util.c (meta_unsigned_long_hash): move hash/equal funcs for
	Window in here.

	* src/group.c: track window groups so we can do stuff with them.

2002-08-11  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: don't include nonexistent stock-icons.h file

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: default keybindings for move, resize, 
	maximize, etc. from Deepa #78999

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize): unshade window if shaded,
	from JeyaSudha
	(meta_window_make_fullscreen): ditto

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c: reorder the menu items so that Close is at the
	bottom

	* src/theme-viewer.c (main): set debugging mode if METACITY_DEBUG
	enabled

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_motif_hints): allow Motif hints to
	be smaller than expected; GLUT for example seems to set a smaller
	struct. #89841

	* src/window.c (update_mwm_hints): use g_free on motif hints as we
	don't use the XGetWindowProperty return directly anymore

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): be sure window is 
	mapped if we unmanage it and it's not withdrawn; 
	bug #90369

	* src/screen.c (meta_screen_new): change string
	s/override/replace/ bug #89077

	* src/theme.c (scale_and_alpha_pixbuf): dump the
	sometimes-use-NEAREST-instead-of-BILINEAR optimization, 
	bug #87489

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): raise window when moving to
	another workspace bug #88896

	* src/keybindings.c (switch_to_workspace): raise window when
	moving between spaces
	
2002-08-10  Jorn Baayen  <jorn@nl.linux.org>

	Register window menu icons with the Gtk stock system, instead
	of using the ones from the Metacity theme (which looked very bad with
	some themes).

	* src/Makefile.am:
	* src/main.c:
	* src/menu.c:
	* src/stock_delete.png: added these files
	* src/stock_minimize.png:
	* src/stock_maximize.png:
	* src/ui.c
	
2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): filter out 
	key events that happen on popup menus etc.

	* src/ui.c (meta_ui_window_is_widget): new function to check
	whether a window belongs to a GtkWidget such as the popup menu

	* src/prefs.c (change_notify): put in a no-op line for AIX
	compiler, #84252	

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_resize): track time to avoid sending a
	deluge of move/resize requests, suggestion from
	xavier.bestel@free.fr bug #86830. Not really sure if this will
	make a difference or not. We'll see I guess.
	(update_move): do same on move though it seems less important
	here.

	* src/display.h (struct _MetaDisplay): store the 
	last time we sent a move/resize event.

2002-08-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): add a FIXME comment 
	with a link to bug #90382

2002-08-09  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_toggle_maximize): disable maximize,
	fullscreen, shade via keybindings on windows that don't support
	it.

2002-08-08  Craig Black  <blackc@speakeasy.net>

	Patch to provide extra cues when using the window menu 
	move and resize items, #85724.

	* src/common.h: add new cursors

	* src/display.c: (grab_op_is_mouse)
	(meta_display_create_x_cursor), (xcursor_for_op),
	(meta_display_set_grab_op_cursor), 
	(meta_display_begin_grab_op):
	The keyboard move and resize grab ops now also use the mouse. 
	Allow the grab cursor to be changed during the grab op.
	Hold onto the initial grab position in case of reset.

	* src/display.h: save the initial grab position

	* src/keybindings.c: (process_keyboard_move_grab),
	(process_keyboard_resize_grab), (handle_begin_move),
	(handle_begin_resize):
	The keyboard move and resize grab ops now also use the mouse. 

	* src/window.c: (meta_window_client_message), (menu_callback),
	(update_move), (update_resize),
	(meta_window_handle_mouse_grab_op_event), (warp_pointer),
	(meta_window_warp_pointer), (meta_window_begin_grab_op),
	(meta_window_update_resize_grab_op):
	When moving or resizing a window use the last grab position
	in computing change increment.
	Provide support for warping the mouse pointer.

	* src/window.h: new warp pointer and grab op helper functions

2002-08-08  Craig Black  <blackc@speakeasy.net>

	* src/display.h: update comment
	* src/window.c: (meta_window_focus): also set expected
	focus window when setting input focus. 

2002-08-07  Craig Black  <blackc@speakeasy.net>

	* src/display.c: (meta_display_unshow_desktop): focus
	top window after showing desktop, fixes #88080.

2002-08-07  Craig Black  <blackc@speakeasy.net>

	* src/core.c: (meta_core_show_window_menu): focus window
	on right click for menu, #87299.

2002-08-07  Craig Black  <blackc@speakeasy.net>

	* src/display.c: (meta_display_open): clear expected focus window 
	on open

	* src/display.h: add expected_focus_window field

	* src/window.c: (meta_window_make_fullscreen), 
	(meta_window_unmake_fullscreen): change meta_window_update_layer() 
	to meta_stack_update_layer() so build works again.
	(meta_window_free), (meta_window_make_fullscreen),
	(meta_window_focus), (meta_window_notify_focus): keep track of 
	expected focus window after sending WM_TAKE_FOCUS event, 
	previously if a UnmapNotify event arrived before the FocusIn event 
	we would lose focus, fixes #84564. 

2002-08-07  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_unmake_fullscreen): update layer
	(meta_window_make_fullscreen): update layer

	* src/stack.c (compute_layer): put window on fullscreen layer if
	fullscreen

2002-08-06  Craig Black  <blackc@speakeasy.net>

	* src/window.c: (meta_window_client_message): implement
	_NET_WM_MOVERESIZE enhancements, see #90077.

2002-08-06  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.4.0 (this version number has no special
	significance, just didn't want to go to 4-digit micro version ;-)

2002-07-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_shade): disable animation when shading
	windows, just doesn't really convey the idea anyway.

	* src/effects.c: Move to using a shaped window instead of
	IncludeInferiors to do the animations, looks a lot better
	because we don't have to grab the server.

	* src/window.c (meta_window_change_workspace): remove bogus
	assertion that was causing a crash
	(meta_window_new): auto-fullscreen huge undecorated windows.

	* src/keybindings.c (switch_to_workspace): use
	meta_window_change_workspace() to avoid same bug in cut-and-paste
	code from there
	
2002-08-06  He Qiangqiang  <carton@linux.net.cn>

	* configure.in: Added "zh_CN" to ALL_LINGUAS.

2002-08-05  Ross Burton <ross@burtonini.com>

	* src/window.c: (meta_window_client_message): Set
	->wm_state_skip_pager (ditto for _taskbar) instead of ->skip_pager
	so that these hints actually work. Fixes #89850.
	
2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): init button 
	states for the button backgrounds

	* src/themes/Atlanta/metacity-theme-1.xml: adapt to work correctly
	with button repositioning

2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_button_press_event): raise/focus 
	on click, even if the click was on the client area 
	(this makes Alt+button1 raise windows again, yay)

	* src/stack.c (compute_layer): put panels in the DOCK layer always 
	(keep them on top of other windows). Still sloppy-focus raised 
	with respect to other docks.

	* configure.in: remove -Wshadow for now as GTK headers make all
	kinds of noise with it.

2002-08-02  Mark McLoughlin  <mark@skynet.ie>

	* src/screen.c: (meta_screen_new): set active_workspace
	to NULL. Also actually activate the first workspace instead
	of just setting active_workspace. Fixes #87367.
	(meta_screen_ensure_workspace_popup): don't re-use our
	iterator for setting the entries list, stop iterating
	when we've gone beyond the last workspace (there may
	be empty spaces in the last row).

	* src/workspace.c: (meta_workspace_activate): if no workspace
	was previously activated, return.

2002-08-04  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (free_menu_ops): use MetaMenuIconType not button
	type for the size of the menu ops array
	(meta_theme_define_int_constant): return TRUE on success (how the
	heck did this ever work?)
	(meta_theme_define_float_constant): return TRUE on success
	(meta_frame_style_validate): allow the "positional" buttons to 
	be omitted for now.

	* src/testgradient.c (render_multi): don't define N_COLORS twice

	* src/theme-viewer.c (run_theme_benchmark): don't define
	ITERATIONS twice

	* src/theme.c (button_rect): handle new button types
	(meta_button_type_to_string): update
	(meta_button_type_from_string): update

	* src/theme.h (enum): add button types for the 6 possible button
	positions. No way to reposition buttons still but this will allow
	themes to go ahead and support doing so.

2002-08-03  Craig Black  <blackc@speakeasy.net>

	* src/keybindings.c: (meta_display_process_key_event),
	(process_tab_grab), (do_choose_window): change alt+tab to a
	windowless grab, fixes #83499

2002-08-03  Craig Black  <blackc@speakeasy.net>

	* src/display.c: (event_callback): Have ButtonPress and
	UnmapNotify events account for a null grab window, fixes #87896

2002-08-03  Gaute Lindkvist <lindkvis@linpro.no>

	Corrected some issues with the Bright theme. Mainly
	making sure the text does not clip, as well as increasing
	the size of the menu icon.
	
2002-08-01  Mark McLoughlin  <mark@skynet.ie>

	Implements support for _NET_WM_ALLOWED_ACTIONS.
	Fixes #84282.

	* src/display.[ch]: (meta_display_open): add
	_NET_WM_ALLOWED_ACTIONS atoms.

	* src/screen.c: (set_supported_hint): set them
	as being supported.

	* src/window.c:
	(set_allowed_actions_hint): impl setting
	_NET_WM_ALLOWED_ACTIONS.
	(recalc_window_features): use it here, but only
	if things have changed.

2002-08-01  Christophe Fergeau  <teuf@users.sourceforge.net>

	* src/metacity-dialog.c: focus the "Close" button by default on 
	the dialog which appears at exit when some apps can't be session
	managed

2002-08-01  Mark McLoughlin  <mark@skynet.ie>

	* src/session.c:
	(save_yourself_possibly_done): send a SaveYourselfDone
	if we're skipping this global save.
	(save_yourself_callback): don't not save session state
	if the save style is Global. Fixes #89390.

	* theme-format.txt: update.

2002-07-30  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Vietnamese (vi) to ALL_LINGUAS

2002-07-24  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Metabox theme from Garrett

	* README: updates

2002-07-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automaximize fullscreen
	windows.

2002-07-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't allow shading of
	border-only windows.

2002-07-24  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): look for themes in
	~/.themes/NAME/metacity-1/ and datadir/themes/NAME/metacity-1 
	instead of the old locations.

	* src/themes/Makefile.am: install themes to
	datadir/themes/NAME/metacity-1/ to match how GTK works, breaking 
	third-party themes yet again! woot!

2002-07-20  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): grab display across managing
	each screen; XGetInputFocus() on startup.

2002-07-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): disable configure 
	requests during a user move/resize operation, mostly a workaround 
	for stoopid apps.

2002-07-24  jacob berkman  <jacob@ximian.com>

	* configure.in: fix x11 header checks when x11 is not in the
	default include path

2002-07-23  Ross Burton  <ross@burtonini.com>

	* src/menu.c (meta_window_menu_new): Use the real workspace names
	instead of making up numbers.

2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/themes/Makefile.am (THEMES): put Gorilla back in the build

	* src/themes/Gorilla/metacity-theme-1.xml,
	src/themes/Crux/metacity-theme-1.xml: fixes from 
	Sebastien Delestaing so that these themes work properly with 
	different font sizes.

	* src/frames.c (get_control): patch from Balamurali Viswanathan 
	for #81984 (resize titlebar from the top not the bottom)

2002-07-23  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (meta_display_process_key_event): handle 
	NULL screen from screen_for_xwindow

	* src/display.c (meta_display_screen_for_xwindow): put an error
	trap around the XGetWindowAttributes(), should fix the popular 
	"closing a window results in a crash" bug.

	* src/util.c (print_backtrace): support optional backtrace
	feature using gnu libc backtrace() call

2002-07-15  jacob berkman  <jacob@ximian.com>

	* src/update-from-egg.sh: steal from profterm to fix build

2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_new): don't put a newline after
	the default workspace name

2002-07-13  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: adapt to virtual modifiers
	(meta_display_process_mapping_event): we need to reload the
	binding tables now when the modmap changes.

	* src/prefs.c (update_binding): parse virtual modifiers, not
	plain modmask

	* src/common.h (MetaVirtualModifer): new enum

	* src/ui.c (meta_ui_parse_accelerator): use
	egg_accelerator_parse_virtual()

	* src/Makefile.am: add eggaccelerators.[hc] for the virtual
	accelerator parsing function

2002-07-13  Christophe Fergeau <teuf@users.sourceforge.net>

	* configure.in: added fr to ALL_LINGUAS

2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c (warn_about_lame_clients_and_finish_interact):
	don't display the dialog if all the apps were session managed.

2002-07-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c: don't send SmInteractDone until the warning
	dialog about crappy clients has been closed.

2002-07-12  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): try to maximize windows that 
	are too big for the work area

	* src/place.c (find_next_cascade): don't let the cascade algorithm
	place windows off the screen, and fix it to always exhaustively
	search the window list for cascade parents.

2002-07-11  Havoc Pennington  <hp@pobox.com>

	* src/metacity-dialog.c (main): option to display error when a
	command fails to run.

	* src/keybindings.c (handle_run_command): run commands
	in response to keybindings.

	* src/prefs.c: add command keybinding stuff

	* src/metacity.schemas.in: add keybindings for running commands,
	and keys to store the commands themselves.

2002-07-10  Havoc Pennington  <hp@redhat.com>

	* src/display.c: properly attribute selection code to Matthias
	Clasen

2002-07-10  Havoc Pennington  <hp@pobox.com>

	* README: couple of updates

	* src/main.c (usage): add --replace to usage, reported by Matthias
	Clasen

2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: fix short description for 
	begin_resize, patch from Jayaraj, #87654

	* src/keybindings.c (handle_begin_resize): apply patch from
	Jayaraj to actually handle the begin resize keybinding.

2002-07-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): don't center vertically for 
	maximized windows that don't fill the screen, just leave them at
	the top.

2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c (selectable_workspace_new): increase the size of 
	the mini workspaces

2002-07-06  Havoc Pennington  <hp@pobox.com>

        Apply blackc@speakeasy.net patch, bug #83940, to do
	mini-workspaces similar to the pager, when switching 
	spaces.

	* src/window.c (update_net_wm_state): actually fill in
	wm_state_skip_taskbar, wm_state_skip_pager flags

	* src/tabpopup.c: support drawing a mini-workspace similar to the 
	one the pager draws.

	* src/stack.c (meta_stack_list_windows): new function to list 
	the windows in stacking order

	* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
	the ugly default app icon for workspaces 

	* src/display.c (event_callback): fix from blackc@speakeasy.net
	to avoid dereferencing a NULL grab window.

2002-07-06  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): put _NET_DESKTOP_NAMES in the 
	array of atom names, so desktop names might work and we don't read
	uninitialized memory.

	* src/main.c (main): add VERSION/timestamp verbose message.

	* src/keybindings.c: implement cycle_windows cycle_panels

	* src/metacity.schemas.in: add the cycle_windows cycle_panels
	keybindings

	* src/prefs.h (META_KEYBINDING_FOCUS_PREVIOUS): replace
	FOCUS_PREVIOUS key binding with CYCLE_WINDOWS and CYCLE_PANELS
	(not good names really, but I don't have ideas).

	* src/common.h: add a grab op for alt+esc window cycling

2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): Take Gorilla out until it gets
	repaired.

2002-07-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_wm_hints): Change default value of input
	hint (if not specified) to true instead of false. This is what 
	some clients assume, such as Visual SlickEdit.

2002-07-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show_menu): use new macros to get
	whether we allow move/resize correct

	* src/frame.c (meta_frame_get_flags): use new macros to get
	whether we can move/resize correct, considering
	maximized/fullscreen for the move case.

	* src/window.h (META_WINDOW_ALLOWS_RESIZE,
	META_WINDOW_ALLOWS_MOVE): new macros

	* src/keybindings.c (process_keyboard_resize_grab): finish the
	right/left resize, patch from Jayaraj #78179.

	Has the same old move/resize bug, if it hits a constraint it
	starts to break because we move without resizing.
	
2002-07-02  Mark McLoughlin  <mark@skynet.ie>

	* src/keybindings.c:
	(grab_keyboard), (ungrab_keyboard): rename from
	{un}grab_all_keys_and_keyboard and only do an XKeyboardGrab,
	the XKeyGrab isn't neccessary.
	(meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys),
	(meta_window_grab_all_keys), (meta_window_ungrab_all_keys):
	update for above change.
	(handle_workspace_switch): don't use a MetaWindow when
	workspace switching, use the root window instead.

2002-07-01  Mark McLoughlin  <mark@skynet.ie>

	Fix broken workspace switching from my previous commit.

	* src/display.c: (meta_display_begin_grab_op): don't
	leak a pointer grab if we fail to grab the keyboard.

	* src/keybindings.c: (meta_screen_grab_keys): check
	screen->all_keys_grabbed.
	(meta_screen_grab_all_keys): regrab our standard
	bindings if we fail.
	(handle_workspace_switch): revert to our previous
	behaviour of using the last focused window to do
	the grab upon. Only use the RootWindow if there
	isn't anything else to use.

	* src/screen.c: (meta_screen_new): initialise
	all_keys_grabbed.

2002-06-26  Mark McLoughlin  <mark@skynet.ie>

	Fixes not being able to tab out of a 
	workspace which contains no windows.

	* src/core.c: (meta_core_begin_grab_op): upd
	for meta_display_begin_grab_op change.
	(meta_core_get_grab_frame): allow for
	grab_window == NULL.

	* src/display.[ch]:
	(meta_display_screen_for_xwindow): implement.
	(meta_display_begin_grab_op): grab on the root window
	if window == NULL.
	(meta_display_end_grab_op): use grab_screen instead of
	grab_window.

	* src/keybindings.c:
	(grab_all_keys_and_keyboard): split out from
	meta_window_grab_all_keys.
	(ungrab_all_keys_and_keyboard): split out from
	meta_window_ungrab_all_keys.
	(meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys):
	implement grabbing and ungrabbing on the root window.
	(meta_display_process_key_event): if window == NULL,
	check the event is from the same screen and process. Only
	happens with workspace switching.
	(process_workspace_switch_grab): kill window param and
	don't use grab_window.
	(handle_tab_forward), (handle_begin_move): upd for
	meta_display_begin_grab_op change.
	(handle_workspace_switch): remove brokeness. Always do
	the grab op on the root window.

	* src/keybindings.h: add meta_screen_{un}grab_all_keys.

	* src/window.c: (meta_window_client_message), (menu_callback):
	update for meta_display_begin_grab_op change.

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/frames.c: (meta_frames_new):
	* src/tabpopup.c: (meta_ui_tab_popup_new):
	s/gdk_get_default_display/gdk_display_get_default/
	s/gdk_get_default_screen/gdk_screen_get_default/

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

	* src/themes/Crux/active-border-top-left-border.png:
	* src/themes/Crux/active-border-top-right-border.png:
	* src/themes/Crux/active-top-left-corner.png:
	* src/themes/Crux/active-top-mid-left-border.png:
	* src/themes/Crux/active-top-mid-right-border.png:
	* src/themes/Crux/active-top-right-corner.png:
	* src/themes/Crux/inactive-border-top-left-border.png:
	* src/themes/Crux/inactive-border-top-right-border.png:
	* src/themes/Crux/inactive-top-left-corner.png:
	* src/themes/Crux/inactive-top-mid-border.png:
	* src/themes/Crux/inactive-top-right-corner.png:
	* src/themes/Crux/metacity-theme-1.xml: added support
	for border only windows.

2002-06-24  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Added some stuff to
	the window buttons, so they use the ACTIVE bg/fg.

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

	* src/display.[ch]: (meta_display_open):
	  src/screen.c: (set_supported_hint), (set_work_area_hint):
	Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-)

2002-06-25  Mark McLoughlin  <mark@skynet.ie>

	* src/screen.[ch]:
	(update_num_workspaces), recalc workarea hint when
	new workspaces created. Fixes bug that workarea
	not calculated until first non-dock window is
	mapped.
	(set_work_area_hint), (set_work_area_idle_func),
	(meta_screen_queue_workarea_recalc): move all this
	stuff from workspace.c.

	* src/workspace.c: (meta_workspace_invalidate_work_area):
	use meta_screen_queue_workarea_recalc.

2002-06-23  Gediminas Paulauskas <menesis@delfi.lt>

	* src/themes/Bright/metacity-theme-1.xml: Update with border-only
	window stuff from Atlanta.

2002-06-22  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Update for "border"
	frame stuff, minor button/spacing improvements.

2002-06-22  Havoc Pennington  <hp@pobox.com>

	Partially fix Jacob's SM bugs.
	
	* src/window.c (meta_window_apply_session_info): restore the extra
	stuff we're saving, except stack position I didn't figure out yet.

	* src/session.c: save stack position, minimized, maximized, 
	in the session file.

2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (set_number_of_spaces_hint): do nothing if
	screen is being unmanaged, we don't want to blow away state, 
	we want to remember it for the next window manager.

2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_screen_ensure_workspace_popup): rename
	from meta_workspace_ensure_tab_popup, and use workspace->name
	instead of a hardcoded name

2002-06-22  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_list): new utility function

	* src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom
	(event_callback): update workspace names when the property changes

	* src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES
	(nothing to do really)

2002-06-21  Havoc Pennington  <hp@pobox.com>

        Theme breakage! Themes have to implement "border" frames 
	now, see Atlanta for an example. Fixes #84285
	
	* src/tools/metacity-window-demo.c (do_appwindow): add a
	border-only window

	* src/window.c (update_mwm_hints): read border only from the MWM
	hints

	* src/window.h (struct _MetaWindow): add border_only flag

	* src/core.c (meta_core_get_frame_type): report border type if
	required

	* src/common.h (enum): add META_FRAME_TYPE_BORDER

2002-06-20  Mark McLoughlin  <mark@skynet.ie>

	* src/window.c: (meta_window_visible_on_workspace): sticky
	windows aren't visibile on all screens. Check the workspace
	is on the same screen as the window.
	
	* src/workspace.c: (meta_workspace_list_windows): use
	meta_window_visible_on_workspace here.

2002-06-19  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN
	keyboard resizing state

	* src/keybindings.c (process_keyboard_resize_grab): implement
	keyboard resize key handling somewhat (only vertical resize works, 
	left/right arrow not implemented, and visual feedback of the 
	edge we're resizing isn't implemented)

	* src/window.c (menu_callback): start keyboard resize grab when 
	it's chosen from the menu

2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_get_default_focus_window): don't use a
	minimized window as the next focus window, patch from 
	blackc@speakeasy.net

2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/place.c (find_next_cascade): increase the cascade threshold
	a bit.
	(find_first_fit): implement a somewhat lame first fit algorithm

2002-06-17  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): fix from Gaute
	Lindkvist #82977 for unsticking windows

2002-06-17  Frederic Crozat  <fcrozat@mandrakesoft.com>

	* src/metacity.schemas.in: associate close_window keybinding to 
	Alt-F4

2002-06-16  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): fix spelling error, #85452

2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_display_process_key_event): don't pass a
	null string to printf

	* src/display.c (key_event_description): don't pass a null string 
	to printf

	* src/keybindings.c (meta_set_keybindings_disabled): allow
	enable/disable keybindings regardless of debug mode.

2002-06-15  Havoc Pennington  <hp@pobox.com>

	* src/draw-workspace.h, src/draw-workspace.c: workspace-drawing
	code factored out of libwnck, needs wiring up to tabpopup.c
	(which is kind of annoying since you have to get the list of
	workspaces and MetaWindow across the barrier between the GDK-aware
	and non-GDK-aware sides of metacity)

2002-06-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): always focus new windows, 
	trying to be smart about it was a flop.

2002-06-14  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/delete.c (io_from_ping_dialog): Check for NULL string
	before calling strlen(). Fixes the core dump issue reported in #84873.

2002-06-13  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_frame_layout_calc_geometry): Set client height
	as 0 when the window actually is shaded, not the other way around.

2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): when a window is
	shaded, don't include client height in the height calculation.

	* src/workspace.c (meta_workspace_get_neighbor): apply fix from 
	Mads Villadsen for the Up arrow key, #84582

2002-06-12  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_style_draw): Draw the buttons right
	before the "overlay" piece.

2002-06-12 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/tools/metacity-properties.glade: accessibility work for
	metacity-properties capplet. Set appropriate atk relations.
	Fixes bug #84749

2002-06-11  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): allow dialogs to steal focus
	from panels/desktop

2002-06-10 Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/fixedtip.c: include <config.h> - fix for #83960

2002-06-10 Erwann Chenede - <erwann.chenede@sun.com>

        * src/keybindings.c : (handle_close_window, handle_minimize_window)
	verify the active window has the appropriate close/minimize function
	before closing or minimizing the window.
			
2002-06-09  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.3.987

2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch
	condition, patch from Gustavo Giraldez, avoids another 100% CPU
	thingy

2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): don't run constrain_placement
	on windows we allow to go anywhere (docks, etc.). Fixes
	positioning of panel windows in certain cases.

2002-06-09  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_button_press_event): don't raise/focus
	the window if minimize/close are clicked, patch from Gaute
	Lindkvist #75460

2002-06-08  Havoc Pennington  <hp@pobox.com>

        Cleanups to workspace popup patch. Space before all parens
	in a couple places.
	
	* src/prefs.c (meta_prefs_get_keybinding_action): fix brace
	indentation, and use while instead of for loop. Take a "mask"
	argument to avoid ambiguity issues.

	* src/keybindings.c (handle_workspace_switch): rename from
	handle_workspace_forward since there's no directionality here	
	(handle_workspace_switch): add a FIXME about how screwed it is
	that we need a window in order to do our grab. Should be able to 
	grab on a dummy window like no_focus_window or the root window.
	(process_workspace_switch_grab): rename from tab_grab for clarity, 
	no tab involved here.

	* src/common.h (enum): have only one grab op for all workspace
	switching directions, instead of one for each.
	
2002-06-08  Havoc Pennington  <hp@pobox.com>

	Apply big patch from blackc@speakeasy.net adding a popup window 
	to the Ctrl+Alt+arrows shortcuts. #83940

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): select key press/release on the
	display->no_focus_window, another attempted fix for not getting
	keybindings when no window is focused. Still doesn't seem to work
	though. I don't get what's going wrong.
	(meta_create_offscreen_window): new function, used instead of
	XCreateSimpleWindow so we get override redirect offscreen windows.

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): set net_supporting_wm_check 
	in addition to win_supporting_wm_check, patch from 
	JeyaSudha for #83365

	* src/screen.c (set_wm_check_hint): remove setting
	win_supporting_wm_check on leader window here, done already in
	display.c

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_window_ungrab_keys): set keys_grabbed to
	FALSE, patch from Jayaraj for #81857

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom
	name

	* src/display.c (meta_display_close): don't unmanage windows here,
	do it in screen_free and then closing the display unmanages
	windows as a side effect of unmanaging the screen
	(meta_display_unmanage_screen): new function
	(process_selection_clear, process_selection_request): handle
	selection stuff
	(meta_spew_event): don't crash on client message containing
	invalid atom
	(meta_spew_event): don't crash on property notify with invalid
	atom

	* src/main.c (main): add --replace option to replace existing
	window manager.	

	* src/screen.c: implement holding manager selection.

	* src/display.c (meta_display_open): add new selection-related
	atoms.

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): select keypress/keyrelease
	events on root window, this may fix the bug where keybindings
	didn't work if you didn't have a focused window.

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): call meta_session_shutdown when exiting
	cleanly

	* src/session.c (meta_session_shutdown): function to change use to
	RestartIfRunning
	(meta_session_init): change normal restart hint to
	RestartImmediately

2002-06-08  Havoc Pennington  <hp@pobox.com>

        Yeah I know maximization is broken, I'm too tired to fix it. 
	Probably because of the change to update_struts() that was 
	supposed to fix the 100% CPU bug.
	
	* src/place.c (meta_window_place): don't run docks and things
	through the placement algorithm. Thought it might fix
	metacity-window-demo but it didn't.
	
	* src/window.c (constrain_size): only get work area when needed
	(meta_window_new): init the do_not_cover field

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_xinerama_for_window):
	short-circuit the "only one xinerama" case, and use outer rect of
	window instead of window->rect, so we get root window coords.
	
	* src/theme.c (meta_frame_layout_get_borders): if fullscreen all
	frame edges are zero-width.

	* src/frame.c (meta_frame_get_flags): init fullscreen flag.

	* src/common.h (enum): add META_FRAME_FULLSCREEN frame flag

	* src/place.c: fix up calls to meta_window_get_work_area

	* src/window.c (meta_window_get_work_area): add an arg for whether
	the work area is for the screen or the xinerama subscreen.
	(constrain_position): fix up calls to meta_window_get_work_area
	(constrain_size): ditto

	* src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA
	environment variable which simulates xinerama on a single head.

2002-06-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_struts): only invalidate things if the
	struts actually change, since the panel likes to set them over and
	over. May fix the infinite loop that caused 100% CPU usage.

2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): use XineramaIsActive() not
	XineramaQueryExtension()

2002-06-07  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_get_current_xinerama): don't return
	null on non-multihead

2002-06-06  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_get_current_xinerama): implement

	* src/place.c (meta_window_place): cascade windows on the active
	Xinerama screen

	* src/window.c (meta_window_move_resize_internal): strip out the
	#if 0 cruft about guessing fullscreen mode
	(constrain_position, constrain_size): fullscreen/maximize to the
	Xinerama head, not the whole screen
	(meta_window_get_work_area): autocreate struts at the Xinerama
	physical screen edges for the screen the window is on.

	* src/screen.c (meta_screen_get_xinerama_for_window): someone
	snuck in a for loop, fix it. ;-)

2002-06-06  James M. Cape <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Increase the border size
	of the buttons so they aren't quite so huge on my box. Also get
	a *little* closer to finally fixing the horizontal line behind
	the icon. It now works decently with common font sizes (in pixels).

2002-06-05  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_color_spec_new_from_string): parse 
	"shade/foo/factor" as a color
	(colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa
	stuff, add the gtk_style_shade stuff.
	(meta_color_spec_render): render the shaded color spec

	* src/theme.h (struct _MetaColorSpec): add "shade" mode to 
	MetaColorSpec.

2002-06-04  Seth Nickell  <snickell@stanford.edu>

	* src/metacity.desktop.in:

	Add X-GnomeWMSettingsLibrary to desktop file to support new
	Window capplet.

2002-06-04  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_wm_hints): fix for how we read the input
	hint, from Hidetoshi Tajima

	(meta_window_show): from Hidetoshi, don't autofocus windows with
	input = FALSE wm_take_focus = FALSE when they first appear. We do
	allow these windows to be focused (so keynav works), but they
	don't get focused automatically. Now how do we keep them out of
	the task list?

2002-06-04  Gustavo GirÃï¿½¡ldez  <gustavo.giraldez@gmx.net>

	* src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's
	fill_type when type is META_DRAW_ICON.

2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): don't automatically fullscreen
	things opened fullscreen, because there's no GUI to un-fullscreen
	them.

2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c (parse_aspect_ratio): fix error message about
	bad aspect ratio name.

2002-06-03  Havoc Pennington  <hp@pobox.com>

	* src/themes/Esco/metacity-theme-1.xml: test button aspect ratio
	instead of hardcoded button size, James feel free to revert if you 
	don't like it this way.

	* src/theme-parser.c: parse the aspect_ratio element for button 
	aspect ratios.

	* src/theme.h (struct _MetaFrameLayout): allow button sizes to be 
	given as an aspect ratio derived from the titlebar height, 
	instead of as a fixed size.

	* src/theme.c (meta_frame_layout_validate): validate new button
	sizing parameters

	* src/theme.c (meta_frame_layout_calc_geometry): use new button
	layout params
	
Mon Jun  3 15:12:11 2002  HideToshi Tajima  <hidetoshi.tajima@sun.com>

	* configure.in (METACITY_LIBS): put -lXext into SHAPE_LIBS

2002-06-03  Kjartan Maraas  <kmaraas@gnome.org>

	* src/tools/metacity-properties.desktop.in: Someone forgot to mark
	the two strings in here for translation :)
	
2002-06-02  Havoc Pennington  <hp@pobox.com>

	* configure.in: 2.3.610

2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_finalize): move the remove_listener
	to finalize instead of destroy, thanks to Jayaraj for tracking 
	down the bug.

2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: add some missing \n
	(meta_session_init): remove the #if 0 interact callback from our
	initial SmcOpenConnection call, this arg to SmcOpenConnection
	doesn't exist.

2002-06-01  Havoc Pennington  <hp@pobox.com>

	* src/session.c: put in more debug spew about the session

2002-05-30  Havoc Pennington  <hp@pobox.com>

	* src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale
	for localedir to work with Solaris native gettext, patch from
	Hidetoshi Tajima

	* src/tools/Makefile.am: ditto

2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c: add MetaImageFillType and implement TILE in
	addition to the existing SCALE

	* src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha"
	field

2002-05-31  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (multiply_alpha): now just uses
	meta_gradient_add_alpha
	(draw_op_as_pixbuf): implement alpha gradients for tint, gradient,
	and image draw ops, so I can implement garrett's stuff.

	* src/gradient.c (meta_gradient_add_alpha): new function to
	multiply the alpha channel of a pixbuf by an alpha gradient

2002-05-30  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): verbose-log on startup whether we were
	compiled with various extensions

	* src/display.c (meta_display_queue_retheme_all_windows): reapply
	shape mask when changing themes, sucks to do it here though, makes
	theme changing slower. Needs fixing.

	* src/theme-parser.c (parse_toplevel_element): parse rounded
	corner options to frame_geometry

	* src/frames.c (meta_frames_apply_shapes): apply rounded corners
	if requested by the theme

	* configure.in (HAVE_SHAPE): check for shape extension

2002-05-30  Stephen Browne <stephen.browne@sun.com>

	* src/tools/metacity-properties.c:
	Some day I'll make all my changes in one commit :)
	Needed to rip out code for adding icon to the dialog since it was
	removed from teh galde file in my previous change.

2002-05-30  Stephen Browne <stephen.browne@sun.com>

	* src/tools/metacity-properties.glade:
	Some UI changes demanded by Pat and Calum.
	Make Close default response
	Change mnemonic for Click so as not to clash with Close

2002-05-30  Stephen Browne <stephen.browne@sun.com>

	* src/tools/metacity-properties.glade: changed window title
	to match other control center dialogs

2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): improve error about failing
	to open session manager.
	(shutdown_cancelled_callback): send SmcSaveYourselfDone when we
	get cancelled
	(interact_callback): implement an interact callback that complains
	about lame clients that can't be saved. Still somewhat buggy 
	in that it sends InteractDone before the user has closed the 
	dialog.

2002-05-29  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-mag.c: add a magnifier I'm using when making
	themes. Not installed.
	
	* src/tools/metacity-properties.c: reindentation, show window, add
	copyright info.

	* src/tools/metacity-properties.glade: make main window !visible
	on startup, to avoid funkiness.

2002-05-29  Jacob Berkman  <jacob@ximian.com>

	* src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files

2002-05-29 Stephen Browne <stephen.browne@sun.com>

	New simple metacity-properties dialog to configure focus mode
	and auto raise.

	* configure.in: added build support for metacity-properties
	* src/tools/Makefile: more build stuff
	* src/tools/metacity-properties.c: added these files
	* src/tools/metacity-properties.glade:
	* src/tools/metacity-properties.desktop.in:
	* src/tools/metacity-properties.png:

2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): add code to
	also guess that client wants to come out of fullscreen, then 
	#if 0 the whole deal, I'm not sure it's such a good idea.

2002-05-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_internal): guess if a
	window meant to be fullscreen, and if so put it in that state.

2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (redraw_icon): handle missing frame, prevents segv
	with undecorated windows. #83298

2002-05-28  Havoc Pennington  <hp@pobox.com>

        Patch from Erwann Chenede for raise_or_lower keybinding
	
	* src/display.c, src/common.h: POINT_IN_RECT moved to a common
	location, removed from here
	(meta_rectangle_intersect): move here and make it public

	* src/prefs.c: add raise_or_lower keybinding
	
	* src/stack.c (meta_stack_get_below, meta_stack_get_above): add an
	arg to only get windows within the same layer

	* src/keybindings.c (handle_raise_or_lower): add handling for a 
	"raise window if obscured, else lower" keybinding

2002-05-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): handle CWStackMode
	in configure requests
	(meta_window_new): if a window is opened at 0,0 and screen size,
	put it in the fullscreen state.
	(meta_window_new): remove old code that set the window position to 
	0,0 if PPosition/USPosition unset, that will be handled by whether 
	we place the window or not.

2002-05-28  Abel Cheung  <maddog@linux.org.hk>

	* configure.in: Added "zh_TW" to ALL_LINGUAS.

2002-05-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): search for the window's screen 
	by root window instead of Screen*, maybe it will help with 
	bug #82664

2002-05-27  Kjartan Maraas  <kmaraas@gnome.org>

	* autogen.sh: Hook up intltoolize here.
	* configure.in: Initialize intltool.
	* src/metacity.schemas.in: Add this.
	* src/metacity.desktop.in: Add this too
	* src/Makefile.am: Hook up intltool support for .schemas and .desktop.
	* Makefile.am: Dist the intltool files.
			
2002-05-27  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Gorilla/metacity-theme-1.xml: Apparently someone
	thinks my name is Anders Carlsom. Well, it's not.
	(Thanks to Carl-Johan Kjellander for noticing.)

2002-05-26  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Remove borders from
	Esco theme as well (didn't know you could), apparently fixed
	the problem where the spacing between the icon & the title
	got larger as the fontsize went up.

2002-05-26  Havoc Pennington  <hp@pobox.com>

	* src/themes/Atlanta/metacity-theme-1.xml: totally drop the
	borders off of maximized windows.

2002-05-26  Havoc Pennington  <hp@pobox.com>

        Patch from Gaute Lindkvist so you can't move the panel or desktop
	to only one workspace.
	
	* src/keybindings.c (handle_move_to_workspace): don't allow moving
	window to another space if the window is always_sticky

	* src/window.c (recalc_window_features): set the always_sticky
	field for desktop/dock windows.
	(meta_window_show_menu): disable unsticking always sticky windows
	via the menus

	* src/menu.c (meta_window_menu_new): disable workspace items 
	if requested

2002-05-26  Matthias Warkus  <mawarkus@gnome.org>

	* po/de.po: Added.
	* configure.in: de added to ALL_LINGUAS

2002-05-25 Erwann Chenede - <erwann.chenede@sun.com>

	* src/keybindings.c (rebuild_screen_binding_table,
			     rebuild_window_binding_table,
			     meta_change_keygrab): allow key grabbing for 
	unmodified keys (e.g F1, etc) fix #82630
	
2002-05-25  Anders Carlsson  <andersca@gnu.org>

	* src/place.c: (get_vertical_edges), (get_horizontal_edges):
	Take Xinerama screen edges into consideration.
	
	* src/screen.c: (meta_rectangle_intersect),
	(meta_screen_get_xinerama_for_window):
	* src/screen.h:
	Add a new function that returns the xinerama monitor that 
	a window is on.
	
2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (menu_callback): follow windows to their new
	workspace

	* src/keybindings.c (handle_move_to_workspace): follow windows to
	their new workspace

2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas: add minimize window binding

	* src/keybindings.c (handle_minimize_window): add minimize keybinding

2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): change how focusing windows 
	on initial map works, so that we only steal focus from our 
	transient parent or from a panel/desktop, never from other 
	normal windows.

2002-05-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): modify to ignore
	PPosition and USPosition once the window has been placed

2002-05-24  Anders Carlsson  <andersca@gnu.org>

	* src/window.c: Redraw the window frame when the icon changes.
	Fixes #78543, reported by Kang Jeong-Hee.
	
2002-05-23  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): also filter out LeaveNotify 
	with NotifyInferior

2002-05-23  Jayaraj Rajappan <jayaraj.rajappan@wipro.com>

	* src/display.c (event_callback): fix for bugzilla bug #72314,
	filter out LeaveNotify caused by grabs when in mouse focus mode.

2002-05-23  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas: clean up the font preference

	* src/prefs.c: font pref

	* src/frames.c: pay attention to the font pref
	
2002-05-23  Havoc Pennington  <hp@pobox.com>

        Crack from Erwann
	
	* src/metacity.schemas: add autoraise crackrock

	* src/display.c (event_callback): autoraise window if autoraise is
	enabled

	* src/prefs.c: autoraise crack
	
2002-05-21  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): fix positioning in fullscreen
	mode, patch from Gustavo GirÃï¿½¡ldez

2002-05-20  Alessio Frusciante  <algol@firenze.linux.it>

	* configure.in: Added Italian to ALL_LINGUAS. 

2002-05-20  Pablo Saratxaga  <pablo@mandrakesoft.com>

	* configure.in: Added Catalan (ca) and Azeri (az) to ALL_LINGUAS

2002-05-17  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.3.377

2002-05-16  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): fix it, maybe

2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): lock desktop to position 0,0

2002-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_show): don't focus dock, desktop,
	etc. windows on initial map, only windows that should have focus.

2002-05-15  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): use the layout
	information to figure out up/down neighbors

	* src/display.c (event_callback): catch propertynotify on 
	_NET_DESKTOP_LAYOUT

	* src/screen.c (meta_screen_update_workspace_layout): keep track
	of the layout of workspaces as set by the pager

2002-05-15  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize
	button.

2002-05-14  Havoc Pennington  <hp@pobox.com>

	* src/themes/Makefile.am (THEMES): add Esco theme from James Cape

2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/place.c (meta_window_place): move pposition/usposition
	honoring code into here, instead of putting it in window.c. 
	Makes focusing new windows work, and cleans things up a bit.
	#81585

2002-05-12  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): turn on --g-fatal-warnings if 
	METACITY_G_FATAL_WARNINGS env variable is set.

2002-05-11  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (find_tab_forward), (find_tab_backward),
	(meta_display_get_tab_next):
	* src/display.h:
	* src/keybindings.c: (handle_tab_forward), (handle_focus_previous):
	Add screen argument to meta_display_get_tab_next, since we only
	want windows on the same screen to appear in the tab chain.

	* src/screen.c: (meta_screen_new):
	Or the event mask with existing events since gtk+ may listen to
	certain events and we don't want to disable those events.
	
	(meta_screen_ensure_tab_popup):
	* src/tabpopup.c: (meta_ui_tab_popup_new):
	* src/tabpopup.h:
	Add a screen number argument to meta_ui_tab_popup_new so we
	can position the popup on the correct screen.

2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/main.c: include locale.h, fix from Hidetoshi Tajima

	* src/window.c (meta_window_new): disable show desktop mode when a
	new window is managed.

2002-05-11  Havoc Pennington  <hp@pobox.com>

	* src/fixedtip.c (meta_fixed_tip_show): keep the tooltip 
	on the screen horizontally, #76825

	* src/window.c (meta_window_handle_mouse_grab_op_event): end grab
	op _after_ doing the final update of the move or resize.
	Hopefully I didn't have a reason for the order I was using before.

2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/tools/metacity-window-demo.c: add override redirect test
	window

	* src/stack.c (raise_window_relative_to_managed_windows): new
	function, used to avoid moving windows above override redirect 
	popup windows.
	
	* src/display.c (event_callback): don't lower panels on
	LeaveNotify if they have focus, #70895

2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): when maximizing/fullscreening
	something with a grid, like a terminal, center it in the
	maximization area in case it can't fill the whole area.
	#70554

	* src/main.c (main): use g_strerror() to get proper UTF-8.

2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (reload_modmap): put LockMask into the
	ignored_modifier_mask so that caps lock doesn't mess up 
	keybindings.

2002-05-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_focus): if window is not mapped after
	the calc_showing, don't focus it, it's probably on another
	workspace or something.

2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (show_tip_now): DefaultScreen() returns the screen
	number not Screen*

	* src/frame.c (meta_frame_sync_to_window): immediately repaint
	frame whenever we resize it, if we're inside a grab operation.

	* src/frames.c (meta_frames_repaint_frame): new function

	* src/window.c (meta_window_new): initialize window's colormap
	(meta_window_notify_focus): install the colormap for a window when 
	it gets focus, uninstall on unfocus.

	* src/window.h (struct _MetaWindow): store window's colormap

	* src/display.c (event_callback): note changes to window colormap

	* src/frame.c (EVENT_MASK): add ColormapChangeMask

2002-05-09  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): make Alt+button2 do a resize

2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* src/fixedtip.c (meta_fixed_tip_show): 
	#ifdef out call to gtk_window_set_screen, reported by
	Erwann Chenede.
	
2002-05-08  Anders Carlsson  <andersca@gnu.org>

	* configure.in:
	* src/display.c: (meta_display_open):
	* src/fixedtip.c: (meta_fixed_tip_show):
	* src/fixedtip.h:
	* src/frames.c: (meta_frames_new), (show_tip_now):
	* src/frames.h:
	* src/menu.c: (meta_window_menu_new):
	* src/ui.c: (meta_ui_new):
	Add multi-screen support. Also add patch by Erwann Chenede
	to make tooltips appear on the correct screen.
	
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* src/workspace.c (set_work_area_hint): Doh, only update
	the tmp pointer when the screen matches. Fixes a segfault
	when running with multiple screens.

	* src/display.c: (meta_display_open), (event_callback),
	(meta_display_update_show_desktop_hint):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Fix atom name; it's _NET_SHOW_DESKTOP, not 
	_NET_WM_SHOW_DESKTOP.
	
	* src/frames.c: (meta_frames_unmanage_window):
	Restore the mouse cursor to default when unmanaging a window.
	
2002-05-06  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (set_utf8_string_hint):
	Fix an off-by-one error.

	(meta_display_open),
	(event_callback), (meta_display_update_show_desktop_hint),
	(meta_display_show_desktop), (meta_display_unshow_desktop):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	Add support for _NET_WM_SHOW_DESKTOP, both as a message and
	as a root window property.
	
2002-05-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_unminimize): on unminimize, queue 
	calc_showing on all transients
	(meta_window_activate): on activate, unminimize all a window's 
	ancestors, not just the window itself.

	* src/workspace.c (set_work_area_hint): don't increment "tmp" by
	16 unsigned long, increment by 4

	* src/window.c (meta_window_free): if a window isn't minimized, 
	restore its WM_STATE to NormalState instead of IconicState, 
	since IconicState on initial window map means that the window 
	should be minimized.

	* src/workspace.c (meta_workspace_invalidate_work_area): queue an
	idle to recompute the work area hint.
	(set_work_area_hint): we need 4*num_workspaces ints, not just
	num_workspaces.

	* src/screen.c (meta_screen_new): add work_area_idle field, 
	handle it on screen shutdown

	* src/common.h (META_PRIORITY_PREFS_NOTIFY,
	META_PRIORITY_WORK_AREA_HINT): define some idle priorities

	* src/window.c (meta_window_calc_showing): hide windows if 
	their parent window is minimized
	(meta_window_minimize): also queue_calc_showing on all 
	transients of the window being minimized

	* src/place.c (constrain_placement): function to apply
	placement-time-only constraints, such as "not off the left of the
	screen"
	(meta_window_place): put dialogs down a bit over their parent, 
	not right at the top.
	(meta_window_place): when centering a dialog, center it 
	on the current xinerama screen, rather than the entire 
	screen.

	* src/screen.c (meta_screen_get_current_xinerama): new function,
	but not implemented
	
2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_paint_to_drawable): chop out the 
	portion of the region that's outside the screen.

	* src/core.c (meta_core_get_screen_size): new function
	(meta_core_get_frame_extents): new function

2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_init): disable automatic GTK double
	buffering, since it resulted in gigantic backing pixmaps the size
	of the whole screen.
	(meta_frames_paint_to_drawable): change to take a region argument;
	punch the client area out of the expose region, then iterate over
	rectangles in the region and draw each, manually doing 
	begin_paint_rect. Results in 4 long thin backing pixmaps 
	per frame repaint, instead of one large backing pixmap. 
	Suggested by Owen.

2002-05-05  Bastien Nocera  <hadess@hadess.net>

	* src/workspace.c: (meta_workspace_get_neighbor):
	Wrap-around workspaces (ie. when on the last workspace,
	"switch_to_workspace_right" goes back to the
	first one)

2002-05-05  Anders Carlsson  <andersca@gnu.org>

	* src/metacity.schemas: Fix a spelling error and change 
	switch_to_workspace_up and switch_to_workspace_down to use
	Ctrl+Alt since Nautilus uses Alt now.

2002-05-04  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_net_wm_type): correctly print things if the
	type_atom is unset
	(meta_window_new): with workarounds disabled, always allow 
	self-placement for windows with PPosition or USPosition set.

2002-05-03  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko 

2002-05-03  Laszlo Peter  <laca@sun.com>

	* configure.in: add the X libs to METACITY_MESSAGE_LIBS and
	METACITY_WINDOW_DEMO_LIBS

2002-05-02  Havoc Pennington  <hp@redhat.com>

	* README: updates

	* configure.in: 2.3.233

2002-05-02  Bastien Nocera  <hadess@hadess.net>

	* src/metacity.schemas: change the default for switch_to_workspace_*
	to be <Control><Alt>arrow as just <Alt>arrow collides with some apps
	(especially web browsers)

2002-05-01  Havoc Pennington  <hp@redhat.com>

	* src/screen.c (meta_screen_new): Xlib doesn't like NULL for out
	arguments; fix for #80472 from lbedford

2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: finish mopping up mode_switch_mask field

	* src/display.h (struct _MetaDisplay): remove mode_switch_mask 
	field

2002-04-30  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): don't try to decorate
	toolbars.

	* src/tools/metacity-window-demo.c: add menu and toolbar tests

	* src/place.c (meta_window_place): only dialogs should be centered
	over parent, not anything with transient for set.

	* src/window.c (meta_window_configure_request): become more
	fascist about window positioning if workarounds are disabled, and
	less fascist if they are enabled.

	* src/metacity.schemas: add a "disable_workarounds" option.  Kind
	of crack-smoking. But we just can't get all applications
	fixed. And I need no-workarounds mode to monitor which apps are
	broken and what needs fixing in specs.
	
	* src/window.c (meta_window_configure_request): always allow 
	windows to resize themselves

	* src/keybindings.c (reload_modmap): don't filter out Mode_switch,
	apparently some people bind window manager shortcuts to that.

2002-04-30  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_position): oops, fix
	maximization. Pointed out by Gustavo GirÃï¿½¡ldez

Tue Apr 30 06:24:09 2002  Jonathan Blandford  <jrb@gnome.org>

	* src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same
	mnemonic for consistency's sake.

2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels
	onscreen so you typically get a sliver of titlebar, suggested by
	tigert.  Should still fix this to consider actual theme geometry.
	(constrain_position): change to allow movement off the left

2002-04-29  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): always raise windows on focus
	click, regardless of focus mode.

2002-04-29  Havoc Pennington  <hp@redhat.com>

	* configure.in: 2.3.144

2002-04-29  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): don't leak the PangoContext

2002-04-28  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (meta_display_open):
	* src/display.h:
	* src/screen.c: (set_supported_hint):
	* src/workspace.c: (set_number_of_spaces_hint),
	(set_workarea_hint):
	Add support for setting the _NET_WM_WORKAREA hint. No code
	does it yet though.
	
2002-04-28  Havoc Pennington  <hp@pobox.com>

	* README: remove caveats about keybindings

	* src/metacity.schemas: add schemas for all the keybindings.
	
	* src/window.c (meta_window_activate): if in "show desktop" mode 
	when a window is activated, leave show desktop mode. So e.g. 
	when you click on a task in the task list, show desktop mode 
	will be turned off.

	* src/workspace.c (meta_workspace_get_neighbor): new function
	that doesn't quite work yet (needs support for getting 
	workspace layout from the pager)

	* src/prefs.c: keybindings stuff

	* src/keybindings.c: make keybindings configurable

	* src/ui.c (meta_ui_parse_accelerator): new function

2002-04-25  Havoc Pennington  <hp@redhat.com>

	* metacity.spec: fix to install gconf schemas

2002-04-25  jacob berkman  <jacob@ximian.com>

	* src/session.c (load_state): g_file_get_contents() takes a gsize
	not int (fixes bus error on 64-bit platforms)

2002-04-22  Havoc Pennington  <hp@redhat.com>

	* src/main.c (main): call setlocale ourselves because due to a
	GLib bug that sticks us in ASCII if you call g_print or anything
	prior to setlocale, and print a warning if we don't set the locale
	successfully. #79280

	* src/workspace.c (meta_workspace_get_work_area): be more verbose
	about how the work area was computed, to help find bugs here.

	* src/main.c (main): put locale and codeset in the log file

2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_send_icccm_message): add error trap,
	fixes a possible BadWindow if a window closed itself in response
	to the delete window message prior to us sending the ping message.

2002-04-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_move_resize_now): never revert to
	user_rect.width, user_rect.height. Maybe fixes assorted resize
	screwups e.g. with gnome-terminal.

2002-04-21  Anders Carlsson  <andersca@gnu.org>

	* src/iconcache.c (scaled_from_pixdata): Add padding if
	icon width and height differ.

2002-04-17  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): query Xinerama screen
	information if HAVE_XINERAMA

	* configure.in (found_xinerama): check for Xinerama

2002-04-17  Changwoo Ryu  <cwryu@debian.org>

	* configure.in (ALL_LINGUAS): Added ko (Korean).

2002-04-16  Akira TAGOH  <tagoh@gnome.gr.jp>

	* configure.in (ALL_LINGUAS): add ja.po entry.

2002-04-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_title): fix issue with GNU libc 
	mangling %.10s format

	* metacity.spec: Fix up spec file

	* README: update README

	* configure.in (ALL_LINGUAS): require GTK 2.0.0

2002-04-15  Havoc Pennington  <hp@redhat.com>

	* src/display.c (meta_display_ping_window): reply immediately for 
	windows that don't support _NET_WM_PING

	* src/window.c (update_protocols): check whether windows 
	support _NET_WM_PING

2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): same fix as libwnck, avoid using cmap 
	with the wrong depth

2002-04-13  Havoc Pennington  <hp@pobox.com>

	* src/delete.c: new file containing all the 
	wacky mess I just added to a simple "click the close button", 
	contains all the dealing-with-dead-application cruft.
	Use metacity-window-demo to test by clicking the 
	toolbar button that locks it up.

2002-04-12  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (do_appwindow): make one of the
	toolbar buttons lock up the demo

	* src/window.c (meta_window_delete): move error trap to be around
	a narrower part of the function, and add part of the ping stuff, 
	nothing user-visible yet

	* src/metacity-dialog.c (main): metacity-dialog executable to 
	live in libexecdir and pop up dialogs for us.

2002-04-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (multiply_alpha): fix alpha multiplication routine
	to perhaps work correctly, reported by tigert. Also, be sure 
	we always copy the image if necessary before modifying the 
	alpha channel.

2002-04-05  Havoc Pennington  <hp@pobox.com>

	* src/stack.c: remove the unused tab stuff

	* src/display.c: implement tab list among panels

	* src/keybindings.c: fill in move-between-panels keybindings

2002-03-31  Johan Dahlin  <jdahlin@telia.com>

	* src/menu.c (meta_window_menu_new): Make sure all menu items are
	translated.

2002-03-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): remove 
	unmanaged windows from save set, and unselect 
	input so we don't get events from them. Fixes annoying 
	bug where withdrawn windows would decide to map themselves
	due to save set stuff.

2002-03-22  Zbigniew Chyla  <cyba@gnome.pl>

	* configure.in (ALL_LINGUAS): Added pl (Polish).

2002-03-21  Havoc Pennington  <hp@pobox.com>

	* src/themes/Bright/metacity-theme-1.xml: Added "Bright" theme
	from Gaute Lindkvist, with some small clipping tweaks to keep 
	text/icons from overlapping their frames.

2002-03-19  Havoc Pennington  <hp@redhat.com>

	* src/resizepopup.c (place_vertical_size_window) 
	(place_horizontal_size_window): disable the little shaped windows
	with the window size, they caused a crash anytime you tried to
	resize with Xft. And they were kind of on crack anyway.

2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c (ensure_tick_windows): turn off the tick
	marks, that got annoying after about 5 minutes. One big shape 
	window instead of lots of little windows might fix it.

2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/resizepopup.c: Add some total crackrock resize-grid 
	indication for windows that have width_inc/height_inc
	so I can debug gnome-terminal sizing.

2002-03-17  Havoc Pennington  <hp@pobox.com>

	* src/session.c (set_clone_restart_commands): use proper property
	name for SmDiscardCommand (instead of setting the clone command to
	"rm"). Also fix typo that iterated over clonev not discardv to
	fill in prop list, and NULL-terminate discardv. #74584 from Kang
	Jeong-Hee.

2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): put back --sm-client-id argument, needed
	for including us in a default session

2002-03-13  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): don't save a file here, only
	in response to SaveYourself. Change the code to properly use a
	unique state file for each SaveYourself. Totally, totally
	untested.

2002-03-12  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: improve the theme viewer so people 
	can see the broken aspects of their themes.

2002-03-11  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: use new functions

	* src/display.c (meta_display_get_tab_next): 
	(meta_display_get_tab_list): new tab order functions using 
	MRU list instead of map order

	* src/window.c (meta_window_notify_focus): maintain focus MRU list

	* src/display.h (struct _MetaDisplay): Keep an MRU list of 
	windows.

2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): support _NET_NUMBER_OF_DESKTOPS
	message so you can change number of desktops with the pager

	* src/prefs.c (meta_prefs_set_num_workspaces): new function

	* src/display.c (meta_spew_event): print stacking aspects of
	configure requests

2002-03-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): we didn't claim to support 
	_NET_ACTIVE_WINDOW so gtk_window_present() didn't work. Mumble.
	Only worked with tasklist because libwnck didn't check for 
	WM support.

	* src/window.c (meta_window_free): clean off window state 
	when windows are withdrawn, to avoid sticking dialogs 
	to their initial desktop.
	(meta_window_queue_calc_showing): return if window is withdrawn

2002-03-08  Laszlo Peter  <laca@ireland.sun.com>

	* configure.in: fix the X linker flags

2002-03-06  Havoc Pennington  <hp@pobox.com>

	* src/core.c (meta_core_get_grab_frame): add some assertions

	* src/menu.c (meta_window_menu_new): make another warning 
	into a verbose

	* src/display.c (meta_change_button_grab): use verbose rather than
	warning to log failures to grab button, since these are typically
	BadWindow from a destroyed window.

2002-03-06  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_manage_window): use hash_table_replace
	instead of g_hash_table_insert

	* src/main.c (main): only enable verbose/debug if you set
	METACITY_VERBOSE/METACITY_DEBUG

	* src/util.c (ensure_logfile): only use a log file if
	METACITY_USE_LOGFILE is set

	* src/display.c (meta_display_for_x_display): add warning if
	MetaDisplay isn't found

	* src/window.c (meta_window_free): add an assertion that we
	successfully cleared the grab window

2002-03-05  Havoc Pennington  <hp@pobox.com>

        Work on opaque animations more, still suck too much 
	to turn on. Not sure how to make them good.
	
	* src/effects.c (meta_effects_draw_box_animation): 
	add a slide-up mode for shading

	* src/ui.c (meta_image_window_set): change image window to work by
	setting back pixmap on the GtkWindow, instead of using GtkImage.

2002-03-04  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): try ignoring SIGXFSZ, though I'm not 
	sure what that does exactly. I'm hoping it gives me EFBIG.

	* src/util.c (ensure_logfile): log to a file in /tmp instead 
	of to ~/metacity.log.

2002-03-04  Havoc Pennington  <hp@redhat.com>

	* configure.in: fix configure.in since GTK no longer gives us 
	-L/usr/X11R6/lib

2002-03-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c: improve debug spew about initial workspace

2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): disable resize etc. if
	we're fullscreen
	(constrain_size): fix size constraints when fullscreen

	* src/display.c (meta_display_open): fix missing comma that
	ended up concatenating two of the properties breaking 
	FULLSCREEN state and PING protocol

2002-03-02  Havoc Pennington  <hp@pobox.com>

	* src/display.c: Add hacking to fix the problem that we made our
	XGrabPointer() during Alt+Tab actually succeed, so on popping down
	Alt+Tab we got an EnterNotify from the ungrab, which resulted in
	focusing the window under the mouse. i.e. Alt+Tab didn't work with
	sloppy focus.

2002-02-26  Havoc Pennington  <hp@pobox.com>

        Screw around with Anders's ping patch so he'll get plenty of CVS
	conflicts. ;-)
	
	* src/display.c (meta_display_ping_window): spew warnings
	if we try to call this with CurrentTime
	(meta_display_ping_timeout): remove ping from the pending pings
	after it times out.

	* src/util.h: added PING debug category

	* src/display.c (remove_pending_pings_for_window): don't remove
	"tmp" just before "tmp->next", don't break out of loop after
	finding the first match
	(meta_display_open): no trailing comma in array init
	(event_callback): move the processing of ping replies into a
	separate function

	* src/screen.c (set_supported_hint): add _NET_WM_PING to supported
	list

	* src/display.h: change gpointer to void*

2002-02-26  Anders Carlsson  <andersca@gnu.org>

	* src/display.c: (ping_data_free),
	(remove_pending_pings_for_window), (meta_display_open),
	(event_callback), (meta_display_unregister_x_window),
	(meta_display_ping_timeout), (meta_display_ping_window),
	(meta_display_window_has_pending_pings):
	Implement meta_display_ping_window, and filter out scroll wheel 
	events.
	
	* src/display.h:
	Add MetaWindowPingFunc, meta_display_ping_window and
	meta_display_window_has_pending_pings.
	
2002-02-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (xcursor_for_op): switch on the op passed in, not
	the active op. Gives us the right cursor during resizing, etc.

	* src/errors.c: rearrange all the error stuff to adapt to the GDK
	change a while back, so now we print our X errors again
	
	* src/display.c (meta_display_begin_grab_op): remove KeyPressMask
	and KeyReleaseMask from the XGrabPointer(), this caused BadValue
	and kept the grab from ever succeeding. Fixes the problem with the 
	GTK resize grip - this is why you shouldn't break your X error 
	spew. ;-)

	* src/display.c: debug spew tweaks

	* src/window.c (meta_window_client_message): do some
	s/verbose/topic/ stuff

2002-02-23  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): fix the
	be-sure-we-create-coverage-cache hack

2002-02-19  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): put in hack to keep Pango from mangling
	our server grab and locking up on startup. (hack doesn't work 
	but I want to fix it on my real computer not this laptop)

	* src/window.c: Implement _NET_WM_STATE_FULLSCREEN

	* src/display.c (meta_display_open): add atoms for 
	_NET_WM_STATE_FULLSCREEN
	
2002-02-16  Kjartan Maraas  <kmaraas@gnome.org>

	* src/main.c: Use bind_textdomain_codeset etc.
	
2002-02-14  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: use the preview widget here

	* src/preview-widget.h, src/preview-widget.c: make the theme 
	preview into a nice widget

	* src/frames.c (meta_frames_ensure_layout): replace frame layout
	if the frame style changes, this only ends up mattering if you
	e.g. changed the font size for windows in a different state such
	as maximized, which is crack, but the code may as well be correct

	* src/theme.c (meta_theme_get_frame_style): new function so we can 
	detect an invalid cache of the PangoLayout in a frame

2002-02-14  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml: Fix some bugs with
	prelighting.

2002-02-13  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_pango_font_desc_get_text_height): Use
	pango_context_get_metrics instead of loading the font.

2002-02-12  Anders Carlsson  <andersca@gnu.org>

	* src/frames.c (meta_frames_manage_window): Set prelit_control
	to META_FRAME_CONTROL_NONE.
	(meta_frames_update_prelit_control): New function for setting
	the prelit control.
	(meta_frames_paint_to_drawable): Set prelight state.
	(meta_frames_enter_notify_event): Update prelit control.
	(meta_frames_leave_notify_event): Likewise.
	(meta_frames_motion_notify_event): Likewise.

	* src/frames.h (struct _MetaUIFrame): add prelit_control.

	* src/window.c (update_mwm_hints): and MWM_FUNC_ALL 
	with hints->functions instead of hints->flags.

2002-02-11  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (meta_frame_layout_new): Set title_scale to 1.0

2002-02-11  Bastien Nocera  <hadess@hadess.net>

	* src/theme-viewer.c: (main): change default theme to be Atlanta
	like in the .schema file

2002-02-10  Havoc Pennington  <hp@pobox.com>

	* src/tools/Makefile.am (EXTRA_DIST): add $(icon_DATA)

	* configure.in: 2.3.55

	* HACKING: update

	* README: update

2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_theme_set_current): add a newline to an error
	message

	* src/themes/Gorilla: add Gorilla theme by Jakub Steiner ported to
	metacity by Kenneth Christiansen

2002-02-09  Havoc Pennington  <hp@pobox.com>
	
	* src/theme.c (meta_draw_op_draw_with_env): implement wacky "tile"
	draw op to lose some of the PNG files in Gorilla theme

	* src/theme-parser.c: parse the tile primitive
	
2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): port to icon cache

	* src/iconcache.c, src/iconcache.c: begin process of cleaning up
	window.c by moving the icon-reading code in here, based on the
	code in libwnck, which was in turn based on the earlier metacity
	code

2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): hmm, and don't set
	last_window at all if we don't ++newp. Fixes even more obscure
	stacking bug.

2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): assign last_window
	prior to ++newp, so we don't try to stack windows with respect to
	themselves. Fixes some obscure stacking bugs.

2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/theme-parser.c: try to make more error message strings the
	same, easier for translators

	* src/theme.c (meta_draw_op_free): free color spec for line op
	(meta_theme_free): free the integer_constants hash

	* src/theme-parser.c (parse_boolean): move above first use

	* src/theme-viewer.c: fixes for theme.h changes

	* src/frames.c (queue_recalc_func): don't recreate layout
	immediately, just save title text. should speed things up.
	(meta_frames_set_title): just remove the layout here also,
	and save title text.

	* src/theme-parser.c (parse_toplevel_element): parse title_scale
	attribute on frame_geometry

	* src/theme.c: support setting the text size

	* src/frames.c: support setting the text size

	* theme-format.txt: updates

2002-02-09  Havoc Pennington  <hp@pobox.com>

	* src/themes/Atlanta/metacity-theme-1.xml: put in some kind of
	distinctive frame for UTILITY, though it's ugly. Also put in the 
	borderless look for maximized windows.

	* src/stack.c (compute_layer): put splash screen in the splash
	layer

	* src/stack.h (enum): create a splash screen layer

	* src/place.c (meta_window_place): center splashscreen, and fix a 
	typo in the centering code

	* src/window.c (recalc_window_features): disable most features on
	splash screens

	* src/screen.c (set_supported_hint): add UTILITY and SPLASHSCREEN
	hints

	* src/window.c: add UTILITY, SPLASHSCREEN implementation

	* src/window.h (enum): add UTILITY, SPLASHSCREEN types

	* src/theme-parser.c (parse_toplevel_element): parser support 
	for has_title attribute

	* src/theme.c (meta_frame_layout_get_borders): handle a has_title
	field in the layout, for utility windows that don't display a
	title (would be better to be able to shrink the title text,
	but that's kind of tricky to implement :-/)

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN 
	to _NET_SUPPORTED

	* src/keybindings.c (meta_set_keybindings_disabled): put in header
	file, to fix warning.

	* src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom

	* src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for
	shaded and minimized windows
	(meta_window_show): call set_net_wm_state() if we map the window
	or frame
	(meta_window_hide): call set_net_wm_state() if we unmap the window
	or frame
	
2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (set_net_wm_state): only set skip pager/tasklist if
	the app set it, don't set it again based on semantic type.
	
2002-02-08  Anders Carlsson  <andersca@gnu.org>

	* src/theme.c (scale_and_alpha_pixbuf): If we're only
	scaling horizontally or vertically, use GDK_INTERP_NEAREST.

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* autogen.sh: unbreak

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_focus_window_button): grab
	buttons 2 and 3 also, so you can focus a window with those, 
	#70840
	(event_callback): fix this to let you focus a window with any 
	unmodified click, and also with Alt+button1

	* configure.in (AC_OUTPUT): add po/Makefile.in

	* autogen.sh: port to glib-gettextize, remove stupid
	auto-find-subdirs crap

	* Makefile.am (SUBDIRS): add po to subdirs, #70615

	* src/window.c (meta_window_activate): unshaded window if shaded, 
	I thought this was in bugzilla but I don't see it. anyway thanks
	whoever mentioned it to me.	

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/tools/metacity-window-demo.c (menu_items): add modal dialog test

2002-02-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): when mapping a window with
	struts, invalidate the work areas it's on. Should fix at least
	part of the problem with windows maximizing over panels.

	* src/workspace.c (meta_workspace_invalidate_work_area): also
	queue move/resize on sticky windows

	* src/tools/Makefile.am: consolidate reload-theme, restart into a
	"metacity-message" app and add enable/disable keybindings to the
	messages it knows about.	

	* src/keybindings.c:
	(meta_change_keygrab): grab keyboard synchronously
	(meta_display_process_key_event): if all keybindings are toggled
	off, ReplayKeyboard, else AsyncKeyboard, except that the debug
	binding for toggling back on is always processed
	(meta_set_keybindings_disabled): function to disable/enable 
	all keybindings

2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/run-metacity.sh: if DEMO_TEST is set then run the window
	demo

	* src/tools/metacity-window-demo.c: Create an app with all the
	semantic window types, for testing and for designing themes.

2002-02-07  Havoc Pennington  <hp@pobox.com>

        Throughout: move to meta_topic rather than meta_verbose so
	metacity.log can start being more useful
	
	* src/util.h (enum): add more debug topics

	* src/frames.c: clean up some cruft that caused warnings

2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): do random voodoo on the algorithm

2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): use the intensity of the gray
	pixel for both saturation and value, not just value.

2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (INTENSITY): don't define the macro twice

2002-02-07  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): get algorithm right (use HSV/RGB
	conversion) at cost of making it a lot slower. It doesn't matter
	anyhow with the cache, though.

2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (colorize_pixbuf): handle out-of-memory creating
	target pixbuf

	* src/themes/Crux/*.png: convert the green-channel images to grayscale

2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (change_notify): s/update_focus_mode/update_theme/
	in case of theme key changing

2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: benchmark theme on startup

	* src/theme-parser.c (parse_draw_op_element): fix "colorize !=
	NULL" to "colorize_spec != NULL" and free pixbuf on color spec
	failure

	* src/theme.c (colorize_pixbuf): minor reformatting, raise
	function calls out of inner loop, clamp r/g/b values to uchar
	range before assigning to uchar
	(draw_op_as_pixbuf): cache the colorized pixbuf
	(meta_draw_op_free): free the cache pixbuf

2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/theme-parser.c: (parse_draw_op_element):
	Add support for "colorize" image attribute.
	
	* src/theme.c: (colorize_pixbuf):
	New function that colorizes a pixbuf.

	(pos_tokenize): Allow "\n" as a whitespace character.
	
	(meta_draw_op_free): Free colorize_spec;

	(draw_op_as_pixbuf): Colorize image if needed.
	
	* src/theme.h: Add colorize_spec to struct.

2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml: Add maximized and
	shaded_and_maximized frame styles.

2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/main.c (prefs_changed_callback): redo window
	sizes/appearance when the theme changes

	* src/display.c (meta_display_retheme_all): new function

	* src/theme-parser.c (locate_attributes): remove error handling
	for MAX_ATTRS reached, add an assert instead, the way this code
	ended up the attrs in the array depend on the code not the theme
	file.

2002-02-06  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): disable custom log handler and fatal mask for
	now

	* src/theme.c (meta_draw_op_list_draw): 
	Add META_DRAW_CLIP

	* src/main.c: load theme, monitor current theme setting

	* src/prefs.c: add "current theme" setting

	* src/stack.c (meta_stack_free): don't try to free 
	last_root_children_stacked if it doesn't exist

	* src/themewidget.c: pluggable GtkMisc subclass to use 
	for menu icons

	* src/screen.c (meta_screen_manage_all_windows): fix
	signed/unsigned warning

	* src/frames.c: port to theme system
	(meta_frames_style_set): chain up

	* theme-format.txt: new file

	* configure.in: add more compiler warnings

	* src/theme.c: add various stuff needed to get theme parser 
	working. Remove the "spacer" concept from FrameLayout object.
	Add draw op that references a draw op list.

	* configure.in: require GTK 1.3.13

	* src/Makefile.am: add theme-parser.[hc], implement loading a
	theme

	* src/theme.c: add "draw title" and "draw window icon" operations
	(meta_draw_op_draw): put object_width/object_height in expression
	environment before computing x/y. Handle out-of-memory when
	creating pixbufs. Assorted other cleanups. 	

2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml: 
	Simplify things so we can remove some
	now unnecessary .png files.
	* src/themes/Crux/*.png: Remove some files.

2002-02-07  Anders Carlsson  <andersca@gnu.org>

	* src/themes/Crux/metacity-theme-1.xml
	* src/themes/Crux/*.png: 
	Add Crux theme

2002-02-07  Kenneth Rohde Christiansen  <kenneth@gnu.org>

	* configure.in: add da to ALL_LINGUAS
	* po/da.po: add Danish translation

2002-02-02  Havoc Pennington  <hp@pobox.com>

	* src/theme-viewer.c: test % operator

	* src/theme.c (pos_tokenize): add % to switch for operators

	* src/theme.c: rework theme stuff so we have
	MetaDrawOp/MetaDrawOpList instead of MetaTextureSpec/MetaShapeSpec

2002-01-28  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_texture_spec_render): fix shadowed variable
	(stupid -Wall should have that)

	* src/theme-viewer.c (main): implement a simple 
	viewer for frame styles

	* src/theme.c (meta_frame_style_get_test): create partial 
	frame style to test drawing

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_shape_spec_draw): implement
	(meta_texture_spec_draw): implement shape spec and blank 
	texture support
	(meta_frame_style_draw): implement

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_set_syncing): move in here so util.c doesn't
	require display.[hc]

	* src/theme.h, src/theme.c: implement coordinate expression 
	parser, write MetaShapeSpec declaration
	
	* src/util.c (meta_exit): move in here so we can link 
	to util.c with a different main()

	* src/theme.h: rename the MetaWindow* enums to MetaFrame*
	
2002-01-27  Peteris Krisjanis <peteris.krisjanis@ttc.lv>

	* configure.in - Added lv to ALL_LINGUAS

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (get_control): Only consider the bottom of the
	titlebar a resize control; I keep accidentally resizing windows
	instead of activating them. Also, give south resizing priority
	over north, if the window is so small the active regions overlap

	* src/theme.c: add MetaTheme, get MetaFrameStyleSet into 
	a usable state

	* src/common.h: move window type back to window.h, decided 
	not to use it on frame side
	(MetaFrameType): add this instead

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/theme.h, src/theme.c: implement all kinds of crazy
	compositing-one-texture-onto-another BS.

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): make the check for whether to
	eat focus click a lot more complicated

	* src/window.c (meta_window_same_application): new function

	* src/prefs.h, src/prefs.c: add application based pref

	* src/metacity.schemas: add "application_based" setting to 
	give me a mode to fool with being application based, 
	without being unusable in the meantime. Yeah the crack flows
	freely these days. Everyone knew it would happen.

2002-01-27  Havoc Pennington  <hp@pobox.com>

	* src/frames.c: separate code to draw frame from the 
	expose_event handler, so in principle we can draw the 
	frame to a pixmap, but this isn't used yet.

2002-01-22  Hasbullah Bin Pit <sebol@ikhlas.com>

	* configure.in: Added Malay (ms)to ALL_LINGUAS.
	* po/ms.po: Added Malay Translation.

2002-01-19  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/test-resizing.c: cheesy client with static 
	bit gravity, used to test the below change.

	* src/window.c (meta_window_move_resize_internal): implement 
	Owen's proposal for window resizing. 
	http://mail.gnome.org/archives/wm-spec-list/1999-November/msg00088.html

	Currently you have to do METACITY_USE_STATIC_GRAVITY=1 in order to 
	use it, because some GDK bug is screwing up exposes on my frames
	when it's enabled.

	* src/display.c (meta_display_create_x_cursor): fix glyph for
	NE/NW cursors

	* src/frames.c (get_control): add ability to resize from top

	* src/frame.c (meta_frame_get_flags): can't resize shaded windows
	(meta_frame_sync_to_window): add gravity arg 

	* src/common.h (MetaWindowType): move here from window.h so 
	it can be used in themes stuff.
	(MetaFrameFlags): remove META_FRAME_TRANSIENT since it 
	overlaps with window type and was unused.

2002-01-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): give priority to keeping NW
	corner onscreen rather than SE, if we need to shift the window 
	to fit inside constraints

	* src/frames.c (meta_frames_get_geometry): don't depend on the 
	current window size

	* src/theme.c: move geometry stuff in here, to be calculated as 
	part of the theme

	* src/core.c (meta_core_get_client_size): new function to replace
	meta_core_get_frame_size() so we don't have weird cycles 
	in the geometry calculation

2002-01-12  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_queue_move_resize): make this actually
	queue, rather than being synchronous as it was before.  We'll see
	what breaks. Should be more efficient and reduce flickery stuff a
	bit in some cases.

2002-01-15  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (handle_tab_backward): fix crash 
	when grab failed due to another operation in progress
	(handle_tab_forward): fix crash when grab failed

2002-01-10  Havoc Pennington  <hp@pobox.com>

	* src/frame.c (meta_window_destroy_frame): only bump
	unmaps_pending if the window was mapped
	(meta_window_ensure_frame): ditto

	* src/keybindings.c: change arrow key bindings to use Ctrl+Alt not
	just Alt, and add debug mode key bindings	

	* src/stack.c (meta_stack_get_default_focus_window): don't choose
	a default focus window with unmaps pending, since we probably just
	unmapped it.

	* src/display.c (event_callback): move notify_focus on UnmapNotify
	after the window_free check, so we can move focus to another
	window when we unmanage	

	* src/window.c (meta_window_hide): invalidate work areas when 
	hiding a window with struts
	(meta_window_free): invalidate work areas when unmanaging a window
	with struts

2002-01-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/window.h: store strut information, 
	update it on property changes, etc. etc. so we avoid panel 
	on maximize.

	* src/workspace.c (meta_workspace_get_work_area): add accessor for
	work area so we can compute it lazily

	* src/display.h, src/display.c: add _NET_WM_STRUT atom
	and _WIN_HINTS atom

2002-01-08  Havoc Pennington  <hp@pobox.com>

	* configure.in (ACLOCAL): add code to save ACLOCAL_FLAGS

	* src/frames.c (meta_frames_expose_event): max dither

	* src/testgradient.c (render_simple): change dither mode to MAX
	to avoid banding

	* src/theme.c: lose the gradient cache, and put in some initial
	data types for the theme format

2002-01-07  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_expose_event): make gradient a bit
	more subtle (don't go to the full background, but to a blend of
	selection and background; put lighter color on top)

2002-01-06  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): rearrange code a bit to
	make it clear that has_focus flag always follows
	display->focus_window

2002-01-06  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): put in attempted fix
	for the GTK 1.2 plug/socket screwup, now that my fixed debug spew
	reveals what's actually happening. ;-)

	* src/gradient.c (meta_gradient_description_new): object 
	to store gradient descriptions

	* src/window.c (meta_window_notify_focus): fix the debug spew
	that was confusing me

	* src/wm-tester/focus-window.c: add little program to focus 
	a window ID

2002-01-06  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_theme_get_gradient): change to use spiffy 
	gradient code.

	* src/gradient.c: copy lovely gradient code from WindowMaker,
	as usual Dan and Alfredo have very nice code

2002-01-06  Fatih Demir <kabalak@gtranslator.org>

	* configure.in: Added "tr" to the languages list.

2002-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_expose_event): draw titlebar highlight 
	with snazzy gradient that needs some tweaking to be less 
	dumb-looking

	* src/theme.c: replace old theme.[hc] contents with newer stuff
	that doesn't do anything
	
2002-01-05  Havoc Pennington  <hp@pobox.com>

        GTK 1.2 plug/socket clients still broken, don't know why.
	
	* src/screen.c (meta_screen_new): select focus change on root
	window, for debugging

	* src/display.c (event_callback): when unfocusing, use
	no_focus_window to hold the focus

	* src/display.h (struct _MetaDisplay): have a no_focus_window to 
	hold the focus when we don't want to have anything focused. 
	Then we can avoid confusing focusing-the-frame stuff.

	* src/window.c (meta_window_notify_focus): improve some debug spew
	(meta_window_notify_focus): add hack from WindowMaker to ignore
	focus in events with detail > NotifyNonlinearVirtual	

2002-01-04  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): don't lower docks when a grab
	causes them to get LeaveNotify

2002-01-04  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_free): set event mask on root window
	to 0 so other window managers (such as ourselves restarting) can
	start up; addresses race condition on restart where the old WM
	still had RedirectMask when the new WM was trying to start up.

	* src/display.c (meta_display_close): free each screen
	
	* src/window.c (meta_window_show): always focus new windows in
	click-to-focus mode

2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c: use meta_XFree not XFree

	* src/display.h (meta_XFree): add null-safe XFree

	* src/util.c (meta_warning): have message prefix indicate that
	it's a warning
	(meta_fatal): indicate it's an error

	* src/window.c (update_sm_hints): clean up using
	meta_prop_get_latin1_string
	(update_role): ditto
	(read_client_leader): clean up using meta_prop_get_window
	(update_net_wm_type): clean up using meta_prop_get_cardinal
	(update_initial_workspace): ditto
	(update_net_wm_type): clean up using meta_prop_get_atom_list
	(read_rgb_icon): get result from XGetWindowProperty return value
	not from error trap
	(update_kwm_icon): ditto
	(meta_window_new): fix to read WM_STATE correctly

2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_net_wm_state): clean up using
	meta_prop_get_atom_list
	(update_mwm_hints): clean up using meta_prop_get_motif_hints

	* src/Makefile.am (metacity_SOURCES): add xprops.[hc]

	* src/xprops.c: new file with convenience functions for X
	properties

2002-01-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_activate): focus top window when
	switching to a new workspace

	* src/util.c (meta_topic): start putting verbose output in
	categories

	* src/window.c (meta_window_shade): focus frame after we queue 
	the calc_showing so the maps/unmaps have already happened.

	* src/display.c (meta_display_get_current_time): add the "get time
	of current event" function and call it occasionally.

	* src/window.c (meta_window_free): if we have focus, call
	meta_screen_focus_top_window().
	(meta_window_minimize): ditto
	(meta_window_delete): ditto

	* src/screen.c (meta_screen_ensure_tab_popup): fix memory leak -
	didn't free tab list
	(meta_screen_focus_top_window): new function to use when we unmap
	or unmanage a focused window

	* src/stack.c (meta_stack_get_default_focus_window): function used
	in meta_screen_focus_top_window
	
2001-12-21  Havoc Pennington  <hp@redhat.com>

	* src/frame.c (meta_window_ensure_frame): add a server grab 
	here since we were failing to have one when calling the function

2001-12-27  Duarte Loreto <happyguy_pt@hotmail.com>

        * configure.in: Added portuguese to ALL_LINGUAS

2001-12-16  Kjartan Maraas  <kmaraas@gnome.org>

	* configure.in: Added "no" to ALL_LINGUAS.
	
2001-12-11  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>

	* configure.in: Added "sk" to ALL_LINGUAS.

2001-12-10  Havoc Pennington  <hp@pobox.com>

        Rework the click-client-area-to-focus support to use synchronous
	grabs, avoids a big mess, lets us pass through click when
	required (for dock/desktop). Disadvantage is all left-button
	clicks now require window manager approval. ;-)
	
	* src/display.c (event_callback): don't focus dock/desktop when
	the mouse enters them; require a click.
	(meta_change_button_grab): allow sync grabs
	(meta_display_grab_unfocused_window_buttons): establish a
	synchronous grab and maintain it all the time, rename to
	meta_display_grab_focus_window_button

	* src/window.c: change to reflect display.c
	
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_update_unfocused_button_grabs): oops, 
	unbreak this _again_ - reported by Josh Barrow

2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_update_unfocused_button_grabs): don't 
	allow grab on docks/desktop for now; needs fixing later to 
	do the grab, but pass thru click, so we can focus those windows.
	And in fact we need to do that even in sloppy mode.

2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_foreach_window): fix broken 
	"tmp = tmp->data"

	Implement do-not-pass-thru-click for click-to-focus mode.
	
	* src/screen.c (update_focus_mode): when focus mode changes,
	update all the window grabs

	* src/display.c (meta_display_grab_unfocused_window_buttons):
	implement grabbing button 1 on client area of unfocused
	click-to-focus windows

	* src/window.c (meta_window_update_unfocused_button_grabs): update
	whether we're grabbing unmodified button 1 on client area
	according to focus state and focus mode
	(meta_window_new): start out with proper grab state
	
2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): don't do mnemonics for
	workspaces above 9

2001-12-10  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_new): oops, remove extra workspace
	creation, and update to current pref.
	
2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_free): update number of
	workspaces hint

	* src/screen.c (update_num_workspaces): implement number of
	workspaces setting

	* src/window.c (meta_window_configure_request): honor configure
	requests on windows of type NORMAL, but still be mean to those of
	type DIALOG

	* src/main.c (main): add more log domains to those we set a log
	handler for, and only set warnings fatal in debug mode

	* src/metacity.schemas: add number of workspaces setting

2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): in click-to-focus mode don't
	focus on enter notify. Implement unfocusing on LeaveNotify in
	mouse focus mode. Click to focus just ends up working if we 
	do nothing on enter/leave, because of the way things already
	worked. Except I need to add some relatively complex hack to 
	allow clicking on client area, right now you have to click 
	on the frame.

2001-12-09  Havoc Pennington  <hp@pobox.com>

	* src/main.c (main): move SM init a bit later in the process, and 
	init prefs

	* src/session.c: fix no SM case (though I hardly know why I'm
	bothering)

	* src/main.c (main): call bindtextdomain

	* src/util.h (_): actually call gettext

	* configure.in: put in AM_GLIB_GNU_GETTEXT and gconf stuff

	* src/prefs.c: Preferences - this marks the beginning of our doom.
	None of them are actually implemented yet, but we monitor 
	some stuff from gconf.
	
2001-12-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_unminimize): when unminimizing an app,
	if we're in "show desktop" (all windows minimized) mode, leave
	show desktop mode. Will occasionally be a bit weird, but allows
	people to recover via task list if they accidentally do the show
	desktop thing, and don't know what's going on.

2001-12-06  Havoc Pennington  <hp@redhat.com>

	* src/ui.c (meta_text_property_to_utf8): fix gdkatom/xatom screwup
	- gee, I should read my warnings

2001-12-03  Laszlo Peter  <laca@ireland.sun.com>

	* src/frames.c: add a dummy element to the enum so
          the signals array is not empty. (breaks the build with Forte C)

	* src/window.c: s/__FUNCTION__/G_GNUC_FUNCTION/

2001-11-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): change so that window can be
	offscreen to the bottom or the right, as long as a small top-left 
	corner of the window remains onscreen. However, windows still
	can't go off the left or top.

2001-11-26  Havoc Pennington  <hp@redhat.com>

	* src/window.c (window_query_root_pointer): add error trap

2001-11-27  Jesus Bravo Alvarez  <jba@pobox.com>

	* configure.in: Added gl (Galician) to ALL_LINGUAS.

Tue Nov 20 18:49:16 2001  Owen Taylor  <otaylor@redhat.com>

	* configure.in (found_sm): Add some additional quoting to
	make it work with autoconf-2.5x.

2001-11-02  Laszlo Peter  <laca@ireland.sun.com>

	* src/window.c (update_sm_hints): protect meta_verbose from
	a NULL pointer.

2001-10-29  Havoc Pennington  <hp@pobox.com>

	* configure.in: bump version

2001-10-29  Havoc Pennington  <hp@pobox.com>

	* src/window.c (idle_calc_showing): handle queue/unqueue of 
	calc showings as we are iterating over the pending list
	(meta_window_show): focus placed transients in here instead
	of in meta_window_place - now it should actually work, yay

	* src/place.c (meta_window_place): remove focusing of transient
	child from here; this was really broken

2001-10-29  Yuriy Syrota <rasta@renome.rovno.ua>

	* configure.in: Added "uk" to ALL_LINGUAS.

2001-10-29  Havoc Pennington  <hp@pobox.com>

	* README: note exciting new unminimize feature for the tab popup

	* src/keybindings.c (process_tab_grab): use meta_window_activate()
	when choosing a window with tab popup, this should deiconify it

	* src/window.c (meta_window_client_message): use
	meta_window_activate for _NET_ACTIVE_WINDOW message
	(meta_window_activate): new function to raise/focus/unminimize
	(meta_window_flush_calc_showing): new function
	(meta_window_focus): force a calc showing on focus, so that we can
	focus the window if appropriate (it must be mapped)

2001-10-26  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_window_buttons): fix for 
	ignoring NumLock on Alt-windowclick (previous NumLock fix 
	was only for key grabs not button grabs)

2001-10-25  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): set the current workspace hint

2001-10-25  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_visible_on_workspace):
	I was using meta_workspace_contains_window() in a number of 
	places where on_all_workspaces should also have been considered,
	thus this new function. Fixes bugs such as pinned windows 
	not appearing in the tab order.
	(meta_window_client_message): use meta_window_visible_on_workspace

	* src/stack.c (find_tab_forward): ditto
	(find_tab_backward): ditto
	(meta_stack_get_tab_next): ditto
	(meta_stack_get_tab_list): ditto

	* src/place.c (get_windows_on_same_workspace): ditto

	* src/keybindings.c (handle_focus_previous): ditto
	(handle_focus_previous): ditto

2001-10-24  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_expose_event): use bg/fg not base/text
	for the window title area.

2001-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): support initial
	on-all-workspaces setting

2001-10-22  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): fix to keep desktop
	window from appearing on top of everything else, among other stack
	bugs. Untested.

2001-10-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use queried attributes to check
	whether window should be initially maximized, rather than window 
	rect

2001-10-15  Havoc Pennington  <hp@pobox.com>

	* src/main.c (meta_restart): add a restart feature, for debugging

	* src/tools/metacity-restart.c: little utility program to trigger
	the restart

2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_button_press_event): raise/focus
	windows on left-click, seem to have broken that yesterday

	* src/keybindings.c, src/display.c, src/window.c: add keybinding
	to show/hide all normal windows (so you can see the desktop). 
	Currently Ctrl+Alt+D, which I don't like, but yay.

2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): take a window mapped at
	fullscreen size/pos to desire maximization; once I add a
	fullscreen state, will change to copy kwin and take this mapping
	as a desire for fullscreen, but for now testing with maximization.

	* src/window.h: remove fullscreen window type, now proposing it 
	as a window state instead.	

2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_maximize): always raise windows on
	maximize
	(meta_window_client_message): when activating a window, move 
	it to current workspace, instead of moving user to the 
	window's workspace.

2001-10-14  HÃï¿½©ctor GarcÃï¿½­a Ãï¿½Âlvarez <hector@scouts-es.org>

	* configure.in: Added "es" to ALL_LINGUAS for Spanish translation.

2001-10-14  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): only handle events here if 
	the modmask from our button grab is active. i.e. only the
	Alt-click is handled here.

	* src/frames.c: add check for whether button presses are in the
	frame client area before handling them, so we don't weirdly let
	you move a frame by clicking in its client area if the client
	hasn't selected button press events.

2001-10-13  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_sync_to_server): set last window before 
	setting newp, so we don't get the current window as the last
	window and screw everything up	
	(IN_TAB_CHAIN): use type not layer to decide if a window is 
	in the tab chain, keeps panel out of alt-tab choices

2001-10-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: add bad hack to work with GTK 1.3.9.90 RPMs from
	gnomehide for now

	* src/ui.c: another piece of bad hack in here

2001-10-13  Havoc Pennington  <hp@redhat.com>

	* configure.in: bump version

2001-10-13  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): hmm, fix build

2001-10-12  Havoc Pennington  <hp@pobox.com>

	* src/session.c (meta_session_init): set the session manager
	priority so we start up before other apps.

2001-10-12  Mikael Hallendal  <micke@codefactory.se>

	* src/ui.c (meta_ui_get_default_window_icon): use
	gdk_pixbuf_new_from_inline
	(meta_ui_get_default_mini_icon): use
	gdk_pixbuf_new_from_inline

2001-10-11  Christian Rose  <menthos@menthos.com>

	* configure.in: Added "sv" to ALL_LINGUAS.

2001-10-10  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (meta_stack_free): fix mem leak of the MetaStack
	object
	(meta_stack_sync_to_server): try to avoid the restack-flicker
	thing

2001-10-07  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_update_active_window_hint): 
	set _NET_ACTIVE_WINDOW hint
	
	* src/window.c (meta_window_client_message): support
	_NET_ACTIVE_WINDOW client message

2001-10-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): don't allow
	shade/maximize/minimize for windows that don't support those
	operations. (minimizing the panel = bad)

2001-10-04  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_change_keygrab): add code to grab all
	modifier combinations, so keybindings work with NumLock etc.

	* src/menu.c (meta_window_menu_new): remove newlines from menu
	items

2001-09-27  Havoc Pennington  <hp@pobox.com>

	* src/session.c (save_state): when encoding text for session file, 
	escape XML entities

2001-09-21  Alex Graveley  <alex@ximian.com>

	* src/Makefile.am (metacity_SOURCES): Add inlinepixbufs.h so
	that it gets generated.

	* src/frames.c (meta_frames_style_set): Update for new opaque
	PangoFontMetrics.

2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): add hackaround for the warning about
	gtk-menu-bar-accel

2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_get_default_mini_icon): 
	(meta_ui_get_default_window_icon): ref the returned icon, oops.

	* src/main.c (main): get the GLib warning/error output into 
	the metacity logfile, set warnings to be always fatal

	* configure.in: bump version to 2.3.13

	* src/window.c (get_text_property): hrm, fix bug where we didn't
	check errors on XGetTextProperty

2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/Makefile.am (VARIABLES): fix srcdir != builddir glitch

2001-09-17  Havoc Pennington  <hp@pobox.com>

	* src/ui.c: use the inline image data for default icon
	
	* src/common.h (META_MINI_ICON_HEIGHT): move icon size defines
	here

	* src/Makefile.am: Create an inlinepixbufs.h header with inline
	images

2001-09-16  Havoc Pennington  <hp@pobox.com>

	* src/session.c (process_ice_messages): disconnect this callback
	on error

2001-09-16  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_lower): new function

	* configure.in: bump version to 2.3.8

	* src/display.c (event_callback): raise dock on enter notify, 
	lower it on leave notify (need to refine this behavior)

	* src/stack.c (compute_layer): experiment with putting the panel
	in the normal layer, and raising it on mouseover

2001-09-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c: add support for a mini icon in the titlebar
	(update_icon): re-enable support for _NET_WM_ICON

	* src/session.c (save_state): add an ferror check when writing
	session file

2001-09-11  Havoc Pennington  <hp@pobox.com>

	* src/main.c (usage): exit with error code on usage() (kind of
	wrong for --help, but oh well).

2001-09-11  Havoc Pennington  <hp@pobox.com>

	* src/window.c: fix up handling of text properties, so we 
	get UTF8_STRING as that type and not as text list, and so 
	we properly convert from text list to UTF-8

2001-09-10  Havoc Pennington  <hp@pobox.com>

	* src/menu.c (meta_window_menu_new): icon for unmaximize

	* src/ui.c (meta_ui_init): fix call to XDisplayName

	* src/util.c: add missing header

	* src/frames.c: draw an unmaximize control if already maximized

2001-09-10  Havoc Pennington  <hp@pobox.com>

	* src/window.c: Don't separate user_has_moved/user_has_resized,
	fixes bug in east-resizing Emacs, among other things

	* src/frame.c (meta_frame_sync_to_window): return immediately if
	nothing to do

	* src/util.c (ensure_logfile): replace rather than truncate old
	logfiles

2001-09-08  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_ui_init): don't use gdk_display_name

	* src/frame.c (meta_window_ensure_frame): create frame
	with screen default visual, rather than client window visual;
	for DRI games, the client window visual was not allowed to be 
	a child of another window with the same visual, apparently.
	Anyhow now we copy twm, etc. so it must be correct.
	
	* src/place.c (meta_window_place): if a transient is placed and
	its parent has focus, focus the transient.

2001-09-06  Havoc Pennington  <hp@pobox.com>

	* configure.in: bump version 2.3.5, require newer GTK release

2001-09-04  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/Makefile.am (noinst_PROGRAMS): make test apps
	noinst

	* src/metacity.desktop: for the capplet

	* src/Makefile.am: add .desktop file

2001-09-01  Havoc Pennington  <hp@pobox.com>

	* src/errors.c: clean up the code, and replace GDK X error handler
	with one that chains up to GDK but first logs the error to logfile.

2001-08-31  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): fix args to
	gtk_alignment_new()

2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): avoid focusing a window on tab
	popup popdown

	* src/screen.c (meta_screen_ensure_tab_popup): compute frame
	outline size here

2001-08-29  Havoc Pennington  <hp@redhat.com>

	* src/tabpopup.c: Switch back to outline.

2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: experiment with window-cover-with-icon
	instead of just the outline; can't decide.

2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: add crackrock window-outlining feature

	* src/session.c (window_type_to_string): handle fullscreen

2001-08-29  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): wrong atom name -
	_NET_SUPPORTED not _NET_WM_SUPPORTED

	* src/window.c (meta_window_configure_request): geez, why were we
	honoring configure requests for width/height for normal windows. 
	Denied!
	(meta_window_client_message): _NET_WM_MOVERESIZE support, sort of
	(doesn't quite work, acts like owner_events = true?)

	* src/display.c: add _NET_WM_MOVERESIZE atom

2001-08-28  Havoc Pennington  <hp@pobox.com>

        Unbreak tab popup a bit.
	
	* src/stack.c (meta_stack_get_tab_list): add workspace argument
	(meta_stack_get_tab_next): add workspace argument

	* src/window.c: implement recording of the last user-initiated
	window position, so we can magically handle moving panels around
	really nicely.

	* src/wm-tester/main.c (set_up_icon_windows): fix to use new GTK
	API

2001-08-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (constrain_position): force fullscreen windows to
	be at 0,0

	* src/ui.c: use NULL colormap to get bitmaps, requires 
	very latest GTK from CVS or it will spew warnings
	and not work.
	
	* src/window.c (constrain_size): disallow larger than screen in
	all cases, even if user has performed a resize operation.
	(constrain_position): keep window boxed onscreen.

	* src/keybindings.c (meta_display_process_key_event): revert an
	earlier change that disabled global keybindings when a grab is in
	effect; instead, only disable global keybindings if a _keyboard_
	grab is in effect. The earlier change was just a broken
	workaround, the problems it fixed should have been solved by the
	addition of XGrabKeyboard() on the metacity keyboard grabs.

	This should fix the problem with
	pick-up-window-and-move-to-another-desktop.

2001-08-23  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): attempt to use the mask as well as
	the pixmap. Probably doesn't work so well.

	* src/tabpopup.c: make this look a little nicer

2001-08-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_mwm_hints): all the MWM flag tests were
	backward

2001-08-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_icon): half-ass implementation of 
	getting pixmap icons (WM_NORMAL_HINTS and KWM_WIN_ICON). 
	Ignores mask for now, with possibly ugly results for 
	some apps.
	(read_rgb_icon): fixage

2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c: add a "fullscreen" semantic type; if a window
	requests the screen size exactly, and is undecorated, and is not a
	desktop window, we consider it a fullscreen window and keep it on
	top.

	Totally untested.

2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (set_supported_hint): we support _NET_WM_ICON

	* src/wm-tester/main.c: add stuff to test _NET_WM_ICON
	(but it doesn't work, so it isn't tested yet)
	
	* src/window.c (update_icon): read _NET_WM_ICON

	* src/screen.c (meta_screen_new): set the WM_ICON_SIZE hint

	* src/tabpopup.c (meta_ui_tab_popup_select): remove assertion

	* src/window.c (meta_window_get_icon_geometry): fix obscure
	memleak

2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab_window_buttons): remove XSync,
	error traps already do that
	(meta_display_grab_window_buttons): implement

	* src/keybindings.c: 
	src/display.c: wire up the tab window, it rulez!

2001-08-19  Havoc Pennington  <hp@pobox.com>

	* src/tabpopup.c: add prototype thingy to display windows we're
	cycling through with tab. Not wired up to keybindings yet.

2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (meta_effects_draw_box_animation): put an XFlush()
	right after starting things moving

2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): 
	(meta_window_move_resize_internal): Make a half-hearted
	not-very-tested attempt to handle window resizes correctly with
	respect to window gravity.

2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_gravity_position): hrm, I fixed
	this wrong the other day. Fixes static gravity when moving
	windows.

2001-08-18  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_set_position): also set the current
	size. Lame hack of the day.

	* src/effects.c (effects_draw_box_animation_timeout): use the
	delay exposes feature to avoid the screen dirt

	* src/ui.c
	(meta_ui_push_delay_exposes):
	(meta_ui_pop_delay_exposes): feature to let us delay redraws until
	after we do server-grabbed draw-on-inferiors effects

2001-08-17  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_get_gravity_position): fix for
	StaticGravity

2001-08-09  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_configure_request): Honor USPosition
	even post-map. I know I'll regret this.

2001-08-07  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): set _NET_WM_NAME 
	hint as a UTF8_STRING not STRING. Patch from Anders.

2001-08-06  Havoc Pennington  <hp@redhat.com>

	* src/effects.c: disable opaque animations by default, current 
	implementation suXors.

2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/effects.c (meta_effects_draw_box_animation): Get start
	time after we do the pixbuf from drawable, so we don't count
	time spent getting pixbuf from drawable in the animation time.

2001-08-06  Havoc Pennington  <hp@pobox.com>

	* src/effects.c: add opaque minimize/shade feature.  The wireframe
	seemed kind of confusing and unclear from a UI standpoint. 
	I know, I know. The bloat begins here.

	Also, we don't need to grab the server during opaque min/shade, 
	which has some nice implications.
	
	* src/ui.c: Add features to render a window with an image in it, 
	and also wrap pixbuf_from_drawable

	* src/effects.c (meta_effects_draw_box_animation): 
	modify to be smoother (at least theoretically) by 
	syncing to current time and "dropping frames" 
	as appropriate.

	* src/window.c (meta_window_shade): draw animation 
	for shading too

2001-08-05  Anders Carlsson  <andersca@gnu.org>

	* src/display.h, src/display.c: Add _NET_WM_ICON_GEOMETRY atom.

	* src/window.c (meta_window_calc_showing): See if the window has
	an icon geometry and show a morphing animation from the window's
	coordinates to the icon's coordinates.
	(meta_window_get_icon_geometry): New function that fetches a
	window's icon geometry.

	* src/Makefile.am: Add effects.[ch].
	
        * src/effects.c: New file with cool effects.

2001-08-03  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c: Add Alt + left/right arrow to 
	move between workspaces.

	* src/screen.c (set_wm_check_hint): put property pointing back to
	itself on the _WIN_SUPPORTING_WM_CHECK window.

2001-08-03  Havoc Pennington  <hp@pobox.com>
	
	* src/display.c (event_callback): push error trap around configure 
	of withdrawn window, fixes a crash caused by rapidly
	creating/destroying a window.

	* src/window.c (recalc_window_features): don't allow shading
	undecorated windows.

	* src/wm-tester/main.c: add a program to torture window managers.
	
2001-08-01  Havoc Pennington  <hp@pobox.com>

	* src/window.c (recalc_window_features): if a window isn't
	resizeable, turn off maximize function. If min size is equal to
	max size, turn off resize function.

