You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15414 lines
516 KiB

2009-03-16 Thomas Thurman <>
* NEWS: 2.26.0 release.
2009-02-04 Neil Jagdish Patel <>
* src/core/frame.c: queue resize on window undecorate
2009-02-03 Luca Ferretti <>
* src/include/all-keybindings.h: Fix description, focus the
desktop, not desktop backgroung (Closes bug #569649)
2009-02-02 Matt Kraai <>
* src/core/schema-bindings.c: Wrap g_error calls in braces.
2009-02-01 Thomas Thurman <>
* Post-release bump to 2.25.233.
2009-02-01 Thomas Thurman <>
* NEWS: 2.25.144 release.
2009-02-01 Matt Kraai <>
Set prop_hooks_table to NULL after freeing it.
* src/core/window-props.c:
2009-01-29 Thomas Thurman <>
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 <>
* 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 <>
* src/core/prefs.c: Free name of old theme when new theme
is loaded. Closes #552973.
2009-01-27 Matthias Claesen <>
* 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 <>
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 <>
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/
2009-01-27 Thomas Thurman <>
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 <>
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 <>
* src/ui/theme.[ch]: add meta_theme_draw_frame_by_name, which
is needed for the theme editor.
2008-12-26 Thomas Thurman <>
* Post-release bump to 2.25.144.
2008-12-26 Thomas Thurman <>
* NEWS: 2.25.89 release.
2008-12-25 Thomas Thurman <>
* 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 <>
* 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 <>
* src/ 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 <>
* src/include/all-keybindings.h: fix move_to_corner_se
2008-12-21 Colin Walters <>
* 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 <>
* src/ui/frames.c: when the user double-clicks the title bar,
end the grab op. Closes #401028.
2008-12-16 Thomas Thurman <>
* Post-release bump to 2.25.89.
2008-12-16 Thomas Thurman <>
* NEWS: 2.25.55 release.
2008-12-15 Erwann Chenede <>
* fix build on Solaris. Closes #564123.
2008-12-02 Thomas Thurman <>
* Post-release bump to 2.25.55.
2008-12-02 Thomas Thurman <>
* NEWS: 2.25.34 release.
2008-12-02 Matt Kraai <>
* src/core/iconcache.c: patches to fixes for -Wall. Closes #562939.
2008-12-01 Thomas Thurman <>
* Post-release bump to 2.25.34.
2008-12-01 Thomas Thurman <>
* NEWS: 2.25.21 release.
2008-12-01 Thomas Thurman <>
* 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 <>
* tools/ linked language codes to po files
* tools/ print revision url
2008-11-26 Thomas Thurman <>
* tools/ renamed ini file
* tools/ rewriting in terms of moap
2008-11-25 Thomas Thurman <>
* Post-release bump to 2.25.21.
2008-11-25 Thomas Thurman <>
* NEWS: 2.25.13 release.
2008-11-26 Thomas Thurman <>
* tools/ (added): script to produce announcements
2008-11-26 Thomas Thurman <>
* src/core/xprops.c: add casts (#562106)
2008-11-25 Thomas Thurman <>
* metacity.doap: change to standard description.
2008-11-23 Thomas Thurman <>
* Post-release bump to 2.25.13.
2008-11-23 Thomas Thurman <>
* NEWS: 2.25.8 release.
2008-11-23 Thomas Thurman <>
* po/ add new bindings file
2008-11-23 Daniel Macks <>
reviewed by: Thomas Thurman
* src/ reorder compiler flags so local includes come last.
Closes #562033.
2008-11-23 Daniel Macks <>
reviewed by: Thomas Thurman
* only accept --enable-compositor if we find we can
actually composite. Closes #560990.
2008-11-23 Thomas Thurman <>
* src/core/display.c: remove apparently spurious warnings about
operations on window "none"
2008-11-23 Thomas Thurman <>
* 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 <>
* Set -ansi so people stop complaining about C99.
2008-11-22 Thomas Thurman <>
* src/core/prefs.c: fix stupid infinite loop when GConf is turned off.
2008-11-22 Thomas Thurman <>
* src/core/prefs.c: fix two places where there was a warning
if GConf was turned off.
2008-11-22 Thomas Thurman <>
* src/core/all-keybindings.h: "backward", not "backwards" throughout.
2008-11-20 Thomas Thurman <>
* 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 <>
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
* 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
(find_handler): moved so it can also be called from
* 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 <>
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
* 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 <>
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 <>
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/ updated description of
2008-11-08 Thomas Thurman <>
* 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 <>
* src/ui/theme-parser.c: Fix build by readding accidentally removed
2008-10-29 Thomas Thurman <>
* src/ui/theme-parser.c: variable names in messages should be
double-quoted. Closes #558309.
2008-10-28 Thomas Thurman <>
* src/include/screen-bindings.h: fix accidental name change of
run_command_terminal. Closes #557943.
2008-10-27 Thomas Thurman <>
* 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 <>
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 <>
* 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 <>
* doc/creating_themes/C/creating-metacity-themes.xml: added missing @id
on <book> top element.
2008-10-23 Frederic Peters <>
* doc/creating_themes/
* 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 <>
* Post-release bump to 2.25.8.
2008-10-23 Thomas Thurman <>
* NEWS: 2.25.5 release.
2008-10-23 Thomas Thurman <>
* src/core/schema-bindings.c: fix stupid thinko which
caused defaults to be incorrect
* src/include/window-bindings.h: "space" needs to be
2008-10-23 Thomas Thurman <>
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 <>
* src/core/schema-bindings.c: support builds outside tree properly.
* src/ ditto.
* po/POTFILES.skip: ditto.
2008-10-22 Thomas Thurman <>
* Post-release bump to 2.25.5.
2008-10-22 Thomas Thurman <>
* NEWS: 2.25.3 release.
2008-10-22 Thomas Thurman <>
* bump to 2.25.3 (thought the release script
had already done this)
2008-10-22 Thomas Thurman <>
Fixes to make distcheck work again.
* src/ include *-binding.h, and make the schema
building work when builddir != srcdir
* po/ (src/core/keybindings.): include *-binding.h
2008-10-22 Götz Waschk <>
* add libm reference. Closes #557357.
2008-10-22 Murray Cumming <>
* doc/creating_themes/C/creating_metacity_themes.xml:
Fixed various tags to make this validate.
Bug #557337
2008-10-22 Thomas Thurman <>
* NEWS: 2.25.2 release.
2008-10-22 Thomas Thurman <>
* NEWS: 2.25.2 release.
2008-10-22 Thomas Thurman <>
* NEWS: 2.25.2 release.
2008-10-22 Joe Marcus Clarke <>
* 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 <>
* src/core/window.c (meta_window_set_demands_attention): minimised
windows are necessarily obscured. Closes #528927.
2008-10-22 Thomas Thurman <>
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 <>
* src/ fix build when schemas are not installed.
Closes #557335.
2008-10-21 Tomas Frydrych <>
* 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 <>
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 <>
* Call GNOME_DOC_INIT() so we can use the gnome-doc-utils
variables in our
* doc/
* doc/creating_themes/
* doc/creating_themes/C/creating_metacity_themes.xml:
Added this new DocBook document, converted from the HTML here
This will be installed for yelp and can be translated and hosted on
2008-10-15 Thomas Thurman <>
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 <>
* po/ add screen-bindings.h
2008-10-13 Thomas Thurman <>
* po/ raw schemas is now
* po/LINGUAS: add Latin
2008-10-12 Thomas Thurman <>
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/ 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/ renamed from s/\.in$//,
sentinel added for the generated bindings,
warning at the top now untrue, and removed.
2008-10-12 Thomas Thurman <>
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 <>
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 <>
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 <>
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 <>
* tools/ experimental tool for Launchpad upload
2008-10-05 Thomas Thurman <>
* 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 <>
* 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 <>
* po/ fix name of window-bindings.h
2008-09-20 Thomas Thurman <>
* po/ added new files and re-sorted
2008-09-12 Vincent Untz <>
Install desktop files in both
.../share/applications and .../share/gnome/wm-properties.
Copied in from the 2.23.x branch. Closes #549479.
* src/ new file
* src/.cvsignore: include the above
* src/ install the above
2008-09-06 Thomas Thurman <>
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 <>
* src/ removed invalid "Window Manager" group
at request of Matthias Clasen.
2008-09-02 Thomas Thurman <>
Desktop file moved, according to policy change. Closes #549479.
* src/ Don't display the desktop file
* src/ Desktop file goes in apps directory
2008-09-01 Thomas Thurman <>
* Post-release bump to 2.25.2.
2008-09-01 Thomas Thurman <>
* NEWS: 2.25.1 release.
2008-09-01 Thomas Thurman <>
* 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 <>
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/ included new binding
2008-08-31 Thomas Thurman <>
* src/core/prefs.[ch] (meta_prefs_set_compositing_manager): new
* src/core/main.c (meta_parse_options): turn the compositing
manager on or off as necessary.
2008-08-30 Thomas Thurman <>
* 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 <>
* NEWS: fix version number which broke
2008-08-18 Thomas Thurman <>
* Post-release version bump to 2.25.1.
2008-08-18 Thomas Thurman <>
* correct incorrect version number
2008-08-18 Thomas Thurman <>
* NEWS: 2.25.1 release.
2008-08-18 Thomas Thurman <>
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 <>
* 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 <>
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
* 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
2008-08-14 Patrick Niklaus <>
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/ Remove default_icon.png from inlinepixbufs.h.
* src/default_icon.png: Removed.
2008-08-14 Akira TAGOH <>
* doc/man/metacity-message.1: new manual page.
* doc/man/ added new reference.
2008-08-13 Thomas Thurman <>
* Post-branch bump to 2.25.0.
2008-08-04 Thomas Thurman <>
* Post-release bump to 2.23.144.
2008-08-04 Thomas Thurman <>
* NEWS: 2.23.89 release.
2008-07-26 Thomas Thurman <>
* metacity.doap (added): DOAP file (first pass, anyway).
2008-07-14 Thomas Thurman <>
* Post-release bump to 2.23.89.
2008-07-14 Thomas Thurman <>
* NEWS: 2.23.55 release.
2008-07-13 Thomas Thurman <>
* 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 <>
* 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 <>
* 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 <>
* src/core/bell.c (meta_bell_set_audible): Fix typo that
slipped through.
2008-06-30 Thomas Thurman <>
* 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 <>
* src/ui/theme-viewer.c (main): display the theme name
in the title bar. Closes #430198.
2008-06-29 Thomas Thurman <>
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 <>
* src/core/bell.c: remove meta_ prefix on all static functions.
2008-06-29 Thomas Thurman <>
* 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 <>
* 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 <>
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.
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
* src/core/window.c (meta_window_shade): remove commented-out code to
call effect for shading.
* src/core/effects.h (MetaEffectFinish): remove useless MetaEffect
* src/core/window.c (finish_minimize): remove MetaEffect parameter.
2008-06-27 Thomas Thurman <>
* src/core/stack.h: Commented everything.
2008-06-26 Thomas Thurman <>
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 <>
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 <>
* Post-release bump to 2.23.55.
2008-06-16 Thomas Thurman <>
* NEWS: 2.23.34 release.
2008-06-16 Thomas Thurman <>
* NEWS: 2.23.34 release.
2008-06-13 Thomas Thurman <>
* 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 <>
* 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 <>
* test/tokentest: A preliminary attempt at a test for the
theme expression tokeniser.
2008-06-05 Thomas Thurman <>
* 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 <>
* NEWS: 2.23.34 release.
2008-06-02 Thomas Thurman <>
* src/core/display.c: make sure compositor things don't get
compiled when we're not using the compositor.
2008-06-02 Thomas Thurman <>
* test/metacity-test: new test script, imported from
2008-05-30 Thomas Thurman <>
* src/core/window-props.h: fix comments (number)
2008-05-30 Thomas Thurman <>
* src/core/window-props.h: commenting
2008-05-28 Thomas Thurman <>
* 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 <>
* Post-release bump to 2.23.34.
2008-05-26 Thomas Thurman <>
* NEWS: 2.23.21 release.
2008-05-26 Thomas Thurman <>
* src/ added in two files needed for Iain's
changes earlier to work in a release tarball
2008-05-24 Iain Holmes <>
* 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 <>
* 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 <>
* src/core/window.c: Applied patch from Ed Catmur to fix #528787
2008-05-19 Iain Holmes <>
* 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/ Relocate the new files
2008-05-13 Robert Escriva <>
* 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 <>
* tools/ 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 <>
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 <>
* src/core/delete.c (io_from_ping_dialog): fix type of "len" variable
(refs #526049)
2008-05-02 Thomas Thurman <>
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/ 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 <>
* 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 <>
* src/ui/fixedtip.[ch]: documentation
2008-04-27 Thomas Thurman <>
* Post-release bump to 2.23.21.
2008-04-27 Thomas Thurman <>
* NEWS: 2.23.13 release.
2008-04-27 Erwann Chenede <>
* 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 <>
* src/core/compositor.c (process_property_notify,
find_window_in_display): Propagate opacity to frame window.
2008-04-22 Thomas Thurman <>
* Post-release bump to 2.23.13.
2008-04-22 Thomas Thurman <>
* NEWS: 2.23.8 release.
2008-04-22 Thomas Thurman <>
* Post-release bump to 2.21.8.
(Which was seriously belated. Sorry, folks.)
2008-04-22 Thomas Thurman <>
* src/core/effects.c: a few comments
2008-04-10 Lucas Rocha <>
* src/ 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 <>
* src/core/compositor.c (hide_overlay_window): Hide the overlay window
(meta_compositor_unmanage_screen): Release the compositor overlay.
2008-04-07 Jens Granseuer <>
* src/core/session.c: (save_state),
reorder declarations so we don't break C89 compilers.
2008-04-06 Thomas Thurman <>
* NEWS: 2.23.5 release.
2008-04-03 Thomas Thurman <>
* src/core/prefs.c (handle_preference_update_bool): preferences
which have a null target don't get updated! (#526016)
2008-03-29 Lucas Rocha <>
* src/, src/ 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 <>
* 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 <>
* src/core/window.c (meta_window_new_with_attrs): Don't
immediately unminimize an initially iconic window (#491090)
2008-03-27 Thomas Thurman <>
* 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 <>
* src/core/display.c (meta_display_close): fix regression
where Metacity sometimes wouldn't quit when replaced
2008-03-26 Thomas Thurman <>
* src/core/display.c (event_callback): meta_display_screen_for_root
is quite capable of returning NULL.
2008-03-25 Thomas Thurman <>
* 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 <>
* Post-release bump to 2.23.5.
2008-03-21 Thomas Thurman <>
* NEWS: 2.23.3 release.
2008-03-21 Thomas Thurman <>
* 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 <>
* src/core/compositor.c (meta_compositor_set_active_window): Handle
compositor being disabled and don't crash.
2008-03-19 Iain Holmes <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* src/core/compositor.c (window_has_shadow): Don't shadow
shaped windows.
2008-03-07 Thomas Thurman <>
* Post-release bump to 2.23.3.
2008-03-07 Thomas Thurman <>
* NEWS: 2.23.2 release.
2008-03-07 Thomas Thurman <>
* src/core/prefs.c (mouse_button_mods_handler): remove
debug statements (*blush*)
2008-03-06 Thomas Thurman <>
* Post-release bump to 2.23.2.
2008-03-06 Thomas Thurman <>
* NEWS: 2.23.1 release.
2008-03-06 Thomas Thurman <>
* tools/ 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 <>
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 <>
* MAINTAINERS: added some spacing to see whether it
helps Pulse
2008-03-03 Cosimo Cecchi <>
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
* src/core/prefs.c (symtab_titlebar_action): new string
representations of the action values
* src/ documentation
2008-02-29 Andrea Del Signore <>
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/ add spacer support
2008-02-28 Thomas Thurman <>
* 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 <>
* src/core/spring-model.[ch]: deleted as no longer used
* src/ modified accordingly
2008-02-27 Thomas Thurman <>
Lots of tiny fixes to make sure we compile with
"gcc -ansi -Werror".
2008-02-26 Jens Granseuer <>
* 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 <>
* Post-release bump to 2.23.1.
2008-02-26 Thomas Thurman <>
* NEWS: 2.23.0 release.
2008-02-26 Thomas Thurman <>
* tools/ 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 <>
* 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 <>
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 <>
* tools/ Print URL of changeset on success.
2008-02-23 Thomas Thurman <>
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 <>
* src/core/constraints.c: Respect requested position on
2008-02-18 Matthias Clasen <>
* src/core/window.h: Make skip-taskbar windows appear in the
Ctrl-Alt-Tab list. Closes #106249.
2008-02-18 Thomas Thurman <>
* 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 <>
* 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 <>
* tools/ added new script to manage commits
2008-02-17 Jim Huang <>
* src/core/prefs.c (update_binding): Allow compilation
when gconf mode is disabled. Closes #515019.
2008-02-14 Jim Huang <>
* src/core/display.c, src/core/util.c: fixups to allow
compilation in non-verbose mode. Closes #515152.
2008-02-12 Thomas Thurman <>
* Correct help for verbose option name.
2008-02-12 Thomas Thurman <>
* Post-branch bump to 2.23.0.
2008-02-12 Thomas Thurman <>
* Post-release bump to 2.21.21.
2008-02-11 Thomas Thurman <>
* NEWS: 2.21.13 release.
2008-02-04 Thomas Thurman <>
* src/core/compositor.c: only use compositor version if
we have a compositor. Closes #514453.
2008-02-04 Thomas Thurman <>
*, 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 <>
* 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 <>
* tools/ 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 <>
* 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 <>
* Post-release bump to 2.21.13.
2008-02-03 Thomas Thurman <>
* NEWS: 2.21.8 release.
2008-02-03 Thomas Thurman <>
* tools/ Fix quoting error and added some
more error checking.
2008-02-03 Thomas Thurman <>
* tools/ basic release script; needs work,
but probably good enough for the current unstable release
2008-02-02 Thomas Thurman <>
* src/ core.h is in include, not core. (Last one, I
2008-02-02 Thomas Thurman <>
* src/ main.h is in include, not core.
2008-02-02 Thomas Thurman <>
* src/ draw-workspace.h is in ui, not core.
2008-02-01 Alex R.M. Turner <>
* 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 <>
* 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 <>
* src/ui/theme.[ch]: more commenting.
2008-01-18 Thomas Thurman <>
* src/ui/theme.[ch]: some more commenting.
2008-01-16 Thomas Thurman <>
* 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 <>
* src/core/bell.c: Commenting.
* src/core/main.c: Commenting, and fixing existing comments.
2008-01-12 Thomas Thurman <>
* src/core/main.c: Refactor repeated lines in main() to
iterate instead.
2008-01-12 Thomas Thurman <>
* 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 <>
* src/core/display.c: reinstated missing first character!
* Doxyfile: correct reordering of blank fields.
2008-01-12 Thomas Thurman <>
* 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
2008-01-07 Thomas Thurman <>
* 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 <>
* src/core/main.c (main): g_free is a no-op on nulls; there is no
need to test.
2008-01-06 Thomas Thurman <>
* src/core/display.c: Function commenting marathon; more to come.
2008-01-02 Thomas Thurman <>
* 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 <>
* 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.
2007-12-27 Iain Holmes <>
* 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 <>
* src/core/compositor.c: USe the compositor overlay window instead of
the root window.
2007-12-21 Paolo Borelli <>
* 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
2007-12-19 Havoc Pennington <>
* 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 <>
* 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.
* 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 <>
* Post-release bump to 2.21.8.
2007-12-19 Thomas Thurman <>
* NEWS: 2.21.5 release.
2007-12-19 Thomas Thurman <>
* print "Subversion" and not "CVS".
2007-12-18 Thomas Thurman <>
* compositor enabled by default.
2007-12-18 Iain Holmes <>
*, 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/ Merge compositor branch.
2007-12-14 Thomas Thurman <>
* Post-release bump to 2.21.5.
2007-12-14 Thomas Thurman <>
* NEWS: 2.21.3 release.
2007-12-11 Thomas Thurman <>
* src/theme-parser.c: remove dead code; closes #501365.
2007-12-08 Thomas Thurman <>
* src/ rewrite long description of
/schemas/apps/metacity/general/focus_new_windows because we
love the translators really. Closes #474889.
2007-12-08 Matthias Clasen <>
* src/menu.c (meta_window_menu_new): check for null before adding
menu; closes #496054.
2007-12-08 Thomas Thurman <>
* 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 <>
* 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 <>
* 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 <>
* Post-release bump to 2.21.3.
2007-11-17 Thomas Thurman <>
* NEWS: 2.21.2 release.
2007-11-17 Benjamin Gramlich <>
* 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 <>
* 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 <>
* src/window.c: (meta_window_save_user_rect): new helper, saves
only unmaximized dimensions, and not when fullscreen.
meta_window_move_resize_request): use it. (#461927)
2007-11-11 Thomas Thurman <>
* Post-release bump to 2.21.2.
2007-11-11 Thomas Thurman <>
* NEWS: 2.21.1 release.
2007-11-11 Thomas Thurman <>
* 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 <>
* 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 <>
* 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
2007-11-06 Peter Bloomfield <>
* src/window.c (meta_window_move_resize_internal): save
unmaximized part of client root coords. (#461927)
2007-11-06 Peter Bloomfield <>
* src/window.c (meta_window_move_resize_internal): do not save
client root coords while window is maximized. (#461927)
2007-10-30 iain Holmes <>
* 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 <>
* 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 <>
* src/tabpopup.c (tab_entry_new): Truncate the string to
max_char_per_title before adding bold tags and fix general flow of
2007-10-16 Thomas Thurman <>
* 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 <>
* Post-branch bump to 2.21.1.
2007-10-03 Kjartan Maraas <>
* Remove circular dep metacity<->gnomecc.
2007-09-15 Elijah Newren <newren gmail com>
* post-release version bump to 2.20.1
2007-09-15 Elijah Newren <newren gmail com>
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 <>
* post-release bump to 2.19.89.
2007-08-07 Thomas Thurman <>
* NEWS: 2.19.55 release.
2007-08-06 Thomas Thurman <>
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 <>
* src/delete.c: Fix mangled window title in "Force Quit"
dialog when using non-UTF8 locale. Close #462734.
2007-08-02 Thomas Thurman <>
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
* 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 <>
* 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 <>
* src/window.h (MetaWindow): Put all bitfields together to
help with optimisation. Closes #450271 (for real this time).
2007-07-23 Matthias Clasen <>
* src/ Use the correct directory when
installing keybindings. (#454055)
2007-07-22 Thomas Thurman <>
* post-release bump to 2.19.55.
2007-07-22 Thomas Thurman <>
* NEWS: 2.19.34 release.
2007-07-22 Rob Bradford <>
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 <>
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 <>
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
* src/theme.c (meta_frame_layout_calc_geometry): Fixed access to
button_layout to stop iterating when getting to a
2007-06-23 Thomas Thurman <>
* src/window.c (MetaWindow): Put all bitfields together to
help with optimisation. Closes #450271.
2007-06-18 Thomas Thurman <>
* src/main.c (version): Update copyright year because it was
five years out of date.
2007-06-18 Thomas Thurman <>
* post-release bump to 2.19.34.
2007-06-18 Thomas Thurman <>
* NEWS: 2.19.21 release.
2007-06-18 Thomas Thurman <>
* 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 <>
* 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 <>
* 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 <>
* window.h: make prototype of meta_window_unqueue match
implementation. Closes #446535.
2007-06-10 Thomas Thurman <>
* post-release bump to 2.19.21.
2007-06-10 Thomas Thurman <>
* NEWS: 2.19.13 release.
2007-06-10 Thomas Thurman <>
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
* 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 <>
* src/ added switch_group; closes #444879.
2007-06-08 Elijah Newren <newren gmail com>
* src/
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 <>
* 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 <>
* 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 <>
* post-release bump to 2.19.13.
2007-06-04 Thomas Thurman <>
* NEWS: 2.19.8 release.
2007-06-04 Thomas Thurman <>
* src/metaaccellabel.c (meta_accel_label_expose_event): fix
label layout for RTL languages. Closes #433400.
2007-06-03 Thomas Thurman <>
* 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 <>
* 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 <>
* 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>
* 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,
Remove window->user_has_move_resized; it's not needed or used
* 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.
* 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>
* 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
* 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
2007-04-15 Elijah Newren <newren gmail com>
Remove incorrect usage of window.h from menu.c. See #426791 &
* src/menu.c (enum MetaMenuItemType, variable menuitems,
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):
* 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
* 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 <>
* 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
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
* 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 <>
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):
* 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
check for NET_MOVERESIZE_WINDOW messages and call
meta_window_move_resize_request() with the appropriate parameters
to handle them
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_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>
* 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,
* 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
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,
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 <>
* ChangeLog: removed conflict line.
2007-04-07 Elijah Newren <newren gmail com>
* src/prefs.[ch] (screen_bindings array,
* 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.
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 <>
* 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 <>
* src/
* src/
* src/
Add new control-center key bindings definitions (Closes: #420145)
2007-04-04 Elijah Newren <newren gmail com>
* 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
* 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
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
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,
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,
get_disjoint_strut_rect_list_in_region, fix_up_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 <>
* src/theme.c (kill_window_question): Fallback to NORMAL state after
checking for the middle button. Fixes bug #419043.
Patch from Benjamin Berg <>.
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
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,
* src/display.h (struct _MetaDisplay):
create a dedicated timestamp pinging window instead of reusing
* 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,
* 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,
* src/window.c (meta_window_new_with_attrs):
new hooks to handle new atom
2007-03-26 Josselin Mouette <>
* 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>
* 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 <>
* 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 <>
* 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 <>
* src/ add action_{middle|right}_click_titlebar.
Closes #408903.
2007-03-09 Linus Torvalds <>
* 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 <>
can find out where to send patches. Hi Linus :-)
2007-02-17 Linus Torvalds <>
* 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
* 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 <>
* 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 <>
* 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 <>.
2007-01-16 Thomas Thurman <>
* doc/compositor-control.txt: fix silly thinko.
2007-01-16 Thomas Thurman <>
* post-release bump to 2.17.8.
2007-01-16 Thomas Thurman <>
* doc/compositor-control.txt: New file.
2007-01-16 Thomas Thurman <>
* 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 <>
* 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 <>.
2007-01-02 Thomas Thurman <>
* src/c-screen.c (meta_comp_screen_redirect): Remove double unref
of stacker object. Fixes #387761.
2006-12-27 Bruno Boaventura <>
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 <>
* 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 <>
* src/compositor.c (do_effect): Sanity check to avoid dereferencing
a null pointer.
2006-12-10 Thomas Thurman <>
* post-release bump to 2.17.5.
2006-12-10 Thomas Thurman <>
* NEWS: 2.17.3 release.
2006-12-05 Christof Krüger <>
* src/window.c (update_move): Fix flickering about when dragging
maximised windows between xineramas. Closes #358715.
2006-12-03 Federico Mena Quintero <>
* 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 <>
2006-11-15 Björn Lindqvist <>
* src/menu.c: added MetaMenuItemType enum; added it
to MenuItem; added values of this type to menuitems
* 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 <>
* post-release bump to 2.17.3.
2006-11-06 Thomas Thurman <>
* pre-release bump to 2.17.2.
* NEWS: 2.17.2 release.
2006-11-05 Priit Laes <>
* src/main.c, src/ui.c: remove deprecated gtk stuff.
2006-11-05 Bruno Boaventura <>
* src/theme.c, src/testgradient.c: remove deprecated gtk stuff.
2006-11-05 Kjartan Maraas <>
* src/ui.c: use g_strdup to allocate a string, not strdup. Fixes
* src/metacity-dialog.c: add missing spaces to string. Fixes
2006-11-05 Justin Mason <>
* 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/ keybindings for the above.
2006-11-05 Elijah Newren <newren gmail com>
* src/frames.c: improved rounding of rounded corners. Fixes #360542,
2006-10-30 Dan Mick <>
* 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 <>
Fix cases when titlebar is allowed offscreen and shouldn't be (and
vice-versa). #333995.
* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
* 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
* 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 <>
* post-release bump to 2.17.1.
2006-10-07 Thomas Thurman <>
* NEWS: 2.17.0 release.
2006-10-07 Thomas Thurman <>
* src/themes/Crux/metacity-theme-2.xml: removed hide_buttons.
Closes #360498.
2006-10-07 Thomas Thurman <>
* MAINTAINERS: added myself.
2006-10-07 Thomas Thurman <>
* doc/theme-format.txt: described new theme format.
* src/themes/Bright, src/themes/Crux: added version 2 themes.
2006-10-07 Thomas Thurman <>
* 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.
* 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
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_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).
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
* 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
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
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 <>
Branched for Gnome 2.17.
* bump version to 2.17.0.
2006-09-18 Thomas Thurman <>
* post-release bump to 2.16.3
2006-09-18 Thomas Thurman <>
* 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,
* src/display.[ch] (meta_display_open, meta_display_close,
event_callback, meta_display_begin_grab_op,
process_selection_clear, meta_display_unmanage_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_unmake_fullscreen, meta_window_shade,
meta_window_unshade, window_activate, send_sync_request,
meta_window_client_message, menu_callback,
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>
* 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,
* 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,
* 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,
* src/workspace.[ch] (focus_ancestor_or_mru_window,
meta_workspace_activate_with_focus, meta_workspace_activate,
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.
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.
2006-09-11 Thomas Thurman <>
* post-release bump to 2.16.2
2006-09-11 Thomas Thurman <>
* 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.
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
* 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
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 <>
* src/window-props.c (reload_transient_for): Clear
window->xtransient_for after emitting the invalid window warning.
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 <>
* post-release version bump to 2.16.1
2006-09-04 Thomas Thurman <>
* 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>
* 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
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
* 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 <>
* 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.
2006-08-07 Elijah Newren <newren gmail com>
* 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.