dwww Home | Show directory contents | Find package

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.

Generated by dwww version 1.15 on Sat May 18 06:46:37 CEST 2024.