diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 9971ab08a..000000000 --- a/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Havoc Pennington diff --git a/COMPLIANCE b/COMPLIANCE deleted file mode 100644 index b45a6724f..000000000 --- a/COMPLIANCE +++ /dev/null @@ -1,159 +0,0 @@ -Metacity Standards Compliance -============================= -$Id$ - -1) Introduction -2) EWMH Compliance - a. Root Window Properties - b. Root Window Messages - c. Application Window Properties - d. Window Manager Protocols -3) ICCCM Compliance - -1) Introduction ---------------- - -This document details metacity compliance with the relevent standards. -The format of this document is as follows: - -[-/+?] Hint Name/Feature Name (Version number) - Errata/Comments - -The first character indicates the level of compliance as follows: - - none - / partial - + complete - ? unknown - -The title indicates a feature or a hint in the specification, and the -version number indicates the minimum version of the specification -supported by metacity. Later versions may be supported if no -incompatible changes have been made in the specification. - -2) EWMH Compliance ------------------- - -The EWMH, or Extended Window Manager Hints is a freedesktop.org- -developed standard to support a number of conventions for -communication between the window manager and clients. It builds on -and extends the ICCCM (See Section 3). A copy of the current EWMH -standard is available at http://freedesktop.org/Standards/wm-spec/ - - a. Root Window Properties - ------------------------- - -+ _NET_SUPPORTED (1.3) - -+ _NET_CLIENT_LIST (1.3) - -+ _NET_NUMBER_OF_DESKTOPS (1.3) - -+ _NET_DESKTOP_GEOMETRY (1.3) - Metacity does not implement large desktops, so this is kept set to - the screen size. - -+ _NET_DESKTOP_VIEWPORT (1.3) - Metacity does not implement viewports, so this is a constant (0,0). - -+ _NET_CURRENT_DESKTOP (1.3) - -+ _NET_DESKTOP_NAMES (1.3) - -+ _NET_ACTIVE_WINDOW (1.3) - -+ _NET_WORKAREA (1.3) - -+ _NET_SUPPORTING_WM_CHECK (1.3) - -+ _NET_VIRTUAL_ROOTS (1.3) - Metacity does not read or set this property, but it does not use - virtual roots to implement virtual desktops, so it complies with the - specification. - -+ _NET_DESKTOP_LAYOUT (1.3) - -+ _NET_SHOWING_DESKTOP (1.3) - - b. Root Window Messages - ----------------------- - -+ _NET_CLOSE_WINDOW (1.3) - -- _NET_MOVERESIZE_WINDOW (1.3) - Metacity supports this message, but the specification is unclear on - the layout of the detail value, and as such it is #if 0'd in the code - -+ _NET_WM_MOVERESIZE (1.3) - -- _NET_RESTACK_WINDOW (1.3) - Metacity will raise or lower windows in response to this message, - but the sibling restack modes are not supported, and it is currently - #if 0'd in the code. - -+ _NET_REQUEST_FRAME_EXTENTS (1.3) - - c. Application Window Properties - -------------------------------- - -+ _NET_WM_NAME (1.3) - -+ _NET_WM_VISIBLE_NAME (1.3) - Metacity does not set this property, but metacity will never display - a name different from _NET_WM_NAME - -+ _NET_WM_ICON_NAME (1.3) - -+ _NET_WM_VISIBLE_ICON_NAME (1.3) - Metacity does not set this property, but metacity will never display - a name different from _NET_WM_NAME - -+ _NET_WM_DESKTOP (1.3) - -+ _NET_WM_WINDOW_TYPE (1.3) - -/ _NET_WM_STATE (1.3) - This property is read and updated according to the specification, - but see caveat below. - Metacity does not recognize separate vertical and horizontal - maximization states. Currently metacity will do a two-dimensional - maximization if either property is set. - See: http://bugzilla.gnome.org/show_bug.cgi?id=113601 - Metacity doesn't implement viewports so _NET_WM_STATE_STICKY is - unimplemented. - -+ _NET_WM_ALLOWED_ACTIONS (1.3) - Metacity keeps this hint up to date. The code is somewhat crufty - and should be rewritten, though it is functional. - See: http://bugzilla.gnome.org/show_bug.cgi?id=90420 - -+ _NET_WM_STRUT (1.3) - -+ _NET_WM_STRUT_PARTIAL (1.3) - -+ _NET_WM_ICON_GEOMETRY (1.3) - Metacity uses this property to draw minimize/restore animations - -+ _NET_WM_ICON (1.3) - -+ _NET_WM_PID (1.3) - -+ _NET_WM_HANDLED_ICONS (1.3) - Metacity does not read or set this property. However, metacity - never manages iconified windows, and so has no need to do so. - -+ _NET_WM_USER_TIME (1.3) - Metacity uses this property to prevent applications from stealing - focus if supported by the toolkit. - -+ _NET_FRAME_EXTENTS (1.3) - If set in response to a _NET_REQUEST_FRAME_EXTENTS message received - prior to the window being mapped, this may be an estimate. This is, - however, expressly allowed by the specification. - - d. Window Manager Protocols - --------------------------- -+ _NET_WM_PING (1.3) - -3) ICCCM Compliance -------------------- -TODO \ No newline at end of file diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index e68822de0..000000000 --- a/ChangeLog +++ /dev/null @@ -1,15414 +0,0 @@ -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 - - * configure.in: 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/metacity.schemas.in.in: - -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 - - * 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 - - * configure.in: 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/metacity.schemas.in.in: add screenshot commands which had - mistakenly been removed; closes #564343, Launchpad bug 298463, - Red Hat bug 474635, and probably others. - -2008-12-24 Thomas Thurman - - * 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 - - * configure.in: Post-release bump to 2.25.89. - -2008-12-16 Thomas Thurman - - * NEWS: 2.25.55 release. - -2008-12-15 Erwann Chenede - - * configure.in: fix build on Solaris. Closes #564123. - -2008-12-02 Thomas Thurman - - * configure.in: 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 - - * configure.in: Post-release bump to 2.25.34. - -2008-12-01 Thomas Thurman - - * NEWS: 2.25.21 release. - -2008-12-01 Thomas Thurman - - * configure.in: gnome-doc-tools version doesn't need to be so high. - * src/compositor/compositor-xrender.c: disable the entire file if the - compositor is disabled. - * src/core/async-getprop.[ch]: fixes for -Wall - * src/core/iconcache.c: fixes for -Wall - * src/core/testasyncgetprop.c: fixes for -Wall - * src/core/xprops.c: fixes for -Wall - -2008-11-26 Thomas Thurman - - * tools/announce-wrangler.py: linked language codes to po files - * tools/commit-wrangler.py: print revision url - -2008-11-26 Thomas Thurman - - * tools/announce-wrangler.py: renamed ini file - * tools/commit-wrangler.py: rewriting in terms of moap - -2008-11-25 Thomas Thurman - - * configure.in: Post-release bump to 2.25.21. - -2008-11-25 Thomas Thurman - - * NEWS: 2.25.13 release. - -2008-11-26 Thomas Thurman - - * tools/announce-wrangler.py (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 - - * configure.in: Post-release bump to 2.25.13. - -2008-11-23 Thomas Thurman - - * NEWS: 2.25.8 release. - -2008-11-23 Thomas Thurman - - * po/POTFILES.in: add new bindings file - -2008-11-23 Daniel Macks - - reviewed by: Thomas Thurman - - * src/Makefile.am: reorder compiler flags so local includes come last. - Closes #562033. - -2008-11-23 Daniel Macks - - reviewed by: Thomas Thurman - - * configure.in: 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 - - * configure.in: 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 - - * configure.in: turned on -Wall and -Werror in order to - trap as many problems as possible. - * src/ui/resizepopup.c: added correct #include. - * src/ui/theme-viewer.c: initialised variable. - * src/core/xprops.c: corrected cast. - * src/core/main.c: added warning if chdir() fails. - * src/core/schema-bindings.c: checking the return - result of fgets(). - -2008-11-20 Thomas Thurman - - Merged screen and window keybinding tables so that - we can use just one file for the both. Also incidentally - closes #528337. Further efficiencies of scale to come. - - * src/include/prefs.h: replace META_PREF_*_KEYBINDINGS - with META_PREF_KEYBINDINGS - * src/core/keybindings.c: replace *_bindings with key_bindings - and similar throughout; all window-based functions are now - guaranteed to receive a window so don't need to check for - themselves - (find_handler): moved so it can also be called from - rebuild_binding_table - * src/core/display-private.h: replace *_bindings with key_bindings - * src/core/prefs.c: update_*_binding becomes update_key_binding; - (change_notify): tidy up references to "enormous if statement" - since it's almost entirely gone now - * src/core/all-keybindings.h: new merged version of - screen-bindings.h and window-bindings.h. - -2008-11-16 David Trowbridge - - This change adds support for the new _NET_WM_FULLSCREEN_MONITORS - property and client message. This allows client applications to request - that a fullscreen window cover more than one monitor. - - * src/include/boxes.h: - * src/core/boxes.c: Add meta_rectangle_union - - * src/core/window-private.h: - * src/core/window.c: - (meta_window_new_with_attrs, meta_window_free, set_net_wm_state, - meta_window_update_fullscreen_monitors, meta_window_client_message): Add - MetaWindow property to store fullscreen monitors field, update - _NET_WM_FULLSCREEN_MONITORS property on windows, and handle client - message. - - * src/core/atomnames.h: Add _NET_WM_FULLSCREEN_MONITORS atom. - - * src/core/constraints.c (setup_constraint_info): If - _NET_WM_FULLSCREEN_MONITORS is interesting, use the data stored in - MetaWindow::fullscreen_monitors to determine the fullscreen area instead - of the basic xinerama_info area. - -2008-11-11 Thomas Thurman - - 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 - - * src/metacity.schemas.in.in: updated description of - raise_on_click: - http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6 - -2008-11-08 Thomas Thurman - - * configure.in: added dependency on Zenity - * src/core/keybindings.c: remove error_on_generic_command() and - error_on_terminal_command(); rewrite error_on_command - in terms of meta_show_dialog() - * src/core/util.c: add meta_show_dialog() to call Zenity - * src/include/util.h: ditto - -2008-11-03 Olav Vitters - - * 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 top element. - -2008-10-23 Frederic Peters - - * doc/creating_themes/Makefile.am: - * doc/creating_themes/C/creating_metacity_themes.xml: renamed document - to creating-metacity-themes to match other manuals usage of dashes. - -2008-10-23 Thomas Thurman - - * configure.in: 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 - lowercase - -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/Makefile.am: ditto. - * po/POTFILES.skip: ditto. - -2008-10-22 Thomas Thurman - - * configure.in: Post-release bump to 2.25.5. - -2008-10-22 Thomas Thurman - - * NEWS: 2.25.3 release. - -2008-10-22 Thomas Thurman - - * configure.in: 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/Makefile.am: include *-binding.h, and make the schema - building work when builddir != srcdir - * po/POTFILES.in (src/core/keybindings.): include *-binding.h - -2008-10-22 Götz Waschk - - * configure.in: 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/Makefile.am: 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 - - * configure.in: Call GNOME_DOC_INIT() so we can use the gnome-doc-utils - variables in our Makefile.am: - * doc/Makefile.am: - * doc/creating_themes/Makefile.am - * doc/creating_themes/C/creating_metacity_themes.xml: - Added this new DocBook document, converted from the HTML here - http://blogs.gnome.org/metacity/2008/05/30/themes/ - This will be installed for yelp and can be translated and hosted on - library.gnome.org. - -2008-10-15 Thomas Thurman - - 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/POTFILES.in: add screen-bindings.h - -2008-10-13 Thomas Thurman - - * po/POTFILES.in: raw schemas is now .in.in - * 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/Makefile.am: added magic to make it call schema-bindings - after it builds it. - * src/core/window-bindings.h: added comments; - also, window menu was listed variously as alt-Space - and alt-Print; it should have been alt-Space. - * src/metacity.schemas.in.in: renamed from s/\.in$//, - sentinel added for the generated bindings, - warning at the top now untrue, and removed. - -2008-10-12 Thomas Thurman - - 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/ppa-magic.py: 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 - - * autogen.sh: not all versions of /bin/sh can handle this script, - so specify one. Also update the error message because we don't - use CVS these days. - -2008-09-20 Thomas Thurman - - * po/POTFILES.in: fix name of window-bindings.h - -2008-09-20 Thomas Thurman - - * po/POTFILES.in: 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/metacity-wm.desktop.in: new file - * src/.cvsignore: include the above - * src/Makefile.am: 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/metacity.desktop.in: 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/metacity.desktop.in: Don't display the desktop file - * src/Makefile.am: Desktop file goes in apps directory - -2008-09-01 Thomas Thurman - - * configure.in: 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/metacity.schemas.in: included new binding - -2008-08-31 Thomas Thurman - - * src/core/prefs.[ch] (meta_prefs_set_compositing_manager): new - function. - * src/core/main.c (meta_parse_options): turn the compositing - manager on or off as necessary. - -2008-08-30 Thomas Thurman - - * 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 - - * configure.in: Post-release version bump to 2.25.1. - -2008-08-18 Thomas Thurman - - * configure.in: 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 - meta_window_save_user_rect(). - * src/core/window.c (force_save_user_placement): similar, but will - always save user_rect even if the window is maximised or fullscreen. - * src/core/window.c (meta_window_move_resize_internal): unplaced - windows have force_save_user_placement() called instead of - save_user_placement(). - -2008-08-14 Patrick Niklaus - - Icons for windows are taken from the desktop theme, not from - the Metacity theme or from the fallback icon that Metacity - provided. Closes #524343. - - * src/ui/ui.c: Use GtkIconTheme to load the default window icon. - Assumes the existence of an icon called "window", otherwise - falls back to "gtk-missing-image". Fixes #524343. - * src/ui/preview-widget: See above. - * src/include/common.h: Add META_DEFAULT_ICON_NAME. - * src/Makefile.am: Remove default_icon.png from inlinepixbufs.h. - * src/default_icon.png: Removed. - -2008-08-14 Akira TAGOH - - * doc/man/metacity-message.1: new manual page. - * doc/man/Makefile.am: added new reference. - -2008-08-13 Thomas Thurman - - * configure.in: Post-branch bump to 2.25.0. - -2008-08-04 Thomas Thurman - - * configure.in: 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 - - * configure.in: 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 - - * 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. - * src/core/effects.h (META_MINIMIZE_ANIMATION_LENGTH, - META_SHADE_ANIMATION_LENGTH): move to effects.c because they're used - nowhere else. - * src/core/effects.c: there were three versions of the box-zoom effect. - Remove the one which was never used, and make only the ones which - are used with certain configure settings be compiled. - * src/core/effects.h (meta_effect_end): move to effects.c, make static, - and rename to effect_free. - * src/core/effects.h (meta_effects_draw_box_animation): move to - effects.c, make static, and rename to draw_box_animation. - * src/core/effects.h (MetaEffectType): remove the values which weren't - used. - * src/core/window.c (meta_window_shade): remove commented-out code to - call effect for shading. - * src/core/effects.h (MetaEffectFinish): remove useless MetaEffect - parameter. - * src/core/window.c (finish_minimize): remove MetaEffect parameter. - -2008-06-27 Thomas Thurman - - * 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 - - * configure.in: 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 - branch. - -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 - - * configure.in: Post-release bump to 2.23.34. - -2008-05-26 Thomas Thurman - - * NEWS: 2.23.21 release. - -2008-05-26 Thomas Thurman - - * src/Makefile.am: 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/Makefile.am: 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/xlib.py: Basic Python-based Xlib client for testing - and building upon. - -2008-05-09 Elijah Newren - - * 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/Makefile.am: added reference to new file - * src/core/display.h - * src/core/display.c (twice) - * src/core/screen.c: #included atomnames.h instead of having - an enormous list of atoms - * src/core/group-props.c - * src/core/window.c - * src/core/compositor.c - * src/core/window-props.c - * src/core/delete.c - * src/core/workspace.c - * src/core/stack.c - * src/core/keybindings.c - * src/core/iconcache.c - * src/core/group.c - * src/core/xprops.c: changed to new, simpler identifiers - for atoms - -2008-04-29 Chris Wang - - * 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 - - * configure.in: 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 - - * configure.in: Post-release bump to 2.23.13. - -2008-04-22 Thomas Thurman - - * NEWS: 2.23.8 release. - -2008-04-22 Thomas Thurman - - * configure.in: 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/Makefile.am: no need to create a symlink to .desktop file in - default-session directory anymore as gnome-session will find - metacity's .desktop in its original place. - -2008-04-07 iain - - * src/core/compositor.c (hide_overlay_window): Hide the overlay window - (meta_compositor_unmanage_screen): Release the compositor overlay. - (#526770) - -2008-04-07 Jens Granseuer - - * src/core/session.c: (save_state), - (warn_about_lame_clients_and_finish_interact): - reorder declarations so we don't break C89 compilers. - -2008-04-06 Thomas Thurman - - * 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/metacity.desktop.in, src/Makefile.am: make Metacity - install its desktop files in the default session directory - as required by the new gnome-session. (Closes #525051.) - -2008-03-29 Thomas Thurman - - * 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 - - * configure.in: 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 - - * configure.in: 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 - - * configure.in: Post-release bump to 2.23.2. - -2008-03-06 Thomas Thurman - - * NEWS: 2.23.1 release. - -2008-03-06 Thomas Thurman - - * tools/release-wrangler.py: basic md5 printing (not used yet); - also print release announcements to stdout (eventually will - need to be emailed to release list and blogged) - -2008-03-06 Thomas Thurman - - 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 - necessary) - * src/core/prefs.c (symtab_titlebar_action): new string - representations of the action values - * src/metacity.schemas.in: documentation - -2008-02-29 Andrea Del Signore - - Add support for "spacer" as a button type which adds some - empty space. Closes #509165. - - * src/ui/theme.c (meta_frame_layout_calc_geometry), - src/include/common.h (MetaButtonLayout), - src/core/prefs.c (update_button_layout, button_layout_equal), - src/metacity.schemas.in: add spacer support - -2008-02-28 Thomas Thurman - - * 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/Makefile.am: 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 - - * configure.in: Post-release bump to 2.23.1. - -2008-02-26 Thomas Thurman - - * NEWS: 2.23.0 release. - -2008-02-26 Thomas Thurman - - * tools/release-wrangler.py: ANY post-release bump is now the - most recent, not just the one that matches the current version. - Otherwise, you can't use these tools straight after a branch. - The changeset before this one was mislabelled because of this. - It has now been excised from the changelog. - -2008-02-25 Thomas Wood - - * 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/commit-wrangler.py: 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 - _NET_MOVERESIZE_WINDOW. Closes #448183. - -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 - - * configure.in: if we have libSM and its headers, - that means we did find it, not that we didn't. - Closes #328210. - -2008-02-18 Thomas Thurman - - * 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/commit-wrangler.py: 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 - - * configure.in: Correct help for verbose option name. - -2008-02-12 Thomas Thurman - - * configure.in: Post-branch bump to 2.23.0. - -2008-02-12 Thomas Thurman - - * configure.in: 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 - - * configure.in, src/ui/ui.c: remove workaround for a problem - in GTK 1.3.9(!) which was causing problems. Closes #513737. - -2008-01-28 Michael Meeks - - * 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/patch-wrangler.py: another program I use for maintenance - which other people might find useful and which should probably - be in svn. Also not very polished. - -2008-02-03 Thomas Thurman - - * 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 - - * configure.in: Post-release bump to 2.21.13. - -2008-02-03 Thomas Thurman - - * NEWS: 2.21.8 release. - -2008-02-03 Thomas Thurman - - * tools/release-wrangler.py: Fix quoting error and added some - more error checking. - -2008-02-03 Thomas Thurman - - * tools/release-wrangler.py: basic release script; needs work, - but probably good enough for the current unstable release - -2008-02-02 Thomas Thurman - - * src/Makefile.am: core.h is in include, not core. (Last one, I - promise.) - -2008-02-02 Thomas Thurman - - * src/Makefile.am: main.h is in include, not core. - -2008-02-02 Thomas Thurman - - * src/Makefile.am: 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 - too. - -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. http://bugzilla.gnome.org/show_bug.cgi?id=504876 - -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 - handling. - -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. - - * autogen.sh: require a newer automake, so we don't have to use - a recursive build - - * src/ui/tabpopup.c: put in a hack to make the build temporarily - work, want to commit the large rearrangement before fixing this - not to include workspace.h or frame.h - - * src/core/iconcache.c (meta_read_icons): temporarily break this - to get the build to work, want to commit the large rearrangement - before fixing this file not to include theme.h - -2007-12-19 Thomas Thurman - - * configure.in: Post-release bump to 2.21.8. - -2007-12-19 Thomas Thurman - - * NEWS: 2.21.5 release. - -2007-12-19 Thomas Thurman - - * configure.in: print "Subversion" and not "CVS". - -2007-12-18 Thomas Thurman - - * configure.in: compositor enabled by default. - -2007-12-18 Iain Holmes - - * configure.in, src/theme.c, src/display.c, - src/theme.h, src/display.h, src/theme-parser.c, - src/compositor.c, src/c-screen.c, src/compositor.h, - src/c-screen.h, src/ui.c, src/screen.c, src/ui.h, - src/screen.h, src/c-window.c, src/c-window.h, - src/theme-viewer.c, src/Makefile.am: Merge compositor branch. - -2007-12-14 Thomas Thurman - - * configure.in: 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/metacity.schemas.in: rewrite long description of - /schemas/apps/metacity/general/focus_new_windows because we - love the translators really. Closes #474889. - -2007-12-08 Matthias Clasen - - * 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 - - * configure.in: 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_internal, - meta_window_move_resize_request): use it. (#461927) - -2007-11-11 Thomas Thurman - - * configure.in: 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 - - * 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 - http://bugzilla.gnome.org/show_bug.cgi?id=488468 - -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 - function. - -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 - - * configure.in: Post-branch bump to 2.21.1. - -2007-10-03 Kjartan Maraas - - * configure.in: Remove circular dep metacity<->gnomecc. - -2007-09-15 Elijah Newren - - * configure.in: post-release version bump to 2.20.1 - -2007-09-15 Elijah Newren - - * configure.in: - * NEWS: - 2.20.0 release - -2007-09-15 Elijah Newren - - * 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 - - * HACKING: update; cvs->svn & mention GConf needed - * MAINTAINERS: Make it match idiotic format requirements (I love - you Olav!) - -2007-08-07 Thomas Thurman - - * configure.in: 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 - item. - * src/menu.c (menuitems): reordered "close", added a workspace list. - * src/menu.c (menu_item_new): return null for workspace lists. - * src/menu.c (meta_window_menu_new): handle workspace lists. - -2007-07-31 Thomas Thurman - - * 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 - - * configure.in: - * src/Makefile.am: Use the correct directory when - installing keybindings. (#454055) - -2007-07-22 Thomas Thurman - - * configure.in: 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 - meta_ui_init(). - * src/theme.c (meta_frame_layout_calc_geometry): Fixed access to - button_layout to stop iterating when getting to a - META_BUTTON_FUNCTION_LAST value. - -2007-06-23 Thomas Thurman - - * 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 - - * configure.in: 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 - - * configure.in: 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 - bitfield. - * src/core.c (meta_core_queue_frame_resize): - * src/display.c (event_callback, - meta_display_queue_retheme_all_windows): Using new queueing functions. - * src/frame.c (meta_window_destroy_frame): Using new queueing functions. - * src/screen.c (queue_resize, meta_screen_resize_func, - queue_windows_showing): Using new queueing functions. - * src/window-props.c (reload_mwm_hints, reload_wm_hints, - reload_transient_for): Using new queueing functions. - * src/workspace.c (meta_workspace_add_window, - meta_workspace_remove_window, meta_workspace_queue_calc_showing, - meta_workspace_invalidate_work_area): Using new queueing functions. - -2007-06-09 Thomas Thurman - - * src/50-metacity-key.xml.in: added switch_group; closes #444879. - -2007-06-08 Elijah Newren - - * src/metacity.schemas.in: - Update the raise_on_click description to try to prevent misuses, - to appropriately warn users, and to stop wasting the time of - application developers. #445447, #389923 - -2007-06-06 Thomas Thurman - - * 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 - - * configure.in: 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 - - * configure.in: post-release bump to 2.19.8. - -2007-04-23 Elijah Newren - - * NEWS: 2.19.5 release. - -2007-04-23 Elijah Newren - - 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 - - Fix some fallout from #426519; update user_rect for all position - changes prior to the window being marked as placed. Prevents - emacs in particular from flickering on start and always being - shoved to the upper-left corner. - - * src/window.c (meta_window_move_resize_internal): - Record position in user_rect if the window is not yet marked as - placed too - - * src/window.c (struct MetaWindow, meta_window_new_with_attrs, - meta_window_move_resize_internal): - Remove window->user_has_move_resized; it's not needed or used - anymore. - - * src/window.[ch] (meta_window_get_user_position): - Remove this function as it is no longer needed or used. - -2007-04-16 Elijah Newren - - Prevent metacity from "forgetting" which machine a window is on. - #418552 - - * src/window.c (meta_window_new_with_attrs): reorder the property - loading so that we know the wm_client_machine when we load the - name of the window and can modify the window name accordingly. - -2007-04-16 Elijah Newren - - * configure.in: post-release bump to 2.19.5. - -2007-04-16 Elijah Newren - - * NEWS: 2.19.3 release. - -2007-04-15 Elijah Newren - - Preserve stacking order across restarts. - - * src/display.c (meta_display_unmanage_windows_for_screen): - unmap windows in stacking order so that stacking is preserved upon - shutdown - - * src/display.[ch] (meta_display_stack_cmp): - * src/session.c (stack_cmp, save_state): - rename stack_cmp() -> meta_display_stack_cmp() and move it to a - different function so that it can be used in both - session.c:save_state() and - meta_display_unmanage_windows_for_screen() - -2007-04-15 Elijah Newren - - Remove incorrect usage of window.h from menu.c. See #426791 & - #382962. - - * src/menu.c (enum MetaMenuItemType, variable menuitems, - meta_menu_item_new): - cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff - - * src/menu.c (variable menuitems): - * src/core.c (meta_core_get_menu_accelerator): - * src/window.c (menu_callback, meta_window_show_menu): - * src/common.h (enum MetaMenuOp): - reinstate META_MENU_OP_UNABOVE - - * src/menu.c (meta_window_menu_new): - remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE - and clean it up while just setting STICK/UNSTICK activeness as - necessary - - * src/menu.[ch] (meta_window_menu_new): - * src/ui.[ch] (meta_ui_window_menu_new): - make the active_workspace parameter an unsigned long - -2007-04-15 Bruno Boaventura - - * 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 - - * src/place.c (meta_window_place): do not auto-maximize windows - larger than the workarea in only a single direction. Fixes - #419810. - -2007-04-11 Elijah Newren - - Make sure apps have correct info about their coordinates, even on - unmap. Fixes temporary hang with libXt (XtVaSetValues setting x & - y coordinates). #399552. - - * src/frame.c (meta_window_destroy_frame): Add a comment noting - that the current choice causes the need for a ConfigureNotify - event - - * src/window.c (meta_window_free): Send a configure notify event - due to our XReparentWindow coordinate choices on withdrawal, - (unmaximize_window_before_freeing): no need to send a configure - notify from here since it is always done in meta_window_free new, - (send_configure_notify): have to special case the coordinates used - when withdrawing the window - -2007-04-11 Thomas Thurman - - 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 - - Advertise support of Above and Below operations (assuming the - proposed EWMH additions of _NET_WM_ACTION_(ABOVE|BELOW) will be - accepted, otherwise these changes will have to be modified). Part - of #115247. - - * src/display.[ch] (meta_display_open, struct MetaDisplay): - * src/screen.c (set_wm_check_hint): - Add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW - - * src/window.c (set_allowed_actions_hints): - add active_above and action_below - -2007-04-10 Elijah Newren - - * 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 - - Add support for _NET_MOVERESIZE_WINDOW. Based on patch from - Magnus Therning. #344521. - - * src/display.c (handle_net_moveresize_window, event_callback): - Remove handle_net_moveresize_window() and the call to it; this - code was highly buggy, though to be fair it was never tested and - had simply been put into the code in commented out form. - - * src/screen.c (set_supported_hint): - add atom_net_moveresize_window - - * src/window.[ch]: - (meta_window_configure_request, meta_window_move_resize_request): - Split out the moving/resize part of the configure request and put - it into meta_window_move_resize_request - - (meta_window_client_message): - check for NET_MOVERESIZE_WINDOW messages and call - meta_window_move_resize_request() with the appropriate parameters - to handle them - - (meta_window_move_resize_internal): - fix some of the big comment at this function -- it wasn't quite - right, use the passed in gravity instead of - window->size_hints.win_gravity when calling adjust_for_gravity() - to make sure the correct adjustments are used. - - (meta_window_get_gravity_position, - meta_window_get_geometry, meta_window_move_resize_request): - add a gravity parameter to meta_window_get_gravity_position and - have it use that gravity instead of window->size_hints.win_gravity - -2007-04-09 Elijah Newren - - * configure.in: post-release bump to 2.19.3. - -2007-04-09 Elijah Newren - - * NEWS: 2.19.2 release. - -2007-04-08 Elijah Newren - - Remove grab_start_serial, which we expect to be an ancient attempt - to workaround sloppy/mouse focus bugs that have since been - correctly fixed. May fix some race conditions. May cause nasty - bugs in sloppy/mouse focus modes. We'll find out soon enough... - See #304430. - - * src/display.c (event_callback): - remove event->xany.serial >= display->grab_start_serial in several - event callback handlers - - * src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op): - * src/keybindings.c (do_choose_window, handle_workspace_switch): - * src/frames.c (meta_frames_button_press_event): - * src/core.[ch] (meta_core_begin_grab_op): - * src/window.c (meta_window_client_message, meta_window_begin_grab_op): - don't require an event_serial to be passed to - meta_display_begin_grab_op () and don't record it anymore. - - * src/ui.c (struct _EventFunc, filter_func, - meta_ui_get_last_event_serial) - * src/core.h (meta_ui_get_last_event_serial): - remove meta_ui_get_last_event_serial() function (don't ask me why - it was declared in core.h) and the last_even_serial field of - _EventFunc - -2007-04-08 Elijah Newren - - Fix move/resize events in relation to combinations of - ConfigureRequest and WM_NORMAL_HINTS change notifications (plus a - few code cleanups). Fixes #426519. - - * src/window.c (meta_window_move_resize_now): - move to the user_rect position, not some weird combination of rect - and user_rect - - * src/window.c (meta_window_configure_request): - set user_rect in response to ConfigureRequest events (after the - ConfigureRequest values have been constrained) and add a big - comment explaining this change, remove unused only_resize variable - and irrelevant huge FIXME comment about it - - * src/window.[ch] (meta_window_get_client_root_coords): - new function - - * src/display.c (meta_display_begin_grab_op): - * src/keybindings.c (process_keyboard_move_grab): - * src/window.c (meta_window_unmaximize, - meta_window_move_resize_internal, meta_window_begin_wireframe, - update_move, meta_window_refresh_resize_popup, - warp_grab_pointer) - combine multi-step client rect root coord setting into a single - function call to meta_window_get_client_root_coords() - -2007-04-08 Thomas Thurman - - * ChangeLog: removed conflict line. - -2007-04-07 Elijah Newren - - * src/prefs.[ch] (screen_bindings array, - META_KEYBINDING_SET_SPEW_MARK definition): - * src/keybindings.c (handle_spew_mark, screen_handlers array): - Add an (unbound by default) keybinding for setting spew marks in - verbose debugging logs. I'm not sure why this was ever removed; - I've wanted it so many times. - - * HACKING: - valgrind wants --log-file not --logfile. - -2007-04-07 Elijah Newren - - * 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/50-metacity-desktop-key.xml.in: - * src/50-metacity-key.xml.in: - * src/Makefile.am: - Add new control-center key bindings definitions (Closes: #420145) - -2007-04-04 Elijah Newren - - * configure.in: post-release bump to 2.19.2. - -2007-04-04 Elijah Newren - - * NEWS: 2.19.1 release. - -2007-04-04 Elijah Newren - - * 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 - - Fix lots of little issues with min/max constraints and size - increment constraints. Fixes #329152, #418395, and possibly - others. - - * src/window-props.c (meta_set_normal_hints): - Do more checking to make sure application specified constraints - are self-consistent, modifying the size_hints as necessary to - achieve self-consistency. - - * src/constraints.c (setup_constraint_info): remove ugly - copy-pasto, (constrain_size_increments): be careful that fixing - violation of the constraints doesn't cause a violation of the - minimum size constraints. - - * src/window.c (ensure_size_hints_satisfied): new function, - (meta_window_unmaximize, meta_window_unmake_fullscreen): the - saved_rect may no longer be valid (as in the case of #329152) so - call ensure_size_hints_satisfied to fix it up. - - * doc/how-to-get-focus-right.txt: Some minor spacing and wording - fixes completely unrelated to the rest of this commit - -2007-04-03 Elijah Newren - - * 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 - - * MAINTAINERS: Update. #412319. - -2007-04-03 Elijah Newren - - * src/display.c (meta_display_update_active_window_hint): - _NET_ACTIVE_WINDOW is a single xwindow id, not two. - -2007-04-03 Elijah Newren - - * src/keybindings.c (handle_panel_keybinding): turn mouse_mode off - to prevent focus issues with the run application dialog. Fixes - #374752. - -2007-04-03 Elijah Newren - - Avoid some crashes when dragging windows partially offscreen. - Possible (or at least partial) fix for #353513. - - * src/edge-resistance.c (apply_edge_resistance): be more careful - about calls to find_index_of_edge_near_position() returning - possibly invalid indices. Also, add a warning comment to - find_index_of_edge_near_position(). - -2007-04-03 Elijah Newren - - 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 - - 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 - - Make the strut lists (stored in workspaces) record both the - rectangle and the side that the strut is on. Lots of code - cleanups relating to struts. - - * src/boxes.h (struct MetaStrut): - new struct for struts - - * src/window.[ch] (struct MetaStruts, struct MetaWindow, - meta_window_update_struts): - overhaul to make window's struts remember their side as well as - their rectangular location, and just use a list instead of several - copies of near-identical code for left/right/top/bottom (allowing - us to nuke MetaStruts struct as well) - - * src/testboxes.c (new_meta_strut, get_strut_list): - * src/workspace.c (ensure_work_areas_validated): - * src/boxes.c (meta_rectangle_get_minimal_spanning_set_for_region, - meta_rectangle_expand_to_avoiding_struts, - get_disjoint_strut_rect_list_in_region, fix_up_edges, - meta_rectangle_find_onscreen_edges, - meta_rectangle_find_nonintersected_xinerama_edges): - modify to handle struts being rectangle + side instead of just rectangle - - * src/workspace.c (ensure_work_areas_validated): - simplify strut list creation considerably given MetaWindow change, - modify work_area computations to take advantage of region - computations being done (makes the code shorter as well as more - robust against pathological cases). - - * src/util.[ch] (meta_free_gslist_and_elements): - new convenience function - - * src/common.h (enum MetaDirection): - * src/edge-resistance.c (movement_towards_edge): - * src/boxes.c (meta_rectangle_edge_aligns, - rectangle_and_edge_intersection, split_edge): - Add more MetaDirection fields for convenience - - * src/boxes.h (enum FixedDirections): - * src/constraints.c (setup_constraint_info, place_window_if_needed): - add a FIXED_DIRECTION_NONE to the FixedDirections enum to make - code more clear - -2007-04-01 Bruno Boaventura - - * 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 - - Clean up event mask handling and meta_create_offscreen_window, to - prevent nasty metacity/gdk interactions causing hangs. See #354213. - - * src/screen.[ch] (meta_create_offscreen_window): - * src/display.c (meta_display_open): - * src/screen.c (meta_screen_new): - Add a valuemask parameter to meta_create_offscreen_window - - * src/display.c (meta_display_open): - make it explicit that we can't rely on PropertyNotify events for - the leader_window due to nasty metacity/gdk interaction - - * src/session.c (warn_about_lame_clients_and_finish_interact): - remove cut-and-paste code for timestamp pinging and just call - meta_display_get_current_time_roundtrip - -2007-03-30 Elijah Newren - - Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on - context switches. Fixes #354213. - - * src/display.c (meta_display_open): - * src/display.h (struct _MetaDisplay): - * src/screen.c (set_supported_hint): - new atom - - * src/display.c (meta_display_open, - meta_display_get_current_time_roundtrip): - * src/display.h (struct _MetaDisplay): - create a dedicated timestamp pinging window instead of reusing - display->leader_window - - * src/display.c (event_callback): - * src/window-props.c (reload_net_wm_user_time_window): - * src/window.c (meta_window_new_with_attrs, meta_window_free, - process_property_notify): - * src/window.h (struct _MetaWindow): - monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too - - * src/window-props.[ch]: - new meta_window_reload_propert(y|ies)_from_xwindow() functions - - * src/window-props.[ch] - (init_net_wm_user_time_window, reload_net_wm_user_time_window, - meta_display_init_window_prop_hooks): - * src/window.c (meta_window_new_with_attrs): - new hooks to handle new atom - -2007-03-26 Josselin Mouette - - * 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 - - * configure.in: bump version to 2.19.1; doesn't make sense to have - the development version have a version number less than the stable - version. ;-) - -2007-03-20 Arthur Taylor - - * 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 since it's - apparently not installed anymore. Builds just fine without it too. - -2007-03-10 Charlie Brej - - * src/metacity.schemas.in: 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 - - * Makefile.am: Add MAINTAINERS to EXTRA_DIST so others - 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 - meta_frame_titlebar_event. - * src/prefs.c: removed "DoubleClick" from names as above. - * src/prefs.c (action_titlebar_from_string): added cases - for "lower" and "menu". - Fixes #408902. - -2007-02-17 Linus Torvalds - - * 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 - - * configure.in: 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 - - * configure.in: 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 - - Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127: - - * src/window.c (idle_calc_showing): Grab the server while the - windows are being shuffled. First show the windows to be shown, - and then hide the windows to be hidden, in order to minimize - the number of expose events. - -2006-11-15 Bruno Boaventura -2006-11-15 Björn Lindqvist - - * src/menu.c: added MetaMenuItemType enum; added it - to MenuItem; added values of this type to menuitems - array. - * src/menu.c (menu_item_new): rewrite to take a MenuItem - instead of a set of parameters describing the menu item. - * src/menu.c (meta_window_menu_new): use proper checkboxes - or radio buttons on the window menu. (#343108) - * src/window.c (meta_window_show_menu): unstick and stick - are always shown. - -2006-11-06 Thomas Thurman - - * configure.in: post-release bump to 2.17.3. - -2006-11-06 Thomas Thurman - - * configure.in: 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 - #363354. - * src/metacity-dialog.c: add missing spaces to string. Fixes - #363355. - -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/metacity.schemas.in: keybindings for the above. - -2006-11-05 Elijah Newren - - * src/frames.c: improved rounding of rounded corners. Fixes #360542, - mostly. - -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 - - * 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 - member - - * src/display.[ch] (meta_display_begin_grab_op): - * src/window.[ch] (meta_window_begin_grab_op): - * src/core.[ch] (meta_core_begin_grab_op): - Add frame_action parameter (core & window versions pass it on to - display) - - * src/display.c (event_callback): - * src/window.c (meta_window_begin_grab_op, - meta_window_client_message, menu_callback): - * frames.c (meta_frames_button_press_event): - * keybindings.c (do_choose_window, handle_begin_move, - handle_begin_resize, handle_workspace_switch): - Pass whether the action should be considered a 'frame_action', - which will be used to determine whether to force the titlebar to - remain onscreen, to meta_*_begin_grab_op - - * constraints.c (constrain_titlebar_visible): - Replace previous ugly hack by using grab_frame_action (and whether - the action is a user action) to determine whether to enforce the - titlebar_visible constraint. - -2006-10-10 Elijah Newren - - * 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 - - * configure.in: 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. - (#96229) - - * frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X - attribute, set META_FRAME_ABOVE in its flags. - - * frames.c (meta_frames_apply_shapes): Allow variable amounts of - rounding. (#113162) - - * frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect, - get_control): extend handling of existing buttons to the - 3*2 new kinds of button. (#96229) - - * frames.c (meta_frames_button_press_event): translate clicks on the 3*2 - new kinds of button to the new grab ops. (#96229) - - * frames.c (meta_frames_button_release_event): implement the various - actions for the 3*2 new kinds of button. (#96229) - - * frames.c (meta_frames_update_prelit_control, - meta_frames_motion_notify_event): extend existing motion - notifications for buttons to the 3*2 new kinds of button. (#96229) - - * frames.c (meta_frames_set_window_background): handle specified - background colours and alpha transparency. (#151261) - - * frames.h (MetaFrameControl): New control types for the 3*2 new kinds - of button. (#96229) - - * iconcache.[ch] (meta_read_icons): use theme's fallback icons if a - window has no icon; use metacity's fallback icons only if the theme - does not provide any. (#11363) - - * iconcache.[ch] (meta_invalidate_default_icons (new function)): clear - icon cache on windows using default icons, and update them. (#11363) - - * main.c (main): added \n to error message. - - * prefs.c (button_function_from_string): extend for 3 new button - types. (#96229) - - * prefs.c (button_opposite_function (new function)): return a button - function's inverse (shade -> unshade, etc) (#96229) - - * prefs.c (update_button_layout): allocate space for a button's - inverse, if it has one. (#96229) - - * theme-parser.c (ParseState): add state for fallback icons (#11363) - - * theme-parser.c (ParseInfo): add format_version; remove - menu_icon_* (#114305) - - * theme-parser.c (parse_positive_integer): add lookup for integer - constants (#331356) - - * theme-parser.c (parse_rounding (new function)): parse window - rounding amount (#113162) - - * theme-parser.c (parse_alpha): don't set error if the number can't - be parsed since it'll already be set; change tolerance in comparison - from 1e6 to 1e-6 - - * theme-parser.c (parse_color (new function)): parse colour, including - possible constant lookup. - - * theme-parser.c (parse_toplevel_element): allow defining of various - new kinds of constant; allow - hide_buttons (#121639) and more detailed rounding attributes on - (#113162); allow background and alpha attributes on - ; (#151261) remove support for except as - stub; (#114305) add support for loading stock images (#113465); add - support for . (#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 - . (#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 - - * src/metacity-dialog.c (kill_window_question): Be nice to - translators; remove unnecessary markup from strings marked for - translation (oops, I missed this in my review before previous - commit) - -2006-10-06 Elijah Newren - - * src/metacity-dialog.c (kill_window_question): Patch from Bruno - Boaventura to improve the "Force Quit" dialog. #121936 - -2006-10-02 Elijah Newren - - Ignore edge resistance for size-increment windows when resizing - with the keyboard. #346782. - - * src/edge-resistance.c (apply_edge_resistance_to_each_side): - ignore edge resistance for size-increment windows when resizing - with the keyboard, (apply_edge_resistance_to_each_side, - meta_window_edge_resistance_for_move, - meta_window_edge_resistance_for_resize): pass a is_resize - parameter as well - -2006-10-01 Elijah Newren - - * 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 - - * 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 - - 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 - - * src/window-props.c (set_title_text): surround the - XDeleteProperty() call with a - meta_error_trap_push/meta_error_trap_pop pair to prevent a crash - when closing a remote instance of gedit (and perhaps other apps). - #358514. - -2006-10-01 Elijah Newren - - Fix longstanding focus bug with mouse (not sloppy) focus mode with - popup override-redirect windows, particularly mozilla and - firefox's location bar autocompletion. #357695. - - * src/display.c (event_callback -- EnterNotify & LeaveNotify events): - for mouse focus, defocus the focused window when the mouse enters - the desktop window rather than when the mouse leaves the focused - window. - - * doc/how-to-get-focus-right.txt: - update for the slightly nuanced definition of mouse focus (people - without a DESKTOP window like nautilus get sloppy focus behavior - now) - -2006-09-27 Elijah Newren - - * 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 - - * src/window.c (meta_window_show): Patch from Jens Granseuer to - fix c89 cleanness, again. #356631. - -2006-09-18 Elijah Newren - - * src/constraints.c (constrain_maximization): Ignore maximum size - hints when maximizing. Should fix #327543 (see comment 4 and comment - 5). - -2006-09-18 Elijah Newren - - * 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. - - * configure.in: bump version to 2.17.0. - -2006-09-18 Thomas Thurman - - * configure.in: post-release bump to 2.16.3 - -2006-09-18 Thomas Thurman - - * NEWS: 2.16.2 release - -2006-09-18 Elijah Newren - - Partial audit to fix timestamp usage. One step towards fixing - #355180; see important comments in that bug. - - * src/core.[ch] (meta_core_unshade, meta_core_shade): - * src/delete.c (meta_window_present_delete_dialog, - delete_ping_timeout_func): - * src/display.[ch] (meta_display_open, meta_display_close, - event_callback, meta_display_begin_grab_op, - process_selection_clear, meta_display_unmanage_screen, - meta_display_unmanage_windows_for_screen): - * src/frames.c (meta_frames_button_press_event): - * src/keybindings.c (handle_toggle_shade): - * src/main.c (main): - * src/screen.[ch] (update_num_workspaces, meta_screen_new, - meta_screen_free, prefs_changed_callback): - * src/window.[ch] (meta_window_free, finish_minimize, - implement_showing, meta_window_show, meta_window_maximize, - meta_window_make_fullscreen_internal, - meta_window_unmake_fullscreen, meta_window_shade, - meta_window_unshade, window_activate, send_sync_request, - meta_window_client_message, menu_callback, - meta_window_update_keyboard_resize): - Remove usage of CurrentTime, meta_display_get_current_time() and - meta_display_get_current_time_roundtrip() where possible, or - document why it isn't possible, or at very least add a FIXME with - some explanation of my laziness and what needs to be done. - -2006-09-18 Elijah Newren - - * 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 - - * configure.in: Make detection of stable vs. unstable automatic - and based upon the version number. Partially based on patch from - Christian Hamar in #356122. Fixes #356122. - -2006-09-13 Elijah Newren - - * HACKING: update -- we depend on gtk+ >= 2.10 since Vincent's - July patches for #348633. - -2006-09-13 Elijah Newren - - * 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 - - * src/common.h (MetaWindowMenuFunc): - * src/core.[ch] (meta_core_user_lower_and_unfocus, - meta_core_user_focus, meta_core_show_window_menu, - meta_core_begin_grab_op, meta_core_end_grab_op): - * src/delete.c (delete_ping_reply_func, delete_ping_timeout_func, - meta_window_delete): - * src/display.[ch] (struct MetaDisplay, struct MetaPingData, - sanity_check_timestamps, meta_display_open, event_callback, - meta_spew_event, meta_display_set_grab_op_cursor, - meta_display_begin_grab_op, meta_display_end_grab_op, - meta_display_ping_timeout, meta_display_ping_window, - process_pong_message, timestamp_too_old, - meta_display_set_input_focus_window): - * src/keybindings.[ch] (grab_keyboard, ungrab_keyboard, - meta_screen_grab_all_keys, meta_window_grab_all_keys, - meta_window_ungrab_all_keys, error_on_generic_command, - error_on_command, error_on_terminal_command): - * src/metacity-dialog.c (on_realize, warn_about_no_sm_support, - error_about_command, main): - * src/screen.[ch] (struct _MetaScreen, meta_screen_new, - meta_screen_show_desktop, meta_screen_apply_startup_properties): - * src/session.c (warn_about_lame_clients_and_finish_interact): - * src/window.[ch] (struct _MetaWindow, - intervening_user_event_occurred, window_activate, - meta_window_delete, meta_window_focus, - meta_window_send_icccm_message, meta_window_client_message, - menu_callback, meta_window_show_menu, struct EventScannerData, - check_use_this_motion_notify, meta_window_begin_grab_op, - meta_window_set_user_time): - * src/workspace.[ch] (focus_ancestor_or_mru_window, - meta_workspace_activate_with_focus, meta_workspace_activate, - meta_workspace_focus_default_window, - focus_ancestor_or_mru_window): - Fix issues on 64-bit machines with timestamps by using guint32 - (like gtk+ does) instead of Time. #348305 - -2006-09-12 Elijah Newren - - * src/theme.c (meta_gtk_arrow_from_string, - meta_gtk_arrow_to_string): patch from Bruno Boaventura de Oliveira - to fix a compiler warning about not handling GTK_ARRROW_NONE. - #355490. - -2006-09-12 Elijah Newren - - * src/compositor.c: Patch from Bruno Boaventura de Oliveira - Lacerda to fix warnings about unused function and global var. - #355489. - -2006-09-11 Thomas Thurman - - * configure.in: post-release bump to 2.16.2 - -2006-09-11 Thomas Thurman - - * NEWS: 2.16.1 release - -22006-09-09 Elijah Newren - - * src/display.c (meta_display_open): Fix build when XKB not found. - #354211 - -2006-09-09 Elijah Newren - - Avoid a stuck grab, preventing focus from being transferred - between windows. Thanks to Fryderyk Dziarmagowski for steps to - reproduce. Fixes at least part of #354422. - - * src/display.c (meta_display_begin_grab_op, - meta_display_end_grab_op): pass timestamp to - meta_screen_ungrab_all_keys, meta_screen_ungrab_all_keys, and - meta_window_ungrab_all_keys - - * src/keybindings.[ch] (grab_keyboard, ungrab_keyboard): add a - timestamp parameter and remove call to - meta_display_get_current_time(), (meta_screen_grab_all_keys, - meta_screen_ungrab_all_keys, meta_window_ungrab_all_keys): add a - timestamp parameter and pass it on to grab_keyboard and - ungrab_keyboard - -2006-09-07 Elijah Newren - - * 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. - #353540 - -2006-09-07 Elijah Newren - - * 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 - - * configure.in: post-release version bump to 2.16.1 - -2006-09-04 Thomas Thurman - - * NEWS: 2.16.0 release - -2006-08-22 Elijah Newren - - * src/metacity-dialog.c (main): Patch from Jens Granseuer to fix - the build with c89/gcc 2.95. - -2006-08-21 Elijah Newren - - * NEWS: Oops, forgot to mention the translators in the 2.15.34 - release; add them retroactively - -2006-08-21 Elijah Newren - - * configure.in: post-release version bump to 2.15.55 - -2006-08-21 Elijah Newren - - * NEWS: 2.15.34 release - -2006-08-21 Elijah Newren - - 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 - - Patch from Ed Catmur to fix keybindings with hex-values (coming - from special extended keyboard keys). #140448. - - * src/keybindings.c (struct _MetaKeyBinding): change keycode from - KeyCode to unsigned int (comment from Elijah: why???), - (reload_keycodes): only grab keysyms for keybindings that have - them, (count_bindings, rebuild_binding_table): bindings can be - valid either due to a valid keysym or a valid keycode, - (display_get_keybinding_action, meta_change_keygrab, - process_tab_grab, process_workspace_switch_grab): handle keycode - as well as keysym - - * src/prefs.[ch] (struct MetaKeyCombo, update_binding, - update_list_binding): handle keycode as well as keysym - - * src/ui.[ch] (meta_ui_accelerator_parse): new function special - cases strings of the form "0x[0-9a-fA-F]+" and otherwise calling - gtk_accelerator_parse(), (meta_ui_parse_accelerator, - meta_ui_parse_modifier): call meta_ui_accelerator_parse instead of - gtk_accelerator_parse. - -2006-08-21 Elijah Newren - - 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 - - Fix several bugs with handling of fullscreen windows, causing them - to not actually be fullscreen. #343115 (and also #346927, - #350547, #351643, the recent additional WINE-related issue - mentioned on the mailing list, and probably others...) - - * src/constraints.c (setup_constraint_info): if a window tries to - resize to fullscreen-size and it has a fullscreen function but - isn't actually marked as fullscreen then assist it by marking it - as such, (constrain_fully_onscreen, constrain_titlebar_visible): - ignore this constraint for fullscreen windows since such windows - have a separate specialized constraint - - * src/stack.c (window_is_fullscreen_size, get_standalone_layer): - remove the old window_is_fullscreen_size() hack for detecting - windows to treat as fullscreen since it doesn't work well with the - new constraints framework (i.e. we needed a slightly different - hack) - - * src/window.[ch] (meta_window_new_with_addrs): shuffle the order - of adding the window to the stack and moveresizing the window - since moveresizing can cause stack changes if the window's initial - size is fullscreen size, (meta_window_make_fullscreen, - meta_window_make_fullscreen_internal): split - meta_window_make_fullscreen() similar to meta_window_maximize() so - that constraints can make use of it - -2006-08-19 Baptiste Mille-Mathias - - * 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 - - * 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 - - * 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 - - * src/constraints.c (setup_constraint_info): patch from Stéphane - Rosi to allow moving maximized windows between xineramas again. - #323820 - -2006-08-07 Elijah Newren - - * configure.in: post-release version bump to 2.15.34 - -2006-08-07 Elijah Newren - - * NEWS: 2.15.21 release - -2006-08-07 Elijah Newren - - 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 - - * 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 - - Patch from Björn Lindqvist to fix button lighting with dragged - clicks. #321474. - - * src/frames.c (meta_frames_button_press_event): update the - prelit_control, (meta_frames_button_release_event): some code - refactoring to simplify things a bit, and make sure to update the - prelit_control - -2006-08-07 Elijah Newren - - * src/keybindings.c (process_keyboard_move_grab): Patch from - Thomas Andersen to return the window to maximized state if the - window was "shaken loose" from maximized state during a resize but - the resize is later aborted. #346719. - -2006-08-07 Elijah Newren - - Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes, - as proposed for the new startup-notification/EWMH spec. #347515 - - * src/window-props.c (reload_net_startup_id): be sure to act on - the new id instead of just recording it - - * src/window.[ch] (window_activate, meta_window_activate, - meta_window_activate_with_workspace, meta_window_client_message): - change window_activate() to take a workspace parameter instead of - hardcoding to the current workspace, add - meta_window_activate_with_workspace() function needed by - reload_net_startup_id(). - -2006-08-07 Thomas Thurman - - * src/frames.h: add new MetaButtonSpace struct; use it for - close_rect, max_rect, min_rect and menu_rect. (#97703) - - * src/frames.c (control_rect, get_control): modify to support - the new fields in MetaButtonSpace. - - * src/theme.c (meta_frame_layout_get_borders, rect_for_function, - meta_frame_layout_calc_geometry, button_rect): add support for - the new fields in MetaButtonSpace. - -2006-08-07 Elijah Newren - - * src/screen.c (meta_screen_resize_func): patch from Dmitry - Timoshkov to make sure window features get recalculated when the - screen is resized via XRandR. Part of #346927. - -2006-08-04 Elijah Newren - - Patch from Dmitry Timoshkov to fix the heuristic for determining - if windows can be made fullscreen (needed for WINE and possible - also some legacy applications). Part of #346927. - - * src/window.c (recalc_window_features): ignore window decoration - when checking size for determing whether an unresizable window - should be allowed ot be considered for fullscreening - -2006-07-31 Björn Lindqvist - - * src/window.c: Make it so maximized windows do not have rounded - corners. #336850. - -2006-07-30 Jens Granseuer - - * src/tabpopup.c: Fix another C89 vs. C99 issue. #347621. - -2006-07-26 Vincent Untz - - * src/update-from-egg.sh: also kill this - -2006-07-25 Vincent Untz - - * src/Makefile.am, ui.c: Kill usage of libegg. #348633. - -2006-07-24 Thomas Thurman - - * configure.in: post-release version bump to 2.15.21 - -2006-07-24 Thomas Thurman - - * NEWS: 2.15.13 release - -2006-07-24 Björn Lindqvist - - * src/display.c (meta_display_grab_window_buttons): Grab - Alt+Shift+Button1 as well to partially fix operation ordering - issues when trying to snap-move windows. Part of #112478. - -2006-07-21 Thomas Thurman - - * ui.[ch] (filter_func): Avoid a case where a struct's - fields might be updated after it was freed. #348067. - -2006-07-10 Elijah Newren - - * configure.in: post-release version bump to 2.15.13 - -2006-07-10 Elijah Newren - - * NEWS: 2.15.8 release - -2006-06-12 Elijah Newren - - * configure.in: post-release version bump to 2.15.8 - -2006-06-12 Elijah Newren - - * NEWS: 2.15.5 release - -2006-06-10 Elijah Newren - - Patch from Aidan Delaney to tidy tabpopup.c by factoring out - tab_entry_new(). #166890. - - * src/tabpopup.c (tab_entry_new): new function, - (meta_ui_tab_popup_new): use tab_entry_new() to remove a big chunk - of code, plus a few other small cleanups. - -Tue Jun 6 12:46:42 2006 Søren Sandmann - - * configure.in (GETTEXT_PACKAGE): Bunp intltool requirement to - 0.35.0. - -2006-05-29 Elijah Newren - - * HACKING: Slightly more detailed instructions on setting up a - build environment to mention relevant development tools in - addition to the needed development libraries. - -Fri May 26 16:48:29 2006 Søren Sandmann - - * src/effects.c (meta_effect_run_unminimize): Run an unminimize effect - - * src/window.c (meta_window_unminimize): Store a "was_minimized" - boolean in the window. - - * src/window.c (meta_window_show): If the window was minimized, - run an unminimize animation. - - * src/c-window.c (meta_comp_window_run_unminimize): Add an - unminimize animation, running the minimize one in reverse. - -Fri May 26 14:55:07 2006 Søren Sandmann - - * src/c-window.c (meta_comp_window_run_focus): Rename from - _bounce() to _focus(). - -2006-05-26 Elijah Newren - - * src/display.c (meta_display_close): Fix a crash on exit/logout - from assuming a compositor would always exist - -2006-05-25 Elijah Newren - - * src/place.h: - * src/common.h: - Remove MetaWindowEdgePosition enum that isn't used anymore - -Thu May 25 15:56:43 2006 Søren Sandmann - - * src/effects.h (struct MetaEffect): Move duplicated window field - outside the union - - * src/compositor.c: delete duplicated code to get at the window. - -Thu May 25 15:17:29 2006 Søren Sandmann - - * src/c-window.c: Fix compilation in non-compositor case, by - moving the stack functions into the HAVE_COMPOSITOR defines. - -Thu May 25 15:11:58 2006 Søren Sandmann - - * src/c-window.h: Add a destroy notifier to the window. - - * src/c-screen.c (on_window_destroy): New function. - - * src/c-screen.c (meta_comp_screen_add_window): Use the destroy - notifier here. - - * src/c-window.c (generate_phases): New function. Simplify the - minimize animation a lot by generating all the rectangle - information into an array, then processing that. - -2006-05-25 Adam Jackson - - * src/c-window.c: - * src/c-window.h: - * src/compositor.c: - * src/compositor.h: - * src/effects.c: - * src/effects.h: - * src/spring-model.c: - * src/window.c: - Bounce on window focus. - -Wed May 24 22:15:01 2006 Søren Sandmann - - * src/compositor.c (do_effect): Make sure windows are kept on top - of the panel during minimize. - -Wed May 24 21:17:59 2006 Søren Sandmann - - * src/compositor.c (do_effect): Shrink the window instead of - explode it. - - * src/compositor.c (do_effect): don't read the frame if it is - NULL. - - * src/c-window.c (meta_comp_window_run_minimize): Resurrect the - shrinking minimize animation. - - * src/c-window.c (meta_comp_window_fade_in): Make dialogs 90% - translucent. - - * src/c-window.c (update_fade): End at end_fade, not 1.0. - -Wed May 24 19:15:45 2006 Søren Sandmann - - * src/c-window.c (cancel_fade): Add a fade-in animation when - windows are mapped. - -Wed May 24 16:37:11 2006 Søren Sandmann - - * src/c-window.c (private_metacity_window): New function - - * src/c-window.c (meta_comp_window_refresh_attrs): Map metacity's - own windows directly. - -Wed May 24 16:35:54 2006 Søren Sandmann - - * src/c-window.c (private_metacity_window): - -Wed May 24 14:36:42 2006 Søren Sandmann - - * src/c-window.c (meta_comp_window_{freeze,thaw}_stack: Add a - stack-freeze feature to CWindow. - - * src/c-screen.c (meta_comp_screen_restack): Don't restack if the - window is frozen. - -Wed May 24 13:09:49 2006 Søren Sandmann - - * src/c-window.c: Fix compilation in the non-composited case. - -Wed May 24 12:57:32 2006 Søren Sandmann - - * src/c-window.c (meta_comp_window_free): return TRUE when the - window is actually freed. - - * src/compositor.c (do_effect): Disable updating before exploding - the window. - - * src/c-window.c: Make MetaCompWindow refcounted. - - * src/c-window.[ch]: New functions meta_comp_window_{show,hide} - - * src/c-screen.c (meta_comp_screen_unmap): Call - meta_comp_window_hide() instead of directly setting the viewable - status of the node. - - * src/c-screen.c (meta_comp_screen_remove_window): Only remove the - window when it is actually freed. - -Wed May 24 12:45:21 2006 Søren Sandmann - - * src/c-screen.c: Delete unused meta_comp_screen_hide_window(). - -2006-05-23 Adam Jackson - - * src/c-window.c: - * src/c-window.h: - * src/compositor.c: - * src/effects.c: - * src/effects.h: - * src/window.c: - Move shrink effect code from compositor.c to c-window.c. Stubs for - restore effect. Notes in various places for where to hook in - other effects. - -Tue May 23 16:36:04 2006 Søren Sandmann - - * src/compositor.c (do_effect): Also use explode when windows close. - - * src/c-window.c (meta_comp_window_explode): Add refcounting to - comp window, and use it in the explosion effect - - * src/effects.h (struct MetaEffect): Add new MetaCloseEffect. - - * src/display.c (event_callback): Run it from the UnmapNotify - event handler. - -Tue May 23 15:23:58 2006 Søren Sandmann - - * src/c-window.c (send_sync_request): New function to send a sync - request to newly mapped windows. - (on_request_alarm): Show the window here. - -2006-05-23 Adam Jackson - - * src/effects.h: - Add more effect tokens. - -Mon May 22 17:35:52 2006 Søren Sandmann - - * src/effects.[ch]: Beginning of new layer that abstracts - transition effects. - - New functions: - (meta_push_effect_handler): Install an effect handler - (meta_pop_effect_handler): Remove last effect handler - (meta_effect_run_minimize): Create a minimize effect and pass it - to the handler. - (meta_effect_end): Called by handler when the effect is finished. - - * src/compositor.c: Move explosion code form there to src/c-window.c. - - * src/c-screen.c: Delete explosion related code. - -2006-05-22 Björn Lindqvist - - * common.h (enum MetaCursor): - * display.c (meta_display_create_x_cursor): Make mouse cursor when - moving windows become a hand. Fixes #337376. - -2006-05-19 Björn Lindqvist - - * frames.c: Fix a logic bug so that the whole titlebar becomes - sensitive to mouse clicks. Fixes #336320. - -2006-05-18 Björn Lindqvist - - * resizepopup.c: Remove the unused attributes resize_gravity, - width_inc, height_inc, min_width, min_height, frame_left, - frame_right, frame_top, frame_bottom, tick_origin_x, tick_origin_y - from the MetaResizePopup struct. Delete all code that references - those attributes. - -2006-05-15 Elijah Newren - - * configure.in: post-release version bump to 2.15.5 - -2006-05-15 Elijah Newren - - * NEWS: 2.15.3 release - -2006-05-15 Elijah Newren - - Revert the accessibility module loading workaround from Gnome - 2.6, since gtk+ has long since fixed this for us. #123372. - - * src/Makefile.am: remove METACITY_LIBDIR define - - * src/main.c (find_accessibility_module, - accessibility_invoke_module, accessibility_invoke, main): remove - the first three of these functions and all calls to them - - * src/tabpopup.c (meta_ui_tab_popup_new): not sure if this part of - 120025 needed to be reverted but doing the reversion, if wrong, is - the best way to get someone from the accessibility team to scream, - er, I mean comment. ;-) - -2006-05-15 Elijah Newren - - * src/screen.c (reload_xinerama_infos): Patch from - jylefort@FreeBSD.org to prevent a crash when changing resolution. - Fixes #340847. - -2006-05-15 Björn Lindqvist - - * places.[ch] (intcmp, window_get_edges, - get_windows_showing_on_same_screen, get_vertical_edges, - get_horizontal_edges, meta_window_find_next_vertical_edge, - meta_window_find_next_horizontal_edge, - meta_window_find_nearest_vertical_edge, - meta_window_find_nearest_horizontal_edge): Remove the preceeding - functions as they are all obsoleted by the new edge-resistance - stuff. Fixes #341561. - -2006-05-15 Paolo Borelli - - * src/prefs.c (update_binding): plug a small leak. - -2006-05-12 Elijah Newren - - * configure.in: I don't think we want a config file for the - no-gconf case; embedded people would prefer hard-coding things - into the binary - (http://mail.gnome.org/archives/metacity-devel-list/2006-May/msg00010.html) - -2006-04-25 Elijah Newren - - * HACKING: Clarify that gnome-common is needed now that autogen.sh - has been rewritten to use gnome-autogen.sh - -Fri May 5 12:50:58 2006 Søren Sandmann - - * src/c-window.c (has_counter): Some experimental code to handle - sync counter notifications on a window. - - * src/c-screen.c (meta_comp_screen_add_window): Pass a MetaDisplay - -2006-04-25 Elijah Newren - - Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no - longer being used. Fixes #330671. - - * src/window.[ch] (struct MetaWindow): new - using_net_wm_visible_name and using_net_wm_visible_icon_name bits, - (meta_window_new_with_attrs): initialize these new bits to false - - * src/window-props.c (set_title_text, set_window_title, set_icon_title): - if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but - doesn't need to be this time, make sure to clear it - -2006-04-25 Elijah Newren - - * rationales.txt: add three new tracker bugs - -Thu May 4 13:30:04 2006 Søren Sandmann - - * src/ui.h: Delete unused META_PRIORITY_COMPOSITE - - * src/ui.c: Delete argument from meta_ui_get_display(). - - * src/c-window.c: Remove the xid->window hashtable and associated - code. - - * src/c-screen.[ch]: Rename MetaScreenInfo to MetaCompScreen. Put the - xid->windows table here instaed of as a static variable. Also make - sure that CompWindows are freed when the screen is unredirected. - - * src/display.c: Delete non USE_GDK_DISPLAY case, as it didn't - work and hasn't been compiled for a long time. - - * src/display.[ch] (meta_display_open): Remove argument as it was - always NULL (and couldn't possibly be anything else in the - USE_GDK_DISPLAY case). - -Tue May 2 17:12:54 2006 Søren Sandmann - - * src/c-window.[ch]: New files - - * src/c-screen.c: Move WindowInfo struct to new c-window.[ch] - files. Delete various bits of obsolete, commented-out code. - -Fri Apr 28 12:53:23 2006 Søren Sandmann - - * src/core.c (get_window): New function. - * src/core.c: Use get_window() instead of cutted-and-pasted code - all over the place. - -2006-04-25 Elijah Newren - - * configure.in: post-release version bump to 2.15.3 - -2006-04-25 Elijah Newren - - * NEWS: 2.15.2 release - -2006-04-25 Elijah Newren - - * autogen.sh: Nuke the old version, copy one from gcalctool that - uses gnome-autogen.sh. Seems to fix the - translations-aren't-included-in-the-tarball problem. Fix from - Rodney in IRC. - -2006-04-25 Elijah Newren - - * configure.in: post-release version bump to 2.15.2 - -2006-04-25 Elijah Newren - - * NEWS: 2.15.1 release - * configure.in: belated post-release version bump to 2.15.1 - * src/Makefile.am: Include boxes.h so that control-center won't - fail to build #339708. - -2006-04-24 Elijah Newren - - * NEWS: 2.15.0 release - -2006-04-20 Brian Pepple - - #337951. - - * po/LINGUAS: New file listing all supported languages. - - * configure.in: Use po/LINGUAS instead of including all languages - directly in this file. See the wiki for more information: - http://live.gnome.org/GnomeGoals/PoLinguas. - -2006-04-19 Thomas Andersen - - * src/window-props.c (reload_transient_for): warn and ignore if - transient_for is set to a non-top-level window. Fixes #335524. - -2006-04-19 Björn Lindqvist - - * src/frames.c (struct CachedPixels, meta_frames_destroy, - invalidate_cache, generate_pixmap, populate_cache, - cached_pixels_draw, meta_frames_expose_event, - meta_frames_paint_to_drawable): - - Replace while loops iterating over sequences with for loops. Also, - replace the attributes in the CachedPixels struct with a list of - four CachedFramePiece:s, this allows iteration over the four - pixmaps instead of treating each one separately. Fixes #338359. - -2006-04-18 Björn Lindqvist - - * makefile.am: Add boxes.{c,h} to libmetacity_private - * src/theme-parser.c (check_expression): - * src/theme-viewer.c (run_position_expression_tests): - Use meta_rect (). - - * src/theme.c: Replace while loops iterating over sequences with - for loops. - - * src/theme.c, src/theme.h (struct _MetaPositionExprEnv, - meta_draw_op_draw, meta_draw_op_list_draw, - meta_theme_draw_menu_icon): Use MetaRectangles in function - prototypes instead of x, y, with, height ints where applicable. - -2006-04-18 Kjartan Maraas - - * configure.in: Remove obsolete entry for no_NO - * po/no.po: And the translation. - -2004-04-17 Thomas Thurman - - * keybindings.c (count_bindings, rebuild_binding_table): - * prefs.c (change_notify, screen_bindings, - window_bindings, init_bindings, update_binding, - find_and_update_list_binding, update_list_binding, - meta_prefs_get_window_binding): Allow any keybinding pref - to be specified either with , a string, or _list, - a list of strings, or both. Fixes #164831. - -2006-04-16 Elijah Newren - - Patch from Dan Sanders to fix #334899. - - * window.c (meta_window_new_with_attrs): Unminimize ancestors of - new windows when mapped; this prevents e.g. confirmation windows - from causing applications to appear locked when closing via the - window list. - -2006-04-15 Elijah Newren - - Patch from Dan Sanders to fix #335076. - - * src/core.c (meta_core_maximize, meta_core_toggle_maximize, - meta_core_unmaximize): - * src/window.c (meta_window_client_message): - Raise windows on maximize/unmaximize. - -2006-04-15 Elijah Newren - - * src/display.h: Patch from Andy Morum to fix the build with - --disable-xsync. #336605 - -2006-04-14 Elijah Newren - - * HACKING: Include instructions on setting up a minimal - building/testing environment - -2006-04-14 Thomas Thurman - - Add a tabbing function, bound to alt-f6 by default, to cycle - through the windows of the current application. Fixes #94682. - - * src/common.h: two new MetaGrabOpts values for group switching - * src/display.c (ping_data_free, meta_display_in_grab_op, - IN_TAB_CHAIN): adapt to new MetaGrabOpts - * src/display.h: new enum value for MetaTabList for group switching - * src/keybindings.c (meta_display_process_key_event): - adapt to new MetaGrabOpts - (process_tab_grab): adapt to new MetaGrabOpts, and use switch - statement for cancelling instead of if statement - * src/metacity.schemas.in: new keybindings - * src/prefs.c, src/prefs.h: handle new keybindings - * src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro - -2006-04-14 Elijah Newren - - * HACKING: Include reasons why gdk/gtk.h and core includes like - display.h/window.h must be kept separate. Taken from a private - email from Havoc. - -2006-04-13 Alejandro Andres - - * README: Fixed broken links. #333303 - -Thu Apr 13 12:23:28 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_add_window): Check for both - POPUP and DROPDOWN. - -2006-04-13 Björn Lindqvist - - * src/async-getprop.c, src/async-getprop.h - (async_get_property_handler, ag_task_get_reply_and_free): - * src/testasyncgetprop.c (try_get_reply, run_speed_comparison): - Change unsigned chars to chars. - - * src/display.h (struct MetaDisplay): - * src/keybindings.c (reload_modmap): - Change unsigned ints to ints. - - * src/screen.c (set_workspace_names) - * src/stack.c (meta_stack_sync_to_server): - * src/xprops.c (utf8_string_from_results, utf8_list_from_results, - class_hint_from_results, meta_prop_get_values): - Introduce casts. - - Add a number of casts and change signedness on a number of - variables so that Metacity compiles with many fewer - warnings. Fixes #336032. - -2006-04-12 Elijah Newren - - Patch from Ron Yorston to add a focus_new_windows option. Default - is 'smart' (focus by default but normal focus-stealing-prevention - can kick in); 'strict' is current other choice (like 'smart' - except that programs launched by the terminal will not be - focused). Fixes remainder of #326159. Should also close #152004 - and a bunch of others. - - * src/common.h: - Add a MetaFocusNewWindows enum giving the current types allowed - - * src/display.h: - Update docs on allow_terminal_deactivation to note that it is only - relevant when focus_new_windows is 'strict' - - * src/metacity.schemas.in: add the new gconf key and explanation - - * src/prefs.[ch] (#define KEY_FOCUS_NEW_WINDOWS, static gboolean - focus_new_windows, update_focus_new_windows, meta_prefs_init, - change_notify, meta_prefs_get_focus_new_windows, - meta_preference_to_string): - Add all the normal preference handling stuff for this new - focus-new-windows option. - - * src/window.c (window_state_on_map, meta_window_set_user_time): - Don't focus windows launched from a terminal - -Mon Apr 10 16:44:51 2006 Søren Sandmann - - * src/c-screen.c (is_menu): Check if the window is a menu and make - it 90% opaque in that case. - - * src/c-screen.c (claim_selection): Handle CM_Sn selection - properly. - - * src/c-screen.c: Remove debug spew - - * src/screen.c (meta_screen_composite_all_windows): Remove debug spew - -2006-04-10 Björn Lindqvist - - * display.c (meta_display_open, event_callback): - * ui.c (meta_ui_get_double_click_timeout): - - Delete dead code that used to handle double click on the - titlebar. Remove the attributes last_button_time, - last_button_xwindow, last_button_num and is_double_click from - MetaDisplay and the functions meta_ui_get_double_click_timeout() - and meta_display_is_double_click() from their respective - files. Fixes #337507. - -2006-03-27 Gora Mohanty - - * src/metacity.schemas.in: - * src/theme.c: - Changes strings to make them more readable, and more translatable. - Fixes #335720. - -2006-04-02 Elijah Newren - - Fix constraints bug causing negative width windows and crashes. - #336651 - - * src/constraints.c (constrain_partially_onscreen): Don't - accidentally shove & resize the window by requiring more pixels to - be onscreen than the size of the window. - -Fri Mar 31 16:44:56 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_unredirect): Release the GL - window here. Disconect from the magnifier, not the stacker. - -Fri Mar 31 12:24:26 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_redirect): Only use magnifier - when USE_MAGNIFIER is set. - - * src/compositor.c (meta_compositor_free_window): Only wobble when - USE_WOBBLE is set. - -Fri Mar 31 12:13:21 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_redirect): Don't hardcode - screen size. - -Thu Mar 30 17:01:12 2006 Søren Sandmann - - * src/compositor.c (struct MetaCompositor): Fix the memory - corruption in a better way. - -Thu Mar 30 16:38:35 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_begin_move): Fix an illegal write. - -Thu Mar 30 16:13:52 2006 Søren Sandmann - - * composite.c: Turn wobbling back on Add new explosion effect. - -2006-03-29 Elijah Newren - - Fix grouping in the presence of ancestors; caught by Björn. - #336184 - - * src/group.c (meta_window_compute_group): Use new - meta_window_find_root_ancestor() function to get ancestor; for the - computed group, use the ancestor's group instead of the ancestor - itself - - * src/window.[ch] (meta_window_find_root_ancestor, - meta_window_raise): split meta_window_find_root_ancestor() - functionality of meta_window_raise() and make it available - elsewhere - -2006-03-29 Elijah Newren - - * rationales.txt: Add bugs about pointer warping; update - raise-on-click ones. - -2006-03-29 Thomas Thurman - - Abstract out the functions for setting/unsetting demands attention - hint and avoid doing it when the window isn't obscured. Fixes the - remainder of #305882. - - * src/window.c, src/window.h (meta_window_set_demands_attention, - meta_window_unset_demands_attention): new functions to mark a - window as needing or not needing the user's attention - * src/window.c (meta_window_show, window_activate, - meta_window_focus, meta_window_configure_request, - meta_window_client_message): use the new set/unset - demands attention functions. - -2006-03-29 Björn Lindqvist - - * src/resizepopup.c: - * src/resizepopup.h: - * src/window.c (meta_window_refresh_resize_popup): - Aggregate the x, y, width and height attributes of MetaResizePopup - to one MetaRectangle rect attribute and update code using the - MetaResizePopup struct. Fixes #335177. - -2006-03-28 Elijah Newren - - * MAINTAINERS: New file. #335026. ;-) - -Tue Mar 28 09:57:26 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_add_window): Also check for overlay_window. - - * src/c-screen.c (meta_screen_info_redirect): Trap errors out of - unredirect(). - -2006-03-25 Thomas Thurman - - * src/window.c, src/window.h (update_net_wm_state, - update_mwm_hints, update_wm_class, update_transient_for): - deleted and moved into window-props.c - (meta_window_new_with_attrs): added constructing field - and four new initial properties (as above) - (meta_window_recalc_features, - meta_window_recalc_window_type): new functions - - * src/window-props.c (init_net_wm_state, reload_net_wm_state - init_mwm_hints, reload_mwm_hints, init_wm_class, - reload_mwm_class, init_transient_for, reload_transient_for): - new functions, moved in from window.c - - (meta_display_init_window_prop_hooks): initialise new properties - - Closes #309567. - -2006-03-25 Paolo Borelli - - * src/prefs.c: use g_str_has_prefix instead of a local copy - of the function. - -2006-03-16 Ray Strode - - Add patch from Elijah Newren to fix type - for compositing_manager schema entry (bug 335901) - - * src/metacity.schemas.in: Change type from "boolean" to "bool" - and default value from "FALSE" to "false" - -Wed Mar 22 13:16:48 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_remove_window): Actually - remove the window. - - * src/c-screen.c (meta_screen_info_remove_window): Only remove - node if non-NULL - -Wed Mar 22 10:33:21 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_redirect): Put a square below - the desktop stack. - -Mon Mar 20 11:50:44 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_redirect): Put the desktop into - a magnifier. - - * src/c-screen.c (struct MetaScreenInfo): Add a CmMagnifier - - * src/c-screen.c (meta_screen_info_redirect): Move some of the gl - window related stuff here. - -2006-03-16 Soren Sandmann (sandmann@daimi.au.dk) - - * src/c-screen.c (meta_screen_info_set_target_rect): Put inside - COMPOSIT_EXTENSIONS - -2006-03-03 Thomas Thurman - - Always set _NET_WM_STATE when a window is shown or - hidden, even if it wasn't mapped. Fixes #315142. - - * src/window.c (meta_window_hide, meta_window_show): - call set_net_wm_state unconditionally - -2006-03-16 Elijah Newren - - Add debugging information for edge resistance - - * src/edge-resistance.c (cache_edges): print out the edges that - are being cached if in verbose mode, - (meta_window_edge_resistance_for_move, - meta_window_edge_resistance_for_resize): if edge resistance kicked - in then print out a message about it - - * src/util.c: - * src/util.h: - Add META_DEBUG_EDGE_RESISTANCE to MetaDebugTopic enum list - -Thu Mar 16 14:55:18 2006 Søren Sandmann - - * src/c-screen.c (struct WindowInfo): Maintain the size of the - window. - -Wed Mar 15 16:30:09 2006 Søren Sandmann - - * src/compositor.c (set_geometry): Use set_target_rect() instead - of set_size(). - - * src/c-screen.c: Add set_target_rect() as a way of scaling windows. - - * src/window.c (meta_window_handle_mouse_grab_op_event): Turn - updates on after a button release. - - * src/window.c (meta_window_move_resize_internal): Fix - indentation. - -Wed Mar 15 11:34:54 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_add_window): Use unset_patch() - instead of unset_geometry(). - -Tue Mar 14 11:57:46 2006 Søren Sandmann - - * src/compositor.c: Comment out wobbling - - * src/compositor.c (blow_up): remove this function - - * src/compositor.c (process_configure_notify): Uncomment - set_size(). - - * src/c-screen.c (meta_screen_info_set_updates): When updates are - true, set all the properties such as size and shape. - - * src/c-screen.c (meta_screen_info_add_window): Create a special - WindowInfo structure for each window. - - * src/c-screen.c (meta_screen_info_set_size): Set size and output - shape of the drawable node. - -2006-03-13 Elijah Newren - - * README: - * configure.in: - Update to reflect that we're now targetting 2.15 development. - -2006-03-12 Thomas Thurman - - * src/window-props.c (set_title_text): Mark a particular - string for translation. #334332. - -2006-03-06 Ryan Lortie - - * src/window.c (meta_window_free): Only unmaximise window before - freeing if the window is actually maximised. #333563. - -Fri Mar 3 15:31:04 2006 Søren Sandmann - - * src/c-screen.c (meta_screen_info_new): Update for libcm API - change. - -Wed Mar 3 13:25:03 2006 Søren Sandmann - - * src/compositor.c, src/c-screen.[ch]: Split the ScreenInfo data - structure into separate, new files c-screen.[ch]. - - * src/errors.c (x_error_handler): Forward foreign errors to - foreign displays. - - * src/errors.c (meta_errors_register_foreign_display): Implement - this function - - * src/errors.h: Add new meta_errors_register_foreign_display() - -Tue Feb 28 14:49:23 2006 Søren Sandmann - - * src/compositor.c: Put the windows in a stacker rather than - do the traversing outselves. - -2006-02-27 Elijah Newren - - Patch from Thomas Thurman to prevent setting cycle_windows to - keybindings that won't work. #329676 - - * src/prefs.c (update_binding): - Make sure that bindings which require a modifier key are set to a - keybinding with one or else that the binding is reverted. - - * src/ui.[ch] (meta_ui_accelerator_name): - New function - -2006-02-27 Elijah Newren - - Patch from Thomas Thurman to work around buggy application - grouping with transient windows. #328211 - - * src/group.c (meta_window_compute_group): - Put transients in the same group with their parent, always. - - * src/window.c (update_transient_for): - Update group too - -2006-02-27 Elijah Newren - - * configure.in: - Patch from Sylvain Bertrand to fix build issues with library - search order. #330695. - -Sat Feb 25 14:50:17 2006 Søren Sandmann - - * src/window.c: Remove include of flash.h - -Sat Feb 25 11:46:14 2006 Søren Sandmann - - * src/display.c (meta_display_begin_grab_op): Call - meta_compositor_begin_move if there is a compositor - - * src/compositor.c (meta_compositor_begin/update/end_move): - Implement those functions. - - * src/spring-model.[ch]: New files - -Thu Feb 23 15:40:52 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_manage_screen): Don't attempt - to manage the screen if it already is managed. - - * src/compositor.c (meta_compositor_unmanage_screen): Synchronize - the display. - -2006-02-19 Thomas Thurman - - Removed "move to another workspace" menu when there are - exactly two workspaces. Fixes #151183. - - * src/menu.c (meta_window_menu_new): clear - META_MENU_OP_WORKSPACES bit when n_workspaces==2 - -Fri Feb 17 11:56:35 2006 Søren Sandmann - - * src/screen.c (meta_screen_free): Only uncomposite the screen if - there is a compositor. - - * src/compositor.c (meta_compositor_new): Warn and fail if the - server doesn't have composite - -Thu Feb 16 18:57:48 2006 Søren Sandmann - - * src/compositor.c: Fix the build when --enable-compositor is - there. - -Thu Feb 16 15:54:48 2006 Søren Sandmann - - * src/compositor.c: Insert #ifdef's to make it build again - -Thu Feb 16 15:24:42 2006 Søren Sandmann - - * src/screen.c (meta_screen_composite_all_windows): New function. - - * src/prefs.[ch], src/metacity.schemas.in: Add new - compositing_manager key. - - * src/display.c (prefs_changed_callback): Handle - META_PREF_COMPOSITOR_MANAGER - - * src/display.c (event_callback): Only call - meta_compositor_process_event() if there is in fact a compositor. - - * src/display.c (enable/disable_compositor): Add code to - enable/disable compositor at runtime - -Wed Feb 15 18:42:03 2006 Søren Sandmann - - * src/compositor.[ch]: Add code to destroy compositor. Implement - unmanage_screen() functionality. - -Wed Feb 15 14:47:50 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_unminimize): Add unused wobbly - unminimize animation by Kristian - - * src/compositor.c (meta_compositor_minimize): Add wobbly minimize - animation by Kristian. - - * src/compositor.c: Add support for turning updates on and off. - - * src/window.c (meta_window_move_resize_internal): Use - sync counter to make composited resizing tear free - -2006-02-14 Elijah Newren - - Patch from Jens Granseuer to fix more build issues with gcc 2.95. - #331166. - - * src/prefs.c (meta_prefs_init): - Remove C99 style variable initiailization - -2006-02-13 Elijah Newren - - * configure.in: post-release version bump to 2.13.144 - -2006-02-13 Elijah Newren - - * NEWS: 2.13.89 release - -2006-02-13 Elijah Newren - - * src/keybindings.c (process_tab_grab): - We had that prev_window code in multiple places and it was all - identical. Let's just stick it in one place to make the function - easier to read. - -2006-02-13 Thomas Thurman - - * src/keybindings.c (process_tab_grab): - Allow alt-escape to cancel alt-tabbing, and vice versa. Fixes - #141425. - -2006-02-11 Thomas Thurman - - Disable alt-f7 if a window can't be moved, and alt-f8 if it - can't be resized. Fixes #328920. - - * src/keybindings.c (handle_begin_move, handle_begin_resize): - check window->has_*_func before beginning operation - -2006-02-11 Elijah Newren - - Add a man page for metacity. Original version taken from Debian - (written by Thom May and Akira Tagoh) and updated by Luke Morton - and Philip O'Brien. Necessary auto-fu supplied by Philip O'Brien. - Fixes #321279. - -2006-02-11 Elijah Newren - - * src/stack.h (enum MetaStackLayer): - * src/stack.c (get_standalone_layer): - actually use META_LAYER_TOP but just manually make it equal to - META_LAYER_DOCK. Add a note point to the EWMH for why we do this. - #330717 - -2006-02-11 Elijah Newren - - * src/window.c (enum GnomeWinLayer): remove this legacy cruft that - we stopped using years ago - -2006-02-10 Thomas Thurman - - Avoid a memory leak when checking which workspace(s) a window is - on. Fixes #322059. - - * src/workspace.h (struct MetaWorkspace): - * src/workspace.c (meta_workspace_new, meta_workspace_free): - added list_containing_self member to MetaWorkspace - - * src/window.c (meta_window_get_workspaces): use - window->workspace->list_containing_self instead of allocating (and - leaking) such a list on the fly. - -2006-02-09 Thomas Thurman - - * src/testboxes.c (test_regions_okay, test_clamping_to_region): - add messages to explain that warnings are harmless - -Tue Feb 7 00:58:05 2006 Soeren Sandmann - - * src/compositor.c: Wrap fade code in #ifdef HAVE_COMPOSITE_EXTENSIONS - -Mon Feb 6 17:45:39 2006 Søren Sandmann - - * src/compositor.c: New fancy minimize animation. Fade windows in - and out. - -2006-02-03 Thomas Thurman - - * src/display.c (event_callback): produce warning when invalid - events with no timestamp are received, rather than failing an - assertion - -Thu Feb 2 17:58:22 2006 Søren Sandmann - - * compositor.c (process_map): update the pixmap. - (update) print out framerate. - (dump_stacking_order) new debug - function. - (meta_compositor_add_window) error trap fixes - (MiniInfo): Make the minimize animation fade out. - -2006-01-30 Elijah Newren - - * configure.in: post-release version bump to 2.13.89 - -2006-01-30 Elijah Newren - - * NEWS: 2.13.55 release - -2006-01-30 Elijah Newren - - * src/display.[ch] (struct MetaDisplay), meta_display_open, - meta_display_set_input_focus_window, - meta_display_focus_the_no_focus_window): Track the active_screen, - (event_callback): If the mouse enters a window on a different - screen, activate the default window on the new screen. May need - to be modified for click-to-focus; we'll wait for feedback. Fixes - #319348. - -2006-01-23 Elijah Newren - - * src/display.c (meta_display_check_threshold_reached): change the - order of the ||'ed items in the if to avoid using an uninitialized - value - - * src/prefs.c (meta_prefs_init): fix a couple uninitialized value - problems - -2006-01-21 Elijah Newren - - Patch from Christian Kirbach to prevent a critical warning crasher - when switching themes. #327847. - - * src/theme.c (meta_theme_free): since themes are only constructed - as needed and may be NULL, check for that before freeing theme - hash tables - -2006-01-21 Elijah Newren - - * src/common.h (enum MetaActionDoubleClickTitlebar): - * src/frames.c (meta_frames_button_press_event): - * src/prefs.c (action_double_click_titlebar_from_string): - * src/metacity.schemas.in: - Patch from Dick Marinus to add a minimize - double-click-titlebar-action; slightly modified to also include a - none action. #300210. - -2006-01-20 Elijah Newren - - * configure.in: post-release version bump to 2.13.55 - -2006-01-20 Elijah Newren - - * NEWS: 2.13.34 release - -2006-01-20 Elijah Newren - - * src/constraints.c (setup_constraint_info): fixed_directions is - only meant for explicit user interactions; disable it for - everything else. There are other bugs and improvements that could - be made with fixed_directions that I should be filing too, but at - least put a FIXME there for now--I'm so lame. Fixes #327822. - -2006-01-20 Elijah Newren - - Avoid flashing when closing a maximized window. Fixes #317254. - - * src/window.c (unmaximize_window_before_freeing): new function - that just fixes the net_wm_state and sends a configure_notify, - (meta_window_free): use unmaximize_window_before_freeing() instead - of meta_window_unmaximize() to avoid flicker - -2006-01-20 Elijah Newren - - Fix unitialized value problem when in raise-on-click mode. Søren, - #327572. - - * src/display.c (meta_display_check_threshold_reached): make - function be a no op if raise_on_click!=FALSE - - * src/display.h (struct MetaDisplay): point out that - grab_initial_[xy] and grab_threshold_movement_reached are only for - raise_on_click==FALSE mode. - -2006-01-20 Elijah Newren - - Patch from Søren to fix some reading-from-free'd-data errors. - #327575 - - * src/edge-resistance.c (meta_display_cleanup_edges): store the - edges in a hash table so that we can still read their values - within the loop from the other array they are stored in, then free - them all at the end. - -2006-01-20 Elijah Newren - - Fix various initialization and default issues, especially for - --disable-gconf. Make --disable-gconf actually work. #326661. - - * configure.in: Fix compilation with --disable-gconf - * src/metacity.schemas.in: Add a note that if any defaults are - changed in this file, src/prefs.c may need to be updated to - reflect the change - * src/prefs.c: set various static global vars to the right default - value, (meta_prefs_init): get the titlebar_font and current_theme - handled better when not using gconf, (struct MetaSimpleKeyMapping, - screen_string_bindings, window_string_bindings): helper vars to - allow some keybindings to work even without gconf, - (init_bindings): initialize bindings for the without-gconf case - too, (init_commands): make sure these are all NULL for the - non-gconf case so that we don't access random memory, - (init_workspace_names): just give these all a default name for the - non-gconf case, - (meta_prefs_change_workspace_name): actually change the name for - the non-gconf case too - -2006-01-20 Elijah Newren - - More careful error handling of values returned by GConf. Fixes - #326615. - - * src/prefs.c (get_bool): new helper function, (meta_prefs_init): - use get_bool to handle the case of a gconf key not existing, - (update_cursor_size): sanity check for sane values - -2006-01-20 Elijah Newren - - Prevent rapidly repeated visual bells from hanging metacity. - Fixes #322032. - - * src/display.h (struct MetaDisplay): add a last_bell_time field, - (XSERVER_TIME_IS_BEFORE_ASSUMING_REAL_TIMESTAMPS macro, - XERVER_TIME_IS_BEFORE macro): add parentheses around usage of - macro parameter - - * src/display.c (meta_display_open): initialize last_bell_time, - (event_callback): don't allow more than one bell per second - -2006-01-20 Elijah Newren - - * src/async-getprop.c: - * src/common.h: - * src/display.c: - * src/eggaccelerators.c: - * src/frames.c: - * src/gradient.c: - * src/iconcache.c: - * src/keybindings.c: - * src/metaaccellabel.c: - * src/place.c: - * src/prefs.c: - * src/preview-widget.c: - * src/screen.c: - * src/session.c: - * src/stack.c: - * src/tabpopup.c: - * src/theme-viewer.c: - * src/theme.c: - * src/window-props.c: - * src/window.c: - * src/workspace.c: - * src/tools/metacity-window-demo.c: - * src/wm-tester/test-gravity.c: - * src/wm-tester/test-resizing.c: - * src/wm-tester/test-size-hints.c: - Patch from Kjartan Maraas to fix a lot of tiny issues (unused - variable removal, making unused variables used again, correction - of types passed/declared for printf arguments, removal of unneeded - breaks and returns, dead code removal, dead code revival, renaming - to prevent shadowed variables, declaring unexported functions as - static) spotted by the intel compiler. #321439 - -2006-01-20 Elijah Newren - - Patch from Björn Lindqvist to fix #98340. - - * src/screen.c (meta_screen_ensure_tab_popup): Make sure an - outline border is shown even if a window frame's width is 0. - Also, correctly handle window outlines in showing desktop mode. - -Fri Jan 20 16:42:25 2006 Søren Sandmann - - * src/compositor.c: Make minimize animation update again. - -Thu Jan 19 18:05:47 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_manage_screen): - g_object_unref() rather than ws_region_unref(). - -Thu Jan 19 16:50:50 2006 Søren Sandmann - - * src/compositor.c: Port to changes in libcm - -Tue Jan 17 17:25:29 2006 Søren Sandmann - - * src/compositor.c: Port to changes in libcm. - -2006-01-16 Elijah Newren - - * src/window-props.c: manually define HOST_NAME_MAX if not already - defined to fix Solaris compilation issue. Caught by Damien - Carbery, patch from Havoc. #326745 - -2006-01-16 Elijah Newren - - * configure.in: post-release version bump to 2.13.34 - -2006-01-16 Elijah Newren - - * NEWS: 2.13.21 release - -Mon Jan 16 11:55:20 2006 Søren Sandmann - - * src/compositor.c (meta_compositor_manage_screen): Really turn - off draw-in-a-loop. - -2006-01-15 Kyle Ambroff - - * src/workspace.c (focus_ancestor_or_mru_window): - If no valid window is found in the MRU list, then set focus to the - desktop window. (#317405) - -2006-01-15 Elijah Newren - - Fix accidental overzealous focus holding by the terminal - introduced by the original patch in bug 326159. Windows launched - from panel icons, the panel menu, or global keybindings should get - focus now. #326159. - - * src/display.c (meta_display_open, event_callback): - * src/display.h (struct MetaDisplay): - * src/keybindings.c (process_event): - * src/window.c (meta_window_set_user_time): - Add a new allow_terminal_deactivation field to MetaDisplay and use - it to track whether the user's last action was interaction with - the terminal or some outside action (global keybinding, clicking - on a dock, etc.) likely to launch a new window. - - * src/window.c (window_state_on_map): - Allow the focus switch from a terminal to something else if - allow_terminal_deactiviation is true. - - * src/keybindings.c (handle_panel_keybinding): - Remove some unneeded code. - -2006-01-15 Elijah Newren - - Patch from Jens Granseuer to fix more build issues with gcc 2.95. - #327050. - - * src/boxes.c (meta_rectangle_edge_cmp_ignore_type): - * src/window.c (meta_window_show): - Remove C99 style variable initiailization - -2006-01-14 Elijah Newren - - * src/window.c (__window_is_terminal): Don't dereference a NULL - string. Fixes #327013. - -2006-01-14 Elijah Newren - - * src/compositor.[ch]: fix compilation when - HAVE_COMPOSITE_EXTENSIONS is undefined. #326912 - -Fri Jan 13 16:37:26 2006 Søren Sandmann - - * src/compositor.c (update): Only update on damage events. - -2006-01-13 Elijah Newren - - Patch from Damien Carbery. Fixes #326746. - - * src/util.c: explicitly #include Xlib.h to fix a compilation - issue on Solaris. - -Fri Jan 13 14:40:19 2006 Søren Sandmann - - * configure.in: Add a dependency on libcm when building with - compositor. - - * src/window.c (meta_window_hide): Make this function static. - - * src/window.c (implement_showing): Use meta_compositor_minimize() - to do a weird minimize effect. - - * src/compositor.[ch]: Beginning of new GL based compositor. - - * src/screen.h (struct _MetaScreen): Add void pointer to - compositor data. - - * src/screen.c (meta_screen_new): Remove obsolete compositor - stuff; initialize compositor_data. Don't composite manage screen - out of this function. - - * src/errors.c (x_error_handler): Check that display is non-NULL - before using it. Add comment about how that can happen. - - * src/display.c (meta_display_{begin,end}_grab_op): Remove - explicity damage of windows. - - * src/display.c (meta_display_open): Composite manage all the - screens. - -2006-01-11 Elijah Newren - - * src/textboxes.c (test_area, test_intersect, test_equal, - test_overlap_funcs, test_basic_fitting, test_merge_regions, - test_regions_okay, test_region_fitting, test_clamping_to_region, - test_clipping_to_region, test_shoving_into_region, - test_find_onscreen_edges, - test_find_nonintersected_xinerama_edges, test_gravity_resize, - test_find_closest_point_to_line): - Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser - compilers don't support the former. Caught by Damien Carbery, fix - suggested by Ray Strode. #326281. - -2006-01-10 Elijah Newren - - * configure.in: post-release version bump to 2.13.21 - -2006-01-10 Elijah Newren - - * NEWS: 2.13.13 release - -2006-01-10 Elijah Newren - - * src/bell.c: - * src/boxes.c: - * src/boxes.h: - * src/constraints.c: - * src/core.c: - * src/display.c: - * src/display.h: - * src/edge-resistance.c: - * src/frames.c: - * src/keybindings.c: - * src/main.c: - * src/prefs.c: - * src/prefs.h: - * src/screen.c: - * src/screen.h: - * src/window.c: - * src/window.h: - Whoops, I forgot to keep my copyright info updated with my previous - commits as Havoc had asked me to do. Doing that now... - -2006-01-10 Elijah Newren - - Add a raise on click option, basically only because all the major - distros are patching it in anyway. See #326156. - - * src/metacity.schemas.in: add the new gconf key and explanation - - * src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean - raise_on_click, update_raise_on_click, meta_prefs_init, - change_notify, meta_prefs_get_raise_on_click, - meta_preference_to_string): - Add all the normal preference handling stuff for this new - raise-on-click option. - - * src/core.c (meta_core_show_window_menu): - * src/display.c (event_callback, meta_display_begin_grab_op): - * src/window.c (window_activate, meta_window_configure_request, ): - Only raise the window if in raise_on_click mode. - - * src/display.c (meta_display_begin_grab_op, - meta_display_end_grab_op, meta_display_check_threshold_reached): - * src/display.h (struct MetaDisplay): - * src/window.c (meta_window_handle_mouse_grab_op_event): - if not in raise-on-click mode only raise on button release if the - click didn't start a move or resize operation; needs a few extra - MetaDisplay fields to handle this - - * src/core.c (meta_core_user_lower_and_unfocus): - no need to do the MRU shuffling if not maintaining the stacking - order == MRU order invariant - - * src/frames.c (meta_frames_button_press_event): - * src/window.c (meta_window_begin_grab_op): - remove an unneeded window raising that is already handled elsewhere - -2006-01-10 Elijah Newren - - Don't "steal" focus from terminal windows for new window mappings - as the difference in usage between terminals and other apps seems - to suggest this difference in treatment. See #326159 for details, - feedback welcome. - - * src/window.[ch] (__window_is_terminal): New function, currently - an ugly hack and should be replaced by a new property set by - applications if the behavior works to our liking, - (window_state_on_map): don't transfer focus to new windows from - terminals unless the new window is a transient of the focused - terminal - - * src/keybindigns.c (handle_panel_keybinding): panel run dialog - keybinding should be counted as an explicit transfer of focus to - the new window, so override the - don't-transfer-focus-from-terminals in this case - -2006-01-09 Elijah Newren - - More thorough handling of source indication. Part of #326041. - - * src/window.c (window_activate): new function based off the old - meta_window_activate but which also takes source indication into - account, (meta_window_active): just call window_activate() with - the necessary source indication to get the behavior wanted, - (meta_window_client_message): check source indication too for - _net_active_window messages - - * src/window.h (enum MetaClientType): convenience enum for source - indication handling - -2006-01-09 Elijah Newren - - Make the taskbar less flash happy and fix up some related stacking - issues. #326035. - - * src/window.c (windows_overlap): new function, - (meta_window_show): if a window is denied focus but doesn't - overlap with the focus window there is no need to set the demands - attention hint nor stack that window below the focus window, - (meta_window_get_outer_rect): we're not modifying the window so - declare it to be const - -2006-01-09 Elijah Newren - - Fix window outline for minimized windows when using alt-esc. - #325092. - - * src/display.c (meta_display_begin_grab_op): Specify the showing - type of tabbing operation (Alt tab vs. alt-esc) in addition to the - listing type of tabbing operation (docks vs normal windows) to - meta_screen_ensure_tab_popup(). - - * src/display.h (enum MetaTabShowType): new convenience enum - - * src/screen.[ch] (meta_screen_ensure_tab_popup): require the - showing type be specified in addition to the tabbing type; put the - outline around the window instead of the icon when in alt-esc - mode. - -2006-01-09 Elijah Newren - - Fix reduced resources resize handling for windows with sizing or - resizing constraints. #325774. - - * src/display.c (meta_display_end_grab_op): Provide constraints.c - with the correct gravity information. - -2006-01-09 Elijah Newren - - Be more strict about what is considered a valid region with - partial struts. Fixes #322070. - - * src/boxes.[ch]: - (meta_rectangle_expand_region_conditionally): - new function behaving like meta_rectangle_expand_region() but - which only does so when the width and height of the rectangles - meet a certain threshold - - (replace_rect_with_list): - Remove a compiling warning - - * src/constraints.c: - (constrain_partially_onscreen): - provide minimum thresholds in each direction for the size of the - rectangles to avoid cases where only a single pixel thick layer of - a window might be showing - -2006-01-09 Elijah Newren - - * src/bell.c (meta_bell_notify_frame_destroy): Use the right - function to remove the timeout so that we don't crash if removed - at an inopportune time. Fixes #322031. - -2006-01-09 Elijah Newren - - * src/edge-resistance.c (apply_edge_resistance): Remove the - "pull-away" edge resistance. Fixes another of the zillions of - issues covered in #321905. - -2006-01-09 Elijah Newren - - * src/edge-resistance.c (apply_edge_resistance): Revert to the old - edge resistance behavior for keyboard movement/resizing based - resistance. Not only makes the code much simpler and shorter, but - also fixes another of the zillions of issues covered in #321905. - -2006-01-09 Elijah Newren - - * src/edge-resistance.c (apply_edge_resistance): Remove the - timeout resistance at screen/xinerama edges for the whiners. - Okay, it made sense. Fixes another of the zillions of issues - covered in #321905. - -2006-01-09 Elijah Newren - - * src/edge-resistance.c (apply_edge_resistance): Make extra - timeout edge resistance apply even if one edge already offscreen. - Fixes another of the zillions of issues covered in #321905. - -2006-01-09 Elijah Newren - - Allow edge resistance at both sides of a window and also when - edges don't overlap but are a single pixel away from doing so. - Fixes one of the zillions of issues covered in #321905. - - * src/boxes.[ch]: - (meta_rectangle_edges_align): - new function to handle the overlap or off by one determining - whether edge resistance should kick in for an edge. - - (meta_rectangle_edge_cmp_ignore_type): - new function to sort edges but ignore the type so that e.g. left & - right edges of windows can be used interchangeably. - - (meta_rectangle_edge_cmp): - now uses meta_rectangle_edge_cmp_ignore_type() to do most the work - and just adds an extra condition - - * src/edge-resistance.c: - (find_nearest_position): - use meta_rectangle_edges_align() now to determine whether the - edges align, - - (apply_edge_resistance, apply_edge_resistance_to_each_side): - have the edge resistance kick in if either the beginning or ending - positions would cause overlap in the given direction -- fixes an - uncommon but annoying corner case, - - (apply_edge_snapping, apply_edge_resistance_to_each_side, - meta_display_cleanup_edges, - stupid_sort_requiring_extra_pointer_dereference, cache_edges): - mix edges from both sides now - -2006-01-09 Elijah Newren - - Plug a few leaks. Fixes #309178. - - * src/main.c (main): remove an unneeded g_set_prgname() call, free - some strings allocated by the GOptions parsing - -2006-01-02 Elijah Newren - - Patch from Björn Lindqvist to fix a logic error. #322149. - - * src/window.c (update_resize): && should have been ||. - -2006-01-02 Elijah Newren - - Patch from Jens Granseuer to fix build with gcc 2.95. #322622. - - * src/boxes.c (meta_rectangle_region_to_string, - meta_rectangle_edge_list_to_string, fix_up_edges): - * src/constraints.c (meta_window_constrain, setup_constraint_info, - place_window_if_needed, constrain_maximization, - constrain_fullscreen, constrain_size_increments, - constrain_size_limits, constrain_aspect_ratio, - do_screen_and_xinerama_relative_constrai, - constrain_to_single_xinerama, constrain_fully_onscreen, - constrain_partially_onscreen): - * src/edge-resistance.c (find_nearest_position, - apply_edge_resistance, apply_edge_resistance_to_each_side): - * src/testboxes.c (test_clamping_to_region, - test_clipping_to_region, test_shoving_into_region): - * src/window.c (meta_window_new_with_attrs, - meta_window_apply_session_info, meta_window_resize, - meta_window_resize_with_gravity, meta_window_configure_request): - Remove C99 style variable initiailization - -2006-01-02 Elijah Newren - - * configure.in: post-release version bump to 2.13.13 - -2006-01-02 Elijah Newren - - * NEWS: 2.13.8 release - -2005-12-27 Elijah Newren - - Make the workspace switcher work with dual-head (non-xinerama) - setups. Fixes #319423. - - * src/display.c (meta_display_open, event_callback, - meta_display_focus_the_no_focus_window): - * src/display.h (struct MetaDisplay, - meta_display_focus_the_no_focus_window): - * src/keybindings.c (primary_modifier_still_pressed): - * src/screen.c (meta_screen_new): - * src/screen.h (struct MetaScreen): - * src/window.c (meta_window_new_with_attrs, meta_window_show): - * src/workspace.c (meta_workspace_focus_default_window): - Replace display->no_focus_window with a no_focus_window for each - screen. - - * src/display.[ch] (meta_display_xwindow_is_a_no_focus_window, - event_callback): - * src/window.c (meta_window_new_with_attrs): - New utility function, meta_display_xwindow_is_a_no_focus_window(), - for checking if the given xwindow is a no_focus_window for one of - the screens. - -2005-12-27 Elijah Newren - - * src/tabpopup.c (meta_ui_tab_popup_new): since the title is going - to be treated as markup, escape it. Fixes #324846. - -2005-12-13 Kang Jeong-Hee - - * src/compositor.c: replace old call to width and height - of MetaScreen struct with rect.width and rect.height. - Now compile ok. - * src/delete.c: make an int variable into unsigned int. - Now compile warning has gone. - -2005-12-12 Elijah Newren - - * configure.in: post-release version bump to 2.13.8 - -2005-12-12 Elijah Newren - - * NEWS: 2.13.5 release - -2005-12-12 Elijah Newren - - * src/window.c (update_net_frame_extents): make the debugging - message actually correspond to the code. Patch from Björn - Lindqvist. Fixes #322051. - -2005-11-29 Kjartan Maraas - - * src/screen.h: Make the wireframe a bit slimmer. - Closes bug #320051. - -2005-11-24 Davyd Madeley - - * src/window-props.c: display hostname in titlebar for remote X - clients. Closes bug #322202. - -2005-11-22 Elijah Newren - - * configure.in: post-release version bump to 2.13.5 - -2005-11-22 Elijah Newren - - * NEWS: 2.13.3 release - -2005-11-22 Elijah Newren - - Don't allow removing a window from maximized or fullscreened state - to place the titlebar under the top panel. Fixes #322075. - - * src/display.c (handle_net_moveresize_window): fix up previous - comments now that I know a little more, modify the code just - slightly to clarify that this is NOT a manual user move/resize - operation - - * src/window.c (meta_window_unmaximize, - meta_window_unmake_fullscreen, - meta_window_shove_titlebar_onscreen): - don't claim that these are manual user move/resize operations - -2005-11-21 Elijah Newren - - * src/constraints.c (constrain_partially_onscreen): Relax the - partially onscreen constraint to allow the titlebar to touch the - bottom panel in order to make the new constraints code function - the same as the old version. Fixes #322071. - -2005-11-21 Elijah Newren - - * src/constraints.c (place_window_if_needed): When updating the - xinerama due to placement, update which maximal/spanning rect set - to use as well. Fixes #322068. - -2005-11-21 Elijah Newren - - * doc/strut-and-related-updating.txt: It took me a little while to - figure out how struts & workareas are updated and to learn what - all the related functions were used for so I thought I'd clean up - my notes and make them available. This will probably be more - useful now since regions and edges are also computed and stored at - the same time as the workareas. - -2005-11-20 Elijah Newren - - * src/constraints.c (place_window_if_needed): compute the frame - geometry due to maximization only after actually maximizing. - Fixes #321902. - -2005-11-21 Davyd Madeley - - * src/edge-resistance.c (meta_display_compute_resistance_and_snap): - Use GPOINTER_TO_INT() macro instead of cast to allow compilation on - 64-bit architectures without warning. - -2005-11-19 Elijah Newren - - * src/edge-resistance.c (apply_edge_resistance): differentiate - between movement towards an edge and movement away from one. Pick - smaller constants for movement away from an edge. - -2005-11-19 Elijah Newren - - * configure.in: post-release version bump to 2.13.3 - -2005-11-19 Elijah Newren - - * NEWS: 2.13.2 release - -2005-11-18 Elijah Newren - - Merge of all the changes on the constraints_experiments branch. - This is just a summary, to get the full ChangeLog of those - changes (approx. 2000 lines): - cvs -q -z3 update -Pd -r constraints_experiments - cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog - - Bugs fixed: - unfiled - constraints.c is overly complicated[1] - unfiled - constraints.c is not robust when all constraints - cannot simultaneously be met (constraints need to be - prioritized) - unfiled - keep-titlebar-onscreen constraint is decoration - unaware (since get_outermost_onscreen_positions() - forgets to include decorations) - unfiled - keyboard snap-moving and snap-resizing snap to hidden - edges - 86644 - resize should have a shift option like move does - 109553 - gravity w/ simultaneous move & resize doesn't work - 113601 - maximize vertical and horizontal should toggle and be - constrained - 122196 - windows show up under vertical panels - 122670 - jerky/random resizing of window via keyboard[2] - 124582 - keyboard and mouse snap-resizing and snap-moving - erroneously moves the window multidimensionally - 136307 - don't allow apps to resize themselves off the screen - (*cough* filechooser *cough*) - 142016, 143784 - windows should not span multiple xineramas - unless placed there by the user - 143145 - clamp new windows to screensize and force them - onscreen, if they'll fit - 144126 - Handle pathological strut lists sanely[3] - 149867 - fixed aspect ratio windows are difficult to resize[4] - 152898 - make screen edges consistent; allow easy slamming of - windows into the left, right, and bottom edges of the - screen too. - 154706 - bouncing weirdness at screen edge with keyboard moving - or resizing - 156699 - avoid struts when placing windows, if possible (nasty - a11y blocker) - 302456 - dragging offscreen too restrictive - 304857 - wireframe moving off the top of the screen is misleading - 308521 - make uni-directional resizing easier with - alt-middle-drag and prevent the occasional super - annoying resize-the-wrong-side(s) behavior - 312007 - snap-resize moves windows with a minimum size - constraint - 312104 - resizing the top of a window can cause the bottom to - grow - 319351 - don't instantly snap on mouse-move-snapping, remove - braindeadedness of having order of releasing shift and - releasing button press matter so much - - [1] fixed in my opinion, anyway. - [2] Actually, it's not totally fixed--it's just annoying - instead of almost completely unusable. Matthias had a - suggestion that may fix the remainder of the problems (see - http://tinyurl.com/bwzuu). - [3] This bug was originally about not-quite-so-pathological - cases but was left open for the worse cases. The code from - the branch handles the remainder of the cases mentioned in - this bug. - [4] Actually, although it's far better there's still some minor - issues left: a slight drift that's only noticeable after - lots of resizing, and potential problems with partially - onscreen constraints due to not clearing any - fixed_directions flags (aspect ratio windows get resized in - both directions and thus aren't fixed in one of them) - - New feature: - 81704 - edge resistance for user move and resize operations; - in particular 3 different kinds of resistance are - implemented: - Pixel-Distance: window movement is resisted when it - aligns with an edge unless the movement is greater than - a threshold number of pixels - Timeout: window movement past an edge is prevented until - a certain amount of time has elapsed during the - operation since the first request to move it past that - edge - Keyboard-Buildup: when moving or resizing with the - keyboard, once a window is aligned with a certain edge - it cannot move past until the correct direction has - been pressed enough times (e.g. 2 or 3 times) - - Major changes: - - constraints.c has been rewritten; very few lines of code from - the old version remain. There is a comment near the top of - the function explaining the basics of how the new framework - works. A more detailed explanation can be found in - doc/how-constraints-works.txt - - edge-resistance.[ch] are new files implementing edge-resistance. - - boxes.[ch] are new files containing low-level error-prone - functions used heavily in constraints.c and edge-resistance.c, - among various places throughout the code. testboxes.c - contains a thorough testsuite for the boxes.[ch] functions - compiled into a program, testboxes. - - meta_window_move_resize_internal() *must* be told the gravity - of the associated operation (if it's just a move operation, - the gravity will be ignored, but for resize and move+resize - the correct value is needed) - - the craziness of different values that - meta_window_move_resize_internal() accepts has been documented - in a large comment at the beginning of the function. It may - be possible to clean this up some, but until then things will - remain as they were before--caller beware. - - screen and xinerama usable areas (i.e. places not covered by - e.g. panels) are cached in the workspace now, as are the - screen and xinerama edges. These get updated with the - workarea in src/workspace.c:ensure_work_areas_validated() - -2005-11-14 Elijah Newren - - * configure.in: post-release version bump to 2.13.2 - -2005-11-14 Elijah Newren - - * NEWS: 2.13.1 release - -2005-11-11 Aidan Delaney - - * src/tabpopup.h: (struct _MetaTabEntry): - * src/tabpopup.c: (meta_ui_tab_popup_new): - * src/screen.c: (meta_screen_ensure_tab_popup): - Changed the 'minimized' field of the MetaTabEntry struct to - 'hidden'. Fixes reopened bug #168455. - -2005-10-29 Kjartan Maraas - - * src/eventqueue.c: (meta_event_queue_new): Merge fix - for bug #320050 from stable. - -2005-10-27 Erdal Ronahi - - * configure.in: Added ku (Kurdish) to ALL_LINGUAS - -2005-10-25 Philip O'Brien - - * src/prefs.c (meta_preference_to_string): add handling for - META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete - debug info - -2005-10-24 Elijah Newren - - * configure.in: post-release version bump to 2.13.1 - -2005-10-24 Elijah Newren - - * NEWS: 2.13.0 release - -2005-10-23 Elijah Newren - - Fix edge snapping for multi-screen (non-xinerama) setups. #319425 - - * src/place.c (get_windows_showing_on_same_screen, - get_vertical_edges, get_horizontal_edges): rename - get_windows_on_same_workspace() to - get_windows_showing_on_same_screen() - - * src/place.c (get_windows_showing_on_same_screen): exclude windows - in the list that are on a different screen - -2005-10-20 Elijah Newren - - * HACKING: Clarify why METACITY_VERBOSE=1 is bad without - META_USE_LOGFILE=1; point to bug 305091 for details. - -2005-10-13 Muktha - - * src/themes/Simple/metacity-theme-1.xml: Make the unfocussed - Simple window border visible with high contrast inverse theme. - Fixes #121361. - -2005-10-08 Elijah Newren - - Fix a crash that occurs when removing some virtual desktops and - windows happen to be on those desktops. #318306. - - * src/workspace.c (meta_workspace_relocate_windows): Since windows - cannot be on more than one workspace at a time, remove the window - from the old workspace before adding it to the new one. - -2005-10-08 Elijah Newren - - Add my copyright notice to a number of files on which it should - already exist. - -2005-10-03 Elijah Newren - - * src/metacity.schemas.in: clarify the meaning of the auto_raise - preference. Fixes one of the issues in #312421. - -2005-10-03 Elijah Newren - - Patch from Ross Cohen to make alt-esc consistent with alt-tab by - leaving stacking of unselected windows unchanged. Fixes #314285. - - * src/keybindings.c (process_tab_grab): before raising and showing - the next candidate, reset the stack positions to what they were - at the beginning of the grab - -2005-10-03 Elijah Newren - - Patch from Ross Cohen to make alt-esc (show windows instantly) - actually show minimized windows too. Fixes #107072. - - * src/keybindings.c (process_tab_grab): initialize tab_unminimized - to FALSE for the target window when starting the grab, when - advancing through the list check to find the previous window and - re-minimize it if it was tab-unminimized, unminimize the new - window we're alt-esc'ing to if it's minimized, (do_choose_window): - raise and unminimize the initial window as well in alt-esc'ing - - * src/window.h (struct _MetaWindow): add a tab_unminimized field - - * src/window.c (meta_window_new_with_attrs): initialize - tab_unminimized to false - -2005-10-03 Elijah Newren - - Branched for Gnome 2.13. :-) - - * configure.in: bump version to 2.13.0. Add UNSTABLE warning. - * README: add 2.13.x to the list of unstable branches - -2005-10-03 Elijah Newren - - A combination of a couple memory leaks fixes, from Kjartan, - Soeren, and I. Fixes #313030. - - * src/bell.c (meta_bell_flash_screen): call XFreeGC() - - * src/frames.c (invalidate_cache): free pixels - - * src/window.c (meta_window_show_menu): call - meta_screen_free_workspace_layout() - -2005-10-03 Elijah Newren - - Patch from Björn Lindqvist fix the workspace switcher tabpopup to - display the right windows and to fix the - pick-a-new-window-to-focus algorithm in order to not select - windows that aren't showing. Fixes #170475. - - * src/tabpopup.c (meta_convert_meta_to_wnck, - meta_select_workspace_expose_event): factor out conversion code - from meta_select_workspace_expose_event() into the new - meta_convert_meta_to_wnck() function - - * src/tabpopup.c (meta_select_workspace_expose_event): - * src/workspace.c (focus_ancestor_or_mru_window): - replace the buggy window->minimized logic with - !meta_window_showing_on_its_workspace (window) - -2005-10-03 Elijah Newren - - Patch from Björn Lindqvist to have ancestors come along with the - transient when moving the window from one workspace to another. - Fixes #314977. - - * src/window.c (meta_window_change_workspace): have all ancestors - change workspaces too - -2005-10-03 Elijah Newren - - * configure.in: post-release version bump to 2.12.2 - -2005-10-03 Elijah Newren - - * NEWS: 2.12.1 release - -2005-10-03 Elijah Newren - - Truncate ridiculously long titles to avoid crashing or letting the - pager crash. Based on patch from Ray, incorporating suggestions - from Havoc and some extensions of my own. Fixes #315070. - - * src/display.c (set_utf8_string_hint, meta_display_open): - * src/xprops.[ch] (meta_prop_set_utf8_string_hint): - Move set_utf8_string_hint() to props.[ch], namespace it - ("meta_prop_"), and make it public - - * src/tabpopup.c (utf8_strndup, meta_ui_tab_popup_new): - * src/util.[ch] (meta_g_utf8_strndup): - Move utf8_strndup() to util.[ch], namespace it ("meta_g_"), and - make it public - - * src/display.c (meta_display_open): - * src/display.h (struct _MetaDisplay): - add net_wm_visible_name and net_wm_visible_icon_name atoms to the - list of atoms we work with - - * src/window-props.c (set_window_title, set_icon_title): If title - length is greater than 512, truncate it and set - _NET_WM_VISIBLE_NAME or _NET_WM_VISIBLE_ICON_NAME accordingly - -2005-10-03 Elijah Newren - - Get the tabbing window outline to work with gtk+ 2.8.4 again. - Fixes #317528. - - * src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the - mapped state of its windows (see bug 316180), and since we - manually map with gdk_window_show_unraised() we need to manually - set the mapped state too - -2005-09-05 Elijah Newren - - * configure.in: post-release version bump to 2.12.1 - -2005-09-05 Elijah Newren - - * configure.in: - * README: - * NEWS: - 2.12.0 release - -2005-09-04 Danilo Šegan - - * configure.in: Added Armenian (hy) to ALL_LINGUAS. - -2005-09-03 Elijah Newren - - * HACKING: Add tips on how to more easily get the ids of windows, - and how to shorten xprop output. - -2005-09-02 Brent Smith - - * src/place.c: (meta_window_place): Moved the call to - meta_screen_get_natural_xinerama_list to earlier in - function so that xineramas_list is allocated before - find_first_fit is called. Fixes #315000 - -2005-08-22 Elijah Newren - - * configure.in: post-release version bump to 2.11.5 - -2005-08-22 Elijah Newren - - * NEWS: 2.11.3 release - -2005-08-22 Elijah Newren - - * configure.in: Patch from Björn Lindqvist to check for the - appropriate versions of glib and gtk. Fixes #314116. - -2005-08-12 Elijah Newren - - * src/place.c (meta_window_place): Avoid obscuring - centered-on-desktop windows which are denied focus. Fixes - #313234. - -2005-08-08 Elijah Newren - - * configure.in: post-release version bump to 2.11.3 - -2005-08-08 Elijah Newren - - * NEWS: 2.11.2 release - -2005-08-08 Elijah Newren - - Patch from Brent Smith to fix a duplicate string. Fixes #309774. - - * src/theme-parser.c (parse_toplevel_element, parse_draw_op_element): - Change "No \"%s\" attribute on element <%s>" string to "No \"%s\" - attribute on <%s> element" - -2005-08-03 Ray Strode - - Improve the behavior of keyboard move/resize and edge - snapping. Still not perfect, bug 310888. - - * src/effects.c (draw_xor_rect): Make the outside of a - wireframe rectangle line up with the outside edge of its - window, instead of centering the wireframe edges on the - window edges. - - * src/keybindings.c (process_keyboard_move_grab): allow - edge snapping in wireframe mode. Adjust code to take - into account changed semantics of find_next_*_edge - functions. - (process_keyboard_resize_grab_op_change): new function - to take some orthogonal logic out of - process_keyboard_resize_grab_op. Only allow keyboard - resize cursor to go to flat edges, not corners. - (process_keyboard_resize_grab): allow edge snapping in - wireframe mode. Fix up snapping logic. - - * src/place.c (get_{vertical,horizontal}_edges): use - GArray instead of int *, since the number of output - edges isn't known until the middle of the function now. - Use xor rect extents instead of window extends if in - wireframe mode. - (meta_window_find_next_{vertical,horizontal}_edge: add - new source_edge_position parameter to specify which edge - on the active window to start from when looking for next - edge on the screen. Return the coordinate of the edge - found and not the coordinate of where the window should be - moved to snap to where the edge was found. - - * src/window.c (update_move): all the user to specify - an edge to resize with mouse in keyboard resize mode. - window - -2005-08-01 Elijah Newren - - * src/metacity.schemas.in: Change default theme from "Simple" to - "Clearlooks". - -2005-07-31 Elijah Newren - - * src/stack.c (is_focused_foreach, get_standalone_layer): use only - the expected_focus_window instead of both the focused_window and - the expected_focus_window. Removes an infinite flicker loop in - sloppy and mouse focus, and an ugly one time flicker in click to - focus. Fixes #311400. - -2005-07-30 Elijah Newren - - Patch from Jaap Haitsma to make sure that Metacity dialogs have - icons. Fixes #309876. - - * src/metacity-dialog.c (kill_window_question, - warn_about_no_sm_support, error_about_command): call - gtk_window_set_icon_name() to set the dialog icon - -2005-07-28 Elijah Newren - - * src/place.c (avoid_being_obscured_as_second_modal_dialog): - remove some unneeded debug spew that was causing crashes. Fixes - #311819. - -2005-07-24 Elijah Newren - - * configure.in: post-release version bump to 2.11.2 - -2005-07-24 Elijah Newren - - * NEWS: 2.11.1 release - -2005-07-24 Elijah Newren - - * src/place.c (find_most_freespace): try to place windows denied - focus near the focus window and fix a xinerama bug with the - placement, (avoid_being_obscured_as_a_second_modal_dialog): avoid - modal dialogs being obscured in somewhat pathologically strange - circumstances that Eclipse seems to be good at triggering, - (meta_window_place): have dialog windows make use of - avoid_being_obscured_as_a_second_modal_dialog(). Fixes one of the - issues found in #307875. - -2005-07-24 Elijah Newren - - * src/window.c (meta_window_raise): raise the window as well as - its ancestor; fixes a stacking bug with an ancestor that has more - than one child window. Fixes one of the issues in #307875. - -2005-07-24 Elijah Newren - - * src/window.c (meta_window_free): restore original window size if - the window was maximized, as the FIXME says. ;-) Fixes #137185. - Thanks to Christian Persch for the testcase that made this easier - to track down. - -2005-07-23 Elijah Newren - - * src/window.c (meta_window_activate): revert the patch from - #128380--change _NET_ACTIVE_WINDOW behavior to what it originally - was. - -2005-07-18 Matthias Clasen - - * configure.in: Add checks for Xcursor, to make the changes - done on 2005-07-11 effective. - -2005-07-14 Elijah Newren - - Patch from Ken Harris to provide a more lenient threshold for - drawing rounded corners. Fixes #122065. - - * src/theme.c (meta_frame_layout_calc_geometry): use height + - width > 5 instead of height > 3 && width > 3 as criterion - -2005-07-13 Elijah Newren - - Fix a slight bug (causing possible miscoloring of parts of the - titlebar) introduced by the patch from #169982. - - * src/gradient.c: - (meta_gradient_create_interwoven): - (meta_gradient_create_multi_vertical): - - bitshifting operators do not take precedence over typecasting, so - make sure to use parentheses to get the right operation order. - -2005-07-12 Elijah Newren - - * configure.in: post-release version bump to 2.11.1 - -2005-07-12 Elijah Newren - - * NEWS: 2.11.0 release - -2005-07-12 Elijah Newren - - Patch from Andrew Johnson to speed up vertical gradients. Fixes - #169982. - - * src/gradient.c: - (meta_gradient_create_interwoven): - (meta_gradient_create_vertical): - (meta_gradient_create_multi_vertical): - - use memcpy instead of really long loops to set values in memory to - a given pattern. - -2005-07-12 Elijah Newren - - Patch from Björn Lindqvist to split up main() into more manageable - chunks and make use of GOpt. Closes #305331. - - * src/main.c (usage): remove this function, - (meta_print_compilation_info): new function taken from main(), - (meta_print_self_identity): new function taken from main(), - (struct MetaArguments) new struct to replace some free variables, - (meta_parse_options): new funcion taken from main() but now using - GOpt, (meta_select_display): new function taken from main() - -2005-07-12 Aivars Kalvans - - * src/screen.c (meta_screen_free): free ->xinerama_infos - Closes #307884 - -2005-07-11 Elijah Newren - - Stuff I forgot to do when I branched an hour or so ago before - Matthias' commit... - - * configure.in: bump version to 2.11.0. Add UNSTABLE warning. - * README: add 2.11.x to the list of unstable branches - -2005-07-11 Matthias Clasen - - React to cursor theme changes: (#308106) - - * src/prefs.h: - * src/prefs.c: Expose the GConf keys for cursor theme - and size as preferences META_PREF_CURSOR_THEME and - META_PREF_CURSOR_SIZE with getters meta_prefs_get_cursor_theme() - and meta_prefs_get_cursor_size(). - - * src/display.c (meta_display_open): Initialize the cursor - theme and size. - - * src/display.h: - * src/display.c (meta_display_set_cursor_theme): New function - to change the cursor theme and update all cursors. - - * src/screen.h - * src/screen.c (meta_screen_update_cursor): New function to - refesh the root cursor of a screen. - - * src/main.c (prefs_changed_callback): Update the cursor - theme when the cursor preferences change. - -2005-06-27 Elijah Newren - - * configure.in: post-release version bump to 2.10.3 - -2005-06-27 Elijah Newren - - * NEWS: 2.10.2 release - -Sun Jun 26 11:19:18 2005 Soeren Sandmann - - * src/frames.c: Add a cache of pixmaps for recently exposed frame - areas. Makes metacity a bit faster when dragging windows around. - See bug 141813. - -2005-06-10 Ryan Lortie - - * src/frames.c: Prevent using the address of a local variable - as a hash key. (Bug #307209) - - * src/xprops.c (meta_prop_get_values): Fix a small leak in the - case of a SYNC_COUNTER property value and HAVE_XSYNC not - defined. (Bug #307214) - -2005-06-07 Ray Strode - - Cleanup font data when done with it (bug 306720). - - * src/effects.c (draw_xor_rect): free font info structure. - * src/screen.c (meta_screen_new): pass a 1 not a 0 to - XFreeFontInfo to free font info structure. - (meta_screen_free): call XUnloadFont on GC font before freeing - the GC. - -2005-06-02 Elijah Newren - - * src/window.c (meta_window_focus): if the window has a modal - transient which is being unmanaged, don't focus it. Fixes the - Metacity issue reported in #305362. - -2005-05-30 Ray Strode - - Bug 305564 again. - - When drawing XOR resize popup use "fixed" font instead of - -misc-fixed-*-16-* xlfd. Should work on more xservers. - - Also take steps to fail better if the xserver isn't - cooperating. - - * src/effects.c (draw_xor_rect): if we can't draw font box - for whatever reason, at least draw grid frames. - - * src/screen.c (meta_screen_new): use fixed alias instead - of a xfld. Don't pass GCFont to XCreateGC if font couldn't - be loaded. Print a warning if font couldn't be loaded. - -2005-05-26 Elijah Newren - - * HACKING: Add a clarification that METACITY_VERBOSE needs to be - accompanied by METACITY_USE_LOGFILE - -2005-05-26 Elijah Newren - - * src/window.c (meta_window_configure_request): Patch from Greg - Hudson to make sure window position is calculated correctly for - reconfigure requests when part of the XWindowChanges structure is - uninitialized. Fixes #305257. - -2005-05-26 Ray Strode - - Actually commit the stuff mentioned in the last - ChangeLog entry. - -2005-05-26 Ray Strode - - Add a resize popup when resizing constrained - windows, (bug 305564). - - * src/display.c: - (meta_display_begin_grab_op), - (meta_display_end_grab_op): - * src/keybindings.c (process_keyboard_move_grab), - (process_keyboard_resize_grab): Call - meta_window_{begin,update,end}_wireframe convenience - functions instead of the meta_effects counterparts. - - * src/display.h: keep track of old wireframe geometry to - clean up xor popup on resize - - * src/effects.[ch] (meta_effects_begin_wireframe), - (meta_effects_update_wireframe), - (meta_effects_end_wireframe), - (draw_xor_rect): take optional width and height arguments - to show to user in resize popup. Draw resize popup if - width and height >= 0 and wireframe isn't smaller than - the popup would be. - - * src/screen.c (meta_screen_new): load a largish font for - the resize popup - - * src/window.[ch] - (meta_window_move_resize_internal): update - wireframe resize popup when the window is resized. - (meta_window_get_wireframe_geometry): new function to - calculate the numbers to display in resize popup - (meta_window_begin_wireframe), - (meta_window_update_wireframe), - (meta_window_end_wireframe): new functions to reduce - repetitive wireframe code. Functions handle updating - wireframe and resize popup geometry. - (update_move), (update_resize), - (meta_window_refresh_resize_popup): remove fixme and - add debug message. - -2005-05-26 Elijah Newren - - * src/window.c (check_maximize_to_work_area): don't accidentally - treat maximize vertically as maximize in both directions. Fixes - #302204. - -2005-05-26 Elijah Newren - - * src/window.c (meta_window_new_with_attrs): put all transients - of the new window, if any exist, in the calc_showing queue. Fixes - #303284. Thanks to Billy Biggs for the testcase that made this - easy to track down. - -2005-04-11 Elijah Newren - - * configure.in: post-release version bump to 2.10.2 - -2005-04-11 Elijah Newren - - * NEWS: 2.10.1 release - -2005-04-05 Dan Winship - - * src/metacity-dialog.c (warn_about_no_sm_support): Make sure the - "Close" button has the focus, not the table. (#172703) - -2005-04-05 Pawan Chitrakar - - * configure.in: Added ne in ALL_LINGUAS - -2005-03-31 Steve Murphy - - * configure.in: Added "rw" to ALL_LINGUAS. - -2005-03-17 Lex Hider - - * doc/Makefile.am (EXTRA_DIST): add doc/code-overview.txt and - doc/how-to-get-focus-right.txt - -2005-03-10 Adi Attar - - * configure.in: Added "xh" to ALL_LINGUAS. - -2005-03-07 Elijah Newren - - * configure.in: post-release version bump to 2.10.1 - -2005-03-07 Elijah Newren - - * configure.in: - * README: - * NEWS: - 2.10.0 release - -2005-02-28 Elijah Newren - - * configure.in: post-release version bump to 2.9.55 - -2005-02-28 Elijah Newren - - * NEWS: Metacity 2.9.34 unstable release - -2005-02-28 Elijah Newren - - Patch from Aidan Delaney to make sure that icons in the alt-tab - popup are dimmed for all hidden windows, not just minimized ones. - Fixes #168455. - - * src/screen.c: (meta_screen_ensure_tab_popup): make use - meta_window_showing_on_its_workspace() instead of just checking if - the window is minimized. - -2005-02-25 Elijah Newren - - Prevent the visual bell from changing the focus window. Fixes - #123366. - - * src/bell.c: (meta_bell_flash_screen): if not in click-to-focus - mode and mouse_mode is also false, increment the focus sentinel so - that we can ignore spurious EnterNotify and LeaveNotify events. - - * src.display.c: (event_callback): make sure to also ignore - LeaveNotify events when the focus sentinel isn't clear - -2005-02-23 Elijah Newren - - * src/window.c: (meta_window_new_with_attrs): Fix crash that - occurs when stupid apps claim that a window is its own parent. - #168207 - -2005-02-21 Elijah Newren - - * configure.in: post-release version bump to 2.9.34 - -2005-02-21 Elijah Newren - - * NEWS: Metacity 2.9.21 unstable release - -2005-02-21 Elijah Newren - - Handle keynav vs. mousenav in mouse and sloppy focus modes. Fixes - #167545. - - * doc/how-to-get-focus-right.txt: Update due to this new method - for handling keynav vs. mousenav, plus various other updates that - I previously forgot. - - * src/display.h: (struct _MetaDisplay): add a mouse_mode boolean - - * src/display.c: (meta_display_open): initialize mouse_mode to - true, (event_callback): have EnterNotify and LeaveNotify events - set mouse_mode to true when focusing a window - - * src/keybindings.c: (process_tab_grab): set mouse_mode to false - when using alt-tab/alt-esc, (do_choose_window): likewise, - (do_handle_move_to_workspace): set mouse_mode to false on - move-window-to-workspace- keybindings - - * src/window.c (idle_calc_showing): if we're in keynav mode while - using sloppy or mouse focus, use metacity_sentinel to avoid - EnterNotify events being generated from events other than mouse - movement. - - * src/workspace.c (meta_workspace_activate_with_focus): add a - FIXME in a potentially duplicate section of code, - (meta_workspace_focus_default_window): use the same focus choice - as click-to-focus if in keynav mode. - -2005-02-20 Elijah Newren - - * src/display.c: (event_callback): Handle _NET_CURRENT_DESKTOP - messages that come with timestamps. Fixes the metacity portion of - #161361 other than the portion handled by #128380. - -2005-02-20 Elijah Newren - - * src/window.c: (meta_window_activate): when receiving a - _NET_ACTIVE_WINDOW message, switch to the desktop where the window - is located before activating instead of moving the window to the - current desktop. Thanks to Lubos Lunak for catching this issue. - Fixes #128380. - -2005-02-20 Elijah Newren - - * src/window.c (meta_window_show): Ignore all focus and - focus-stealing-prevention code in meta_window_show when not - showing the window for the first time. Fixes #167199. - -2005-02-20 Elijah Newren - - Fix an obscure xinerama placement bug with windows that are too - large to fit in the workarea in both dimensions. #166757 - - * src/place.c: (meta_window_place): use the current xinerama - instead of arbitrarily resetting to 0 - -2005-02-20 Elijah Newren - - Patch from Joe Marcus Clarke to fix a possible crash on logout. - #167935. Thanks for fixing my mistakes, Joe! - - * src/display.c: (meta_display_open): initialize - display->grab_old_window_stacking to NULL. - -2005-02-20 Elijah Newren - - Big patch to cover about 6 different issues in order to correct - rare problems with timestamps (make sure window selected in - tasklist actually gets focus, sanity check timestamps to avoid - rogue apps hosing the system, correct the updating of - net_wm_user_time, correctly handle timestamps of 0 when comparing - xserver timestamps for those who have had their systems up for - over 25 days or so, add some debugging information to verbose - logs, some code cleanups). Fixes all issues listed in #167358. - - * src/display.h: (struct _MetaDisplay): clarify comment on - last_focus_time, introduce a new variable--last_user_time, - (XSERVER_TIME_IS_BEFORE macro): put this functionality into a - separate macro and then introduce a new macro with this name that - uses the old one but adds additional special-case checks for - timestamps that are 0, (comment to - meta_display_set_input_focus_window): add information about how - last_user_time should be used in this function - - * src/display.c (santiy_check_timestamps): new function, - (meta_display_open): intialize display->last_user_time, - (meta_display_get_current_time_roundtrip): use the timestamp, - which is known to be good, in order to sanity_check_timestamps, - (event_callback): use the new meta_window_ste_user_time() function - in order to correct problems, use the timestamp of KeyPress and - ButtonPress events, which are known to be good, in order to - sanity_check_timestamps, (timestamp_too_old): new function for - common behavior of meta_display_focus_the_no_focus_window and - meta_display_set_input_focus_window, with added checking for - display->last_user_time in addition to display->last_focus_time, - (meta_display_set_input_focus_window): replace some of the code - with a call to timestamp_too_old(), - (meta_display_focus_the_no_focus_window): replace some of th ecode - with a call to timestamp_too_old() - - * src/window.h: (meta_window_set_user_time): new function to - abstract the many things that need to be done when updating the - net_wm_user_time of any window - - * src/window.c: (meta_window_activate): add debugging spew, make - sure the comparison is made with last_user_time NOT - last_focus_time, use meta_window_set_user_time() function in order - to correct problems, (meta_window_client_message): add a newline - to a debugging message to make them easier to read, - (meta_window_set_user_time): new function - - * src/window-props.c (reload_net_wm_user_time): use the new - meta_window_ste_user_time() function in order to correct problems - -2005-02-16 Elijah Newren - - * src/display.c: (event_callback): trivial fix to a log message: - change %d to %lu (see debugging log from bug 167358). - -2005-02-12 Elijah Newren - - Raise the ancestor of a window instead of the window itself. - Fixes #166894. - - * src/window.c: (find_root_ancestor): new function, - (meta_window_raise): get the ancestor of the given window and - raise it if possible instead of the window - -2005-02-12 Elijah Newren - - Don't unconditionally place splashscreens (and other - not-to-be-focused windows) below the focus window. Fixes #167042. - - * src/window.c: (intervening_user_event_occurred): new function - taken from the timestamp comparison portion of the old - window_takes_focus_on_map function, (window_state_on_map): new - function with remainder of old window_takes_focus_on_map function - that determines both whether the window will take focus and - whether it should be placed on top, (meta_window_show): use - place_on_top_on_map to determine window stacking instead of trying - to infer it from takes_focus_on_map - -2005-02-11 Elijah Newren - - Avoid new windows being obscured by the focus window (and thus - possibly lost). Fixes #166524. - - * src/place.c: new MetaWindowDirection enum, - (find_most_freespace): new function to find where there is the - most space available around the focused window, - (meta_window_place): if a window is denied focus and the window - overlaps the focused window, retry the first-fit algorithm only - paying attention to the focus window position and if that fails - just find the location on the screen with the most space - available. - - * src/window.h: (struct MetaWindow): new - denied_focus_and_not_transient bitfield - - * src/window.c: (meta_window_new_with_attrs): initialize - denied_focus_and_not_transient, (meta_window_show): set and unset - the denied_focus_and_not_transient field appropriately - -2005-02-08 Aidan Delaney - - Removed useless function call. #166730 - - * src/tabpopup.c: (outline_window_expose): Removed unused - references to variables and an unnecessary function call to - gdk_window_get_size(). - -2005-02-08 Elijah Newren - - Avoid using CurrentTime when focusing, handle it better in case we - miss any cases. Fixes #166732. - - * src/window.c: (meta_window_shade): use - meta_display_get_current_time_roundtrip() to ensure we have a - valid timestamp, (meta_window_unshade): same - - * src/display.c: (meta_display_set_input_focus_window): If - CurrentTime was passed, get one from the XServer in addition to - throwing a warning, (meta_display_focus_the_no_focus_window): same - -2005-02-08 Elijah Newren - - * src/window.c: (meta_window_activate): If we're not passed a - timestamp, make sure to manually get one. Fixes #166728. - -2005-02-07 Elijah Newren - - * configure.in: post-release version bump to 2.9.21 - -2005-02-07 Elijah Newren - - * NEWS: Metacity 2.9.13 unstable release - -2005-02-06 Elijah Newren - - Set a _METACITY_VERSION property (a utf8 string) on the WM check - window. #165350. - - * src/display.h: (struct MetaDisplay): add a atom_metacity_version - field - - * src/display.c: (meta_display_open): initialize the - _METACITY_VERSION property on the WM check window to the current - version of Metacity. - -2005-02-06 Elijah Newren - - Ignore xconfigurerequest events for stacking when it should be - safe to do so. Again, thanks to Crispin Flowerday for the test - case. Thanks to KWin for the inspiration (and to Google for - indexing their source code). Fixes the other half of #166395. - - * src/window.c: (meta_window_configure_request): if the - active_window is from a separate application than the one getting - the configure request and the net_wm_user_time of the active - window is later than that of the window getting the configure - request, then ignore the request. - -2005-02-06 Elijah Newren - - If activation requests are too old, set the demands_attention hint - instead of actually activating. Thanks to Crispin Flowerday for - the test case and for testing the patch. Fixes half of #166395. - - * src/window.c: (meta_window_activate): if the request came before - the last focus time, set the demands attention hint instead - -2005-02-04 Dave Ahlswede - - * src/metacity.schemas.in: Add period to the end of - reduced_resources' description. Fixes #165780. - -2005-02-04 Elijah Newren - - Make sure window->border_only is initialized so we don't get - random windows without decorations. Thanks to Sinisa Segvic and - Owen Taylor for providing test cases. Fixes #145131. - - * src/window.c: (update_mwm_hints): Be sure to call - recalc_window_features even if no MWM hints are set - -2005-02-02 Elijah Newren - - Focus parents of dismissed transient windows in preference to the - window that most recently had keyboard focus. Fixes #157360. - - * doc/how-to-get-focus-right.txt: Note the distinction between - "most recently used window" and "most recent to have keyboard - focus" that we are now making. - - * src/workspace.c: (focus_ancestor_or_mru_window): rename from - meta_workspace_focus_mru_window, and first check whether we need - to focus an ancestor window before looking for the mru window, - (record_ancestor): helper function for - focus_ancestor_or_mru_window, - (meta_workspace_focus_default_window): update due to the function - rename from meta_workspace_focus_mru_window to - focus_ancestor_or_mru_window - -2005-01-31 Elijah Newren - - Try 2 to correct misleading and inaccurate wording. Hopefully, - really fixes #165380. - - * src/menu.c: Change wording of menu from "Always on Current - Workspace" to "Always on Visible Workspace". "Always on Current - Workspace" could sound like a synonym of "Only on This Workspace" - when it was supposed to be the opposite. - -2005-01-31 Elijah Newren - - Correct the stacking when return from fullscreen mode. Fixes - #165718. - - * src/window.c: (meta_window_unmake_fullscreen): Update the layer - after resizing the window - -2005-01-31 Muktha - - src/themes/Atlanta/metacity-theme-1.xml: - src/themes/Simple/metacity-theme-1.xml: - src/themes/Bright/metacity-theme-1.xml: - Make the unfocussed title bar distinguishable. Fixes #125291. - -2005-01-28 Elijah Newren - - Patch from RHEL-3 (Havoc doesn't remember how it got there) that - Havoc posted in bug 156511 to fix the problem with fullscreen - windows on a different xinerama monitor not staying on top. I - updated to HEAD. Should fix #156511. - - * src/stack.c: (windows_on_different_xinerama): new function, - (get_standalone_layer): let windows on a different screen than the - one with the focus window stay in the fullscreen layer - -2005-01-28 Elijah Newren - - * src/metacity-dialog.c: (warn_about_no_sm_support): make this - dialog be sticky. Fixes #164745. - -2005-01-28 Elijah Newren - - Patch from Tim Herold to handle xcomposite pkgconfig version - regression. Fixes #149368. - - * configure.in: Change XCOMPOSITE_VERSION from 1.0 to 0.2 - -2005-01-28 Elijah Newren - - Correct misleading and inaccurate wording. Fixes #165380. - - * src/menu.c: Change wording of menu to "Always on Current - Workspace" from "Put on All Workspaces", remove a quick-key - conflict between "On _Top" and "Only on _This Workspace" by - switching the latter to "_Only on This Workspace" - - * src/window.c: Remove a comment that is no longer necessary - (since bug 87531 has been fixed) - -2005-01-28 Elijah Newren - - Take into account the appropriate list of windows when placing a - new one. Fixes #165381. - - * src/place.c: (meta_window_place): use - meta_window_showing_on_its_workspace(w) instead of !w->minimzed, - also take into account sticky windows - - * src/window.[ch]: rename window_showing_on_its_workspace to - meta_window_showing_on_its_workspace and export it - -2005-01-27 Elijah Newren - - Plug a pair of leaks. Fixes #165378 - - * src/place.c: (meta_window_place, get_windows_on_same_workspace): - free list returned by meta_display_list_windows. - -2005-01-27 Elijah Newren - - Treat splashscreens same as other windows for stacking. Fixes - #165243. - - * src/stack.h: (MetaStackLayer enum): remove META_LAYER_SPLASH - from the list - - * src/stack.c: (get_standalone_layer): remove the special casing - of META_WINDOW_SPLASHSCREEN - -2005-01-27 Elijah Newren - - * src/window.c: (set_net_wm_state): shaded windows should not show - up in pagers. Fixes #165377. - -2005-01-26 Elijah Newren - - Stick and unstick transients with their parent automatically. - Fixes #152283. - - * src/window.c: (window_stick_impl, window_unstick_impl): rename - from meta_window_stick and meta_window_unstick respectively, - (stick_foreach_func): a function to assist calling - window_(un)stick_impl on each transient, (meta_window_stick, - meta_window_unstick): new functions that call window_stick_impl or - window_unstick_impl for the window and each of its transients. - -2005-01-26 Elijah Newren - - Patch from John Paul Wallington to keep tooltip on screen - horizontally for xinerama. Fixes #165261. - - * src/fixedtip.c: (meta_fixed_tip_show): rename screen_width and - screen_height to screen_right_edge and screen_bottom_edge, set - them using xinerama info instead of just screen geometry, and use - them to determine where to place the tooltip window. - -2005-01-26 Arvind Samptur - - Don't wireframe when accessibility is on, it apparently - causes a desktop wide freeze. - - * src/prefs.[ch] (meta_prefs_init) (change_notify) - (update_gnome_accessibility) (meta_preference_to_string) - (meta_prefs_get_gnome_accessibility) : Add code to monitor - accessibility status. - - * src/display.c (meta_display_begin_grab_op): Check - accessibility status before going ahead with wireframe. - Fixes #159538 - -2005-01-25 Elijah Newren - - * src/tabpopup.c: (meta_select_workspace_expose_event): ignore - sticky windows for non-active workspaces. Fixes #165259. - -2005-01-25 Elijah Newren - - * src/window.c: (meta_window_new_with_attrs): set the window state - hints _after_ applying session information. Fixes #164677. - -2005-01-25 Elijah Newren - - Add man pages for metacity-window-demo and metacity-theme-viewer. - Man pages from Jose Moya, auto-fu from Dave Ahlswede. (#143513) - - * doc/man/metacity-theme-viewer.1: - * doc/man/metacity-window-demo.1: - - New man pages - - * doc/man/Makefile.am: - * doc/Makefile.am: - * configure.in: - - Make sure to install the man pages - - * doc/man/.cvsignore: - - Silence cvs - -2005-01-25 Benjamin Kahn - - New 48x48 default icon as specified in bug #160660 - -2005-01-25 Elijah Newren - - Patch from Stephane LOEUILLET in bug #151850. - - * src/metacity.desktop.in: specify encoding - -2005-01-25 Balamurali Viswanathan - - * src/prefs.c (meta_prefs_init): Get gconf to load the - terminal dir so that we get the notifications when - the command is changed. Fixes bug #160934 - -2005-01-25 Elijah Newren - - Refuse to focus a window with a modal transient, and focus the - transient instead. Fixes #164716. - - * src/window.c: (get_modal_transient): new function, - (meta_window_focus): if the window has a modal transient, make - sure it is on the current workspace and then focus it instead. - -2005-01-24 Elijah Newren - - * configure.in: post-release version bump to 2.9.13 - -2005-01-24 Elijah Newren - - * NEWS: Metacity 2.9.8 unstable release - -2005-01-24 Elijah Newren - - * src/display.c: (meta_display_begin_grab_op): don't forget to - initialize display->grab_old_window_stacking. Thanks to Sebastien - Bacher and the bleeding edge Ubuntu users for catching the - occasional crash this could cause so quickly, and for verifying - that the patch worked (I couldn't duplicate). Fixes #165093. - -2005-01-23 Elijah Newren - - * configure.in: post-release version bump to 2.9.8 - -2005-01-23 Elijah Newren - - * NEWS: Metacity 2.9.5 unstable release - * README: there are more stable releases beyond 2.8.6... - -2005-01-23 Elijah Newren - - Restore original stacking when aborting an alt-esc window switch - operation. Fixes #123576. - - * src/display.c: (GRAB_OP_IS_WINDOW_SWITCH): new macro, - (meta_display_close): clear grab_old_window_stacking if non-NULL, - (event_callback): restore stack positions if alt-esc op cancelled - with button press, (meta_display_begin_grab_op): store the old - stacking positions, (meta_display_end_grab_op): free the old stack - positions - - * src/display.h: (struct _MetaDisplay): add a - grab_old_window_stacking list - - * src/keybindings.c: (process_tab_grab): restore stack positions - if alt-esc op cancelled with an errant key press - - * src/stack.c: (compare_just_window_stack_position): new - GCompareFunc function, (meta_stack_get_positions): get current - stack positions, (compare_pointers): new GCompareFunc function, - (lists_contain_same_windows): simple utility func to see if two - lists contains the same windows, (meta_stack_set_positions): new - function to set the positions of all the windows in the stack - - * src/stack.h: (meta_stack_get_postions, - meta_stack_set_positions): new functions - -2005-01-23 Elijah Newren - - Patch from John Paul Wallington to fix #163420. - - * src/window.c: (check_maximize_to_work_area): fix vertical - maximization for second screen - -2005-01-21 Elijah Newren - - * rationales.txt: Add a tracker bug for modal dialog issues - -2005-01-20 Elijah Newren - - * src/tabpopup.c (dimm_icon): use pixbuf, not dimmed_pixbuf (which - isn't defined yet). Fixes crash from #136666. - -2005-01-20 Vincent Noel - - * src/screen.c: (meta_screen_ensure_tab_popup), - (meta_screen_ensure_workspace_popup): - * src/tabpopup.c: (meta_ui_tab_popup_new), (display_entry): - * src/tabpopup.h: Show labels in bold for windows that demand - attention. Fixes #164590. - -2005-01-18 Vincent Noel - - * src/screen.c: (meta_screen_ensure_tab_popup), - (meta_screen_ensure_workspace_popup): - * src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new), - (free_entry): - * src/tabpopup.h: In the tab task switcher popup, dim the window - icon and put its name between brackets when the window is - minimized. Fixes #136666. - -2005-01-11 Elijah Newren - - Correct highlighting of windows in workspace switcher popup. - Fixes #163450. - - * src/tabpopup.c (meta_select_workspace_expose_event): Remove race - between FocusIn/FocusOut events and the expose event by replacing - window->has_focus with - window==window->display->expected_focus_window. - -2005-01-09 Elijah Newren - - * configure.in: post-release version bump to 2.9.5 - -2005-01-09 Elijah Newren - - * NEWS: Metacity 2.9.3 unstable release - -2005-01-09 Elijah Newren - - * src/display.c (meta_display_open): - * src/display.h (struct _MetaDisplay): - * src/window.c (meta_window_free, meta_window_client_message, - meta_window_notify_focus): - - Remove the hack from bug 128200; it isn't needed anymore with the - fix from bug #160470. - -2005-01-09 Elijah Newren - - Don't focus the panel on click. Fixes #160470 (and 100470 and - removes the need for the hack from 128200) - - * doc/how-to-get-focus-right.txt: Update section on focusing - non-decorated windows (specifically, DOCKS and DESKTOPS) - - * src/display.c (event_callback): don't focus dock windows on - click - -2005-01-06 Elijah Newren - - Make sure the save session dialog appears focused. Fixes #162983. - - * src/session.c (warn_about_lame_clients_and_finish_inter): Get a - timestamp by explicit request from Xserver, since none is - available otherwise. - -2005-01-06 Leena Gunda - - * src/window.c (meta_window_unmaximize): Restore the wireframe - rectangle co-ordinates to saved window co-ordinates. Fixes - bug #161236. - -2005-01-03 Thomas Fitzsimmons - - * src/Makefile.am (install-data-local): Install schema data from - builddir not srcdir. - -2005-01-02 Elijah Newren - - Provide more documentation to make it easier for people to - contribute to Metacity. (#162646) - - * HACKING: Add lots of information to extend this document: more - on relevant standards and X properties, lots of information on - debugging and testing, and add a list of some other important - things to read; also move some information to - src/code-overview.txt and organize this file into sections. - - * doc/code-overview.txt: New file including some small parts from - the old HACKING file and lots of new stuff. This file gives a - brief overview of some of the bigger structures and files, with - guides for a variety of task categories providing places to start - looking in the code and things to look for. - -2004-12-28 Elijah Newren - - Allow users to move the window around immediately after - double-clicking to shade (#90290) - - * src/display.c (event_callback): only end the grab op if either - there is no frame or else the frame is not mapped - -2004-12-27 Elijah Newren - - Focus windows that manually position themselves too (fixes - #107347). - - * src/window.h (struct _MetaWindow): add a new - showing_for_first_time flag - - * src/window.c (meta_window_new_with_attrs): initialize - showing_for_first_time flag to !mapped, (meta_window_show): - replace did_placement with showing_for_first_time in the section - to decided whether to focus since did_placement isn't quite what - we want - -2004-12-27 Elijah Newren - - * src/display.c (meta_display_set_input_focus_window, - meta_display_focus_the_no_focus_window): Spew warning if - CurrentTime is passed to the function, but don't exit prematurely. - (fixes #162353) - -2004-12-24 Elijah Newren - - * src/window.c (meta_window_show_menu): Don't show menu if all - options are invalid (fixes #148915) - -2004-12-24 Elijah Newren - - * src/window.c (window_takes_focus_on_map): Fix error in - distinguishing < vs. <= introduced by the patch in #154598, - restructure code so that verbose log matches code better in order - ensure such mistakes are harder to make in the future (fixes - #162172) - -2004-12-24 Elijah Newren - - Thanks to mild7@users.sourceforge.net for this fix. - - * src/window.h: (META_WINDOW_IN_NORMAL_TAB_CHAIN): Excludes - windows with skip_taskbar hint set from the alt-tab list; they'll - appear in the ctrl-alt-tab list instead. (fixes #106249) - -2004-12-22 Elijah Newren - - Wrap XSetInputFocus, making display->expected_focus_window a - little more reliable (see #154598) - - * src/display.h: (struct _MetaDisplay): add a large comment about - the expected_focus_window, add a last_focus_time field, - (XSERVER_TIME_IS_BEFORE): new macro moved from window.c but fixed - for 64-bit systems, (meta_display_set_input_focus_window): new - function - - * src/display.c (meta_display_open): initialize last_focus_time, - add a comment about brokenness of trying to set intial focus - window, (meta_display_set_input_focus_window): new function that - wraps XSetInputFocus, - (meta_display_focus_the_no_focus_window): make this function - closer to a wrapping of XSetInputFocus for the no_focus_window. - - * src/window.c (XSERVER_TIME_IS_LATER): remove this macro in favor - of the improved one added to display.h - - * src/display.c (meta_display_open): - * src/window.c (meta_window_focus): - use meta_display_focus_the_no_focus_window and - meta_display_set_input_focus instead of XSetInputFocus - -2004-12-22 Elijah Newren - - * src/core.c (meta_core_user_lower_and_unfocus): - * src/display.c (meta_display_get_current_tab): - * src/stack.c (get_default_focus_window, meta_stack_list_windows): - * src/window.c (set_net_wm_state, meta_window_should_be_showing, - implement_showing, meta_window_activate, - meta_window_notify_focus): - * src/window.h: - * src/workspace.c (meta_workspace_list_windows): - - Rename meta_window_visible_on_workspace to - meta_window_located_on_workspace (whether or not the window was - showing wasn't taken into account, which made "visible" - confusing). Fixes #136314. - -2004-12-22 Elijah Newren - - Partially resolve the conflicting requirements of windows on - multiple workspaces and hidden being a global quantity for windows - (fixes bug 156182; the remainder of the work is bug 87531 and is a - libwnck issue) - - * src/display.c (event_callback): - * src/window.c (meta_window_visible_on_workspace, meta_window_unstick): - * src/workspace.c (meta_workspace_add_window, - meta_workspace_contains_window, - meta_workspace_queue_calc_showing): - * src/workspace.h: - - Remove meta_workspace_contains_window, replace with simple - comparison utilizing window->workspace - - * src/place.c (meta_window_place): - * src/window.c (meta_window_shares_some_workspace): - * src/window.h: - - Remove meta_window_shares_some_workspace, replace with a simple - comparison utilizing window->workspace - - * src/session.c (save_state), - * src/window.c (meta_window_new_with_attrs, - meta_window_apply_session_info, meta_window_free, - window_showing_on_its_workspace, - meta_window_change_workspace_without_transients, - meta_window_unstick, meta_window_set_current_workspace_hint, - meta_window_get_workspaces): - * src/window.h: - * src/workspace.c (meta_workspace_free, meta_workspace_add_window, - meta_workspace_remove_window): - - Only one workspace now - -2004-12-20 Elijah Newren - - * configure.in: post-release version bump to 2.9.3 - -2004-12-20 Elijah Newren - - * NEWS: Metacity 2.9.2 unstable release - -2004-12-20 Elijah Newren - - * configure.in: re-add the note about Fibonacci sequence micro - version numbers that was lost with 2.8.5 - -2004-12-19 Elijah Newren - - Thanks to Baptiste Mille-Mathias for this fix. - - * src/metacity.schemas.in: Add a missing period at the end of a - sentence. - -2004-12-19 Elijah Newren - - When snap-moving, don't snap to transients of minimized windows - since they are hidden. Fixes #157180 - - * src/place.c (get_windows_on_same_workspace): make the logic to - determine hidden windows more thorough by calling - meta_window_should_be_showing() - - * src/window.c (meta_window_should_be_showing): rename this - function from window_should_be_showing and also export it, - (implement_showing): - s/window_should_be_showing/meta_window_should_be_showing/, - (idle_calc_showing): - s/window_should_be_showing/meta_window_should_be_showing/ - - * src/window.h (meta_window_should_be_showing): Add this function - to the list so that it can be used in src/place.c - -2004-12-19 Elijah Newren - - Focus the desktop when showing it. Fixes #159257. - - * src/display.c (event_callback): obtain a timestamp to pass to - meta_screen_show_desktop - - * src/keybindings.c (handle_toggle_desktop): obtain a timestamp to - pass to meta_screen_show_desktop - - * src/screen.c (meta_screen_show_desktop): add a timestamp - parameter, get the most recently used window of type DESKTOP (if - there is one) and focus it - - * src/screen.h (meta_screen_show_desktop): add a timestamp - parameter - -2004-12-19 Elijah Newren - - Thanks to ash@contact.bg for this fix. - - * po/POTFILES.in: Remove reference to metacity-properties.* files - since Alex removed them in his 2004-12-07 commit. - -2004-12-13 Elijah Newren - - * configure.in: post-release version bump to 2.9.2 that I forgot - to do last week (oops) - -2004-12-07 Alex Duggan - - * configure.in: - * src/tools/Makefile.am: - - Remove deprecated capplet from GNOME 2.0 - - * src/tools/metacity-properties.c: - * src/tools/metacity-properties.desktop.in: - * src/tools/metacity-properties.glade: - * src/tools/metacity-properties.png: - - Removed from cvs - -2004-12-06 Elijah Newren - - * NEWS: Metacity 2.9.1 unstable release - -2004-12-06 Benjamin Kahn - - * src/default_icon.png: Use a better default application - icon. Fixes bug #160373 - -2004-11-16 Marco Pesenti Gritti - - * src/Makefile.am: - - Fix build out of src directory. Bug #158325 - -2004-11-10 James Henstridge - - * Makefile.am (DISTCLEANFILES): remove intltool stuff on distclean. - - * src/themes/Makefile.am (uninstall-local): add uninstall rule. - - * src/Makefile.am (libmetacity_private_la_CFLAGS): set this - variable so that the files shared with metacity get compiled with - different names. - - * configure.in: use more modern macros in some places, and make - sure that $ACLOCAL_AMFLAGS is set so that rebuilds work better. - - * autogen.sh (conf_flags): use newer automake. - -2004-11-06 Vincent Untz - - * src/metacity.schemas.in: gnome-panel-screenshot was renamed to - gnome-screenshot - -2004-11-01 Elijah Newren - - * configure.in: bump version to 2.9.1 - -2004-11-01 Elijah Newren - - * NEWS, README: Metacity 2.9.0 (unstable release) - -2004-10-25 Elijah Newren - - Don't lower newly mapped windows when they're denied focus, if - they are transients of the focused window. Instead, defocus the - currently focused window. (fixes #151996). - - (Also, reenable focus stealing prevention and do a small spacing - cleanup) - - * src/window-props.c (init_net_startup_id): fix spacing - - * src/window.c (window_takes_focus_on_map): re-enable focus - stealing prevention, (meta_window_show): if the new window is - denied focus and is a transient of the currently focused window, - defocus the currently focused window but keep the transient on - top; remove some old code about transients and focus; make sure - that EnterNotify events won't accidentally focus the new window. - -2004-10-25 Elijah Newren - - Fix the alt-tab order--if the most recently used window is not - focused, start alt tabbing with that window instead of the one - after it (fixes #156251) - - * src/display.c (find_tab_forward): add a skip_first parameter, - (find_tab_backward): add a skip_last parameter, - (meta_display_get_tab_next): if a beginning window wasn't given - and the focused window isn't the tab chain, don't skip the MRU - window - -2004-10-22 Elijah Newren - - Update _NET_WM_STATE_HIDDEN so the pager on the panel will know - whether to display windows as visible or hidden (#105665) - - * src/screen.c (queue_windows_showing): Revert the - queue_windows_showing portion of the patch committed on 2004-10-16 - for #142198--it was an ill-advised optimization. - - * src/window.c (window_showing_on_its_workspace, - window_should_be_showing): split the old window_should_be_showing - into these two functions, (set_net_wm_state): hidden state is more - complex; use window_showing_on_its_workspace to determine the - correct value - -2004-10-20 Elijah Newren - - Patch from Soeren to fix the modifier key breakage introduced by - an Xorg change. (fixes #151554) - - * src/keybindings.c: include X11/XKBlib.h if available, - (handle_spew_mark): remove this unused function declaration, - (end_keyboard_grab): new function, uses XKB if available, - (process_tab_grab): use end_keyboard_grab to determine whether to - end the grab, (error_on_command): make key a const char *, - (process_workspace_switch_grab): use end_keyboard_grab to - determine whether to end the grab - -2004-10-19 Anders Carlsson - - * src/frame.c: (meta_window_ensure_frame): - Don't try to use an ARGB visual at all if the depth isn't - 32-bit. This caused major slowdowns with Composite enabled. - -2004-10-16 Elijah Newren - - Make the "showing desktop" mode be per-workspace instead of - per-screen. (fixes #142198) - - * src/keybindings.c (handle_toggle_desktop): access - showing_desktop through the active workspace - - * src/screen.c (meta_screen_new): remove initialization of - screen->showing_desktop, - (meta_screen_update_showing_desktop_hint): rename and make not - static and access showing_desktop through the active workspace, - (queue_windows_showing): replace meta_display_list_windows() with - screen->active_workspace->windows, - (meta_screen_minimize_all_on_active_workspace_except): renamed - from meta_screen_minimize_all_except since it now only works on - the active workspace, (meta_screen_show_desktop, - meta_screen_unshow_desktop): access showing_desktop through the - active workspace - - * src/screen.h (struct _MetaScreen): remove showing_desktop field, - (meta_screen_minimize_all_on_active_workspace_except): rename from - meta_screen_minimize_all_except, - (meta_screen_update)_showing_desktop_hint): export this function too - - * src/window.c (maybe_leave_show_desktop_mode): access - showing_desktop through the active workspace and use new name for - meta_screen_minimize_all_on_active_workspace_except, - (window_should_be_showing): access showing_desktop through the - active workspace - - * src/workspace.c (meta_workspace_new): initialize - workspace->showing_desktop, (meta_workspace_activate_with_focus): - add note that old can be NULL, update showing_desktop_hint if - different on this workspace than the previous one - - * src/workspace.h (struct _MetaWorkspace): add showing_desktop - field - -2004-10-16 Elijah Newren - - * rationales.txt: Add new tracker bugs - -2004-10-15 Elijah Newren - - * src/keybindings.c (reload_keymap): Fix from Rob to correct - requested number of keycodes (#155247) - -2004-10-13 Elijah Newren - - Code cleanup - - * src/window.c (is_in_dock_group, docks_at_end_cmp, - shuffle_docks_to_end): removed functions, - (meta_window_notify_focus): no need to call is_in_dock_group or - shuffle_docks_to_end because of the patch from #120100 that was - committed. - -2004-10-13 Vincent Untz - - Add a keybinding to launch a terminal - - * src/keybindings.c: (handle_run_terminal): new function, - (error_on_generic_command): new function, (error_on_command): wrapper - around error_on_generic_command(), (error_on_terminal_command): new - function - - * src/metacity.schemas.in: add run_command_terminal key - - * src/prefs.[ch]: (meta_prefs_init): cache the terminal command and - register a gconf callback to update it, (change_notify): handle the - notification of terminal command changes, (meta_preference_to_string): - add the terminal command case, (update_terminal_command): new function, - (meta_prefs_get_terminal_command): new function, - (meta_prefs_get_gconf_key_for_terminal_command): new function - -2004-10-11 Rob Adams - - * configure.in: bump version to 2.9.0. Add UNSTABLE warning. - -2004-10-11 Rob Adams - - * NEWS, README: Metacity 2.8.6 (stable release) - -2004-10-08 Elijah Newren - - Fix middle-frame-click-to-lower focus inconsistency (#154601) - - * src/core.c (meta_core_user_lower_and_unfocus): focus the default - window in all focus modes, not just click-to-focus (EnterNotify - events will not handle this case for sloppy and mouse focus) - - * src/display.c (event_callback): replace window->has_focus with - window == display->expected_focus_window to avoid a race issue - -2004-10-08 Elijah Newren - - Alter the meaning of expected_focus_window; doesn't affect - current operation but assists in fixing some other bugs - (#154598) - - * src/display.c (meta_display_focus_the_no_focus_window): set the - expected_focus_window to NULL. - - * src/window.c (meta_window_notify_focus): don't NULL the - expected_focus_window when that window receives a FocusIn event - -2004-10-04 Elijah Newren - - * src/display.c (event_callback): if the root window gets focused, - set the focus to the default window; this fixes the - "focus-follows-mouse" behavior seen for click-to-focus mode after - cancelling log out (fixes #153220) - -2004-10-04 Elijah Newren - - Fix a variety of issues with autoraise (#134206) - - * src/display.h: (struct _MetaDisplay): add an autoraise_window - parameter - - * src/display.[hc] (meta_display_focus_the_no_focus_window): new - function, (meta_display_queue_autoraise_callback): new function, - (meta_display_remove_autoraise_callback): new function - - * src/display.c (meta_display_open): intialize - display->autoraise_window too, (meta_display_close): remove any - pending autoraise callback, (window_raise_with_delay_callback): - clear out auto_raise->display->autoraise_window too, - (event_callback): call meta_display_queue_autoraise_callback - instead of having the code inline, call - meta_display_focus_the_no_focus_window to handle focusing that - window - - * src/window.c (meta_window_focus): If there's a window with an - autoraise timeout that isn't the window being focused, remove the - autoraise timeout - - * src/workspace.c (meta_workspace_focus_default_window): If no - autoraise timeout is queued for the given window then queue one - now, call meta_display_focus_the_no_focus_window to handle - focusing that window, (meta_workspace_focus_mru_window): call - meta_display_focus_the_no_focus_window to handle focusing that - window - -2004-10-04 Elijah Newren - - * src/display.c (event_callback): When no window becomes focused, - focus the default window instead of punting to the - no_focus_window. Also, change the warning to a verbose - message--this will happen frequently due to brain-damage in the X - protocol. (see #125492) - -2004-10-04 Elijah Newren - - Fix a variety of focus race conditions in all focus modes, or at - least make them harder to trigger (fixes #152000) - - * src/core.[ch] (meta_core_user_lower_and_unfocus): add a - timestamp parameter; pass it along to - meta_workspace_focus_default_window - - * src/display.[ch] (meta_display_get_current_time_roundtrip): new - function - - * src/display.c (event_callback): pass a timestamp to the - meta_workspace_activate and meta_workspace_focus_default_window - function calls - - * src/frames.c (meta_frames_button_press_event): pass a timestamp - to meta_core_user_lower_and_unfocus - - * src/keybindings.c (handle_activate_workspace): pass a timestamp - to meta_workspace_activate, (process_workspace_switch_grab): pass - a timestamp to meta_workspace_focus_default_window and - meta_workspace_activate, (handle_toggle_desktop): pass a timestamp - to meta_workspace_focus_default_window, - (do_handle_move_to_workspace): pass a timestamp to - meta_workspace_activate_with_focus, (handle_workspace_switch): - meta_workspace_activate - - * src/screen.c (meta_screen_new): pass a timestamp to - meta_workspace_activate - - * src/window.c (meta_window_free): pass a timestamp to - meta_workspace_focus_default_window, (idle_calc_showing): don't - increment the focus sentinel here, (meta_window_minimize): pass a - timestamp to meta_workspace_focus_default_window, - (meta_window_client_message), pass a timestamp to - meta_workspace_focus_default_window - - * src/workspace.h (meta_workspace_activate): add timestamp - parameter, (meta_workspace_activate_with_focus): add timestamp - parameter, (meta_workspace_focus_default_window): add timestamp - parameter - - * src/workspace.c (meta_workspace_focus_mru_window): make this - function take a timestamp and use it for meta_window_focus or - XSetInputFocus, (meta_workspace_activate_with_focus): make this - function take a timestamp and pass it along to meta_window_focus - and meta_workspace_focus_default_window, - (meta_workspace_activate): make this function take a timestamp and - pass it to meta_workspace_activate_with_focus), - (meta_workspace_focus_default_window): make this function take a - timestamp, warn if its 0 but try to handle that case sanely, and - pass the timestamp on to meta_window_focus or - meta_workspace_focus_mru_window or XSetInputFocus - -2004-09-22 Elijah Newren - - * src/keybindings.c (process_workspace_switch_grab): Focus the - default window after the user dismisses the workspace switcher - popup (fixes #123803; note that an alternate fix was made - independently by David Baron for sloppy and mouse focus users) - -2004-09-22 Elijah Newren - - Fix some uninitialized variable errors reported by valgrind (see - #153338) - - * src/display.c (meta_display_open): initialize - display->grab_resize_timeout_id, and display->grab_have_keyboard - - * src/ui.c (meta_ui_create_frame_window): initialize attrs.width - and attrs.height - -2004-09-17 Elijah Newren - - * src/workspace.c (meta_workspace_focus_mru_window): Don't focus a - window that is minimized (fixes #147947) - -2004-09-17 Kjartan Maraas - - * src/bell.c: (meta_bell_flash_screen): - * src/compositor.c: - * src/effects.c: (meta_effects_draw_box_animation): - * src/fixedtip.c: (meta_fixed_tip_show): - * src/frame.c: (find_argb_visual): - * src/frames.c: (unsigned_long_hash), (meta_frames_manage_window), - (meta_frames_apply_shapes): - * src/iconcache.c: (find_largest_sizes), (find_best_size): - * src/keybindings.c: (meta_spawn_command_line_async_on_screen): - * src/main.c: (main): - * src/menu.c: (meta_window_menu_new): - * src/prefs.c: (meta_prefs_get_visual_bell), - (meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type), - (meta_prefs_get_action_double_click_titlebar), - (meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay), - (meta_prefs_get_reduced_resources): - * src/screen.c: (meta_create_offscreen_window): - * src/tabpopup.c: (meta_ui_tab_popup_get_selected): - * src/theme-parser.c: (meta_theme_load): - * src/theme.c: (meta_gtk_widget_get_font_desc): - * src/tools/metacity-mag.c: (mouse_press), (begin_area_grab): - * src/util.c: (meta_unsigned_long_hash): A load of fixes of issues - reported by sparse. Closes bug #152849 - -2004-09-15 Elijah Newren - - * src/display.c (event_callback): Remove some redundant code - regarding focusing the default window (#152117) - -2004-09-15 Elijah Newren - - Patch from Ken Harris in #135786 to focus a new default window - when lowering via middle-click on the frame. - - * src/core.[hc], src/frames.c: rename meta_core_user_lower to - meta_core_user_lower_and_unfocus - - * src/core.c (meta_core_user_lower_and_unfocus): if in - click-to-focus mode then also move the window to the back of the - mru list and focus the new default window for the active workspace - -2004-09-15 Elijah Newren - - Focus the no_focus_window if no suitable window is in the mru list - (should fix the almost contrived extra issue found in #147475) - - * doc/how-to-get-focus-right.txt: We no longer need to lie about - only focusing panels upon explicit request. - - * src/workspace.c: (meta_workspace_focus_top_window): removed this - function--it was more code than needed and was unreliable anyway, - (meta_workspace_focus_mru_window): if a suitable window isn't in - the mru list, focus the no_focus_window instead of calling - focus_top_window. - -2004-09-15 Elijah Newren - - Prevent focus inconsistencies by only providing one focus method - (fixes #151990) - - * src/screen.c (meta_screen_show_desktop): remove call to - meta_workspace_focus_top_window (it was merely focusing a window - that was going to be hidden anyway, and likely the one that - already had focus) - - * src/workspace.[hc]: remove meta_workspace_focus_mru_window and - meta_workspace_focus_top_window from workspace.h, make them static - functions in workspace.c - -2004-09-15 Elijah Newren - - Remove race condition for focus window choice on window close - followed by rapid mouse movement in sloppy and mouse focus modes - (partially fixes #152000) - - * src/window.c (meta_window_free): Don't increment the focus - sentinel for windows being freed, (idle_calc_showing): don't - increment the focus sentinel for windows being minimized - -2004-09-15 Elijah Newren - - Fix unwanted loss of focus to the mouse window when using keynav - (fixes #101190) - - * src/display.c (event_callback): Ignore EnterNotify events with - xcrossing.mode of either NotifyGrab or NotifyUngrab - -2004-09-15 Elijah Newren - - Focus correct window after minimizing via the tasklist (fixes - #128200; see also #107681) - - * src/display.h (struct _MetaDisplay): track the - previously_focused_window - - * src/display.c (meta_display_open): initialize - previously_focused_window - - * src/window.c (meta_window_free): clear the - previously_focused_window if it's being freed, - (meta_window_client_message): if we get a request to minimize the - previously_focused_window and the focus_window is a dock or the - desktop, focus the default window, (meta_window_notify_focus): - update the previously_focused_window - -2004-09-13 Rob Adams - - * configure.in: post-release increment - -2004-09-13 Rob Adams - - * configure.in: bump version number - - * NEWS: 2.8.5 release - - * README: 2.8.5 release - -2004-09-14 Gora Mohanty - - * configure.in: Added 'or' to ALL_LINGUAS. - -2004-09-07 Elijah Newren - - Add a new write-up on making window focus consistent (see #152004) - - * doc/how-to-get-focus-right.txt: New document - - * rationales.txt: Remove references to focus bugs, instead point - to doc/how-to-get-focus-right.txt - -2004-09-06 Elijah Newren - - * rationales.txt: Add bugs regarding window focus - -2004-08-29 Elijah Newren - - * NEWS: 2.8.4 release - -2004-08-29 Elijah Newren - - * src/window.c (window_takes_focus_on_map): Disable - focus-stealing-prevention for now; there are still some issues and - hard code freeze is tomorrow...so this will have to wait until - Gnome 2.10. - -2004-08-27 Havoc Pennington - - * src/compositor.c (meta_compositor_new): disable NameWindowPixmap - stuff always for now, it seemed kind of busted - (paint_screen): don't grab the server during repaint, adds to the - speed, though only slightly. - - * src/frames.c (meta_frames_set_window_background): factor out all - the set_background stuff to one function; disable setting - background to transparent, because it breaks existing themes. We - need to add a flag in the theme XML file to say "start me with a - transparent background" - -2004-08-27 Elijah Newren - - Prevent an assertion failure that can occur after increasing the - number of workspaces; also fix a warning and stacking order when a - window is denied focus (fixes #150615) - - * src/window.c (meta_window_stack_just_below): the position of the - window should be set equal to that of the one we want to be below, - not 1 lower than that number - - * src/workspace.c (maybe_add_to_list): new function to add - on_all_workspace windows to an mru_list, (meta_workspace_new): - call maybe_add_to_list for all windows on the screen in order to - initialize the mru_list - -2004-08-26 Havoc Pennington - - * src/frame.c: delete extra copy of find_argb_visual so things - compile - - * src/compositor.c (HAS_NAME_WINDOW_PIXMAP): copy the - XCompositeNameWindowPixmap() stuff from xcompmgr, though I can't - say I really know what it's supposed to help with (painting the - window border?) - -2004-08-26 Havoc Pennington - - * src/frame.c, src/theme.c: couple of cosmetic tweaks from - resolving my local patch with the bugzilla patch from the 8-19 - entry below - -2004-08-26 Havoc Pennington - - * configure.in: move the have_xrender variable initialization up - in the file since it can be set as part of composite check - -2004-08-19 Havoc Pennington - - Fixes from Rich Wareham - - * src/display.h (struct _MetaDisplay): add render extension check - to the display - - * src/display.c: check for render - - * configure.in: don't build compositing manager by default, don't - want any nasty surprises; check for render separately from - compositing manager - - * src/frame.c: use an ARGB visual when available for the window - frame, so we can be all cool-ass - -2004-08-25 Elijah Newren - - Make dialogs that Metacity shows follow focus-stealing-prevention - conventions. (fixes one issue in #149028; see comments 47-54) - - * src/delete.c (delete_ping_reply_func, - delete_ping_timeout_func): Make callback functions take a - timestamp arg, (delete_ping_timeout_func): pass the timestamp to - metacity-dialog - - * src/display.c (meta_display_ping_timeout): add a timestamp to - the call to the ping_timeout_func, (meta_display_ping_window, - process_pong_message): add a timestamp to the call to the - ping_reply_func - - * src/display.h (MetaWindowPingFunc typedef): add a timestamp to - this function typedef - - * src/keybindings.c (error_on_command): require a timestamp and - pass the timestamp on to metacity-dialog, (handle_run_command): - pass a timestamp to error_on_command - - * src/metacity-dialog.c (copy_of_gdk_x11_window_set_user_time): - new function (temporary; only for use while using gtk+-2.4), - (kill_window_question, warn_about_no_sm_support, - error_about_command): make these functions take a timestamp and - call copy_of_gdk_x11_window_set_user_time, (main): require the - first two args to the program to be "--timestamp " - - * src/session.c (warn_about_lame_clients_and_finish_inter): pass a - timestamp of 0 to metacity-dialog to prevent focus (it's a popup - not generated by and kind of user request). - -Fri Aug 20 12:54:12 2004 Soeren Sandmann - - * src/display.c (meta_display_end_grab_op): Move wireframe code - before grab is released to prevent endless loops with fullscreen - windows. - -2004-08-18 Havoc Pennington - - * src/display.h (struct _MetaDisplay): track the last_xor_rect - separately from the current window size, and then use that to - paint the wireframe including the frame, and taking into - account shaded windows. - - * src/window.c (meta_window_get_xor_rect): new function to compute - the xor rect; it is not really 100% right, because it uses the - frame dimensions from the window at the start of the move/resize. - But probably won't break in practice. - -2004-08-17 Christian Rose - - * configure.in: Added "bs" to ALL_LINGUAS. - -2004-08-16 Kjartan Maraas - - * configure.in: Added nb to ALL_LINGUAS. - -2004-08-15 Rob Adams - - * configure.in: Bump version to 2.8.4 - -2004-08-15 Rob Adams - - * NEWS: 2.8.3 release - -2004-08-15 Rob Adams - - * src/windows.c (meta_window_update_struts): use height and - top/bottom struts to compute gap (copy/paste bug). - -2004-08-15 Rob Adams - - * src/window.c (meta_window_update_struts): Allow struts larger - than 1/2 the screen width/height, as long as there's a minimum - sized gap between them. Patch from Bill Haneman - for bug #144126. - -2004-08-13 Gurban M. Tewekgeli - * po/tk.po: Added Turkmen translation. - * configure.in: Added "tk" to ALL_LINGUAS. - -Mon Aug 9 05:38:33 2004 Soeren Sandmann - - * src/effects.c (graphics_sync): New function. - * src/effects.c (effects_draw_box_animation_timeout): Use it here - to synchronize with the hardware between each frame. - -2004-08-08 Rob Adams - - * src/window.c (meta_window_move_resize_internal): Add #ifdef - around XSYNC code; fixes compile problem if XSYNC is disabled. - Path for #149314 from Peter O'Shea and independently Mike Castle. - -Sun Aug 8 14:20:00 2004 Soeren Sandmann - - * src/frame.c (meta_frame_set_screen_cursor): Flush after setting - cursor. (Rest of #149413). - -2004-08-07 Elijah Newren - - * src/display.c (event_callback): activating the current workspace - should be a no-op. This prevents a race condition in focus window - choice when activating a window via the taskbar. Fix for #149589. - -2004-08-07 Elijah Newren - - * src/window.c, src/window.h: Revert Rob's 2004-07-31 patch that - ignored net_wm_user_time when unminimizing a window - - * src/window.c (meta_window_activate): If a nonzero timestamp is - passed, update the window's net_wm_user_time accordingly. (see - comments 102-108 of bug 118372) - -2004-08-07 Rob Adams - - Remove some extraneous items that could sometimes appear in the - window menu. Fix for #144493. - - * src/menu.c (menuitems): Change the second separator to key on - whether there are any workspaces. - (meta_window_menu_new): use NULL label instead of 0 op to identify - separator - - * src/window.c (meta_window_show_menu): Change the conditions on - the directions to take into account "holes" in the workspace - layout and also only set META_MENU_OP_WORKSPACES when there's more - than one workspace. - -2004-08-07 Havoc Pennington - - * src/screen.c (meta_screen_set_cursor): add XFlush() after - setting cursor, #149413 - -2004-08-06 Elijah Newren - - * src/display.c (event_callback): Focusing a window upon unshowing - the desktop in various ways (panel applet or keybinding) was - inconsistent for sloppy and click focus modes. Fix this by - calling meta_workspace_focus_default_window after unshowing the - desktop via a _NET_SHOWING_DESKTOP message. (resolves #149543) - -2004-08-06 Elijah Newren - - * src/workspace.c (meta_workspace_focus_default_window): prevent - keyboard from "getting locked" upon workspace switch, by making - sure that the no_focus_window has focus if no other window does. - (fixes #147475) - -2004-08-05 Elijah Newren - - Have newly mapped windows that are denied focus appear after the - focused window in the alt-tab list. This allows one to switch to - such a window with a single alt-tab press. (fixes #149366) - - * src/window.c (ensure_mru_position_after): new function, - (meta_window_show): If newly mapped window is denied focus, call - ensure_mru_position_after to make the window appear after the - focus window in the mru list. - -2004-08-05 Elijah Newren - - * src/window.c (meta_window_stick): prepend window to mru list - instead of appending, since making the window sticky should imply - that it is the most recently used, not the least recently. (fixes - #149369) - -2004-08-04 Elijah Newren - - * configure.in: post-release version bump (2.8.3) that I forgot to - do yesterday. - -2004-08-03 Elijah Newren - - Released 2.8.2 - - * NEWS, README: update - -2004-08-02 Elijah Newren - - Fix some bugs (reported in #120100) regarding the focus window - when using the workspace switcher. - - * src/display.c (event_callback): When switching workspaces due to - a _NET_CURRENT_DESKTOP message, make sure to focus the default - window as well. - - * src/workspace.c (meta_workspace_focus_default_window, - meta_workspace_focus_mru_window): Make DOCK or DESKTOP windows - have lower priority than others when choosing a window to focus. - (For the former function, this means don't focus them at all; for - the latter, this means only focus them (via the - meta_workspace_focus_top_window call) if no other mru window can - be found.) - -2004-07-31 Rob Adams - - Fix bug that caused windows to not be focused on unminimizing - because of user time support. - - * src/window.c (meta_window_new_with_attrs): initialize - focus_despite_user_time bit - (window_takes_focus_on_map): focus if focus_despite_user_time - despite user time, interestingly enough - (meta_window_show): reset focus_despite_user_time after showing - - * src/window.h (_MetaWindow): add focus_despite_user_time bit - -2004-07-31 Rob Adams - - Fix some support for EWMH hints, and fix USER_TIME support to - include the DEMANDS_ATTENTION hint. Also includes some code for - implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but - this is disabled pending feature thaw. - - * COMPLIANCE: update with new information - - * src/display.c (meta_display_open): add new hints to list - - * src/display.h (_MetaDisplay): Add new atoms to struct - - * src/screen.c (set_supported_hint): update the list of support - hints. - (set_desktop_viewport_hint): new function sets the viewport hint - to (0,0) as required by the spec for WMs with no viewport support. - (set_desktop_geometry_hint): new function to set the desktop size - hint to the size of the display, since we don't implement large - desktop support, as required by the spec. - (meta_screen_resize): update the geometry hint on screen resize - - * src/window.c (meta_window_new_with_attrs): Initialize - demands_attention state - (set_net_wm_state): Set demands_attention hint in the window state - (meta_window_show): If we don't pop up a window because of - USER_TIME, set DEMANDS_ATTENTION on the window. - (meta_window_focus): When a window receives focus, remove - DEMANDS_ATTENTION hint - (meta_window_client_message): Allow other apps to set - DEMANDS_ATTENTION on a window. Also, if the _NET_ACTIVE_WINDOW - hint includes a timestamp, use it. - (update_net_wm_state): Read DEMANDS_ATTENTION state also - - * src/window.h (_MetaWindow): add wm_state_demands_attention bit. - -2004-07-22 Rob Adams - - * src/metacity.schemas.in: Add trailing quotes to keybinding - explanation text. Patch from Emil Soleyman-Zomalan. - -Fri Jun 25 17:41:53 2004 Soeren Sandmann - - * configure.in: Require startup-notification 0.7 - -2004-06-25 Rob Adams - - * COMPLIANCE: indicate that _NET_WM_USER_TIME is now supported - -2004-06-24 Elijah Newren - - * src/keybindings.c: (handle_toggle_desktop): Choose correct - window to focus when "un-showing" the desktop. Fixes #144900. - -2004-06-24 Elijah Newren - - Make choice of focus window be consistent for each focus mode. - Fixes #135810. - - * src/delete.c: (meta_window_delete): In some #if 0'ed code, - replace meta_workspace_focus_mru_window with - meta_workspace_focus_default_window (just in case the code becomes - un-#if 0'ed out). - - * src/screen.c, src/screen.h: Change - meta_screen_focus_mouse_window to meta_screen_get_mouse_window, - and don't focus the window when found but rather return it. - - * src/window.c: (meta_window_free, meta_window_minimize): replace - meta_workspace_focus_mru_window with - meta_workspace_focus_default_window. - - * src/workspace.c: (meta_workspace_focus_default_window): Focus - appropriately for the given focus method: - click-to-focus: focus MRU window (== toplevel window) - sloppy focus: focus the window under the pointer if there is - such a window, otherwise focus the mru window - mouse focus: focus the window under the pointer if there is - such a window, otherwise don't focus anything - -2004-06-24 Elijah Newren - - * src/window.c: Avoid a race condition on the choice of window to - focus after the previously focused window gets closed or - minimized. Fixes #131582. - -2004-06-24 Elijah Newren - - * src/metacity.schemas.in: make naming for "move a window"/"move - the window"/"move window" more consistent. Patch from Michael - Terry for #142235. - -2004-06-24 Elijah Newren - - * src/session.c: Change meta_warning to meta_topic on failure to - connect to a session manager. Fixes #136218. - -2004-06-17 Elijah Newren - - Add support for _NET_WM_USER_TIME - - * src/display.c: - (meta_display_open): Add _NET_WM_USER_TIME to atom_names[], - (event_callback): Manually set _NET_WM_USER_TIME upon KeyPress - (doesn't work since keyboard isn't grabbed) and ButtonPress (does - work), this is just a fallback for applications that don't update - this themselves. - - * src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field - - * src/screen.c: (meta_screen_apply_startup_properties): Check for - TIMESTAMP provided from startup sequence as well. - - * src/stack.c: - s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/, - (meta_window_set_stack_position): New function which calls the - meta_window_set_stack_position_no_sync function followed immediately - by calling meta_stack_sync_to_server. - - * src/window-props.c: - (init_net_wm_user_time), (reload_net_wm_user_time): new functions, - (reload_wm_hints): also load atom_net_wm_user_time - - * src/window.c: - new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound), - (meta_window_new_with_attrs): add timestamp attributes, - (window_takes_focus_on_map): use TIMESTAMP from startup - notification and _NET_WM_USER_TIME to decide whether to focus new - windows, - (meta_window_show): if app doesn't take focus on map, place it - just below the focused window in the stack - (process_property_notify): check for changes to _NET_WM_USRE_TIME, - (meta_window_stack_just_below): new function - - * src/window.h: - (_MetaWindow struct): new fields for initial_timestamp, - initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time, - (meta_window_stack_just_below): new function - -2004-06-21 Anders Carlsson - - * src/common.h: - * src/menu.c: (menu_closed), (activate_cb): - * src/window.c: (menu_callback): - Add a timestamp argument to menu functions and - use it in meta_window_delete. - -2004-06-21 Anders Carlsson - - * src/window.c: (meta_window_client_message): - Get the timestamp from the client message. - -Sat Jun 19 02:21:08 2004 Soeren Sandmann - - Fix bug 143333, support for update counter spec, and 109362, - schedule compensation events when events are ignored. - - * src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and - _NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old - METACITY_SYNC_COUNTER stuff. - (meta_display_begin_op): Setup the sync counter - - * src/xprops.c, src/xprops.h, src/window-props.c, src/display.h: - Add new atoms. - - * src/window.c (send_sync_request): new function. - (meta_window_move_resize_internal): send a sync request before - resizing. - (check_move_resize_frequence): Rework logic to also check the SYNC - case. If an event is ignored return the remaining time. - (update_resize_timeout): Timeout that gets called when a - compensation event is scheduled. - (uddate_resize): schedule compensation events when an event is - ignored. - (meta_window_handle_mouse_grap_op_event): When an alarm is - received and sync was turned off, turn it back on. - - * src/window.h (struct MetaWindow) Add some variables - -2004-06-16 Havoc Pennington - - * configure.in: bump version, add the UNSTABLE note - - * Branch off GNOME 2.6, we are now officially unstable - -2004-06-04 Jeff Waugh - - * src/metacity.schemas.in: Set titlebar_uses_system_font = false. The - previous default was almost violent in its lack of appreciation for - human beings. In fact, this entire setting should probably be removed, but - for now, let's just fix the default. Permission granted by Havoc. - -2004-05-04 Elijah Newren - - * configure.in: 2.8.1 - - * NEWS: update - -2004-05-02 Rob Adams - - * src/metacity-dialog.c (warn_about_no_sm_support): make the no sm - support warning dialog resizable, since the default GTK warning - dialog not has default not resizable. Fix for #141672 from - Olivier Crete. - -2004-04-29 Rob Adams - - * src/prefs.c (change_notify): Add a value type check for the - visual bell/audible bell gconf settings. Patch from Jarrod - Johnson for #141409. - -2004-04-19 Mark McLoughlin - - Syncing across this change from libwnck. - Patch from Neil Muller in bug #133979. - - * src/iconcache.c: (find_largest_sizes), (find_best_size): - Don't down-size nitems from a gulong to an int. Fixes a - crash with enlightenment, apparently. - -2004-04-16 Iñaki Larrañaga - - * configure.in: Added "eu" (Basque) to ALL_LINGUAS. - -2004-04-15 Elijah Newren - - * src/display.c: Prevent unwanted grab op from occurring. - Previously, for some people under certain conditions, clicking and - releasing the mouse button rapidly enough would result in Metacity - starting a move operation due to ignoring the button release. - This should fix that problem (it does for me). See bug 136587. - -2004-04-11 Rob Adams - - * configure.in: Make the --enable-xinerama switch work properly. - Fix for #138562 from foser@gentoo.org. - -2004-04-09 Guntupalli Karunakar - - * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS. - -2004-03-27 Tõivo Leedjärv - - * configure.in: Added et to ALL_LINGUAS. - -2004-03-24 Guntupalli Karunakar - - * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS. - -2004-03-21 Havoc Pennington - - * configure.in: 2.8.0 - - * NEWS: update - -2004-03-07 Elijah Newren - - * rationales.txt: Bring up to date (see bug 136252). - -2004-03-07 Havoc Pennington - - * configure.in: 2.7.1 - -2004-03-04 Paisa Seeluangsawat - - * configure.in: Added "th" (Thai) to ALL_LINGUAS. - -2004-03-01 Rob Adams - - * src/stack.c (compute_layer): don't promote due to transiency; we - handle that elsewhere now. - (ensure_above): perform layer promotion here as well as stack - position promotion. Note that this means that we need to do stack - constraints now on layer change now. - (get_maximum_layer_of_ancestor): remove function - (max_layer_func): remove function - (MaxLayerData): remove struct - -2004-02-28 Rob Adams - - Revert 2/27 patch for layer promotion. - -2004-02-27 Rob Adams - - * src/window.c (meta_window_notify_focus): only move on MRU list - if the window belongs on the workspace, since the FocusIn event - could be for a window whose workspace we've since switched away - from. Possible fix for #122016. - - * src/workspace.c (meta_workspace_contains_window): search for the - workspace in window->workspaces rather than the window in - workspace->windows. Since the number of workspaces is at most 36, - this is a O(1) lookup rather than a O(n) lookup. Sorry; couldn't - resist. - -2004-02-27 Rob Adams - - * src/metacity.schemas.in: Change - move_to_workspace_left/right/up/down keybindings to - arrow to avoid conflicting with new - keybindings in spacial nautilus. - -2004-02-27 Rob Adams - - Handle layer promotion of transient descendants of layer-promoted - windows to also be layer promoted, using a simple iterative - algorithm. - - * src/stack.c (compute_layer): change name to promote_layer, and - convert to simply perform any necessary layer promotion without - computing the standalone layer. - (max_layer_func): use window->layer instead of - get_standalone_layer - (get_maximum_layer_of_ancestor): use window->layer instead of - get_standalone_layer - (meta_stack_ensure_sorted): implement iterative algorithm, - explained in a long comment. - - * src/window.h: add a tmp_layer field used by stack.c for - determining if the stack is dirty or not, since maintaining this - information in meta_stack_ensure_sorted is no longer practical. - -2004-02-23 Rob Adams - - Add my copyright notice to a number of files on which it should - already exist. - - * src/window.c (meta_window_notify_focus): modify code to move to - front of MRU list so that we can have an assert that it was there - in the first place. This code may be causing some crashes. See - #131196. - -2004-02-22 Christian Rose - - * configure.in: Added "en_CA" to ALL_LINGUAS. - -2004-02-19 Rob Adams - - * src/prefs.h: remove trailing comma in MetaKeyBindingAction enum. - Fix for #134868 thanks to bugzilla-gnome@thewrittenword.com. - -2004-02-16 Rob Adams - - * src/window.c (update_move): reset drag state after shaking loose - or reattaching. Fix for #132625. - -2004-02-15 Anders Carlsson - - * src/menu.c (meta_window_menu_new): Actually translate a message, - don't just mark it for translation. - -2004-02-14 Elijah Newren - - * src/workspace.c: When moving a window to a different workspace, - prepend it to the mru list insted of appending it. Fixes #134368. - -2004-02-14 Rob Adams - - If we're moving a window and receive a _NET_CURRENT_DESKTOP - message indicating a workspace switch, bring along the drag window - to the new workspace, solving a potentially weird bug where the - window would be lost on the old workspace. This also makes it - possible to implement edge flipping in an external program with - just a few lines of code. Patch for #131630 from ed@catmur.co.uk. - - * src/keybindings.c (switch_to_workspace): remove function -- no - longer needed. - (handle_activate_workspace): call meta_workspace_activate instead - of switch_to_workspace - - * src/workspace.c (meta_workspace_activate_with_focus): if we're - in a move grab op, bring along the drag window. - -2004-02-14 Rob Adams - - * configure.in: Add configure option to not even try using - xinerama, to make metacity buildable on systems with no shared - library version of the xinerama libraries. Patch for #134203 from - Julio M. Merino Vidal. - -2004-02-01 Rob Adams - - * COMPLIANCE: Bring up to date with current draft EWHM. - -2004-01-27 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Use the 'utility' frame - for dialogs too. - -2004-01-24 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Updated this theme. - -2004-01-21 Elijah Newren - - * src/screen.c (set_supported_hint): Removed some duplicate - entries. - -2004-01-17 Rob Adams - - * src/metacity.schemas.in: Default binding removed for - toggle_shaded, since we don't have anything in the graphical UI - for it any more. - -2004-01-17 Rob Adams - - * src/window.c (meta_window_show_menu): Don't show - left/right/up/down if a window is sticky. Make "On Top" - insensitive for docks, splash screens, and desktops since it has - no effect anyway. - -2004-01-10 Rob Adams - - * src/metacity.schemas.in: update default - action_double_click_titlebar to be toggle_maximize instead of - toggle_shade. See #131126. - -2004-01-10 Rob Adams - - * src/constraints.c (meta_window_constrain): if we maximize after - placement, and the window is too big to fix in the work area, - define a sane saved_rect approximately with dimensions - three-quarters approximately three quarters the size of the work - area. This avoids the problem where large windows would - unmaximize and actually get bigger. See #93590. - -2004-01-09 Thomas Fitzsimmons - - Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS. - - * src/display.c: include xprops.h - (process_request_frame_extents): new function - (meta_display_open): add _NET_FRAME_EXTENTS and - _NET_REQUEST_FRAME_EXTENTS atoms - (event_callback): handle frame extents message - - * src/display.h (struct _MetaDisplay): add atom_net_frame_extents - and atom_net_request_frame_extents - - * src/theme.c (meta_pango_font_desc_get_text_height): make font_desc - parameter const - - * src/ui.c: include prefs.h - (meta_ui_theme_get_frame_borders): new function - - * src/window.c (update_net_frame_extents): new function - (meta_window_move_resize_internal): update frame extents - property when frame geometry changes - - * src/screen.c (set_supported_hint): add atom_net_frame_extents - and atom_net_request_frame_extents - -2004-01-09 Calum Benson - - * src/themes/Atlanta/metacity-theme-1.xml: - - Ensure Atlanta window buttons get larger when using large - print themes. Fixes #123469. - -2003-01-04 Rob Adams - - Maintain the button grab for sloppy and mouse focus all the time. - This fixes a number of problem introduced by trying to drop the - grab; we now do this only for click to focus mode. This has the - unfortunate effect that #102209 reappears for sloppy and mouse - focus, but this seems unavoidable, because of limitations in the X - protocol. See #115072. - - * src/display.c (meta_display_grab_focus_window_button): #if 0 the - section on not grabbing unless in click-to-focus mode. - - * src/window.c (meta_window_notify_focus): drop focus button grab - on FocusIn and acquire it on FocusOut only when in click-to-focus - mode. - -2004-01-03 Robert Sedak - - * configure.in: Added "hr" in ALL_LINGUAS. - -2003-01-02 Rob Adams - - * README: Update reference to EWMH. - - * HACKING: Add a reference to COMPLIANCE and to the ICCCM and - EWHM. - -2003-12-25 Havoc Pennington - - * src/compositor.c (process_reparent): handle ReparentNotify, and - add a lot of debug output. - -2003-12-25 Havoc Pennington - - * src/compositor.c (meta_compositor_process_event): change to - track all children of the root window, not only mapped children; - this keeps us from losing track of the stacking order - - * src/display.c (event_callback): don't do any of the compositor - event handling inline, do it all in compositor.c - -2003-12-21 Rob Adams - - Reorganize the window menu according to discussion on #110904. - The workspace name mnemonic chunk of the patch is thanks to - Jonathan Blandford. - - * src/common.h: add MENU_OP_ABOVE, MENU_OP_UNABOVE, MENU_UP_MOVE_TO_* - menu ops. - - * src/core.c (meta_core_get_menu_accelerator): add accelerator for - the new menu ops. - - * src/menu.c: add checked attribute in _MenuItem struct to display - a checkmark next to a menu item. Add the new menu items to - menuitems. - (get_workspace_name_with_accel): Add mnemonics even to renamed - workspaces. - (menu_item_new): provide support for the checked attribute - (meta_window_menu_new): construct new submenu for workspace - switching. - - * src/window.c (menu_callback): implement support for the new menu - ops. - (meta_window_show_menu): don't use the OP_*SHAPE operations, and - compute which of the OP_MOVE_TO_* ops should be used for the - current workspace and workspace layout. Add the OP_*ABOVE - operations. - -2003-12-20 Arafat Medini - - * configure.in: Added Arabic locale "ar" to ALL_LINGUAS - -2003-12-17 Rob Adams - - * src/display.c (meta_display_open): initialize - grab_wireframe_active to FALSE. Fix for #128090. - -2003-12-17 Rob Adams - - * src/tabpopup.c (meta_ui_tab_popup_new): Don't try to call - utf8_strndup on a null title for an entry. Fix for #128566. - - * src/workspace.c (meta_workspace_free): Call g_list_free on the - mru_list, since with sticky windows that MRU list could well not - be emtpy. See #122016. - -2003-12-13 Rob Adams - - * src/window.c (meta_window_new_with_attrs): set on_all_workspaces - in all cases _before_ adding to the workspaces, so that windows - initially on all workspaces are added correctly to the MRU lists. - Fix for #120907. - - * src/workspace.c (meta_workspace_add_window): handle sticky - windows so that we add to add mru lists if needed - (meta_workspace_remove_window): handle sticky windows so that they - are removed from all mru lists if needed. - -2003-12-12 Havoc Pennington - - * src/window.c (meta_window_free): unstick window to get it out of - mru_list it should not be in; assert that window has been removed - from all mru_list. Perhaps fixes #122016 crash. - -2003-11-29 Havoc Pennington - - * fix up compositing manager to somewhat work - -2003-11-26 Rob Adams - - * COMPLIANCE: fix a couple of minor typos. - -2003-11-24 Havoc Pennington - - * src/compositor.c (meta_compositor_new): fix the extension checks - -2003-11-24 Havoc Pennington - - * src/iconcache.c (meta_icon_cache_init): init prev_mask field - - * src/window.c (meta_window_new_with_attrs): init xgroup_leader - prior to use - -2003-11-24 Havoc Pennington - - * src/display.c (meta_display_begin_grab_op): add an event_serial - argument and use it when the pointer is already grabbed - automatically on the button press. May fix bug #126871 - -2003-11-24 Havoc Pennington - - * Apply patch from Gregory Merchan to avoid using CurrentTime when - setting input focus. Bug #108881 - -2003-11-23 Havoc Pennington - - * src/compositor.c: move xcompmgr code in here (minus drop - shadows), untested since Keith's server just crashes at the - moment. "It compiles" - -2003-11-20 Havoc Pennington - - * src/window.c (meta_window_new_with_attrs): new function - - * src/display.c, src/screen.c: create the compositor and feed - windows and events to it - -2003-11-20 Havoc Pennington - - * src/window.c (meta_window_notify_focus): revert the change here - -2003-11-17 Rob Adams - - Create COMPLIANCE document describing metacity specification - compliance. Right now gives detailed EWMH compliance; still need - to add ICCCM compliance information. Also some minor fixes to - bring metacity into compliance on some points. - - * COMPLIANCE: new file - - * src/display.h, src/display.c (meta_display_open), - src/screen.c (set_supported_hint): add - atom_net_wm_action_fullscreen and atom_net_wm_action_minimize - - * src/window.c (set_allowed_actions_hint): some fixes to which - hints to set and add fullscreen and minimize. - -2003-11-16 Rob Adams - - * src/window.c (meta_window_notify_focus): add paranoia check to - make sure a window is really on a workspace before inserting it at - the beginning of the MRU list. Maybe there's a race condition - with focusing and workspace switching. Hopefully a fix for - #122016. - -2003-11-15 Havoc Pennington - - * src/main.c (main): fix warning - - * src/compositor.c: add a new file to contain compositing manager - functionality; not yet implemented at all. - -2003-11-15 Rob Adams - - Inherit visual from frame window so that metacity will work with - the new compositing manager extension work by Keith on - freedesktop.org, so that ARGB windows can be full - alpha-transparent without a metacity frame getting drawn in the - background. In the long term, we need to actually set alpha - values when drawing the frame so that it will really work; this is - a stopgap solution. Patch from Keith Packard; see Bug 126875. - - * src/frame.c (meta_window_ensure_frame): pass client visual to - frame. - - * src/ui.[ch] (meta_ui_create_frame_window): add new xvisual - parameter and use it to create new window. - -2003-11-15 Rob Adams - - * src/window.c (update_net_wm_type): don't set window->type_atom - here so that the type-inference code will actually be called. Fix - for #126873 from Keith Packard. - -2003-11-08 Rob Adams - - * src/window.c (meta_window_move_resize_internal): configure frame - first if we grow more than we shrink combined in both dimensions. - Patch from Soren Sandmann for #108925. - -2003-11-07 Rob Adams - - * src/place.c (meta_window_place): use maximize_after_placement to - automaximize in meta_window_place; avoids a problem with not - recalculating the frame geometry after auto-maximizing. - -2003-11-07 Rob Adams - - * src/window.c (window_should_be_showing): show the window if it's - a transient of a dock or desktop, since otherwise such windows are - invisible in show desktop mode. Fix for #124648. - -2003-11-07 Rob Adams - - * src/main.c (main): Try harder to find a theme in the event that - the theme in the preference cannot be found. Patch from Marcin - Krzyzanowski. See #125815. - - * src/place.c (meta_window_place): use "visual" centering for - dialog placement and clip new dialogs to an xinerama workspace. - Fix for #118336. - -2003-10-30 Havoc Pennington - - * src/menu.c (meta_window_menu_new): patch to avoid creating - stick/unstick menu items when only one workspace, bug #116563 - from Michael Terry - -2003-10-25 Havoc Pennington - - * src/window.c (meta_window_notify_focus): if a window is focused - which is not either a dock or a transient in the same group as a - dock, shuffle all dock/desktop windows to the end of the MRU list - so they won't annoyingly get focus all the time. #123816 - -2003-10-15 Yukihiro Nakai - - Gettextize metacity-theme-viewer. #121747 - - * src/theme-viewer.c: gettextize. - * po/POTFILES.in: Add src/theme-viewer.c - -2003-10-13 Havoc Pennington - - In the "prefs cause code complexity" department, here's a "sloppy - focus die die die" kind of moment. - - * src/display.c (meta_display_grab_focus_window_button): don't - grab in sloppy focus mode, since we were dropping the grab on - window enter anyway this just removes races from the current - behavior. - - * src/display.c (prefs_changed_callback): ungrab/grab on focus - mode changes, since we treat sloppy and click differently. - -2003-10-12 Havoc Pennington - - Merge reduced_resources mode patch from the branch. Offers - wireframe and no-animations. - - * src/window.c (implement_showing): no animation if we are - in reduced resources mode - - * src/prefs.c: add REDUCED_RESOURCES pref - - * src/window.c (meta_window_update_keyboard_resize): fix to - modify grab_anchor_window_pos to grab_wireframe_rect if - appropriate instead of window->rect - - * src/display.h (struct _MetaDisplay): add grab_start_serial used - to avoid responding to events that occurred prior to the grab - initialization. - - Still broken in various ways, specifically EnterNotify that - occurred prior to XGrabPointer is processed as if it occurred - after. - - * src/window.c (meta_window_update_keyboard_move): add this - instead of meta_window_warp_pointer() crack - - * src/effects.c (meta_effects_update_wireframe): draw a kind of - grid for the wireframe, instead of just a rectangle, like twm - - * src/screen.c (meta_screen_new): line width of 3 for the XOR gc - - "Reduced resources" mode based on wireframe patch from - Erwann Chenede. Still pretty buggy. - - * src/keybindings.c (process_keyboard_move_grab) - (process_keyboard_resize_grab): add gruesome wireframe hacks - - * src/display.c (meta_display_end_grab_op): end wireframe - (meta_display_begin_grab_op): begin wireframe - - * src/effects.c (meta_effects_end_wireframe) - (meta_effects_update_wireframe, meta_effects_begin_wireframe): - routines to draw the wireframe stuff - - * src/window.c (window_should_be_showing): hide window when - doing wireframe, commented out as it breaks grab - * src/window.c (meta_window_refresh_resize_popup): handle wireframe - - * src/screen.c (meta_screen_new): create a screen->root_xor_gc - for use in drawing wireframes - - * src/frames.c (meta_frames_push_delay_exposes): repaint - everything before we delay - -2003-10-11 Havoc Pennington - - * src/display.c (meta_display_begin_grab_op): initialize - display->grab_have_pointer to FALSE, previously I think you could - get a case where we didn't have the grab and thought we did. - Bugs were reported with this happening. Of course we still have - the "why did the grab fail" problem, but it should be less - noticeable with this fixed. - -2003-10-06 Rob Adams - - * src/constraints.c (constraint_onscreen_*_func): disable onscreen - resize constraints for right, left, and bottom, since there is no - way to violate onscreen constraints by resizing in these - directions and the code to implement the constraints made some - incorrect assumptions. Fix for #120701, #120756, #123165, - #123631, #123838. - -2003-10-06 Žygimantas Beručka - - * configure.in: Added "lt" to ALL_LINGUAS - -2003-10-01 Havoc Pennington - - * NEWS: update - - * configure.in: 2.6.2 - -2003-09-30 Havoc Pennington - - * src/window.c (meta_window_queue_move_resize): add the moveresize - idle at META_PRIORITY_RESIZE so it runs before GTK does any - drawing, may fix bug #109211 (seems to for me) - - * src/ui.h (META_PRIORITY_RESIZE): add this between GTK - resize/redraw priorities - - * src/display.c (meta_display_queue_retheme_all_windows): remove - some debug spew from meta_warning - -2003-09-30 Havoc Pennington - - * src/testasyncgetprop.c: remove nonstandard header include, - #121870 - -2003-09-30 Havoc Pennington - - * src/tools/metacity-message.c (main): call - bind_textdomain_codeset(), fix from Yukihiro Nakai bug #121743 - -2003-07-28 Rached Ben Mustapha - - Fix bug #118428 - - * src/window.c (redraw_icon): Also redraw window icon if the window - is not mapped but its frame is. - (idle_update_icon): Unset the window->update_icon_queued flag. - -2003-09-29 Havoc Pennington - - * src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on - number of characters in the title of each window, bug #109301 - -2003-09-29 Havoc Pennington - - * configure.in: put -lXext in Xrandr check, bug #115996 - -2003-09-29 Havoc Pennington - - * src/wm-tester/test-size-hints.c: a little program to test size - hints, for now just a 0x0 min size to verify bug #113320 - -2003-09-29 Havoc Pennington - - * src/async-getprop.c (async_get_property_handler): attempt to fix - this to return the data as an array of long even on 64-bit as with - XGetWindowProperty() breakage, bug #114035, credit to Gwenole - Beauchesne for tracking down. - -2003-09-29 Havoc Pennington - - * src/xprops.c (cvtINT16toInt): fix the 64-bit check not to use - macros from the X tree that don't get set - - * configure.in: check for sizes of various types - -2003-09-29 Havoc Pennington - - * src/delete.c (meta_window_delete): don't move the focus after - you click the close button on a window. bug #108706 - -2003-09-29 Havoc Pennington - - * src/main.c (find_accessibility_module): fix warnings (one was a - real bug) - - * src/ui.c (meta_gdk_pixbuf_get_from_pixmap): fix warning that - probably explains remaining crash on bug #116923. Jeez, need to - use -Werror here or something. - - Fix #103575, spawn child processes on proper screen. - - * src/keybindings.c (error_on_command): pass --screen to - metacity-dialog - (handle_run_command): launch user command with DISPLAY reflecting - the screen you launch it from - - * src/delete.c (delete_ping_timeout_func): pass --screen to - metacity-dialog - -2003-09-26 Havoc Pennington - - * src/display.c (event_callback): when focus on root window - becomes None, set it to something other than None so keybindings - keep working and print a warning about how some application sucks. - #84564 - (event_callback): Fix debug spew to print focus event details - properly - (meta_display_open): when setting initial focus, always use - RevertToPointerRoot and fix the focus if it's None or PointerRoot - -2003-09-26 Padraig O'Briain - - * src/Makefile.am: Add -DMETACITY_LIBDIR to support loading of modules - * src/main.c: Add functions find_accessibility_module, - accessibility_invoke_module and accessibility_invoke - (main); Check whether GConf accessibility key is true and if so - load accessibility modules. This code is based on the libgnome code. - - src/tabpopup.c (meta_ui_tab_popup_new): Set accessible role of - accessible for label containing window name to STATUSBAR so - AT can be aware of window name. - - This fixes bug #120025 - -2003-09-24 Havoc Pennington - - * src/session.c (io_from_warning_dialog): fix hang when we get - EOF, #121376 from Laurent Vivier - -2003-09-22 Taneem Ahmed - - * configure.in: Added "bn" to ALL_LINGUAS. - -2003-09-20 Åsmund Skjæveland - - * configure.in: Added Norwegian (nynorsk) translation code to - ALL_LINGUAS - -2003-09-20 Rob Adams - - Fix bug where multiple entries could appear in MRU lists, or no - entry when sticking/unsticking windows. Fix for #122016 - - * src/window.c (meta_window_stick): use window->screen->workspaces - instead of window->workspaces. - (meta_window_unstick): use window->screen->workspaces instead of - window->workspaces. - -2003-09-19 Rob Adams - - Fix a bug with partial-width panel struts caused by incorrect - computation of rectangle widths, and another when using different - screen resolutions on xineramas. See #122404. Also fix a crash - bug with the MRU list when sticking and unsticking windows. See - #120809. - - * src/constraints.c (get_outermost_onscreen_positions): Fix - off-by-one error with partial-width struts. - - * src/window.c (meta_window_update_struts): Fix off-by-one error - with partial-width struts. - (meta_window_stick): assign back to GList after g_list_append - (meta_window_unstick): assign back to GList after g_list_append - - * src/workspace.c (ensure_work_areas_validated): For right and - bottom struts, compute strut relative to root window and not to - xinerama edge in compliance with EWMH recommendations. - - -2003-09-17 Fatih Demir - - * configure.in: Added "ta" (Tamil) to the languages' list. - -Wed Sep 10 15:38:09 2003 Jonathan Blandford - - * configure.in: Rerelease 2.4.0.1 to fix glib-gettext problem. - -2003-09-08 Havoc Pennington - - * configure.in: remove "this is the unstable branch" warning - -2003-09-08 Havoc Pennington - - * configure.in: 2.6.0 - -2003-09-04 Havoc Pennington - - * configure.in: 2.5.5 - - * HACKING: add instructions on how to make a release - -2003-08-29 Rob Adams - - * src/ui.c (meta_gdk_pixbuf_get_from_pixmap): harden against null - return from gdk_pixmap_foreign_new. Fix for #116923. - -2003-08-26 Guntupalli Karunakar - - * configure.in: Added "hi" (Hindi) to ALL_LINGUAS. - -2003-08-20 Rob Adams - - Complete the transition to using the MRU window as the default - focus window instead of the topmost window; fixes a number of - problems with sloppy focus and utility windows. See #112031. - - * src/window.c (meta_window_free): call - meta_workspace_focus_mru_window - (meta_window_minimize): call meta_workspace_focus_mru_window - -2003-08-20 Rob Adams - - * src/constraints.c (meta_window_constrain): do northwest resize - when maximizing and fullscreening to avoid potential "off-by-one" - problems. - -2003-08-19 Rob Adams - - * src/stack.c (get_standalone_layer): put windows with - wm_state_below at the bottom. Make this higher priority than full - screen layer; see #120238. - -2003-08-18 Rob Adams - - * src/constraints.c (meta_window_constrain): recalculate frame - geometry if the window gets maximized after placement, since it's - likely to change. Fix for #120117. - -2003-08-17 Ray Strode - - * src/delete.c (meta_window_delete): Use MRU list to find focusing - window after a window is deleted instead of using top window. Fix - for #108643. - -2003-08-16 Havoc Pennington - - Patch from Soeren Sandmann #108926 to improve opaque resize - - * src/frame.c (meta_window_ensure_frame): new function - - * src/ui.c (meta_ui_create_frame_window): new function to create - a frame with GDK, so that GDK's invalidation etc. work properly - -2003-08-16 Havoc Pennington - - * src/display.c (xcursor_for_op): fix cursor for - META_GRAB_OP_MOVING, #111943 from John Paul Wallington - -2003-08-15 Rob Adams - - * src/constraints.c (meta_window_constrain): move to upper left - corner since we're resizing/moving instead of moving/resizing. - Fix for #119988. - -2003-08-15 Ray Strode - - Changed MRU list to be per workspace instead of per display, so - sticky windows don't hijack the window focus after workspace - switching (Bug #97635). - - * src/delete.c (meta_window_delete): Use - meta_workspace_focus_top_window instead of - meta_screen_focus_top_window. - - * src/display.c (meta_display_open): Stop using display->mru_list. - (find_tab_forward): - (find_tab_backward): - (meta_display_get_tab_list): Use workspace->mru_list instead of - display->mru_list and remove unneeded calls to - meta_window_visible_on_workspace - - * src/display.h: Remove mru_list from MetaDisplay - - * src/keybindings.c (handle_toggle_desktop): Use - meta_workspace_focus_top_window instead of - meta_screen_focus_top_window. - - * src/screen.c (meta_screen_focus_top_window): - (meta_screen_focus_default_window): Remove functions. - (meta_screen_show_desktop): Use meta_workspace_focus_top_window - instead of meta_screen_focus_top_window. - - * src/screen.h: Remove meta_screen_focus_top_window and - meta_screen_focus_default_window declarations. - - * src/window.c (meta_window_new): Stop using display->mru_list. - (meta_window_free): Use meta_workspace_focus_top_window - instead of meta_screen_focus_top_window and stop using - display->mru_list. - (meta_window_stick): Add sticky window to all workspace MRU lists. - (meta_window_unstick): Remove non-sticky window from the workspace - MRU lists it doesn't belong in. - (meta_window_notify_focus): Move newly focused window to the front - of active workspace's MRU list. - - * src/workspace.c (meta_workspace_new): Initialize - workspace->mru_list to NULL. - (meta_workspace_add_window): Add window to workspace's MRU list. - (meta_workspace_remove_window): Remove window from workspace's MRU - list. - (meta_workspace_activate_with_focus): Use - meta_workspace_focus_default_window instead of - meta_screen_focus_default_window. - (meta_workspace_focus_default_window): - (meta_workspace_focus_mru_window): - (meta_workspace_focus_top_window): Add functions. - - * src/workspace.h: Add mru_list to MetaWorkspace and add function - declarations for meta_workspace_focus_default_window, - meta_workspace_focus_mru_window, meta_workspace_focus_top_window. - -2003-08-14 Rob Adams - - Allow windows that are too tall for the workarea to break the - onscreen constraints just enough so that their bottom edges can be - made visible. Fix for #106740. Also, changes constraints to - constrain the resize and then the move to avoid complexities in - the code for the above fix. - - * src/constraints.c (get_outermost_onscreen_positions) - Compute the "effective" height of the work area and the minimum - size for the window to compute a value by which a window is - allowed to violate the top constraint. - (meta_window_constrain): convert to a resize then a move instead - of a move then resize. - -2003-08-13 Rob Adams - - * configure.in: remove metacity.spec from AC_OUTPUT - -2003-08-13 Havoc Pennington - - * metacity.spec.in: remove, nobody is maintaining it. - -2003-08-13 Laurent Dhima - - * configure.in: Added "sq" to ALL_LINGUAS. - -2003-08-10 Havoc Pennington - - * src/screen.c (meta_screen_new): don't select for button - press/release events, as that keeps other clients from doing so, - and it doesn't seem that metacity has any reason to do it. - Patch from Andreas Volz. - -2003-08-08 Bastien Nocera - - * src/metacity-dialog.c: (kill_window_question), - (warn_about_no_sm_support): fix markup being ignored when a window - title has a forbidden character in it (eg. "Send & Receive") - * src/tools/metacity-window-demo.c: fix warning - -2003-07-29 Arvind Samptur - - * src/xprops.c (utf8_list_from_results): Number of - strings we are processing is one more than required. - - Also get the string count right even without a null byte at the end. - Pointed out by Havoc. - -2003-07-27 Rob Adams - - * src/window.c (update_move): Update window shaking loose so that - the window is moved to the pointer and certain drag state is - properly restored once windows "reattach". Fix for #115000 based - on the patch by Jurg Billeter. - - * src/screen.c (meta_screen_resize): Invalidate work areas after - an xrandr screen size update. Fix for #117230. - - * src/stack.c (window_is_fullscreen_size): Check the bottom corner - of the window in addition to the top corner. Fix for #118194. - - * src/constraints.c (meta_window_constrain): Support aspect ratio - hints in the new constraints code. Fix for #113798. - - * src/tools/metacity-window-demo.c (toggle_aspect_ratio): toggle - the aspect ratio hints to force a 16:9 aspect ratio. - (do_appwindow): add a button to toggle aspect ratio. - -2003-07-27 Havoc Pennington - - * src/theme-viewer.c (run_theme_benchmark): also measure wall - clock time, and run over a number of window sizes. - -2003-07-15 Havoc Pennington - - * NEWS: update - - * configure.in: 2.5.3 - -2003-07-12 Pablo Saratxaga - - * configure.in: Added Walloon (wa) to ALL_LINGUAS - -2003-07-04 Havoc Pennington - - * Makefile.am (EXTRA_DIST): add rationales.txt - -2003-07-02 Jordi Mallach - - * src/metacity.desktop.in: Add X-GNOME-Bugzilla entries. - -2003-07-01 Padraig O'Briain - - * src/keybindings.c (process_tab_grab): Activate window before ending - grab. This fixes bug #114037. - -2003-06-20 Rob Adams - - * src/window.c (meta_window_unmaximize): Update grab state when we - unmaximize so double-clicking doesn't cause weird window-jumping - problems. See #116292. - -2003-06-29 Rob Adams - - * src/constraints.c (meta_window_constrain): Actually maximize - after placement. See #116285. - -2003-06-26 Havoc Pennington - - * src/workspace.c (meta_workspace_invalidate_work_area): nuke the - lists of struts here, to improve confidence that we never try to - use them after a window with rects in the list gets freed. - (it wasn't broken before I don't think, just making the - code more robust against future mods) - - * src/window.c (meta_window_update_struts): replace magic "75" - with a macro - - * src/constraints.c (constraint_hints_applies_func): don't apply - hints to maximized or fullscreen, rather than only fullscreen - (constrain_move): add paranoia max number of iterations to the - heuristic loop - -2003-06-26 Rob Adams - - Add keybinding to allow the user to toggle _NET_WM_STATE_ABOVE on - windows. Disabled by default. See #98387. - - * src/keybindings.c (handle_toggle_above): new function implements - the keybinding - - * src/metacity.schemas.in: add toggle_above keybinding - - * src/prefs.[ch]: add toggle_above keybinding - - * src/window.[ch] (meta_window_make_above): new function to put a - window into the above state - (meta_window_unmake_above): new function takes a window out of the - above state - -2003-06-26 Mohammad DAMT - - * po/id.po: Added Indonesian translation - * configure.in: Added "id" to ALL_LINGUAS - -2003-06-25 Rob Adams - - Update constraints code to support the new _NET_WM_STRUT_PARTIAL - EWMH draft specification. See #86682. Also, fix a bug involving - work area invalidation on metacity startup. Fix for #108497. - Finally, some minor fixes for full screen windows. - - * src/window.h: Add new MetaStruts structure to store strut rects - for a window. Remove has_struts and do_not_cover flag, and - support new MetaStruts instead of the four ints. - - * src/window.c (meta_window_new): change initialization to work - with new struts. Also, move meta_window_update_struts call to - after the workspaces are initialized to fix #108497. Remove - do_not_cover and related code. - (process_property_notify): add strut_partial - (update_struts): change function name to meta_window_update_struts - and expose in external MetaWindow API. Support partial width - struts and the new strut rects. - - * src/workspace.h: add new GSLists containing pointers to all - relevant struts for this workspace. - - * src/workspace.c (meta_workspace_new): initialize the list of - strut rects for this workspace. - (meta_workspace_free): free the strut rect lists - (ensure_work_areas_validated): support new struts and new strut - rect lists. Unleash the per-xinerama work areas. - - * src/constraints.c (get_outermost_onscreen_positions): Use the - current window position along with the new per-workspace strut - rects to compute the constraints that apply to a particular - window. - (constraint_hint_applies_func): don't do hints constraints on - fullscreen windows - (update_position_limits): for maximized windows use the work areas - to set the position limits; for other windows rely on the struts - constraints to be computed later in - get_outermost_onscreen_positions - (meta_window_constrain): don't apply aspect ratio hints to full - screen windows - - * src/display.c (meta_display_open): add _NET_WM_STRUT_PARTIAL atom - (meta_rectangle_equal): new helper function for MetaRectangles - (event_queue_callback): #ifndef out if USE_GDK_DISPLAY not set to - avoid compiler warning - - * src/display.h: add atom_net_wm_strut_partial, and add - meta_rectangle_equal. - - * src/screen.c (meta_screen_rect_intersects_xinerama): change - _window_intersects_ to _rect_intersects_ which is more useful now. - (meta_screen_resize_func): update struts on windows with struts - since struts are relative to the screen size, and this function is - called when the screen size updates. - - * src/screen.h (meta_screen_rect_intersects_xinerama): change - _window_intersects_ to _rect_intersects_ which is more useful now. - - * src/window-props.c (meta_display_init_window_prop_hooks): add - hook for strut_partial - - * src/tools/metacity-window-demo.c: Support partial-width struts - on the dock window tests for metacity testing purposes. - -2003-06-22 Samúel Jón Gunnarsson - - * configure.in: Added "is" to ALL_LINGUAS - -2003-06-12 Rob Adams - - * src/display.c (event_callback): Focus on mouse click in - sloppy/mouse to fix keynav. Fix for #115072. - -2003-06-12 Rob Adams - - * src/Makefile.am: honor --disable-schemas-install. Fix for - #106123 from Julio Merino - -2003-06-12 Rob Adams - - Remove legacy support for Gnome 1 hints, since we deem it unlikely - that anyone is running a current metacity with Gnome 1. The - removed hints are _WIN_WORKSPACE, _WIN_LAYER, _WIN_PROTOCOLS, - _WIN_SUPPORTING_WM_CHECK, and _WIN_HINTS. Thanks to Ben Jansens - for much of this patch. - - * display.c (meta_display_open): remove hints - - * display.h: remove atoms for hints - - * screen.c (set_wm_check_hint): don't set legacy hint - (set_supported_hint): don't set legacy hint - - * window-props.c (init_win_workspace): removed - (reload_win_workspace): removed - (meta_display_init_window_prop_hooks): remove hints - - * window.h: remove do_not_cover flag - - * window.c: remove GnomeWinHints enum - (recalc_do_not_cover_struts): removed - (meta_window_new): don't initialize removed flags or compute - legacy struts - (move_resize_cmp): removed - (idle_move_resize): Don't bother sorting the idle queue - (meta_window_client_message): don't set legacy hint - (process_property_notify): remove hints - (update_net_wm_type): don't fall back to WIN_LAYER hint - (update_struts): remove legacy struts - -2003-06-12 Havoc Pennington - - * src/display.c (event_callback): make raise-on-click explicitly - only happen in click to focus mode. - - * src/window.c (update_move): apply patch from Jurg Billeter to - allow you to "shake loose" maximized windows and move them between - Xinerama heads. #93586 - - * src/display.c: delete event_queue_callback - - * src/display.h (struct _MetaDisplay): get rid of - grab_current_window_pos and grab_current_root_[xy] as I could find - absolutely no code using them for anything. They were just sort of - randomly assigned to for no apparent reason. - - * src/display.c (event_callback): double-click timeout is per - screen, so get the screen and pass screen->ui to - meta_ui_get_double_click_timeout() - - * src/ui.c (meta_ui_get_double_click_timeout): take a MetaUI - argument so we get the right settings for each screen - (meta_ui_get_drag_threshold): new function - -2003-06-09 Rob Adams - - Revamp placement policy for windows that are maximized when they - are mapped, including windows that set a hint to be maximized or - windows that are auto-maximized using our heuristic. See #111902. - - * src/window.h: add new flag maximize_after_placement and new - function meta_window_maximize_internal. - - * src/window.c (meta_window_new): initialize - maximize_after_placement to FALSE and remove the automaximize - heuristic. - (meta_window_maximize_internal): new function accepts a saved_rect - argument to be used as the new saved_rect for the window, and does - not queue a move_resize. - (meta_window_maximize): re-implement using - meta_window_maximize_internal. - (update_net_wm_state): If a window has a maximize hint set on - startup set maximize_after_placement to TRUE - - * src/constraints.c (meta_window_constrain): Update the xinerama - information in the ConstraintInfo after placing the window, and - maximize the window after placement if - window->maximize_after_placement - - * src/place.c (find_first_fit): take a natural xinerama list as an - argument instead of generating it here - (constrain_placement): remove function, since it is no longer - needed - (meta_window_place): generate the natural xinerama list here and - pass it into find_first_fit. If find_first_fit fails, use the - list to find empty xineramas where we can place windows that may - be maximized later. This makes maximized windows follow the - correct placement policy. Move the automaximize heuristic here. - -2003-06-09 Rob Adams - - * src/metacity-dialog.c (warn_about_no_sm_support): install an - alarm to timeout the no-sm-dialog after 4 minutes of inactivity. - Patch from Ximian. See #114789. - -2003-06-07 Rob Adams - - * src/window.c (meta_window_new): call meta_group_compute_group - after setting window->desc to avoid SIGSEGV when verbose mode is - enabled. - -2003-06-07 Havoc Pennington - - * src/window.c (meta_window_notify_focus): drop the mouse button - grabs for the focused window; we'll see if this breaks anything. - It should fix #102209 - -Fri Jun 6 19:27:53 2003 Jonathan Blandford - - * src/metacity.schemas.in: fix the location of the schemas file. - -2003-06-04 Rob Adams - - * src/window.c (meta_window_new): don't be stupid and set - window->group = NULL after calling meta_window_compute_group. - - * src/group.c (meta_window_get_group): assert that window->group - != NULL in here instead of computing the group to ensure - robustness. - -2003-06-04 Rob Adams - - Precompute groups to guarantee that meta_group_list_windows always - returns the correct list of windows. See Bug #96973 - - * src/window.h: change cached_group variable to group - - * src/window.c (meta_window_new): change cached_group to group and - call meta_window_compute_group - - * src/groups.c (meta_window_get_group): simply return - window->group rather than computing it and returning - window->cached_group - (meta_window_compute_group): new function computes window->group. - Designed to be called once from meta_window_new - (remove_window_from_group): change cached_group to group - (meta_window_group_leader_changed): call meta_window_compute_group - instead of meta_window_get_group - -2003-05-29 Rob Adams - - Use a new property _METACITY_SENTINEL to eliminate a race - condition that causes focus to behave badly with sloppy/mouse - focus when lots of windows are mapped/unmapped, such as with a - workspace switch. The EnterNotify events on a display are ignored - until the PropertyNotify sent after all the window maps is - received. This is a fix for #110970. - - * src/display.[ch]: New _METACITY_SENTINEL atom. - (event_callback): ignore EnterNotify if the sentinel isn't clear, - and decrement the sentinel counter when the PropertyNotify is - received. - (meta_display_increment_focus_sentinel): new function. Increments - the sentinel counter and updates the property on a root window on - this display. - (meta_display_decrement_focus_sentinel): Decrement the sentinel - counter. - (meta_display_focus_sentinel_clear): returns whether the sentinel - counter is zero. - - * src/window.c (idle_calc_showing): after showing windows, call - meta_display_increment_focus_sentinel on each display for windows - to be shown. - - * src/workspace.[ch] (meta_workspace_activate_with_focus): new - function activates a workspace and focuses a particular window - after the workspace is activated. - (meta_workspace_activate): now just a wrapper for - meta_workspace_activate_with_focus - - * src/keybindings.c: use new meta_workspace_activate_with_focus - function to ensure that focus will follow the focused window - through the workspace switch. - -2003-05-29 Havoc Pennington - - * src/theme-parser.c (meta_theme_load): s/int/gsize/ for - g_file_get_contents() (found independently by - marcus@freebsd.org on SPARC and James Laska on s390x; - #113661 - - * src/main.c (main): fix theme location mentioned in error message - -2003-05-29 Ray Strode - - Get and use double-click speed from GtkSettings (Bug #103218). - - * src/ui.c, src/ui.h: - add function meta_ui_get_double_click_timeout for looking up - the global double-click speed. - - * src/display.c, src/display.h: remove double_click_time - field from MetaDisplay and use meta_ui_get_double_click_timeout - instead. - -2003-05-29 Rob Adams - - * src/main.c (main): chdir to the user's home directory on - startup. See #113755. - - * src/stack.c (get_standalone_layer): a window should be in the - fullscreen layer if it or any of its transient descendants are - focused or expecting the focus and it is either fullscreen or - fullscreen sized. Fix for #104369. - - * src/stack.c (is_focused_foreach): foreach used by - get_standalone_layer to find focused transient descendants. - -2003-05-20 Havoc Pennington - - * src/keybindings.c (meta_change_keygrab): the mask - display->ignored_modifier_mask wasn't being bound, - due to "<" instead of "<=" (most people didn't notice - as display->ignored_modifier_mask included Scroll_Lock). - Red Hat bugzilla #91301 reported by Youssef Makki - - * src/display.c (meta_change_button_grab): make corresponding - change for button grabs. - -2003-05-20 Havoc Pennington - - * NEWS: update - - * configure.in: 2.5.2 - -2003-05-20 Anders Carlsson - - * src/metacity-dialog.c: (kill_window_question): - Split up the strings to make life easier for translators. - -2003-05-20 Anders Carlsson - - * src/metacity-dialog.c: (kill_window_question): - Fix the wording and HIGify the dialog. - -2003-05-18 Havoc Pennington - - * src/window.c (unminimize_window_and_all_transient_parents): - revert broken change that assumed foreach_ancestor iterated - over the window itself. Andrew Sobala, Rob Adams, - #113232 - -2003-05-16 Rob Adams - - Flip the workspace when using up/down/left/right for move window - to, but not when specifying a workspace explicitly as in move to - workspace 4. Possible fix for #105492. - - * src/keybindings.c (do_handle_move_to_workspace): new function - moves a window to a workspace with the option to flip to that - workspace. - (handle_move_to_workspace): Use new do_handle_move_to_workspace - function without flipping (a keybinding) - (handle_move_to_workspace_flip): Use new - do_handle_move_to_workspace function with flipping (a keybinding) - -2003-05-16 Havoc Pennington - - * src/frames.c (meta_frames_paint_to_drawable): fix for - bug #104018 from David Santiago, change button state to - normal while it's being pressed if you move the mouse - outside it. Do this by tracking prelit_control for whether - to draw a button as active, not just for whether to draw - it as prelit. - (meta_frames_motion_notify_event): also update prelit_control - while clicking a button - -2003-05-16 Havoc Pennington - - * src/window.c (meta_window_new): fill in window->desc sooner - since we use it sooner now. - - * src/display.c (meta_display_open): init - display->grab_update_alarm - - * src/window.c (meta_window_new): initialize the always_sticky - field - (meta_window_new): initialize the update_icon_queued field - - Patch from Julien Olivier bug #92335 for converting "show desktop - mode" to "all windows are minimized" when you open a new window, - instead of just mapping all the windows again. - - * src/window.c (meta_window_activate): minimize all windows before - coming out of show desktop mode. - (meta_window_unminimize): don't toggle show desktop mode here - - * src/screen.c (meta_screen_minimize_all_except): new function - -2003-05-01 Havoc Pennington - - * src/theme-parser.c (meta_theme_load): fix memleak on error - -2003-05-16 Telsa Gwynne - - * configure.in: Added "cy" (Welsh) to ALL_LINGUAS. - -2003-05-06 Danilo Å egan - - * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. - -2003-05-03 Havoc Pennington - - * src/keybindings.c (handle_move_to_workspace): when moving - window to another workspace, don't switch to that workspace. - - * src/window.c (menu_callback): when moving window to another - workspace, don't switch to that workspace. - -2003-05-03 Havoc Pennington - - * configure.in: 2.5.1 - - * NEWS: update - -2003-05-01 Rob Adams - - * src/constraints.c (constraint_onscreen_applies_func): Don't - apply onscreen constraints to full screen windows. Fix for - #110048 - -2003-04-29 Havoc Pennington - - * src/bell.h: include Xlib.h before XKBlib.h which is required on - Solaris. #111877 from Peter O'Shea - -2003-04-23 Havoc Pennington - - * src/keybindings.c (process_keyboard_move_grab): support - diagonal keypad keybindings, from Dafydd Harries - -2003-04-21 Havoc Pennington - - * purge HAVE_GTK_MULTIHEAD from the source code, not just from - configure.in. Yes I am a loser. - -2003-04-19 Masahiro Sakai - - * configure.in: call AC_LIBTOOL_WIN32_DLL. - - * src/Makefile.am: add -no-undefined to libmetacity_private_la_LDFLAGS - and write dependency libraries in libmetacity_private_la_LIBADD. - -2003-04-06 Rob Adams - - * src/place.c (find_next_cascade): cascade on xinerama with - pointer instead of on first xinerama. - -2003-04-05 Rob Adams - - Update placement policy for screen with multiple xineramas. - Windows will be placed preferentially on the xinerama with the - pointer, and progressively further away as needed to find a place - where the window does not overlap other windows. - - * src/place.c (rect_fits_in_work_area): function - fit_rect_in_xinerama greatly simplified to work with new placement - policy. - (find_first_fit): implement new first fit placement scheme - - * src/screen.c (meta_screen_get_xinerama_neighbor): look for an - xinerama in the xinerama list that is adjacent to the specified - xinerama. - (meta_screen_get_natural_xinerama_list): return a list of - xineramas in the order to be preferred by the placement algorithm - as determined by the current location of the pointer. - - * src/screen.h: add function prototypes and an enum used by - meta_screen_get_xinerama_neighbor. - -2003-04-05 Rob Adams - - * src/place.c (center_tile_rect_in_area): Fix a minor off-by-one - error. See #110079. - -2003-03-30 Rob Adams - - * src/window.c (meta_window_move_resize_internal): When passing - frame geometry to meta_window_constrain, send null if no frame. - Possible fix for #109039. - -2003-03-29 Havoc Pennington - - * src/wm-tester/test-gravity.c (main): add --noframes option for - testing, showing how broken we currently are. - -Fri Mar 28 14:13:37 2003 Soeren Sandmann - - * src/window.c (update_resize): Only cap refresh rate when not - using SYNC. Remove bogus update-if-we-moved-more-than-a-delta. - - * src/window.c (update_move): Don't cap refresh rate during - moves. Remove bogus update-if-we-moved-more-than-a-delta. - -2003-03-26 Havoc Pennington - - * NEWS: update - - * configure.in: release 2.5.0 - -Sun Mar 23 23:04:06 2003 Soeren Sandmann - - * src/display.c (meta_spew_event): just return if we are not - verbose. - -2003-03-11 Havoc Pennington - - Should fix #108108, #106217, tracked down by Owen Taylor and - Frederic Crozat - - * src/window.c (meta_window_foreach_transient): change - MetaWindowForeachFunc to return a boolean for whether to continue - (meta_window_foreach_ancestor): new function - (window_should_be_showing): use meta_window_foreach_ancestor - (unminimize_window_and_all_transient_parents): ditto - (update_sm_hints): ditto - (meta_window_is_ancestor_of_transient): ditto - - * src/stack.c (get_maximum_layer_of_ancestor): use - meta_window_foreach_ancestor - -2003-03-16 Rob Adams - - * window.c (meta_window_show_menu): Free old window menu if it - already exists so we don't end up with more than one. Fix for - #108392. - -2003-03-14 Rob Adams - - * contraints.c (get_outermost_screen_positions): Don't try to - force a window onscreen by more than its width. Fix for #94815. - -2003-03-13 Rob Adams - - Make it so that the alt-tabbing won't try to go to a minimized - window by default. Fix for #107071. - - * display.c (meta_display_get_tab_list): use a GList instead of a - GSList - (meta_display_get_tab_next): use meta_display_get_tab_list to - decide what the next/previous tab window should be. - - * display.h (meta_display_get_tab_list): update function prototype - to return GList instead of GSList. - - * screen.c (meta_screen_ensure_tab_popup): update function to deal - with GList returned by meta_display_get_tab_list instead of GSList. - -2003-03-13 Christian Rose - - * configure.in: Added "ml" to ALL_LINGUAS. - -2003-03-11 Paul Duffy - - * configure.in: Added "ga" to ALL_LINGUAS - -2003-03-11 Rob Adams - - * src/constraints.c (meta_window_constrain): include left frame - geometry when maximizing or fullscreening windows. Fix for - #108127. - -2003-03-10 Roozbeh Pournader - - * configure.in: Added "fa" to ALL_LINGUAS. - -2003-02-27 Havoc Pennington - - Switch over to new constraints code, unquestionably introduces - some bugs, but should get us on the right path. - - * src/window.c (meta_window_get_work_area_all_xineramas): create - this function again as it turned out to be legitimate for window - position constraint - (adjust_for_gravity): use the width/height from the configure - request to compute the requested move - (meta_window_move_resize_internal): use meta_window_constrain - (update_size_hints): clamp max size to MAXSHORT to avoid worrying - about overflow stuff - - * src/constraints.c (meta_window_constrain): don't base placement - on uninitialized variables, general hacking - - * src/Makefile.am (metacity_SOURCES): add constraints.c, - constraints.h - - * src/constraints.c (meta_window_constrain): update the - cut-and-paste aspect ratio code to have latest bugfixes - -2003-03-08 Rob Adams - - * src/window-props.c (reload_normal_hints): Check that window min - and max size hints are at least 1. Fix for #107110. - -2003-02-27 Havoc Pennington - - Changes made on plane from FOSDEM, syncing from laptop. - - * src/main.c (main): add more debug spew about conditional - build stuff - (main): panic to "Simple" theme - - * src/window.c, src/window-props.c: move WM_NORMAL_HINTS and - WM_PROTOCOLS to new property system; don't queue move resize on - updating WM_PROTOCOLS; move WM_HINTS to new property system; - reload icon in an idle handler. - -2003-02-28 Mark McLoughlin - - Give me back my keys. - - * src/keybindings.c: (meta_window_grab_keys): don't - grab keys on DOCK windows. - - * src/window.c: (recalc_window_type): re-grab the - keys. - -2003-02-26 Dmitry G. Mastrukov - - * configure.in: Added Belarusian to ALL_LINGUAS. - -2003-02-26 Mark McLoughlin - - * src/keybindings.c: (handle_panel_keybinding): release - the keyboard grab before sending the action message to - the panel. - -2003-02-24 Mark McLoughlin - - Take control of the panel's global keybindings. The - screenshot utility is hooked up using a special case - run_command and the menu and run dialog bindings are - done using the _GNOME_PANEL_ACTION ClientMessage - protocol. - - * src/display.[ch]: (meta_display_open): add some atoms. - - * src/keybindings.c: - (handle_panel_keybinding): impl to handle a keybinding - by sending an action message to the panel. - - * src/metacity.schemas.in: add schemas for the panel and - screenshot keybindings and the screenshot commands. - - * src/prefs.[ch]: (update_command), - (meta_prefs_get_gconf_key_for_command): impl special case - handling for the screenshot commands. They are stored at - the the end of the commands array but have named keys. - -2003-02-23 Havoc Pennington - - Patch from Rob Adams addresses #95014 (placement issues), - makes first fit algorithm "center tile", adds most code - for per-xinerama workspaces (#86682) but disables it for now. - - * src/workspace.c (meta_workspace_get_work_area_for_xinerama) - (meta_workspace_get_work_area_all_xineramas): new xinerama - functions, maintain workspace->work_areas with a different - work area for each xinerama. However for now all the work - areas are the same, because haven't quite figured out how - _NET_WM_STRUT is supposed to work - - * src/window.c: adapt to new meta_window_* xinerama APIs - (meta_window_get_work_area_current_xinerama): new xinerama - API - (meta_window_get_work_area_for_xinerama): new xinerama API - (constrain_position): be a bit more clever about which xinerama's - work area we choose to use. - - * src/stack.c: adapt to new Xinerama API - - * src/screen.c (reload_xinerama_infos): invalidate all work areas - (meta_screen_get_xinerama_for_rect): new function - (meta_screen_window_intersects_xinerama): new function - - * src/place.c (find_first_fit): change to use - "center tiling" (center a screen full of tiled windows, - rather than aligning them top left). Adapt to new - xinerama functions. - -2003-02-22 Rob Adams - - * src/metacity.schemas.in: change toggle_maximized to - toggle_maximize and toggle_shaded to toggle_shade in - action_double_click_titlebar long description to match the values - used by metacity - - * po/*.po: change toggle_maximized to toggle_maximize and - toggle_shaded to toggle_shade in action_double_click_titlebar long - description to match the values used by metacity - -2003-02-22 Rob Adams - - * window.c (set_wm_state): modify comment to explain why the icon - window element is set to None. Fix for #97357 thanks to Gregory - Merchan. - -2003-02-22 Havoc Pennington - - * README: fix a typo, pointed out by Steve Kemp - -2003-02-22 Havoc Pennington - - * src/prefs.c (MAX_REASONABLE_WORKSPACES): change max workspaces - to 36 #81855 - -2003-02-22 Havoc Pennington - - * src/display.c (event_callback): fix to unfocus window only when - you leave the window frame, not when you leave the window itself, - unless window has no frame. #100248 fix from Orien Vandenbergh - -2003-02-22 Havoc Pennington - - * src/display.c (meta_display_get_tab_next): when tabbing - backward, we are still tabbing *from* the most recently used - window, not from the least recently used window. - - * src/keybindings.c (struct _MetaKeyBinding): make keycode - unsigned to match XEvent - - Patch for #84999 based on patch from Mark McLoughlin - - * src/prefs.c: add an add_shift field to MetaKeyPref to - add shift when grabbing the given keybinding. - - * src/keybindings.c (rebuild_screen_binding_table) - (rebuild_window_binding_table): refactor to share code, - and honor add_shift field in MetaKeyPref - -2003-02-20 Havoc Pennington - - * src/stack.c (create_constraints): don't create constraints - between windows on different screens, #106086 tracked down - by Arvind - -2003-02-14 Arvind Samptur - - * src/screen.c: (meta_screen_new) : Update the workspace - names from gconf and set the NET_DESKTOP_NAMES atom. - Renamed update_workspace_names() to set_workspace_names(). - Fixes #105498 - -2003-02-13 Havoc Pennington - - * configure.in: require GTK+ 2.2.0 - - * src/ui.c (meta_ui_init): remove hackaround for Pango X core - fonts backend - -2003-02-05 Abel Cheung - - * configure.in: Added "en_GB" and "nl" to ALL_LINGUAS. - -2003-02-05 Akira TAGOH - - * src/main.c (usage): fix a typo and missing option. (#105186) - -2003-02-04 Havoc Pennington - - * src/themes/Simple/ChangeLog: nuke subdir ChangeLog, - there can be only one true ChangeLog. - -2003-01-30 Havoc Pennington - - * src/keybindings.c (process_event): match handlers to key events - using key codes, not key syms - -Thu Jan 30 22:55:16 2003 Jonathan Blandford - - * src/themes/Makefile.am (THEMES): add Simple to the list of - themes. - - * src/metacity.schemas.in: change default theme to Simple. - -2003-01-29 Havoc Pennington - - * src/menu.c (meta_window_menu_new): don't create workspaces - menu items if only 1 workspace. Fix for #101952 from - Orien Vandenbergh - -2003-01-28 Bill Haneman - - * Re-instated visual-bell patch - (please see ChangeLog entry for 2002-12-16 for details). - - * src/prefs.c: - (visual_bell_type_from_string): - Accept a NULL string for 'visual-bell-type'. - -2003-01-25 Havoc Pennington - - * src/stack.c (window_is_fullscreen_size): When checking if a - window is fullscreen size, only require it to be at the origin - of the work area, not at the origin of the screen/xinerama. - Still require it to be full screen in width x height. - May fix xine in the case where the user has a top panel. - - * src/window.c (constrain_position): restore the ability for - undecorated windows to position themselves overlapping the top - panel, but don't let decorated windows do so. Oh the hacks... - -2003-01-08 Havoc Pennington - - * src/screen.c (meta_screen_apply_startup_properties): small code - snippet to fix startup sequences that set legacy class/name - -2003-01-22 Havoc Pennington - - * src/async-getprop.c (async_get_property_handler): do not read - sizeof(long) off the X connection. The X protocol does not vary - by architecture. Fixes longstanding hang on all 64-bit platforms. - -2003-01-22 Havoc Pennington - - * src/tools/Makefile.am: fix conditional so we get - metacity-properties.c in the distribution #103071 - -2003-01-22 Havoc Pennington - - * src/window.c (update_struts): be robust against the panel's - lame "set a negative number for struts" thing, even though - we'll also fix the panel. - -2003-01-21 Havoc Pennington - - Fix for the "mangles focus window when switching workspaces - and using mouse focus" bug - - * src/stack.c (meta_stack_get_default_focus_window_at_point): new - function - - * src/screen.c (meta_screen_focus_mouse_window): new function - (meta_screen_focus_default_window): new function - - * src/workspace.c (meta_workspace_activate): use the - new meta_screen_focus_default_window() - -2003-01-17 Havoc Pennington - - * src/window.c (meta_window_handle_mouse_grab_op_event): fix event - compression code to use GDK algorithm suggested by Owen, should be - more efficient. - -2003-01-22 Christian Rose - - * configure.in: Added "mn" to ALL_LINGUAS. - -2003-01-21 Havoc Pennington - - * src/display.c (event_callback): only hop window to the current - workspace if the window was previously minimized. Should keep - mozilla from popping windows over to your current workspace. - -2003-01-20 Havoc Pennington - - Attempt to fix #85916 - - * src/keybindings.c (primary_modifier_still_pressed): new function - (handle_workspace_switch): handle modifier release prior to - getting the grab - (do_choose_window): handle modifier release prior to getting the - grab - - * src/keybindings.c (grab_keyboard): properly return failure - if the GrabKeyboard doesn't work - -2003-01-19 Havoc Pennington - - * configure.in: add note about how this is the unstable branch, - set version to 2.5.0 - -2003-01-14 Havoc Pennington - - * src/window.c (meta_window_maximize, meta_window_unmaximize) - (meta_window_make_fullscreen, meta_window_unmake_fullscreen): - recalc_window_features() after making these changes, should fix - #103317 - -2003-01-14 Rob Adams - - * src/prefs.c: Increase the number of run_command bindings in - screen_bindings from 12 to 32. - - * src/prefs.h: Increase the number of META_KEYBINDING_COMMAND_N - macros from 12 to 32. - - * src/keybindings.c: Increase the number of run_command handlers - from 12 to 32. - -2003-01-11 Havoc Pennington - - * src/window.c (meta_window_handle_mouse_grab_op_event): implement - compression of motion events (drop all but the most recently - received), guessing at fixes for #103009 - -2003-01-11 Havoc Pennington - - * configure.in: add ability to --disable-shape - -2003-01-11 Akira TAGOH - - * configure.in: fix the behavior of --enable-*. - -2003-01-10 Havoc Pennington - - * src/Makefile.am (desktopfiles_in_files): revert that change, I - got the wrong .desktop file. doh. - -2003-01-10 Havoc Pennington - - * src/Makefile.am (desktopfiles_DATA): don't install .desktop file - for properties dialog if we aren't building/installing the - properties dialog. - -2003-01-10 Havoc Pennington - - * NEWS: update - - * configure.in: bump to 2.4.13, require 2.2.0 for multihead - -2003-01-09 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Use a line for the titlebar - text bg. - -2003-01-09 Havoc Pennington - - * src/window.c (recalc_window_features): argh, we were making all - dialogs skip taskbar; when did that get added. Fix to match - libwnck, only skip taskbar when the dialog is transient for some - other app window. - -2003-01-09 Havoc Pennington - - * src/metacity.schemas.in: change Windows+click back to Alt+click, - Windows+click just surprised everybody and didn't work half the - time. Maya users can configure it, and GTK DND can change its - default. - -2003-01-08 Havoc Pennington - - * src/metacity.schemas.in: assign Alt+F12 to shade window, - per #102658 - -2003-01-07 Havoc Pennington - - * src/screen.c (update_num_workspaces): fix off-by-one, patch from - readams@hmc.edu, #102806 - -2003-01-06 Arvind Samptur - - * src/window.c: (constrain_position) don't apply - offscreen height difference. This would get the - window under the panel on a resize or a move. - Fixes #102418 - -2003-01-05 Havoc Pennington - - * src/screen.c (meta_screen_calc_workspace_layout): invert - vertical_workspaces cases (we want to go down each column if - it's vertical, and across each row if horizontal). Patch - from readams@hmc.edu - -2003-01-05 Pablo Saratxaga - - * configure.in: Added Macedonian (mk) to ALL_LINGUAS - -2003-01-05 Havoc Pennington - - * src/frames.c (meta_frames_apply_shapes): put in the - HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0 - -2003-01-05 Havoc Pennington - - * src/window.c (meta_window_show): focus new windows even in - mouse focus mode, #89981, patch from readams@hmc.edu - -2003-01-05 Havoc Pennington - - * src/workspace.c (meta_workspace_get_neighbor): redo using new - calc_workspace_layout to fix #98302 - - * src/util.c (topic_name): shorten default prefix - - * src/screen.c (meta_screen_calc_workspace_layout): enhance this - to handle all the funky layouts and calculate more information - than before - -2003-01-05 Pauli Virtanen - - * configure.in (ALL_LINGUAS): Added "fi" (Finnish). - -2003-01-05 Havoc Pennington - - * src/frames.c (meta_frames_apply_shapes): handle - the client having a shape mask, fixes #101806 - - * src/core.c (meta_core_get_client_xwindow): new function - - * src/frame.c, src/frame.h: keep a flag for whether we need to - update the frame shape - - * src/window.c (meta_window_new): select for ShapeNotify - - * src/display.h, src/display.c: actually query the shape - extension, instead of just using it all over the place. - - * src/prefs.c (update_application_based): don't let people turn on - application_based, as it just causes funky bugs. We can reenable - the pref when/if it ever does something useful. - -2003-01-03 Havoc Pennington - - * src/display.c: include the Xrandr header file - - * src/window.c (meta_window_fill_horizontal) - (meta_window_fill_vertical): maximize to work area, not entire - screen. doh. - -2002-12-19 Ross Burton - - * doc/metacity-theme.dtd: Fix a typo and loosen the requirements - for the resize element. - -2002-12-19 Havoc Pennington - - * Reverted visual bell patch, #99886 - -2002-12-19 Yanko Kaneti - - * configure.in: (ALL_LINGUAS) Added Bulgarian (bg). - -2002-12-18 Havoc Pennington - - * src/window.c (meta_window_new): select ColormapChangeMask - on toplevel windows, maybe a partial fix for #101478 - -Tue Dec 17 17:50:19 2002 HideToshi Tajima - - * src/themes/AgingGorilla/metacity-theme-1.xml: added support for - border only windows. #100984. - -2002-12-17 Havoc Pennington - - * src/display.c (meta_display_begin_grab_op): don't use "(null)" - for null pointers, use "none", so I can distinguish - glibc-generated (null) which is a bug. - (key_event_description): ditto - (meta_display_begin_grab_op): ditto - - * src/window.c (update_sm_hints): ditto - - * src/keybindings.c (reload_modmap): ditto - (meta_display_process_key_event): ditto - -2002-12-17 Havoc Pennington - - * src/metacity.schemas.in: s/focussed/focused/ - -2002-12-17 Havoc Pennington - - * src/xprops.c (validate_or_free_results): add a comma to message #101401 - -2002-12-16 Bill Haneman - - * configure.in: - Check for XKB extension. - - * src/Makefile.am: - Added bell.c and bell.h to metacity sources. - - * src/common.h: - (MetaFrameFlags): - Added META_FRAME_IS_FLASHING flag. - - * src/frame.h: - (MetaFrame): Added is_flashing field. - - * src/frame.c: - (meta_window_ensure_frame): - Initialize the is_flashing flag to FALSE. - (meta_frame_get_flags): - Handle the FRAME_IS_FLASHING flag. - (meta_window_destroy_frame): - Call meta_bell_notify_frame_destroy. - - * src/prefs.h: - (MetaPreference): - Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL, - META_PREF_VISUAL_BELL_TYPE. - (MetaVisualBellType): New enum. - (meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): - (meta_prefs_get_visual_bell_type): - New accessor declarations. - - * src/prefs.c: - (#includes): Include "display.h", since we now call - meta_displays_list() in our update func. - (#defines): - Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL, - and KEY_VISUAL_BELL_TYPE. - (provide_visual_bell, bell_is_audible, visual_bell_type): - New static state variables. - (update_visual_bell): New method to update visual-bell - boolean settings from keys "visual_bell" and "audible_bell". - (update_visual_bell_type): - New method to update visual-bell type setting. - (visual_bell_type_from_string) : - New method to convert from gconf string to visual-bell - type enum. Only currently recognized values are "fullscreen" - and "frame_flash". - (change_notify): - Handle changes to visual and audible bell properties. - (meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): - (meta_prefs_get_visual_bell_type): - New accessor definitions. - (meta_prefs_init): Added a second call to notify_add, - listens to "/desktop/gnome/interface" as well as "apps/metacity". - Also call the update funcs for the new visual-bell gconf keys. - (meta_preference_to_string): - Handle the visual/audible bell cases. - - * src/bell.h: - (meta_bell_notify); - New method, calls a visual notifucation - method based on the visual-bell-type, or none if the type - is unrecognized or invalid. - (meta_bell_set_audible): - New public method for setting the audible bell setting, - used in updater for new gconf key "audible_bell". - (meta_bell_init): - Initialize the bell notification for a display. - (meta_bell_shutdown): - Shutdown the bell notification for a display. - (meta_bell_notify_frame_destroy): - Remove pending idle handlers on notification. - - * src/bell.c: - Include "bell.h", and conditionally include . - (meta_bell_set_audible): - If XKB is present, enable/disable the audible system - bell based on the gconf key /desktop/gnome/interface/audible_bell. - (meta_bell_init): - Query and initialize XKB if present, register for notification - on the bell, and set audible bell according to gconf settings. - (meta_bell_flash_screen): - Maps and unmaps a fullscreen X window (painted white, then - black), which causes a fullscreen 'flash' transient. - (meta_bell_flash_window_frame): - Flashes the titlebar of a specified window. - (meta_bell_flash_frame): - Calls meta_bell_flash_window_frame on the window which - was the source of the current bell event, or the currently - focussed window if the event source cannot be determined. - (meta_bell_unflash_frame): - Restore the frame's appearance to normal. - (meta_bell_flash_fullscreen): - Call meta_bell_flash_fullscreen for all screens. - (meta_bell_shutdown): - New method. - (meta_bell_notify_frame_destroy): - Remove pending idle handlers on notification, - testing for frame->is_flashing first. - - * src/display.h: - (MetaDisplay): Added xkb_base_event_type field. - - * src/display.c: - Check for XKB and include "X11/XKBlib.h" if present. - (meta_display_open): Call meta_bell_init. - (event_callback): Call meta_bell_notify - when event comes from XKB and is XkbBellNotify - (prefs_changed_callback): - Handle META_PREF_AUDIBLE_BELL notification. - - * src/screen.h: - (MetaScreen): Add flash_window field. - - * src/screen.c: - (meta_screen_new): - Initialize flash_window field. - - * src/theme.c: - (theme_get_style): - New heuristic for focus-style, to invert sense of focus - flag when META_FRAME_IS_FLASHING flag is set. - - * src/metacity.schemas.in: - Added scheme information for - /apps/metacity/general/visual_bell, - /apps/metacity/general/audible_bell, and - /apps/metacity/general/visual_bell_type. - -2002-12-16 Havoc Pennington - - * src/window-props.c (init_wm_name): argh, screwed that up. get - WM_NAME as VALUE_TEXT_PROPERTY #101383 - -2002-12-16 Bill Haneman - - * configure.in: - Check for XKB extension. - - * src/Makefile.am: - Added bell.c and bell.h to metacity sources. - - * src/common.h: - (MetaFrameFlags): - Added META_FRAME_IS_FLASHING flag. - - * src/frame.h: - (MetaFrame): Added is_flashing field. - - * src/frame.c: - (meta_window_ensure_frame): - Initialize the is_flashing flag to FALSE. - (meta_frame_get_flags): - Handle the FRAME_IS_FLASHING flag. - (meta_window_destroy_frame): - Call meta_bell_notify_frame_destroy. - - * src/prefs.h: - (MetaPreference): - Added META_PREF_VISUAL_BELL, META_PREF_AUDIBLE_BELL, - META_PREF_VISUAL_BELL_TYPE. - (MetaVisualBellType): New enum. - (meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): - (meta_prefs_get_visual_bell_type): - New accessor declarations. - - * src/prefs.c: - (#includes): Include "display.h", since we now call - meta_displays_list() in our update func. - (#defines): - Define KEY_VISUAL_BELL, KEY_AUDIBLE_BELL, - and KEY_VISUAL_BELL_TYPE. - (provide_visual_bell, bell_is_audible, visual_bell_type): - New static state variables. - (update_visual_bell): New method to update visual-bell - boolean settings from keys "visual_bell" and "audible_bell". - (update_visual_bell_type): - New method to update visual-bell type setting. - (visual_bell_type_from_string) : - New method to convert from gconf string to visual-bell - type enum. Only currently recognized values are "fullscreen" - and "frame_flash". - (change_notify): - Handle changes to visual and audible bell properties. - (meta_prefs_get_visual_bell, meta_prefs_bell_is_audible): - (meta_prefs_get_visual_bell_type): - New accessor definitions. - (meta_prefs_init): Added a second call to notify_add, - listens to "/desktop/gnome/interface" as well as "apps/metacity". - Also call the update funcs for the new visual-bell gconf keys. - (meta_preference_to_string): - Handle the visual/audible bell cases. - - * src/bell.h: - (meta_bell_notify); - New method, calls a visual notifucation - method based on the visual-bell-type, or none if the type - is unrecognized or invalid. - (meta_bell_set_audible): - New public method for setting the audible bell setting, - used in updater for new gconf key "audible_bell". - (meta_bell_init): - Initialize the bell notification for a display. - (meta_bell_shutdown): - Shutdown the bell notification for a display. - (meta_bell_notify_frame_destroy): - Remove pending idle handlers on notification. - - * src/bell.c: - Include "bell.h", and conditionally include . - (meta_bell_set_audible): - If XKB is present, enable/disable the audible system - bell based on the gconf key /desktop/gnome/interface/audible_bell. - (meta_bell_init): - Query and initialize XKB if present, register for notification - on the bell, and set audible bell according to gconf settings. - (meta_bell_flash_screen): - Maps and unmaps a fullscreen X window (painted white, then - black), which causes a fullscreen 'flash' transient. - (meta_bell_flash_window_frame): - Flashes the titlebar of a specified window. - (meta_bell_flash_frame): - Calls meta_bell_flash_window_frame on the window which - was the source of the current bell event, or the currently - focussed window if the event source cannot be determined. - (meta_bell_unflash_frame): - Restore the frame's appearance to normal. - (meta_bell_flash_fullscreen): - Call meta_bell_flash_fullscreen for all screens. - (meta_bell_shutdown): - New method. - (meta_bell_notify_frame_destroy): - Remove pending idle handlers on notification, - testing for frame->is_flashing first. - - * src/display.h: - (MetaDisplay): Added xkb_base_event_type field. - - * src/display.c: - Check for XKB and include "X11/XKBlib.h" if present. - (meta_display_open): Call meta_bell_init. - (event_callback): Call meta_bell_notify - when event comes from XKB and is XkbBellNotify - (prefs_changed_callback): - Handle META_PREF_AUDIBLE_BELL notification. - - * src/screen.h: - (MetaScreen): Add flash_window field. - - * src/screen.c: - (meta_screen_new): - Initialize flash_window field. - - * src/theme.c: - (theme_get_style): - New heuristic for focus-style, to invert sense of focus - flag when META_FRAME_IS_FLASHING flag is set. - - * src/metacity.schemas.in: - Added scheme information for - /apps/metacity/general/visual_bell, - /apps/metacity/general/audible_bell, and - /apps/metacity/general/visual_bell_type. - -2002-12-16 Havoc Pennington - - * src/window-props.c: use META_PROP_VALUE_STRING_AS_UTF8 so - we convert old Latin-1 WM_NAME to UTF-8 - - * src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a - latin1 string then convert. - -2002-12-15 Havoc Pennington - - * src/window.c (meta_window_new): get window name before anything - else. - - * src/xprops.c (validate_or_free_results): instead of suggesting - how to get window title etc. with xprop, just print out the - window title. much better. - -2002-12-15 Havoc Pennington - - * src/xprops.c (validate_or_free_results): make the warning about - strange property contents blame the application and explain how to - use xprop to diagnose which app is causing the problem. - -2002-12-15 Havoc Pennington - - * src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL - string to gconf_client_set_string #101237 - -2002-12-13 Havoc Pennington - - * src/tools/Makefile.am (Desktop_in_files): only install .desktop - file for metacity-properties if we actually install - metacity-properties - - * src/display.c (event_callback): not focusing on button 2 click - was crack, revert that change. - -2002-12-09 Havoc Pennington - - * AUTHORS: add myself here, bug #100789 - - * src/display.c (meta_display_set_grab_op_cursor): drop - PointerMotionHintMask - - * src/window.c (meta_window_handle_mouse_grab_op_event): don't use - XQueryPointer, as we aren't using PointerMotionHint now - - * src/display.c (event_callback): rearrange a bit of code - for slight speedup and clarity - - * src/window.c (update_resize) - (meta_window_handle_mouse_grab_op_event): implement - usage of the _METACITY_UPDATE_COUNTER - (meta_window_handle_mouse_grab_op_event): fix code that - used event->xbutton with a motion event - - * src/display.c (meta_display_open): add new atoms, and - initialize Xsync if we have it - (grab_op_is_resizing): new function - (meta_display_begin_grab_op): create an alarm monitoring - window's _METACITY_UPDATE_COUNTER - (meta_spew_event): conditionalize this on WITH_VERBOSE_MODE - and print alarm events. - - * src/window.c (meta_window_new): fetch _METACITY_UPDATE_COUNTER - - * configure.in (HAVE_XSYNC): check for Xsync extension - -Mon Dec 9 22:09:56 2002 Soeren Sandmann - - * src/display.c, src/window.c: Handle crossing events during - resizing. (#93384). - -2002-12-09 Havoc Pennington - - * configure.in: 2.4.8 - -2002-12-08 Havoc Pennington - - * README: updates - - * src/window.c (MAX_RESIZES_PER_SECOND): change to 20 instead of - 30, just as an experiment. - (MOVE_THRESHOLD): change 15 to 20 - (RESIZE_THRESHOLD): change 15 to 20 - - * src/util.c (ensure_logfile): kill this function when verbose - mode is disabled. - -2002-12-08 Havoc Pennington - - * src/window.c (meta_window_fill_vertical) - (meta_window_fill_horizontal): new functions to resize to - fill screen - - * src/keybindings.c: add vert, horiz maximize - - * src/prefs.c: had vert, horiz maximize - - * src/metacity.schemas.in: shorten some overlong short - descriptions that make the keybindings capplet look ugly. - Add maximize_vertically, maximize_horizontally keys. - -2002-12-08 Havoc Pennington - - * src/prefs.c (meta_prefs_get_application_based): make this always - return FALSE for now, to avoid bug reports. - - * src/util.c (ensure_logfile): put "opened log file" message on - stderr so it will normally land in ~/.xsession-errors - - * configure.in: remove extra AC_ARG_PROGRAM - - * src/display.c (event_callback): handle the toggle-verbose message - - * src/tools/metacity-message.c: add a toggle-verbose message, been - meaning to do this for a while. - - * src/util.c (meta_set_verbose): if verbose mode is enabled and we - don't support it, then exit. - - * src/prefs.c: allow building without gconf (currently means some - prefs are no-ops) - - * src/util.c, src/util.h: support defining macros to - kill all verbose output entirely. (Removes the code and strings - associated with it) - - * configure.in: don't get METACITY_PROPS_LIBS if not building the - config dialog. - (HAVE_GCONF): allow building sans gconf, if you are size-sensitive - and not using gnome. - (WITH_VERBOSE_MODE): add ability to disable all the verbose debug - spew strings, to shrink the binary. - (--disable-sm): allow SM support to be forced on or off - (--disable-startup-notification): allow forcing this on or off - -2002-12-08 Havoc Pennington - - * src/prefs.c (update_workspace_name): also treat empty string as - "unset" in this function. - -Thu Dec 5 18:41:02 2002 HideToshi Tajima - - * src/window.h (META_WINDOW_IN_NORMAL_TAB_CHAIN, - META_WINDOW_IN_DOCK_TAB_CHAIN) : never use a window with input = - FALSE take_focus = FALSE in the normal and dock tab chains. #90409 - -Thu Dec 5 13:56:52 2002 HideToshi Tajima - - * src/display.c (event_callback): move a window to the current - space on the MapRequest when it's not on the space yet. #100390 - -2002-12-01 Havoc Pennington - - * src/frames.c (get_control): rearrange this function a bit, so - that we return CONTROL_TITLE for anything above the bottom of the - titlebar, in the fallback case where no other control was found. - Also, don't return RESIZE_N for title rect above the top resize - size, unless the window is resizable. - (meta_frames_button_press_event): only start a move when clicking - control TITLE, not control NONE. This way you don't start moving - a nonresizable window if you click its edges. - -2002-12-01 Havoc Pennington - - * src/tools/Makefile.am: conditionalize building the config dialog - - * configure.in (BUILD_CONFIG_DIALOG): add --enable-config-dialog - option to turn on the "window focus" dialog. This is part of - deprecating this dialog. - -2002-11-30 Havoc Pennington - - * src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds - - * src/util.c (utf8_fputs): hmm, return a value - - * src/screen.c (meta_screen_apply_startup_properties): new - function to apply initial workspace based on startup sequence. - - * src/window.c (meta_window_new): load _NET_STARTUP_ID - (meta_window_get_startup_id): new function - - * src/window-props.c (meta_display_init_window_prop_hooks): add - hooks for _NET_STARTUP_ID - - * src/display.c (event_callback): send property events to - groups. - - * src/xprops.c (meta_prop_get_values): make a type of INVALID - mean to ignore that property (don't fetch its value). - - * src/group.c (meta_group_property_notify): new function - - * src/screen.c (set_supported_hint): support _NET_STARTUP_ID - - * src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms - we initialize - - * src/group-private.h: private header shared between - group-props.c, group.c - - * src/group-props.h, src/group-props.c: new files to contain - functions for retrieving group properties - - * src/window.c (meta_window_same_application): change this a bit - to work with new definition of group - - * src/group.c (meta_window_get_group): always create a group for - every window, using the window's own ID as group leader if - required. - - * src/window.c (update_wm_hints): handle changes to group leader - - * src/group.c (meta_window_group_leader_changed): new function - - * src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH, - not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen. - - * src/screen.c (startup_sequence_timeout): when timing out a - startup sequence, send a remove message, don't just time it out - locally. - -2002-11-26 Calum Benson - - * src/themes/Crux : - - Removed alpha layers from the pixmaps that don't need them. - Fixes #98389, results in 10-15% speedup on most machines. - -2002-11-26 Glynn Foster - - * configure.in: 2.4.5 - -2002-11-23 Dan Mills - - * Makefile.am: remove theme-format.txt, it's now in doc/. - -2002-11-22 Havoc Pennington - - * src/window.c (meta_window_change_workspace): patch from - Hidetoshi Tajima to move a window's transients when moving - the window between workspaces. #98900 - -2002-11-21 Havoc Pennington - - * src/display.c (meta_display_open): init ret_to to - RevertToPointerRoot out of sheer paranoia; don't want no - RevertToNone in my code! - -2002-11-21 Havoc Pennington - - * src/window.c (update_initial_workspace): delete - (meta_window_new): add getting initial workspace to the batch - property get call - - * src/window-props.c (meta_display_init_window_prop_hooks): add - net_wm_desktop and win_workspace support - -2002-11-20 Havoc Pennington - - * src/window-props.c (set_icon_title): remove unused variable - - * src/screen.c (meta_screen_new): read an existing - _NET_CURRENT_DESKTOP and restore it if set. Makes a restart even - less visible. - - * src/workspace.c (set_active_space_hint): don't set the hint - during the process of unmanaging a screen - -2002-11-20 Havoc Pennington - - * configure.in: add doc/Makefile - - * doc/metacity-theme.dtd: add DTD for themes from Ross Burton - - * doc/Makefile.am: doc subdir - - * doc/theme-format.txt: move to doc subdir - -2002-11-19 Havoc Pennington - - Should really fix #98303 - - * src/prefs.c (meta_prefs_change_workspace_name): add - bad hack to treat empty string the same as null - - * src/menu.c (get_workspace_name_with_accel): allocate one more - than the length of "name" so we have room for a nul byte (and - don't malloc(0) on empty strings). Also some formatting cleanups. - -2002-11-19 Havoc Pennington - - * src/window.c (meta_window_client_message): do a - recalc_window_features after setting new wm_state in order - to update skip_pager in addition to wm_state_skip_pager - (set_net_wm_state): base _NET_WM_STATE on skip_pager not - wm_state_skip_pager, ditto for skip_taskbar - -2002-11-19 Havoc Pennington - - Fix #98303 and assorted cleanup - - * src/prefs.c (meta_preference_to_string): handle - META_PREF_WORKSPACE_NAMES - - * src/menu.c (get_workspace_name_with_accel): assert that the - workspace has a name - - * src/screen.c (meta_screen_ensure_workspace_popup): assert that - we got a workspace name - (meta_screen_ensure_workspace_popup): assert that we got a - workspace name - - * src/prefs.c (update_workspace_name): fix screwiness (strcmp with - a freed string, assorted bad logic) - (init_workspace_names): assert that we filled in a default - workspace name - (meta_prefs_get_workspace_name): assert non-NULL workspace name - -2002-11-16 Bill Haneman - - * src/themes/Atlanta/metacity-theme-1.xml: - Changed outer bevel and focus line color to - work better with inverse themes (no effect on - Default or other existing gtk+ themes). - -2002-11-13 Havoc Pennington - - * src/ui.c (get_cmap): fix a multihead safety thing (use proper - system colormap for the drawable's screen) - -Thu Nov 14 17:30:10 2002 Jonathan Blandford - - * src/Makefile.am (libmetacityinclude_HEADERS): include common.h. - -2002-11-12 Havoc Pennington - - * src/theme.c (draw_op_as_pixbuf): don't read from op->data.image - when the op is an icon - -2002-11-12 Havoc Pennington - - * src/stack.c (meta_stack_get_default_focus_window): never use a - window with input = FALSE take_focus = FALSE as the default focus - window #95454 fix from Hidetoshi Tajima - -2002-11-10 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Major changes - to look of theme. I'd also recommend "minimize,maximize:close" - for the button_layout, it looks really slick :-). - -2002-11-08 Mark McLoughlin - - * src/workspace.c: - (meta_motion_direction_to_string), - (meta_screen_corner_to_string): impl for nice debugging. - (meta_workspace_get_neighbor): fix broken logic and - cleanup debugging. - -Thu Nov 7 17:07:21 2002 Jonathan Blandford - - * src/libmetacity-private.pc.in: add a pc file for - libmetacity-private - - * src/Makefile.am: Install a few files as a shared library so that - others can draw metacity themes. - -2002-11-06 Havoc Pennington - - * src/keybindings.c (grab_keys): push an error trap around the - whole window-key-grab loop - (ungrab_all_keys): avoid requiring return value from the error - trap, unless in debugging mode - (regrab_window_bindings, regrab_screen_bindings): push traps - around the loops, for efficiency - - * src/display.c (event_callback): fix from Padraig O'Briain to - compress extra MappingNotify events to avoid extra work. - -2002-11-05 Calum Benson - - * src/themes/Crux/active-restore-button.png: - * src/themes/Crux/inactive-restore-button.png: - * src/themes/Crux/metacity-theme-1.xml: add a restore button - for maximized windows, and un-hard-code titlebar text colors. - Fixes #97759. - -2002-11-05 Havoc Pennington - - * src/workspace.c (meta_workspace_get_neighbor): apply patch from - Nikos Mouat to fix this function - -2002-11-04 Havoc Pennington - - * src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in - case where scaling was done in both directions. - -2002-11-04 Havoc Pennington - - Patch from Brian Cameron to implement the vertical/horizontal - striped image accelerated scaling from the gtk pixbuf engine. - - * src/theme.c (scale_and_alpha_pixbuf): if an image is - vertical/horizontal stripes, use special extra-fast scaling - routines. - - * src/theme-parser.c (parse_draw_op_element): when loading an - image, mark it as vertically/horizontally striped when appropriate - -2002-11-04 Erwann Chenede - - - * src/xprops.c (meta_prop_get_values): changed __FUNCTION__ - to G_GNUC_FUNCTION as __FUNCTION__ is not portable. - -2002-11-03 Havoc Pennington - - * src/display.c (meta_display_grab): remove XSync calls from here - (meta_display_ungrab): remove XSync from here, but put in - an XFlush to be sure we get the ungrab sent. - - * src/util.c (meta_topic): track sync count here - - * src/errors.c: move sync count out of here - - Throughout: error spew on all XSync() calls - - * src/run-metacity.sh: don't set METACITY_DEBUG - -2002-11-03 Havoc Pennington - - * src/window-props.c (meta_display_init_window_prop_hooks): add - _NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support - - * src/window.c (meta_window_new): use window-props.h for - _NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME - -2002-11-03 Havoc Pennington - - * src/window.c (meta_window_new): use window-props.h stuff for a - couple of properties - (implement_showing): fix printf string - - * src/xprops.c (meta_prop_free_values): new function - - * src/window-props.h, src/window-props.c: start moving code that - handles loading window properties into this file. - -2002-11-03 Havoc Pennington - - * src/stack.c (create_constraints): filter out windows that aren't - in the stack for whatever reason, avoids a crash - -2002-11-03 Havoc Pennington - - * src/window.c (meta_window_calc_showing): split into "see if we - should be showing" and "actually show/hide" functions - (idle_calc_showing): rework to first unmap all newly-hidden - windows from bottom to top then map all newly-showing windows from - top to bottom resulting in fewer exposes, #95220 - -2002-11-03 Havoc Pennington - - * src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett - LeSage for which button backgrounds we draw when - -2002-11-03 Havoc Pennington - - * src/workspace.c (meta_workspace_get_name): new function, - and remove workspace->name field, instead just get the - name from prefs each time - - * src/screen.c (meta_screen_update_workspace_names): update the - gconf key to persist workspace names here, instead of changing - the names we use - - * src/util.c (topic_name): add META_DEBUG_PREFS - - * src/prefs.c: change NUM_COMMANDS to 32 to allow more custom - commands, implement workspace names - - * src/metacity.schemas.in: add workspace_names/name_NN gconf keys. - -2002-11-01 Christian Neumair - - * configure.in: We want at least autoconf 2.5. - -2002-10-29 Havoc Pennington - - * configure.in: 2.4.3, why not - -2002-10-28 Havoc Pennington - - * src/window.c (update_size_hints): use meta_prop_get_size_hints - - * src/xprops.c: add support for getting XSizeHints - -2002-10-28 Havoc Pennington - - * src/window.c, src/display.c: store the window menu on the - display and blow it away when a window closes, so we don't - get funny stuck menus. Patch from Martin Garton #87514 - -2002-10-27 Anders Carlsson - - * configure.in: Make XRandr detection work better. - -2002-10-27 Havoc Pennington - - * src/window.c (meta_window_free): move - meta_window_shutdown_group() much earlier in the destroy process. - May fix #96928 tracked down by Kjartan Maraas and Martin Garton. - - * src/group.c (meta_window_get_group): never add window to a group - after we've started unmanaging the window - -2002-10-26 Havoc Pennington - - * src/iconcache.c: include config.h - - * src/group.c: include config.h - - * src/frame.c: include config.h - - * src/core.c: include config.h so it doesn't crash all over the - place due to #ifdef HAVE_STARTUP_NOTIFICATION - - * src/util.c (meta_print_backtrace): export from this file - - * src/main.c (log_handler): print backtrace here - -2002-10-26 Havoc Pennington - - * src/wm-tester/main.c (evil_timeout): make windows randomly - transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928 - -2002-10-26 Havoc Pennington - - * src/xprops.c (meta_prop_get_text_property): new function - (meta_prop_get_wm_hints): new function - (meta_prop_get_class_hint): new function - -2002-10-26 Havoc Pennington - - * src/window.c (meta_window_new): use multi-value-get on a couple - of properties for testing - - * src/xprops.c (meta_prop_get_values): implement multi-value-get - - * src/window.c (update_mwm_hints): XFree motif hints as we changed - it to use Xmalloc - - * src/xprops.c: massively rework this to set up a - get-multiple-properties-at-once API. - - * src/async-getprop.c (ag_Xmalloc): new function - -2002-10-25 Havoc Pennington - - Add "busy cursor on app startup" support, conditionally - works - only if libstartup-notification is found, and in practice requires - a GTK patch that's not in yet. - - * src/screen.c: monitor startup events and set busy cursor if - appropriate - - * src/display.c (meta_display_open): create SnDisplay - - * configure.in: check for startup notification, - and add the cute "configure summary" at the end - -2002-10-24 Havoc Pennington - - * src/theme.c (meta_frame_layout_calc_geometry): if only one - right-corner button, use right_right_background not - right_left_background - -2002-10-24 Havoc Pennington - - * src/window.c (meta_window_get_icon_geometry): make public - - * src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab - highlight-window indicator on the icon, not the window itself, - if the window is minimized. - -2002-10-24 Havoc Pennington - - * src/display.c (meta_display_get_tab_list): put minimized windows - at the end of Alt+Tab, #89416 - -2002-10-23 Havoc Pennington - - * src/theme.c (meta_frame_layout_calc_geometry): initialize the - left button background rectangles. - -2002-10-21 Havoc Pennington - - Optimizations for managing new windows (do not all take effect if - METACITY_DEBUG=1). Bug #96404 - - * src/keybindings.c (meta_change_keygrab): use error trap nesting - and conditionalize on meta_is_verbose() to avoid a ton of XSync - - * src/display.c (meta_change_button_grab): ditto - - Throughout: move to new error trap setup to save on XSync calls, - new setup is: - - * src/errors.c (meta_error_trap_push_with_return): new function, - an error trap that needs to care about return value and thus - sync even if an outer trap still exists - (meta_error_trap_pop_with_return): new function - (meta_error_trap_pop): add "last_request_was_roundtrip" - argument allowing us to avoid XSync() if we just did - a GetProperty or whatever. - - * src/util.c (meta_warning): flush the warning file descriptor - - * src/Makefile.am (INCLUDES): define G_LOG_DOMAIN - -2002-10-20 Havoc Pennington - - * src/ui.c (meta_image_window_new): put multihead stuff in - HAVE_GTK_MULTIHEAD, reported by John Palmieri - -2002-10-20 Havoc Pennington - - * src/keybindings.c (handle_raise_or_lower): check above->mapped - before deciding if it overlaps the window being raiselowered, - fix from Stephane Chauveau - -2002-10-19 Jeremy Katz - - * configure.in: make Xrandr check less noisy - -2002-10-18 Havoc Pennington - - * src/effects.c (meta_effects_draw_box_animation): call - meta_image_window_new in multihead-safe way - - * src/ui.c (meta_image_window_new): multihead safety - -2002-10-18 Havoc Pennington - - * src/window.c (meta_window_refresh_resize_popup): only create the - resize popup if width_inc or height_inc are > 1 - - * src/resizepopup.c: Clear out all the weird tickmark cruft, - saves us about 2.5K of binary size, whee - (meta_ui_resize_popup_new): take display/screen arguments and make - multihead-safe #94349 - -2002-10-18 Havoc Pennington - - * src/keybindings.c (do_choose_window): don't start the cycle - process if the binding for switching windows has no modifier bits, - just focus the window immediately. - - * src/prefs.c, src/keybindings.c: add a keybinding to move between - windows that goes in the opposite direction. This is mostly - useful if you want to bind unmodified keys to the switch windows - functions, e.g. if you have "Forward" and "Back" keys on your - keyboard. Patch from Shilad Sen - -2002-10-18 Havoc Pennington - - * src/prefs.c, src/frames.c: add "what happens when you double - click the titlebar" setting, patch from Sean Middleditch bug - #95625. This is basically an "add Windows emulation mode" patch. - -2002-10-18 Havoc Pennington - - * src/metacity.schemas.in: move window-click to Super+click not - Alt+click by default. Super should be the Windows key on keyboards - that have one and are so configured. Prepare for the FAQ on this. - -2002-10-18 Havoc Pennington - - * src/window.c (constrain_size): fix min aspect handling, - patch from Martin Garton #94943 - -2002-10-18 Andras Timar - - * configure.in: Added hu to ALL_LINGUAS. - -2002-10-18 Havoc Pennington - - * src/stack.c (constrain_stacking): replace the old - apply_constraints with wacky new approach involving graphing all - the constraints then walking the graph. Fixes #94876 and probably - other stacking bugs as well, thanks to Arvind for tracking down - the issue. - - (compute_layer): add FIXME and reference to bug #96140 - -2002-10-17 Havoc Pennington - - * src/stack.c (apply_constraints): don't place - transient-for-whole-group windows above _each other_, only - above other windows in the group that aren't themselves - transient-for-whole-group. Should help with part of #94876 - -2002-10-17 Havoc Pennington - - * src/stack.c (apply_constraints): fix memory leak of - group_windows, and don't use the variable name "tmp" twice. Shadow - variables bad. - -2002-10-17 Havoc Pennington - - * src/tools/metacity-window-demo.c (dialog_cb): add code to create - big stacks of dialogs transient for each other, for testing. - -2002-10-16 Havoc Pennington - - * src/workspace.c: workspaces are all per-screen now, fix - accordingly - - * src/core.c: fix multihead workspace stuff - - * src/keybindings.c: multihead-rama - - * src/screen.c (meta_screen_show_desktop): new functions to - replace display equivalents - - * src/display.c (meta_display_get_workspace_by_screen_index): get - rid of this - (meta_display_get_workspace_by_index): get rid of this - (event_callback): handle _NET_SHOWING_DESKTOP message per-screen - - * src/screen.c (meta_screen_get_workspace_by_index): new function - - * src/screen.h (struct _MetaScreen): move workspace list, and - showing_desktop flag, to be per-screen - - * src/window.c (window_query_root_pointer): return whether pointer - is on window's screen - (meta_window_handle_mouse_grab_op_event): don't use coordinates - from other screens when updating a window operation on the current - screen. I can't believe no one has reported this... - -2002-10-16 Havoc Pennington - - * src/window.c (meta_window_client_message): update window layer - when above/below state is changed. Fixed by Ross Burton. - -2002-10-14 Federico Mena Quintero - - * src/display.c (event_callback): Ignore EnterNotify events when - the detail field is set to NotifyInferior. Fixes #95747. - -2002-10-12 Havoc Pennington - - * src/metacity.schemas.in: button layout key - - * src/prefs.c: Add button layout gconf key - (change_notify): use some "else if" instead of "if" where we - should have been - -2002-10-11 Havoc Pennington - - * src/display.c (event_callback): don't raise window on button 2 - click, only on button 1 and button 3. - - * src/frames.c (meta_frames_button_press_event): lower on button 2 - press on frame - - * src/core.c (meta_core_user_lower): new function - -2002-10-11 Havoc Pennington - - * src/stack.c (window_is_fullscreen_size): make the checks here - allow windows larger than the screen in addition to - exactly-screen-size - - * src/window.c (meta_window_configure_request): delete the "try to - auto-enter-fullscreen-state" hack here, because it was broken, and - the changes to the stacking code to move screen-size focused - windows to the fullscreen layer should work better. - (meta_window_new): remove auto-fullscreen hack from here too - -2002-10-09 Havoc Pennington - - * src/stack.c (apply_constraints): also keep utility/menu/toolbar - windows above their whole group. - - (get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but - only use META_LAYER_FULLSCREEN while the fullscreen window has - focus. Also, put screen-sized windows in the fullscreen layer, - even if we didn't dare to actually put them in the fullscreen - state. - -2002-10-07 Havoc Pennington - - Add a modifier key preference for the Alt+click stuff. - Can be set to "disabled" as well. - - * src/run-metacity.sh: load .Xmodmap in the Xnest if it exists - - * src/display.c (meta_display_ungrab_window_buttons): ungrab - AnyModifier in case the modifier changed since we grabbed - (meta_display_open): rearrange code to use meta_display_close() to - mop up when we can't find any screens, avoiding the need to - keep the bail-out code in sync with meta_display_close. - - * src/keybindings.c (devirtualize_modifiers): move this function - to a public place in display.c - - * src/metacity.schemas.in: add setting for the modifier key - to use for Alt+left/middle/right click. - - * src/prefs.c (update_binding): add a missing newline to a warning - (meta_prefs_get_mouse_button_mods): new function - - * src/ui.c (meta_ui_parse_modifier): new function - -2002-10-07 Havoc Pennington - - * src/async-getprop.c: don't include unportable Xproto.h, fix from - Glynn Foster. - -2002-10-06 Havoc Pennington - - * src/async-getprop.c: change to add only one _XAsyncHandler per - display, speeding things up a bit. - -2002-10-06 Havoc Pennington - - * src/async-getprop.c: Add wacky hack suggested by Keith Packard - to get X properties asynchronously. Not actually used by metacity - yet, but thinking about it. - -2002-10-04 Havoc Pennington - - * configure.in: actually link to RANDR_LIBS - -2002-10-04 Havoc Pennington - - * src/display.c (event_callback): do XRRUpdateConfiguration() - if we have RandR extension, else poke in Xlib's screen struct to - update the screen size. - - * configure.in: fix a bogus overwrite of cppflags, - add a check for RandR extension - -2002-10-04 Arvind Samptur - - * src/window.c (meta_window_change_workspace): call - meta_window_unstick before adding window to workspace. - (menu_callback): call meta_workspace_activate before - meta_window_change_workspace. This would avoid us running an - extra loop for determining the window workspace list. - - Patches from Jeyasudha and Arvind. Fixes #92575 - -2002-10-03 Havoc Pennington - - * src/themes/Esco/metacity-theme-1.xml: only specify the - middle backgrounds, let left/right fall back to middle - - * src/theme.c (get_button): fall back to middle_background draw - routines when missing the left/right button backgrounds. - (button_rect): fix to handle drawing middle button backgrounds - (meta_frame_style_draw): draw middle background once per middle - button - -2002-10-03 Havoc Pennington - - Button-reordering patch. Has all the code except actually - installing a gconf schema and reading the gconf key in prefs.c. - metacity-theme-viewer displays the button layouts for testing - themes. - - * src/preview-widget.c (meta_preview_size_request): make up a - width/height if no child widget - - * src/prefs.c (meta_prefs_get_button_layout): new function - - * src/frames.c: get the button layout from prefs and - use it when drawing - - * src/theme.c (meta_frame_layout_calc_geometry): enhance to be - able to lay out buttons in different arrangements - (button_rect): draw the new button background rectangles - (meta_theme_draw_frame): require a button layout argument - (meta_theme_calc_geometry): pass in the button layout - - * src/preview-widget.h: mod to handle button layouts - - * src/theme-viewer.c: mod to handle button layouts - -2002-10-03 Havoc Pennington - - * configure.in: 2.4.2 - -2002-10-03 Havoc Pennington - - * src/window.c (check_moveresize_frequency): handle the case where - the clock is set backward - -2002-10-01 Havoc Pennington - - * src/place.c (find_next_cascade): try extra cascades alongside - the first, if the first fails; patch from readams@hmc.edu - -2002-10-01 Havoc Pennington - - * src/stack.c (get_standalone_layer): put ABOVE windows in same - layer as docks. - -2002-10-01 Havoc Pennington - - * src/screen.c (meta_screen_resize_func): make it static - - * src/stack.c (get_standalone_layer): put above/below windows - in an appropriate layer. - - * src/screen.c (set_supported_hint): say we support above/below - - * src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE, - _NET_WM_STATE_BELOW atoms - - * src/window.c (meta_window_client_message): handle above/below - state messages - (set_net_wm_state): handler above/below state - (update_net_wm_state): handle above/below states - -2002-10-01 Mark McLoughlin - - * src/screen.c: (meta_screen_new): default to - topleft starting corner. - (meta_screen_update_workspace_layout): handle - new property format : orient,x,y,starting corner. - Fixes #89373. - - * src/screen.h: add MetaScreenCorner enum. - -2002-10-01 Havoc Pennington - - * src/window.c (constrain_position): always align fullscreen - windows to top, as we do with maximized windows. - -2002-10-01 Stanislav Brabec - - * configure.in: Added cs to ALL_LINGUAS. - -2002-09-30 Havoc Pennington - - * src/screen.c (reload_xinerama_infos): fix compilation on - Solaris, patch from Satyajit Kanungo - -2002-09-29 Havoc Pennington - - * src/eggaccelerators.c: update from libegg to get fix from Ralph - Loader for parsing, #93005 - -2002-09-29 Havoc Pennington - - * src/effects.h (META_MINIMIZE_ANIMATION_LENGTH): shorten minimize - animation a bit - -2002-09-28 Havoc Pennington - - Patch from Keith Packard to handle root window resizes. - - * src/screen.c (reload_xinerama_infos): factor out Xinerama code - (meta_screen_resize): implement this, to be called from display.c - on screen resize - - * src/display.c (event_callback): handle ConfigureNotify on root - windows - -2002-09-28 Havoc Pennington - - * src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW - layer, should now work correctly. - -2002-09-28 Havoc Pennington - - * src/window.c, src/stack.c: Rewrite stack code to work a lot - differently. Should be better now, and not lose relative positions - of windows when moving among layers. Also should now be possible - to get session management to restore the stacking order. Probably - breaks some stuff, and makes all the stack.c changes I made - yesterday sort of irrelevant. - -2002-09-27 Havoc Pennington - - * src/stack.c (get_standalone_layer): Temporarily disable use of - the FOCUSED_WINDOW layer, because given the fact that moving - multiple windows into the same layer changes the Z-order of those - windows, it was breaking click-to-focus. - -2002-09-27 Havoc Pennington - - * src/screen.c (meta_screen_focus_top_window): raise the focused - window, since it may not be the window on top, given the below - change. - - * src/stack.c (meta_stack_get_default_focus_window): make this - more complex to prefer to focus the transient parent, followed by - other windows in group, followed by topmost non-dock, followed by - dock. Previously was just topmost non-dock followed by dock - ignoring groups and transiency. - -2002-09-27 Havoc Pennington - - * src/place.c (constrain_placement): constrain placement to try to - keep windows from going offscreen to the right/bottom - - * src/stack.c (compute_layer): rearrange the logic here to say - that a window must always be in at least as high a layer as any of - its transient parents or group members, rather than special-casing - fullscreen. Also, group_member_is_fullscreen was leaking the list - of group members every time, a fairly major memory leak. - -2002-09-27 Havoc Pennington - - * src/themes/Makefile.am (THEMES): use AgingGorilla not Gorilla - (renamed on the CVS server) - -2002-09-27 Havoc Pennington - - Try to handle Solaris Xinerama, all coded blind, someone - on Solaris will need to debug the typos. - - * src/display.c: updates for Solaris Xinerama - - * src/screen.c: updates for Solaris Xinerama - - * configure.in: make Xinerama check more complicated to catch - Solaris Xinerama - -2002-09-27 Havoc Pennington - - * src/window.c (update_transient_for): keep a flag - transient_parent_is_root_window for whether the - root-window-as-parent convention was used. - -2002-09-25 Arvind Samptur - - * src/stack.c (sort_window_list): Keep dialogs without - transient parent above entire app. Fixes #88926 - -2002-09-26 Havoc Pennington - - * src/menu.c (meta_window_menu_new): use MetaAccelLabel to display - accelerators for the menu items - - * src/metaaccellabel.c: cut-and-paste GtkAccelLabel and port to - use virtual modifiers - - * src/Makefile.am (metacity_SOURCES): add metaaccellabel.[hc] - - * src/prefs.c (meta_prefs_get_window_binding): new function - - * src/core.c (meta_core_get_menu_accelerator): new function - -2002-09-25 Havoc Pennington - - * src/metacity.schemas.in: Change short desc of switch_windows and - cycle_windows to be different - -2002-09-24 Havoc Pennington - - * src/place.c (fit_rect_in_xinerama): update best_overlap as we go - through the loop - doh. Fix from readams@hmc.edu for #90799. - (find_first_fit): try the origin of each xinerama screen - after the first. Also from readams@hmc.edu - -2002-09-24 Havoc Pennington - - * src/window.c (meta_window_save_rect): new function, - only saves rect after checking current state, #93795 - (meta_window_make_fullscreen): use new function - (meta_window_maximize): use new function - -2002-09-24 Havoc Pennington - - * src/window.c (meta_window_update_layer): new function - - * src/stack.c (compute_layer): put focused window in a layer above - all other windows, in click-to-focus mode. #93022 - - * src/window.c (meta_window_notify_focus): update window layer on - focus change. - -2002-09-24 Havoc Pennington - - * src/main.c (main): support --version, #92796 patch from - Christian Neumair - - * autogen.sh: change gettext test to be happy with - glib-gettextize, #81425 - - * src/menu.c: change mnemonics to match bug #78999 - - * src/theme.c (meta_theme_validate): consolidate some - nearly-identical themes for ease of translation, #70962 - -2002-09-24 Arvind Samptur - - * src/menu.c: Replace strings Shade with Roll Up and - Unshade with Unroll. - -2002-09-23 Havoc Pennington - - * src/main.c (main): re-enable the log handler, maybe it will - break something, I don't remember why I turned it off. - - * src/display.c: s/_NET_SHOW_DESKTOP/_NET_SHOWING_DESKTOP/ which - is what's in the spec - -2002-09-22 Havoc Pennington - - * src/window.c (recalc_window_features): small reordering of - code - - * src/display.c (meta_spew_event): more spew for MapNotify, - UnmapNotify - - * src/window.c (recalc_window_features): spew more stuff - - * src/display.c (meta_spew_event): spew override_redirect field of - ConfigureNotify - -2002-09-20 Arvind Samptur - * src/metacity.schemas.in: added keybindings for - moving windows between workspaces. - - Patch from Jeyasudha. Fixes #91944. - -2002-09-19 Arvind Samptur - * src/tools/metacity-properties.desktop.in : - change in the tooltip suggested in ui-review. - -2002-09-18 Havoc Pennington - - * src/window.c (update_net_wm_state): handle fullscreen state - here. - -2002-09-15 Havoc Pennington - - * src/session.c (save_state): escape the window title before - saving in the session file, reported by Jos Vos - -2002-09-12 Havoc Pennington - - * src/workspace.c (meta_workspace_screen_index) - (meta_workspace_index): fix compiler warnings - - * src/tools/metacity-window-demo.c (menu_items): add a test for - dialogs with no transient parent - - * src/place.c (find_first_fit): Try placing window at origin of - first Xinerama, even if there are no windows to place next to; - makes placement work when no other windows are open on the screen. - -2002-09-09 Havoc Pennington - - * configure.in: 2.4.1 - -2002-09-09 Christian Neumair - - * src/keybindings.c: Make virtual desktops apply - instantly and still show the pager popup by - Benjamin Kahn , fixes #86590. - -2002-09-06 Frederic Crozat - - * src/themes/Crux/metacity-theme-1.xml: Fix titlebar - glitch on small dialogs. - -2002-09-06 Arvind Samptur - * theme-format.txt : corrected some of the attributes - which were not in sync with theme-parser.c - Patch from Jim Bowen. #92057. - -2002-09-05 Havoc Pennington - - * configure.in: put ro back in ALL_LINGUAS - -2002-09-05 Havoc Pennington - - * configure.in (ALL_LINGUAS): remove 'ro' from ALL_LINGUAS, it - contained invalid XML and broke the build. No <> in the - translations of gconf keys! - -2002-09-04 Marius Andreiana - - * configure.in: added 'ro' to ALL_LINGUAS - -2002-09-03 Havoc Pennington - - * src/display.c (meta_display_get_tab_current): new function - - * src/keybindings.c (do_choose_window): apply modified patch from - JeyaSudha to still display tab popup if only one window is on the - desktop. - -2002-06-25 JeyaSudha - - * src/session.c, src/window.c: Session saves the unmaximized - postion, size of a maximized window. #86059 - -2002-09-03 Havoc Pennington - - * src/frames.c (meta_frames_update_prelit_control): don't filter - out prelight for unmaximize button. #83860 - (meta_frames_paint_to_drawable): handle unmaximize here as well - -2002-08-27 Havoc Pennington - - * src/theme.c (meta_frame_layout_calc_geometry): always apply - rounding for shaded windows, fixes Bluecurve theme when shaded - -2002-08-25 Havoc Pennington - - * src/window.c (meta_window_free): when freeing a fullscreen - window, update layers of the window's group. - -2002-08-25 Havoc Pennington - - * src/display.c (meta_display_open): _NET_SUPPORTING_WM_CHECK is - supposed to have type WINDOW not CARDINAL. reported by - Ben Jansens - -2002-08-24 Havoc Pennington - - * src/window.c (process_property_notify): recalculate mapped-ness - of frame after toggling decorations on/off, so that windows don't - disappear when decorations are toggled on. - - * src/tools/metacity-window-demo.c (toggle_decorated_cb): add a - test for toggling decoration state on the fly - -2002-08-24 Havoc Pennington - - * src/window.c (update_sm_hints): hack around bug in kmail etc. - where SM_CLIENT_ID was set on the window, not the client leader. - - * src/theme.c (meta_frame_layout_calc_geometry): don't round - corners unless we have enough frame to chop off. - -2002-08-24 Havoc Pennington - - * src/util.c: translate some strings that should have been, and - convert to locale encoding before printing stuff. - - * src/stack.c (group_member_is_fullscreen): if window itself is - fullscreen, return TRUE immediately. - - * src/window.c (meta_window_configure_request): add hack to - fullscreenize large undecorated windows. - -2002-08-21 Deepa Natarajan - - * src/keybindings.c, src/metacity.schemas.in, src/prefs.[ch]: - add maximize and unmaximize keybinding setting. Partly fixes - bug# 78999. - -2002-08-20 Steve Fox - - * metacity.spec.in: Add so that the spec file gets auto-updated - whenever configure.in gets bumped. Include some missing - directories. - - * Makefile.am - * configure.in: Necessary changes for spec file magic - -2002-08-20 Havoc Pennington - - * src/frames.c (get_control): if in the title rect check for y - <= TOP_RESIZE_HEIGHT - - * src/display.c (meta_spew_event): put x/y coordinates in spew for - enter/leave notify - - * src/frames.c (meta_frames_motion_notify_event): move cursor - changing from here to update_prelit_control so it happens on enter - notify as well - (get_control): change test "y < TOP_RESIZE_HEIGHT" to - "y <= TOP_RESIZE_HEIGHT" - - * src/Makefile.am (EXTRA_DIST): include .in files in EXTRA_DIST - -2002-08-17 Simos Xenitellis - - * configure.in (ALL_LINGUAS): Added Greek (el). - -2002-08-17 Evandro Fernandes Giovanini - - * configure.in (ALL_LINGUAS): Added Brazilian Portuguese (pt_BR). - -2002-08-15 Havoc Pennington - - * src/metacity.schemas.in: default to "Sans Bold 10" for the - titlebar font. - -2002-08-15 Havoc Pennington - - * src/window.c (recalc_window_features): leave has_fullscreen_func - set to TRUE if the window is screen sized and undecorated, even if - the window isn't resizable. idea from Christian - Manny Calavera - - Neumair - - * src/keybindings.c (handle_toggle_fullscreen) - (handle_toggle_maximize): these disabled fullscreen/maximize if - the window wasn't resizable, should have used has_fullscreen_func - has_maximize_func instead. - -2002-08-15 Havoc Pennington - - * src/keybindings.c: implement raise/lower - - * src/metacity.schemas.in: add raise/lower - - * src/prefs.c: add "raise" and "lower" prefs to keybindings - - * src/display.c (meta_display_set_grab_op_cursor): assert that - the screen arg is non-NULL in appropriate cases - -2002-08-14 Jayaraj Rajappan - - * src/display.c (meta_display_set_grab_op_cursor): - In XGrabPointer, set the confine_to argument to the root window - of the screen the window is on. - - * src/display.h: add screen argument. - - * src/window.c (meta_window_update_resize_grab_op): - pass screen argument as NULL. - -2002-08-14 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: use button positioning - theme stuff. - -2002-08-14 Mark McLoughlin - - * src/screen.c: (set_number_of_spaces_hint), move from - workspace.c. - (update_num_workspaces): set the hint here. Fixes #90123. - - * src/workspace.c: - (meta_workspace_new), (meta_workspace_free): don't set - the hint here. - (update_num_workspaces): move to screen.c - -2002-08-12 Havoc Pennington - - * src/stack.c (compute_layer): window is in fullscreen layer if - any member of its group is fullscreen - - * src/window.c (meta_window_unmake_fullscreen): update layer for - whole window group - (meta_window_make_fullscreen): ditto - - * src/util.c (meta_unsigned_long_hash): move hash/equal funcs for - Window in here. - - * src/group.c: track window groups so we can do stuff with them. - -2002-08-11 Havoc Pennington - - * src/menu.c: don't include nonexistent stock-icons.h file - -2002-08-10 Havoc Pennington - - * src/metacity.schemas.in: default keybindings for move, resize, - maximize, etc. from Deepa #78999 - -2002-08-10 Havoc Pennington - - * src/window.c (meta_window_maximize): unshade window if shaded, - from JeyaSudha - (meta_window_make_fullscreen): ditto - -2002-08-10 Havoc Pennington - - * src/menu.c: reorder the menu items so that Close is at the - bottom - - * src/theme-viewer.c (main): set debugging mode if METACITY_DEBUG - enabled - -2002-08-10 Havoc Pennington - - * src/xprops.c (meta_prop_get_motif_hints): allow Motif hints to - be smaller than expected; GLUT for example seems to set a smaller - struct. #89841 - - * src/window.c (update_mwm_hints): use g_free on motif hints as we - don't use the XGetWindowProperty return directly anymore - -2002-08-10 Havoc Pennington - - * src/window.c (meta_window_free): be sure window is - mapped if we unmanage it and it's not withdrawn; - bug #90369 - - * src/screen.c (meta_screen_new): change string - s/override/replace/ bug #89077 - - * src/theme.c (scale_and_alpha_pixbuf): dump the - sometimes-use-NEAREST-instead-of-BILINEAR optimization, - bug #87489 - -2002-08-10 Havoc Pennington - - * src/window.c (menu_callback): raise window when moving to - another workspace bug #88896 - - * src/keybindings.c (switch_to_workspace): raise window when - moving between spaces - -2002-08-10 Jorn Baayen - - Register window menu icons with the Gtk stock system, instead - of using the ones from the Metacity theme (which looked very bad with - some themes). - - * src/Makefile.am: - * src/main.c: - * src/menu.c: - * src/stock_delete.png: added these files - * src/stock_minimize.png: - * src/stock_maximize.png: - * src/ui.c - -2002-08-10 Havoc Pennington - - * src/keybindings.c (meta_display_process_key_event): filter out - key events that happen on popup menus etc. - - * src/ui.c (meta_ui_window_is_widget): new function to check - whether a window belongs to a GtkWidget such as the popup menu - - * src/prefs.c (change_notify): put in a no-op line for AIX - compiler, #84252 - -2002-08-10 Havoc Pennington - - * src/window.c (update_resize): track time to avoid sending a - deluge of move/resize requests, suggestion from - xavier.bestel@free.fr bug #86830. Not really sure if this will - make a difference or not. We'll see I guess. - (update_move): do same on move though it seems less important - here. - - * src/display.h (struct _MetaDisplay): store the - last time we sent a move/resize event. - -2002-08-10 Havoc Pennington - - * src/window.c (meta_window_notify_focus): add a FIXME comment - with a link to bug #90382 - -2002-08-09 Havoc Pennington - - * src/keybindings.c (handle_toggle_maximize): disable maximize, - fullscreen, shade via keybindings on windows that don't support - it. - -2002-08-08 Craig Black - - Patch to provide extra cues when using the window menu - move and resize items, #85724. - - * src/common.h: add new cursors - - * src/display.c: (grab_op_is_mouse) - (meta_display_create_x_cursor), (xcursor_for_op), - (meta_display_set_grab_op_cursor), - (meta_display_begin_grab_op): - The keyboard move and resize grab ops now also use the mouse. - Allow the grab cursor to be changed during the grab op. - Hold onto the initial grab position in case of reset. - - * src/display.h: save the initial grab position - - * src/keybindings.c: (process_keyboard_move_grab), - (process_keyboard_resize_grab), (handle_begin_move), - (handle_begin_resize): - The keyboard move and resize grab ops now also use the mouse. - - * src/window.c: (meta_window_client_message), (menu_callback), - (update_move), (update_resize), - (meta_window_handle_mouse_grab_op_event), (warp_pointer), - (meta_window_warp_pointer), (meta_window_begin_grab_op), - (meta_window_update_resize_grab_op): - When moving or resizing a window use the last grab position - in computing change increment. - Provide support for warping the mouse pointer. - - * src/window.h: new warp pointer and grab op helper functions - -2002-08-08 Craig Black - - * src/display.h: update comment - * src/window.c: (meta_window_focus): also set expected - focus window when setting input focus. - -2002-08-07 Craig Black - - * src/display.c: (meta_display_unshow_desktop): focus - top window after showing desktop, fixes #88080. - -2002-08-07 Craig Black - - * src/core.c: (meta_core_show_window_menu): focus window - on right click for menu, #87299. - -2002-08-07 Craig Black - - * src/display.c: (meta_display_open): clear expected focus window - on open - - * src/display.h: add expected_focus_window field - - * src/window.c: (meta_window_make_fullscreen), - (meta_window_unmake_fullscreen): change meta_window_update_layer() - to meta_stack_update_layer() so build works again. - (meta_window_free), (meta_window_make_fullscreen), - (meta_window_focus), (meta_window_notify_focus): keep track of - expected focus window after sending WM_TAKE_FOCUS event, - previously if a UnmapNotify event arrived before the FocusIn event - we would lose focus, fixes #84564. - -2002-08-07 Havoc Pennington - - * src/window.c (meta_window_unmake_fullscreen): update layer - (meta_window_make_fullscreen): update layer - - * src/stack.c (compute_layer): put window on fullscreen layer if - fullscreen - -2002-08-06 Craig Black - - * src/window.c: (meta_window_client_message): implement - _NET_WM_MOVERESIZE enhancements, see #90077. - -2002-08-06 Havoc Pennington - - * configure.in: 2.4.0 (this version number has no special - significance, just didn't want to go to 4-digit micro version ;-) - -2002-07-28 Havoc Pennington - - * src/window.c (meta_window_shade): disable animation when shading - windows, just doesn't really convey the idea anyway. - - * src/effects.c: Move to using a shaped window instead of - IncludeInferiors to do the animations, looks a lot better - because we don't have to grab the server. - - * src/window.c (meta_window_change_workspace): remove bogus - assertion that was causing a crash - (meta_window_new): auto-fullscreen huge undecorated windows. - - * src/keybindings.c (switch_to_workspace): use - meta_window_change_workspace() to avoid same bug in cut-and-paste - code from there - -2002-08-06 He Qiangqiang - - * configure.in: Added "zh_CN" to ALL_LINGUAS. - -2002-08-05 Ross Burton - - * src/window.c: (meta_window_client_message): Set - ->wm_state_skip_pager (ditto for _taskbar) instead of ->skip_pager - so that these hints actually work. Fixes #89850. - -2002-08-04 Havoc Pennington - - * src/frames.c (meta_frames_paint_to_drawable): init button - states for the button backgrounds - - * src/themes/Atlanta/metacity-theme-1.xml: adapt to work correctly - with button repositioning - -2002-08-04 Havoc Pennington - - * src/frames.c (meta_frames_button_press_event): raise/focus - on click, even if the click was on the client area - (this makes Alt+button1 raise windows again, yay) - - * src/stack.c (compute_layer): put panels in the DOCK layer always - (keep them on top of other windows). Still sloppy-focus raised - with respect to other docks. - - * configure.in: remove -Wshadow for now as GTK headers make all - kinds of noise with it. - -2002-08-02 Mark McLoughlin - - * src/screen.c: (meta_screen_new): set active_workspace - to NULL. Also actually activate the first workspace instead - of just setting active_workspace. Fixes #87367. - (meta_screen_ensure_workspace_popup): don't re-use our - iterator for setting the entries list, stop iterating - when we've gone beyond the last workspace (there may - be empty spaces in the last row). - - * src/workspace.c: (meta_workspace_activate): if no workspace - was previously activated, return. - -2002-08-04 Havoc Pennington - - * src/theme.c (free_menu_ops): use MetaMenuIconType not button - type for the size of the menu ops array - (meta_theme_define_int_constant): return TRUE on success (how the - heck did this ever work?) - (meta_theme_define_float_constant): return TRUE on success - (meta_frame_style_validate): allow the "positional" buttons to - be omitted for now. - - * src/testgradient.c (render_multi): don't define N_COLORS twice - - * src/theme-viewer.c (run_theme_benchmark): don't define - ITERATIONS twice - - * src/theme.c (button_rect): handle new button types - (meta_button_type_to_string): update - (meta_button_type_from_string): update - - * src/theme.h (enum): add button types for the 6 possible button - positions. No way to reposition buttons still but this will allow - themes to go ahead and support doing so. - -2002-08-03 Craig Black - - * src/keybindings.c: (meta_display_process_key_event), - (process_tab_grab), (do_choose_window): change alt+tab to a - windowless grab, fixes #83499 - -2002-08-03 Craig Black - - * src/display.c: (event_callback): Have ButtonPress and - UnmapNotify events account for a null grab window, fixes #87896 - -2002-08-03 Gaute Lindkvist - - Corrected some issues with the Bright theme. Mainly - making sure the text does not clip, as well as increasing - the size of the menu icon. - -2002-08-01 Mark McLoughlin - - Implements support for _NET_WM_ALLOWED_ACTIONS. - Fixes #84282. - - * src/display.[ch]: (meta_display_open): add - _NET_WM_ALLOWED_ACTIONS atoms. - - * src/screen.c: (set_supported_hint): set them - as being supported. - - * src/window.c: - (set_allowed_actions_hint): impl setting - _NET_WM_ALLOWED_ACTIONS. - (recalc_window_features): use it here, but only - if things have changed. - -2002-08-01 Christophe Fergeau - - * src/metacity-dialog.c: focus the "Close" button by default on - the dialog which appears at exit when some apps can't be session - managed - -2002-08-01 Mark McLoughlin - - * src/session.c: - (save_yourself_possibly_done): send a SaveYourselfDone - if we're skipping this global save. - (save_yourself_callback): don't not save session state - if the save style is Global. Fixes #89390. - - * theme-format.txt: update. - -2002-07-30 Pablo Saratxaga - - * configure.in: Added Vietnamese (vi) to ALL_LINGUAS - -2002-07-24 Havoc Pennington - - * src/themes/Makefile.am (THEMES): add Metabox theme from Garrett - - * README: updates - -2002-07-21 Havoc Pennington - - * src/window.c (meta_window_new): don't automaximize fullscreen - windows. - -2002-07-14 Havoc Pennington - - * src/window.c (recalc_window_features): don't allow shading of - border-only windows. - -2002-07-24 Havoc Pennington - - * src/theme-parser.c (meta_theme_load): look for themes in - ~/.themes/NAME/metacity-1/ and datadir/themes/NAME/metacity-1 - instead of the old locations. - - * src/themes/Makefile.am: install themes to - datadir/themes/NAME/metacity-1/ to match how GTK works, breaking - third-party themes yet again! woot! - -2002-07-20 Havoc Pennington - - * src/display.c (meta_display_open): grab display across managing - each screen; XGetInputFocus() on startup. - -2002-07-19 Havoc Pennington - - * src/window.c (meta_window_configure_request): disable configure - requests during a user move/resize operation, mostly a workaround - for stoopid apps. - -2002-07-24 jacob berkman - - * configure.in: fix x11 header checks when x11 is not in the - default include path - -2002-07-23 Ross Burton - - * src/menu.c (meta_window_menu_new): Use the real workspace names - instead of making up numbers. - -2002-07-23 Havoc Pennington - - * src/themes/Makefile.am (THEMES): put Gorilla back in the build - - * src/themes/Gorilla/metacity-theme-1.xml, - src/themes/Crux/metacity-theme-1.xml: fixes from - Sebastien Delestaing so that these themes work properly with - different font sizes. - - * src/frames.c (get_control): patch from Balamurali Viswanathan - for #81984 (resize titlebar from the top not the bottom) - -2002-07-23 Havoc Pennington - - * src/keybindings.c (meta_display_process_key_event): handle - NULL screen from screen_for_xwindow - - * src/display.c (meta_display_screen_for_xwindow): put an error - trap around the XGetWindowAttributes(), should fix the popular - "closing a window results in a crash" bug. - - * src/util.c (print_backtrace): support optional backtrace - feature using gnu libc backtrace() call - -2002-07-15 jacob berkman - - * src/update-from-egg.sh: steal from profterm to fix build - -2002-07-13 Havoc Pennington - - * src/workspace.c (meta_workspace_new): don't put a newline after - the default workspace name - -2002-07-13 Havoc Pennington - - * src/keybindings.c: adapt to virtual modifiers - (meta_display_process_mapping_event): we need to reload the - binding tables now when the modmap changes. - - * src/prefs.c (update_binding): parse virtual modifiers, not - plain modmask - - * src/common.h (MetaVirtualModifer): new enum - - * src/ui.c (meta_ui_parse_accelerator): use - egg_accelerator_parse_virtual() - - * src/Makefile.am: add eggaccelerators.[hc] for the virtual - accelerator parsing function - -2002-07-13 Christophe Fergeau - - * configure.in: added fr to ALL_LINGUAS - -2002-07-12 Havoc Pennington - - * src/session.c (warn_about_lame_clients_and_finish_interact): - don't display the dialog if all the apps were session managed. - -2002-07-12 Havoc Pennington - - * src/session.c: don't send SmInteractDone until the warning - dialog about crappy clients has been closed. - -2002-07-12 Havoc Pennington - - * src/window.c (meta_window_new): try to maximize windows that - are too big for the work area - - * src/place.c (find_next_cascade): don't let the cascade algorithm - place windows off the screen, and fix it to always exhaustively - search the window list for cascade parents. - -2002-07-11 Havoc Pennington - - * src/metacity-dialog.c (main): option to display error when a - command fails to run. - - * src/keybindings.c (handle_run_command): run commands - in response to keybindings. - - * src/prefs.c: add command keybinding stuff - - * src/metacity.schemas.in: add keybindings for running commands, - and keys to store the commands themselves. - -2002-07-10 Havoc Pennington - - * src/display.c: properly attribute selection code to Matthias - Clasen - -2002-07-10 Havoc Pennington - - * README: couple of updates - - * src/main.c (usage): add --replace to usage, reported by Matthias - Clasen - -2002-07-09 Havoc Pennington - - * src/metacity.schemas.in: fix short description for - begin_resize, patch from Jayaraj, #87654 - - * src/keybindings.c (handle_begin_resize): apply patch from - Jayaraj to actually handle the begin resize keybinding. - -2002-07-09 Havoc Pennington - - * src/window.c (constrain_position): don't center vertically for - maximized windows that don't fill the screen, just leave them at - the top. - -2002-07-06 Havoc Pennington - - * src/tabpopup.c (selectable_workspace_new): increase the size of - the mini workspaces - -2002-07-06 Havoc Pennington - - Apply blackc@speakeasy.net patch, bug #83940, to do - mini-workspaces similar to the pager, when switching - spaces. - - * src/window.c (update_net_wm_state): actually fill in - wm_state_skip_taskbar, wm_state_skip_pager flags - - * src/tabpopup.c: support drawing a mini-workspace similar to the - one the pager draws. - - * src/stack.c (meta_stack_list_windows): new function to list - the windows in stacking order - - * src/screen.c (meta_screen_ensure_workspace_popup): don't pass in - the ugly default app icon for workspaces - - * src/display.c (event_callback): fix from blackc@speakeasy.net - to avoid dereferencing a NULL grab window. - -2002-07-06 Havoc Pennington - - * src/display.c (meta_display_open): put _NET_DESKTOP_NAMES in the - array of atom names, so desktop names might work and we don't read - uninitialized memory. - - * src/main.c (main): add VERSION/timestamp verbose message. - - * src/keybindings.c: implement cycle_windows cycle_panels - - * src/metacity.schemas.in: add the cycle_windows cycle_panels - keybindings - - * src/prefs.h (META_KEYBINDING_FOCUS_PREVIOUS): replace - FOCUS_PREVIOUS key binding with CYCLE_WINDOWS and CYCLE_PANELS - (not good names really, but I don't have ideas). - - * src/common.h: add a grab op for alt+esc window cycling - -2002-07-05 Havoc Pennington - - * src/themes/Makefile.am (THEMES): Take Gorilla out until it gets - repaired. - -2002-07-05 Havoc Pennington - - * src/window.c (update_wm_hints): Change default value of input - hint (if not specified) to true instead of false. This is what - some clients assume, such as Visual SlickEdit. - -2002-07-02 Havoc Pennington - - * src/window.c (meta_window_show_menu): use new macros to get - whether we allow move/resize correct - - * src/frame.c (meta_frame_get_flags): use new macros to get - whether we can move/resize correct, considering - maximized/fullscreen for the move case. - - * src/window.h (META_WINDOW_ALLOWS_RESIZE, - META_WINDOW_ALLOWS_MOVE): new macros - - * src/keybindings.c (process_keyboard_resize_grab): finish the - right/left resize, patch from Jayaraj #78179. - - Has the same old move/resize bug, if it hits a constraint it - starts to break because we move without resizing. - -2002-07-02 Mark McLoughlin - - * src/keybindings.c: - (grab_keyboard), (ungrab_keyboard): rename from - {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab, - the XKeyGrab isn't neccessary. - (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys), - (meta_window_grab_all_keys), (meta_window_ungrab_all_keys): - update for above change. - (handle_workspace_switch): don't use a MetaWindow when - workspace switching, use the root window instead. - -2002-07-01 Mark McLoughlin - - Fix broken workspace switching from my previous commit. - - * src/display.c: (meta_display_begin_grab_op): don't - leak a pointer grab if we fail to grab the keyboard. - - * src/keybindings.c: (meta_screen_grab_keys): check - screen->all_keys_grabbed. - (meta_screen_grab_all_keys): regrab our standard - bindings if we fail. - (handle_workspace_switch): revert to our previous - behaviour of using the last focused window to do - the grab upon. Only use the RootWindow if there - isn't anything else to use. - - * src/screen.c: (meta_screen_new): initialise - all_keys_grabbed. - -2002-06-26 Mark McLoughlin - - Fixes not being able to tab out of a - workspace which contains no windows. - - * src/core.c: (meta_core_begin_grab_op): upd - for meta_display_begin_grab_op change. - (meta_core_get_grab_frame): allow for - grab_window == NULL. - - * src/display.[ch]: - (meta_display_screen_for_xwindow): implement. - (meta_display_begin_grab_op): grab on the root window - if window == NULL. - (meta_display_end_grab_op): use grab_screen instead of - grab_window. - - * src/keybindings.c: - (grab_all_keys_and_keyboard): split out from - meta_window_grab_all_keys. - (ungrab_all_keys_and_keyboard): split out from - meta_window_ungrab_all_keys. - (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys): - implement grabbing and ungrabbing on the root window. - (meta_display_process_key_event): if window == NULL, - check the event is from the same screen and process. Only - happens with workspace switching. - (process_workspace_switch_grab): kill window param and - don't use grab_window. - (handle_tab_forward), (handle_begin_move): upd for - meta_display_begin_grab_op change. - (handle_workspace_switch): remove brokeness. Always do - the grab op on the root window. - - * src/keybindings.h: add meta_screen_{un}grab_all_keys. - - * src/window.c: (meta_window_client_message), (menu_callback): - update for meta_display_begin_grab_op change. - -2002-06-25 Mark McLoughlin - - * src/fixedtip.c: (meta_fixed_tip_show): - * src/frames.c: (meta_frames_new): - * src/tabpopup.c: (meta_ui_tab_popup_new): - s/gdk_get_default_display/gdk_display_get_default/ - s/gdk_get_default_screen/gdk_screen_get_default/ - -2002-06-25 Mark McLoughlin - - * src/themes/Crux/active-border-top-left-border.png: - * src/themes/Crux/active-border-top-right-border.png: - * src/themes/Crux/active-top-left-corner.png: - * src/themes/Crux/active-top-mid-left-border.png: - * src/themes/Crux/active-top-mid-right-border.png: - * src/themes/Crux/active-top-right-corner.png: - * src/themes/Crux/inactive-border-top-left-border.png: - * src/themes/Crux/inactive-border-top-right-border.png: - * src/themes/Crux/inactive-top-left-corner.png: - * src/themes/Crux/inactive-top-mid-border.png: - * src/themes/Crux/inactive-top-right-corner.png: - * src/themes/Crux/metacity-theme-1.xml: added support - for border only windows. - -2002-06-24 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Added some stuff to - the window buttons, so they use the ACTIVE bg/fg. - -2002-06-25 Mark McLoughlin - - * src/display.[ch]: (meta_display_open): - src/screen.c: (set_supported_hint), (set_work_area_hint): - Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-) - -2002-06-25 Mark McLoughlin - - * src/screen.[ch]: - (update_num_workspaces), recalc workarea hint when - new workspaces created. Fixes bug that workarea - not calculated until first non-dock window is - mapped. - (set_work_area_hint), (set_work_area_idle_func), - (meta_screen_queue_workarea_recalc): move all this - stuff from workspace.c. - - * src/workspace.c: (meta_workspace_invalidate_work_area): - use meta_screen_queue_workarea_recalc. - -2002-06-23 Gediminas Paulauskas - - * src/themes/Bright/metacity-theme-1.xml: Update with border-only - window stuff from Atlanta. - -2002-06-22 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Update for "border" - frame stuff, minor button/spacing improvements. - -2002-06-22 Havoc Pennington - - Partially fix Jacob's SM bugs. - - * src/window.c (meta_window_apply_session_info): restore the extra - stuff we're saving, except stack position I didn't figure out yet. - - * src/session.c: save stack position, minimized, maximized, - in the session file. - -2002-06-22 Havoc Pennington - - * src/workspace.c (set_number_of_spaces_hint): do nothing if - screen is being unmanaged, we don't want to blow away state, - we want to remember it for the next window manager. - -2002-06-22 Havoc Pennington - - * src/workspace.c (meta_screen_ensure_workspace_popup): rename - from meta_workspace_ensure_tab_popup, and use workspace->name - instead of a hardcoded name - -2002-06-22 Havoc Pennington - - * src/xprops.c (meta_prop_get_utf8_list): new utility function - - * src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom - (event_callback): update workspace names when the property changes - - * src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES - (nothing to do really) - -2002-06-21 Havoc Pennington - - Theme breakage! Themes have to implement "border" frames - now, see Atlanta for an example. Fixes #84285 - - * src/tools/metacity-window-demo.c (do_appwindow): add a - border-only window - - * src/window.c (update_mwm_hints): read border only from the MWM - hints - - * src/window.h (struct _MetaWindow): add border_only flag - - * src/core.c (meta_core_get_frame_type): report border type if - required - - * src/common.h (enum): add META_FRAME_TYPE_BORDER - -2002-06-20 Mark McLoughlin - - * src/window.c: (meta_window_visible_on_workspace): sticky - windows aren't visibile on all screens. Check the workspace - is on the same screen as the window. - - * src/workspace.c: (meta_workspace_list_windows): use - meta_window_visible_on_workspace here. - -2002-06-19 Havoc Pennington - - * src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN - keyboard resizing state - - * src/keybindings.c (process_keyboard_resize_grab): implement - keyboard resize key handling somewhat (only vertical resize works, - left/right arrow not implemented, and visual feedback of the - edge we're resizing isn't implemented) - - * src/window.c (menu_callback): start keyboard resize grab when - it's chosen from the menu - -2002-06-17 Havoc Pennington - - * src/stack.c (meta_stack_get_default_focus_window): don't use a - minimized window as the next focus window, patch from - blackc@speakeasy.net - -2002-06-17 Havoc Pennington - - * src/place.c (find_next_cascade): increase the cascade threshold - a bit. - (find_first_fit): implement a somewhat lame first fit algorithm - -2002-06-17 Havoc Pennington - - * src/window.c (meta_window_change_workspace): fix from Gaute - Lindkvist #82977 for unsticking windows - -2002-06-17 Frederic Crozat - - * src/metacity.schemas.in: associate close_window keybinding to - Alt-F4 - -2002-06-16 Havoc Pennington - - * src/main.c (main): fix spelling error, #85452 - -2002-06-15 Havoc Pennington - - * src/keybindings.c (meta_display_process_key_event): don't pass a - null string to printf - - * src/display.c (key_event_description): don't pass a null string - to printf - - * src/keybindings.c (meta_set_keybindings_disabled): allow - enable/disable keybindings regardless of debug mode. - -2002-06-15 Havoc Pennington - - * src/draw-workspace.h, src/draw-workspace.c: workspace-drawing - code factored out of libwnck, needs wiring up to tabpopup.c - (which is kind of annoying since you have to get the list of - workspaces and MetaWindow across the barrier between the GDK-aware - and non-GDK-aware sides of metacity) - -2002-06-14 Havoc Pennington - - * src/window.c (meta_window_show): always focus new windows, - trying to be smart about it was a flop. - -2002-06-14 Jayaraj Rajappan - - * src/delete.c (io_from_ping_dialog): Check for NULL string - before calling strlen(). Fixes the core dump issue reported in #84873. - -2002-06-13 Anders Carlsson - - * src/theme.c (meta_frame_layout_calc_geometry): Set client height - as 0 when the window actually is shaded, not the other way around. - -2002-06-12 Havoc Pennington - - * src/theme.c (meta_frame_layout_calc_geometry): when a window is - shaded, don't include client height in the height calculation. - - * src/workspace.c (meta_workspace_get_neighbor): apply fix from - Mads Villadsen for the Up arrow key, #84582 - -2002-06-12 Havoc Pennington - - * src/theme.c (meta_frame_style_draw): Draw the buttons right - before the "overlay" piece. - -2002-06-12 Jayaraj Rajappan - - * src/tools/metacity-properties.glade: accessibility work for - metacity-properties capplet. Set appropriate atk relations. - Fixes bug #84749 - -2002-06-11 Havoc Pennington - - * src/window.c (meta_window_show): allow dialogs to steal focus - from panels/desktop - -2002-06-10 Jayaraj Rajappan - - * src/fixedtip.c: include - fix for #83960 - -2002-06-10 Erwann Chenede - - - * src/keybindings.c : (handle_close_window, handle_minimize_window) - verify the active window has the appropriate close/minimize function - before closing or minimizing the window. - -2002-06-09 Havoc Pennington - - * configure.in: 2.3.987 - -2002-06-09 Havoc Pennington - - * src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch - condition, patch from Gustavo Giraldez, avoids another 100% CPU - thingy - -2002-06-09 Havoc Pennington - - * src/place.c (meta_window_place): don't run constrain_placement - on windows we allow to go anywhere (docks, etc.). Fixes - positioning of panel windows in certain cases. - -2002-06-09 Havoc Pennington - - * src/frames.c (meta_frames_button_press_event): don't raise/focus - the window if minimize/close are clicked, patch from Gaute - Lindkvist #75460 - -2002-06-08 Havoc Pennington - - Cleanups to workspace popup patch. Space before all parens - in a couple places. - - * src/prefs.c (meta_prefs_get_keybinding_action): fix brace - indentation, and use while instead of for loop. Take a "mask" - argument to avoid ambiguity issues. - - * src/keybindings.c (handle_workspace_switch): rename from - handle_workspace_forward since there's no directionality here - (handle_workspace_switch): add a FIXME about how screwed it is - that we need a window in order to do our grab. Should be able to - grab on a dummy window like no_focus_window or the root window. - (process_workspace_switch_grab): rename from tab_grab for clarity, - no tab involved here. - - * src/common.h (enum): have only one grab op for all workspace - switching directions, instead of one for each. - -2002-06-08 Havoc Pennington - - Apply big patch from blackc@speakeasy.net adding a popup window - to the Ctrl+Alt+arrows shortcuts. #83940 - -2002-06-08 Havoc Pennington - - * src/screen.c (meta_screen_new): select key press/release on the - display->no_focus_window, another attempted fix for not getting - keybindings when no window is focused. Still doesn't seem to work - though. I don't get what's going wrong. - (meta_create_offscreen_window): new function, used instead of - XCreateSimpleWindow so we get override redirect offscreen windows. - -2002-06-08 Havoc Pennington - - * src/display.c (meta_display_open): set net_supporting_wm_check - in addition to win_supporting_wm_check, patch from - JeyaSudha for #83365 - - * src/screen.c (set_wm_check_hint): remove setting - win_supporting_wm_check on leader window here, done already in - display.c - -2002-06-08 Havoc Pennington - - * src/keybindings.c (meta_window_ungrab_keys): set keys_grabbed to - FALSE, patch from Jayaraj for #81857 - -2002-06-08 Havoc Pennington - - * src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom - name - - * src/display.c (meta_display_close): don't unmanage windows here, - do it in screen_free and then closing the display unmanages - windows as a side effect of unmanaging the screen - (meta_display_unmanage_screen): new function - (process_selection_clear, process_selection_request): handle - selection stuff - (meta_spew_event): don't crash on client message containing - invalid atom - (meta_spew_event): don't crash on property notify with invalid - atom - - * src/main.c (main): add --replace option to replace existing - window manager. - - * src/screen.c: implement holding manager selection. - - * src/display.c (meta_display_open): add new selection-related - atoms. - -2002-06-08 Havoc Pennington - - * src/screen.c (meta_screen_new): select keypress/keyrelease - events on root window, this may fix the bug where keybindings - didn't work if you didn't have a focused window. - -2002-06-08 Havoc Pennington - - * src/main.c (main): call meta_session_shutdown when exiting - cleanly - - * src/session.c (meta_session_shutdown): function to change use to - RestartIfRunning - (meta_session_init): change normal restart hint to - RestartImmediately - -2002-06-08 Havoc Pennington - - Yeah I know maximization is broken, I'm too tired to fix it. - Probably because of the change to update_struts() that was - supposed to fix the 100% CPU bug. - - * src/place.c (meta_window_place): don't run docks and things - through the placement algorithm. Thought it might fix - metacity-window-demo but it didn't. - - * src/window.c (constrain_size): only get work area when needed - (meta_window_new): init the do_not_cover field - -2002-06-08 Havoc Pennington - - * src/screen.c (meta_screen_get_xinerama_for_window): - short-circuit the "only one xinerama" case, and use outer rect of - window instead of window->rect, so we get root window coords. - - * src/theme.c (meta_frame_layout_get_borders): if fullscreen all - frame edges are zero-width. - - * src/frame.c (meta_frame_get_flags): init fullscreen flag. - - * src/common.h (enum): add META_FRAME_FULLSCREEN frame flag - - * src/place.c: fix up calls to meta_window_get_work_area - - * src/window.c (meta_window_get_work_area): add an arg for whether - the work area is for the screen or the xinerama subscreen. - (constrain_position): fix up calls to meta_window_get_work_area - (constrain_size): ditto - - * src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA - environment variable which simulates xinerama on a single head. - -2002-06-08 Havoc Pennington - - * src/window.c (update_struts): only invalidate things if the - struts actually change, since the panel likes to set them over and - over. May fix the infinite loop that caused 100% CPU usage. - -2002-06-07 Havoc Pennington - - * src/screen.c (meta_screen_new): use XineramaIsActive() not - XineramaQueryExtension() - -2002-06-07 Havoc Pennington - - * src/screen.c (meta_screen_get_current_xinerama): don't return - null on non-multihead - -2002-06-06 Havoc Pennington - - * src/screen.c (meta_screen_get_current_xinerama): implement - - * src/place.c (meta_window_place): cascade windows on the active - Xinerama screen - - * src/window.c (meta_window_move_resize_internal): strip out the - #if 0 cruft about guessing fullscreen mode - (constrain_position, constrain_size): fullscreen/maximize to the - Xinerama head, not the whole screen - (meta_window_get_work_area): autocreate struts at the Xinerama - physical screen edges for the screen the window is on. - - * src/screen.c (meta_screen_get_xinerama_for_window): someone - snuck in a for loop, fix it. ;-) - -2002-06-06 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Increase the border size - of the buttons so they aren't quite so huge on my box. Also get - a *little* closer to finally fixing the horizontal line behind - the icon. It now works decently with common font sizes (in pixels). - -2002-06-05 Havoc Pennington - - * src/theme.c (meta_color_spec_new_from_string): parse - "shade/foo/factor" as a color - (colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa - stuff, add the gtk_style_shade stuff. - (meta_color_spec_render): render the shaded color spec - - * src/theme.h (struct _MetaColorSpec): add "shade" mode to - MetaColorSpec. - -2002-06-04 Seth Nickell - - * src/metacity.desktop.in: - - Add X-GnomeWMSettingsLibrary to desktop file to support new - Window capplet. - -2002-06-04 Havoc Pennington - - * src/window.c (update_wm_hints): fix for how we read the input - hint, from Hidetoshi Tajima - - (meta_window_show): from Hidetoshi, don't autofocus windows with - input = FALSE wm_take_focus = FALSE when they first appear. We do - allow these windows to be focused (so keynav works), but they - don't get focused automatically. Now how do we keep them out of - the task list? - -2002-06-04 Gustavo GirÃ�¡ldez - - * src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's - fill_type when type is META_DRAW_ICON. - -2002-06-03 Havoc Pennington - - * src/window.c (meta_window_new): don't automatically fullscreen - things opened fullscreen, because there's no GUI to un-fullscreen - them. - -2002-06-03 Havoc Pennington - - * src/theme-parser.c (parse_aspect_ratio): fix error message about - bad aspect ratio name. - -2002-06-03 Havoc Pennington - - * src/themes/Esco/metacity-theme-1.xml: test button aspect ratio - instead of hardcoded button size, James feel free to revert if you - don't like it this way. - - * src/theme-parser.c: parse the aspect_ratio element for button - aspect ratios. - - * src/theme.h (struct _MetaFrameLayout): allow button sizes to be - given as an aspect ratio derived from the titlebar height, - instead of as a fixed size. - - * src/theme.c (meta_frame_layout_validate): validate new button - sizing parameters - - * src/theme.c (meta_frame_layout_calc_geometry): use new button - layout params - -Mon Jun 3 15:12:11 2002 HideToshi Tajima - - * configure.in (METACITY_LIBS): put -lXext into SHAPE_LIBS - -2002-06-03 Kjartan Maraas - - * src/tools/metacity-properties.desktop.in: Someone forgot to mark - the two strings in here for translation :) - -2002-06-02 Havoc Pennington - - * configure.in: 2.3.610 - -2002-06-01 Havoc Pennington - - * src/frames.c (meta_frames_finalize): move the remove_listener - to finalize instead of destroy, thanks to Jayaraj for tracking - down the bug. - -2002-06-01 Havoc Pennington - - * src/session.c: add some missing \n - (meta_session_init): remove the #if 0 interact callback from our - initial SmcOpenConnection call, this arg to SmcOpenConnection - doesn't exist. - -2002-06-01 Havoc Pennington - - * src/session.c: put in more debug spew about the session - -2002-05-30 Havoc Pennington - - * src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale - for localedir to work with Solaris native gettext, patch from - Hidetoshi Tajima - - * src/tools/Makefile.am: ditto - -2002-05-31 Havoc Pennington - - * src/theme.c: add MetaImageFillType and implement TILE in - addition to the existing SCALE - - * src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha" - field - -2002-05-31 Havoc Pennington - - * src/theme.c (multiply_alpha): now just uses - meta_gradient_add_alpha - (draw_op_as_pixbuf): implement alpha gradients for tint, gradient, - and image draw ops, so I can implement garrett's stuff. - - * src/gradient.c (meta_gradient_add_alpha): new function to - multiply the alpha channel of a pixbuf by an alpha gradient - -2002-05-30 Havoc Pennington - - * src/main.c (main): verbose-log on startup whether we were - compiled with various extensions - - * src/display.c (meta_display_queue_retheme_all_windows): reapply - shape mask when changing themes, sucks to do it here though, makes - theme changing slower. Needs fixing. - - * src/theme-parser.c (parse_toplevel_element): parse rounded - corner options to frame_geometry - - * src/frames.c (meta_frames_apply_shapes): apply rounded corners - if requested by the theme - - * configure.in (HAVE_SHAPE): check for shape extension - -2002-05-30 Stephen Browne - - * src/tools/metacity-properties.c: - Some day I'll make all my changes in one commit :) - Needed to rip out code for adding icon to the dialog since it was - removed from teh galde file in my previous change. - -2002-05-30 Stephen Browne - - * src/tools/metacity-properties.glade: - Some UI changes demanded by Pat and Calum. - Make Close default response - Change mnemonic for Click so as not to clash with Close - -2002-05-30 Stephen Browne - - * src/tools/metacity-properties.glade: changed window title - to match other control center dialogs - -2002-05-29 Havoc Pennington - - * src/session.c (meta_session_init): improve error about failing - to open session manager. - (shutdown_cancelled_callback): send SmcSaveYourselfDone when we - get cancelled - (interact_callback): implement an interact callback that complains - about lame clients that can't be saved. Still somewhat buggy - in that it sends InteractDone before the user has closed the - dialog. - -2002-05-29 Havoc Pennington - - * src/tools/metacity-mag.c: add a magnifier I'm using when making - themes. Not installed. - - * src/tools/metacity-properties.c: reindentation, show window, add - copyright info. - - * src/tools/metacity-properties.glade: make main window !visible - on startup, to avoid funkiness. - -2002-05-29 Jacob Berkman - - * src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files - -2002-05-29 Stephen Browne - - New simple metacity-properties dialog to configure focus mode - and auto raise. - - * configure.in: added build support for metacity-properties - * src/tools/Makefile: more build stuff - * src/tools/metacity-properties.c: added these files - * src/tools/metacity-properties.glade: - * src/tools/metacity-properties.desktop.in: - * src/tools/metacity-properties.png: - -2002-05-29 Havoc Pennington - - * src/window.c (meta_window_move_resize_internal): add code to - also guess that client wants to come out of fullscreen, then - #if 0 the whole deal, I'm not sure it's such a good idea. - -2002-05-29 Havoc Pennington - - * src/window.c (meta_window_move_resize_internal): guess if a - window meant to be fullscreen, and if so put it in that state. - -2002-05-28 Havoc Pennington - - * src/window.c (redraw_icon): handle missing frame, prevents segv - with undecorated windows. #83298 - -2002-05-28 Havoc Pennington - - Patch from Erwann Chenede for raise_or_lower keybinding - - * src/display.c, src/common.h: POINT_IN_RECT moved to a common - location, removed from here - (meta_rectangle_intersect): move here and make it public - - * src/prefs.c: add raise_or_lower keybinding - - * src/stack.c (meta_stack_get_below, meta_stack_get_above): add an - arg to only get windows within the same layer - - * src/keybindings.c (handle_raise_or_lower): add handling for a - "raise window if obscured, else lower" keybinding - -2002-05-28 Havoc Pennington - - * src/window.c (meta_window_configure_request): handle CWStackMode - in configure requests - (meta_window_new): if a window is opened at 0,0 and screen size, - put it in the fullscreen state. - (meta_window_new): remove old code that set the window position to - 0,0 if PPosition/USPosition unset, that will be handled by whether - we place the window or not. - -2002-05-28 Abel Cheung - - * configure.in: Added "zh_TW" to ALL_LINGUAS. - -2002-05-27 Havoc Pennington - - * src/window.c (meta_window_new): search for the window's screen - by root window instead of Screen*, maybe it will help with - bug #82664 - -2002-05-27 Kjartan Maraas - - * autogen.sh: Hook up intltoolize here. - * configure.in: Initialize intltool. - * src/metacity.schemas.in: Add this. - * src/metacity.desktop.in: Add this too - * src/Makefile.am: Hook up intltool support for .schemas and .desktop. - * Makefile.am: Dist the intltool files. - -2002-05-27 Anders Carlsson - - * src/themes/Gorilla/metacity-theme-1.xml: Apparently someone - thinks my name is Anders Carlsom. Well, it's not. - (Thanks to Carl-Johan Kjellander for noticing.) - -2002-05-26 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Remove borders from - Esco theme as well (didn't know you could), apparently fixed - the problem where the spacing between the icon & the title - got larger as the fontsize went up. - -2002-05-26 Havoc Pennington - - * src/themes/Atlanta/metacity-theme-1.xml: totally drop the - borders off of maximized windows. - -2002-05-26 Havoc Pennington - - Patch from Gaute Lindkvist so you can't move the panel or desktop - to only one workspace. - - * src/keybindings.c (handle_move_to_workspace): don't allow moving - window to another space if the window is always_sticky - - * src/window.c (recalc_window_features): set the always_sticky - field for desktop/dock windows. - (meta_window_show_menu): disable unsticking always sticky windows - via the menus - - * src/menu.c (meta_window_menu_new): disable workspace items - if requested - -2002-05-26 Matthias Warkus - - * po/de.po: Added. - * configure.in: de added to ALL_LINGUAS - -2002-05-25 Erwann Chenede - - - * src/keybindings.c (rebuild_screen_binding_table, - rebuild_window_binding_table, - meta_change_keygrab): allow key grabbing for - unmodified keys (e.g F1, etc) fix #82630 - -2002-05-25 Anders Carlsson - - * src/place.c: (get_vertical_edges), (get_horizontal_edges): - Take Xinerama screen edges into consideration. - - * src/screen.c: (meta_rectangle_intersect), - (meta_screen_get_xinerama_for_window): - * src/screen.h: - Add a new function that returns the xinerama monitor that - a window is on. - -2002-05-24 Havoc Pennington - - * src/window.c (menu_callback): follow windows to their new - workspace - - * src/keybindings.c (handle_move_to_workspace): follow windows to - their new workspace - -2002-05-24 Havoc Pennington - - * src/metacity.schemas: add minimize window binding - - * src/keybindings.c (handle_minimize_window): add minimize keybinding - -2002-05-24 Havoc Pennington - - * src/window.c (meta_window_show): change how focusing windows - on initial map works, so that we only steal focus from our - transient parent or from a panel/desktop, never from other - normal windows. - -2002-05-24 Havoc Pennington - - * src/window.c (meta_window_configure_request): modify to ignore - PPosition and USPosition once the window has been placed - -2002-05-24 Anders Carlsson - - * src/window.c: Redraw the window frame when the icon changes. - Fixes #78543, reported by Kang Jeong-Hee. - -2002-05-23 Havoc Pennington - - * src/display.c (event_callback): also filter out LeaveNotify - with NotifyInferior - -2002-05-23 Jayaraj Rajappan - - * src/display.c (event_callback): fix for bugzilla bug #72314, - filter out LeaveNotify caused by grabs when in mouse focus mode. - -2002-05-23 Havoc Pennington - - * src/metacity.schemas: clean up the font preference - - * src/prefs.c: font pref - - * src/frames.c: pay attention to the font pref - -2002-05-23 Havoc Pennington - - Crack from Erwann - - * src/metacity.schemas: add autoraise crackrock - - * src/display.c (event_callback): autoraise window if autoraise is - enabled - - * src/prefs.c: autoraise crack - -2002-05-21 Havoc Pennington - - * src/window.c (constrain_position): fix positioning in fullscreen - mode, patch from Gustavo GirÃ�¡ldez - -2002-05-20 Alessio Frusciante - - * configure.in: Added Italian to ALL_LINGUAS. - -2002-05-20 Pablo Saratxaga - - * configure.in: Added Catalan (ca) and Azeri (az) to ALL_LINGUAS - -2002-05-17 Havoc Pennington - - * configure.in: 2.3.377 - -2002-05-16 Havoc Pennington - - * src/workspace.c (meta_workspace_get_neighbor): fix it, maybe - -2002-05-16 Havoc Pennington - - * src/window.c (constrain_position): lock desktop to position 0,0 - -2002-05-16 Havoc Pennington - - * src/window.c (meta_window_show): don't focus dock, desktop, - etc. windows on initial map, only windows that should have focus. - -2002-05-15 Havoc Pennington - - * src/workspace.c (meta_workspace_get_neighbor): use the layout - information to figure out up/down neighbors - - * src/display.c (event_callback): catch propertynotify on - _NET_DESKTOP_LAYOUT - - * src/screen.c (meta_screen_update_workspace_layout): keep track - of the layout of workspaces as set by the pager - -2002-05-15 James M. Cape - - * src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize - button. - -2002-05-14 Havoc Pennington - - * src/themes/Makefile.am (THEMES): add Esco theme from James Cape - -2002-05-12 Havoc Pennington - - * src/place.c (meta_window_place): move pposition/usposition - honoring code into here, instead of putting it in window.c. - Makes focusing new windows work, and cleans things up a bit. - #81585 - -2002-05-12 Havoc Pennington - - * src/main.c (main): turn on --g-fatal-warnings if - METACITY_G_FATAL_WARNINGS env variable is set. - -2002-05-11 Anders Carlsson - - * src/display.c: (find_tab_forward), (find_tab_backward), - (meta_display_get_tab_next): - * src/display.h: - * src/keybindings.c: (handle_tab_forward), (handle_focus_previous): - Add screen argument to meta_display_get_tab_next, since we only - want windows on the same screen to appear in the tab chain. - - * src/screen.c: (meta_screen_new): - Or the event mask with existing events since gtk+ may listen to - certain events and we don't want to disable those events. - - (meta_screen_ensure_tab_popup): - * src/tabpopup.c: (meta_ui_tab_popup_new): - * src/tabpopup.h: - Add a screen number argument to meta_ui_tab_popup_new so we - can position the popup on the correct screen. - -2002-05-11 Havoc Pennington - - * src/main.c: include locale.h, fix from Hidetoshi Tajima - - * src/window.c (meta_window_new): disable show desktop mode when a - new window is managed. - -2002-05-11 Havoc Pennington - - * src/fixedtip.c (meta_fixed_tip_show): keep the tooltip - on the screen horizontally, #76825 - - * src/window.c (meta_window_handle_mouse_grab_op_event): end grab - op _after_ doing the final update of the move or resize. - Hopefully I didn't have a reason for the order I was using before. - -2002-05-10 Havoc Pennington - - * src/tools/metacity-window-demo.c: add override redirect test - window - - * src/stack.c (raise_window_relative_to_managed_windows): new - function, used to avoid moving windows above override redirect - popup windows. - - * src/display.c (event_callback): don't lower panels on - LeaveNotify if they have focus, #70895 - -2002-05-10 Havoc Pennington - - * src/window.c (constrain_position): when maximizing/fullscreening - something with a grid, like a terminal, center it in the - maximization area in case it can't fill the whole area. - #70554 - - * src/main.c (main): use g_strerror() to get proper UTF-8. - -2002-05-10 Havoc Pennington - - * src/keybindings.c (reload_modmap): put LockMask into the - ignored_modifier_mask so that caps lock doesn't mess up - keybindings. - -2002-05-10 Havoc Pennington - - * src/window.c (meta_window_focus): if window is not mapped after - the calc_showing, don't focus it, it's probably on another - workspace or something. - -2002-05-09 Havoc Pennington - - * src/frames.c (show_tip_now): DefaultScreen() returns the screen - number not Screen* - - * src/frame.c (meta_frame_sync_to_window): immediately repaint - frame whenever we resize it, if we're inside a grab operation. - - * src/frames.c (meta_frames_repaint_frame): new function - - * src/window.c (meta_window_new): initialize window's colormap - (meta_window_notify_focus): install the colormap for a window when - it gets focus, uninstall on unfocus. - - * src/window.h (struct _MetaWindow): store window's colormap - - * src/display.c (event_callback): note changes to window colormap - - * src/frame.c (EVENT_MASK): add ColormapChangeMask - -2002-05-09 Havoc Pennington - - * src/display.c (event_callback): make Alt+button2 do a resize - -2002-05-08 Anders Carlsson - - * src/fixedtip.c (meta_fixed_tip_show): - #ifdef out call to gtk_window_set_screen, reported by - Erwann Chenede. - -2002-05-08 Anders Carlsson - - * configure.in: - * src/display.c: (meta_display_open): - * src/fixedtip.c: (meta_fixed_tip_show): - * src/fixedtip.h: - * src/frames.c: (meta_frames_new), (show_tip_now): - * src/frames.h: - * src/menu.c: (meta_window_menu_new): - * src/ui.c: (meta_ui_new): - Add multi-screen support. Also add patch by Erwann Chenede - to make tooltips appear on the correct screen. - -2002-05-07 Anders Carlsson - - * src/workspace.c (set_work_area_hint): Doh, only update - the tmp pointer when the screen matches. Fixes a segfault - when running with multiple screens. - - * src/display.c: (meta_display_open), (event_callback), - (meta_display_update_show_desktop_hint): - * src/display.h: - * src/screen.c: (set_supported_hint): - Fix atom name; it's _NET_SHOW_DESKTOP, not - _NET_WM_SHOW_DESKTOP. - - * src/frames.c: (meta_frames_unmanage_window): - Restore the mouse cursor to default when unmanaging a window. - -2002-05-06 Anders Carlsson - - * src/display.c: (set_utf8_string_hint): - Fix an off-by-one error. - - (meta_display_open), - (event_callback), (meta_display_update_show_desktop_hint), - (meta_display_show_desktop), (meta_display_unshow_desktop): - * src/display.h: - * src/screen.c: (set_supported_hint): - Add support for _NET_WM_SHOW_DESKTOP, both as a message and - as a root window property. - -2002-05-05 Havoc Pennington - - * src/window.c (meta_window_unminimize): on unminimize, queue - calc_showing on all transients - (meta_window_activate): on activate, unminimize all a window's - ancestors, not just the window itself. - - * src/workspace.c (set_work_area_hint): don't increment "tmp" by - 16 unsigned long, increment by 4 - - * src/window.c (meta_window_free): if a window isn't minimized, - restore its WM_STATE to NormalState instead of IconicState, - since IconicState on initial window map means that the window - should be minimized. - - * src/workspace.c (meta_workspace_invalidate_work_area): queue an - idle to recompute the work area hint. - (set_work_area_hint): we need 4*num_workspaces ints, not just - num_workspaces. - - * src/screen.c (meta_screen_new): add work_area_idle field, - handle it on screen shutdown - - * src/common.h (META_PRIORITY_PREFS_NOTIFY, - META_PRIORITY_WORK_AREA_HINT): define some idle priorities - - * src/window.c (meta_window_calc_showing): hide windows if - their parent window is minimized - (meta_window_minimize): also queue_calc_showing on all - transients of the window being minimized - - * src/place.c (constrain_placement): function to apply - placement-time-only constraints, such as "not off the left of the - screen" - (meta_window_place): put dialogs down a bit over their parent, - not right at the top. - (meta_window_place): when centering a dialog, center it - on the current xinerama screen, rather than the entire - screen. - - * src/screen.c (meta_screen_get_current_xinerama): new function, - but not implemented - -2002-05-04 Havoc Pennington - - * src/frames.c (meta_frames_paint_to_drawable): chop out the - portion of the region that's outside the screen. - - * src/core.c (meta_core_get_screen_size): new function - (meta_core_get_frame_extents): new function - -2002-05-04 Havoc Pennington - - * src/frames.c (meta_frames_init): disable automatic GTK double - buffering, since it resulted in gigantic backing pixmaps the size - of the whole screen. - (meta_frames_paint_to_drawable): change to take a region argument; - punch the client area out of the expose region, then iterate over - rectangles in the region and draw each, manually doing - begin_paint_rect. Results in 4 long thin backing pixmaps - per frame repaint, instead of one large backing pixmap. - Suggested by Owen. - -2002-05-05 Bastien Nocera - - * src/workspace.c: (meta_workspace_get_neighbor): - Wrap-around workspaces (ie. when on the last workspace, - "switch_to_workspace_right" goes back to the - first one) - -2002-05-05 Anders Carlsson - - * src/metacity.schemas: Fix a spelling error and change - switch_to_workspace_up and switch_to_workspace_down to use - Ctrl+Alt since Nautilus uses Alt now. - -2002-05-04 Havoc Pennington - - * src/window.c (update_net_wm_type): correctly print things if the - type_atom is unset - (meta_window_new): with workarounds disabled, always allow - self-placement for windows with PPosition or USPosition set. - -2002-05-03 Havoc Pennington - - * src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko - -2002-05-03 Laszlo Peter - - * configure.in: add the X libs to METACITY_MESSAGE_LIBS and - METACITY_WINDOW_DEMO_LIBS - -2002-05-02 Havoc Pennington - - * README: updates - - * configure.in: 2.3.233 - -2002-05-02 Bastien Nocera - - * src/metacity.schemas: change the default for switch_to_workspace_* - to be arrow as just arrow collides with some apps - (especially web browsers) - -2002-05-01 Havoc Pennington - - * src/screen.c (meta_screen_new): Xlib doesn't like NULL for out - arguments; fix for #80472 from lbedford - -2002-04-30 Havoc Pennington - - * src/keybindings.c: finish mopping up mode_switch_mask field - - * src/display.h (struct _MetaDisplay): remove mode_switch_mask - field - -2002-04-30 Havoc Pennington - - * src/window.c (recalc_window_features): don't try to decorate - toolbars. - - * src/tools/metacity-window-demo.c: add menu and toolbar tests - - * src/place.c (meta_window_place): only dialogs should be centered - over parent, not anything with transient for set. - - * src/window.c (meta_window_configure_request): become more - fascist about window positioning if workarounds are disabled, and - less fascist if they are enabled. - - * src/metacity.schemas: add a "disable_workarounds" option. Kind - of crack-smoking. But we just can't get all applications - fixed. And I need no-workarounds mode to monitor which apps are - broken and what needs fixing in specs. - - * src/window.c (meta_window_configure_request): always allow - windows to resize themselves - - * src/keybindings.c (reload_modmap): don't filter out Mode_switch, - apparently some people bind window manager shortcuts to that. - -2002-04-30 Havoc Pennington - - * src/window.c (constrain_position): oops, fix - maximization. Pointed out by Gustavo GirÃ�¡ldez - -Tue Apr 30 06:24:09 2002 Jonathan Blandford - - * src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same - mnemonic for consistency's sake. - -2002-04-29 Havoc Pennington - - * src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels - onscreen so you typically get a sliver of titlebar, suggested by - tigert. Should still fix this to consider actual theme geometry. - (constrain_position): change to allow movement off the left - -2002-04-29 Havoc Pennington - - * src/display.c (event_callback): always raise windows on focus - click, regardless of focus mode. - -2002-04-29 Havoc Pennington - - * configure.in: 2.3.144 - -2002-04-29 Havoc Pennington - - * src/ui.c (meta_ui_init): don't leak the PangoContext - -2002-04-28 Anders Carlsson - - * src/display.c: (meta_display_open): - * src/display.h: - * src/screen.c: (set_supported_hint): - * src/workspace.c: (set_number_of_spaces_hint), - (set_workarea_hint): - Add support for setting the _NET_WM_WORKAREA hint. No code - does it yet though. - -2002-04-28 Havoc Pennington - - * README: remove caveats about keybindings - - * src/metacity.schemas: add schemas for all the keybindings. - - * src/window.c (meta_window_activate): if in "show desktop" mode - when a window is activated, leave show desktop mode. So e.g. - when you click on a task in the task list, show desktop mode - will be turned off. - - * src/workspace.c (meta_workspace_get_neighbor): new function - that doesn't quite work yet (needs support for getting - workspace layout from the pager) - - * src/prefs.c: keybindings stuff - - * src/keybindings.c: make keybindings configurable - - * src/ui.c (meta_ui_parse_accelerator): new function - -2002-04-25 Havoc Pennington - - * metacity.spec: fix to install gconf schemas - -2002-04-25 jacob berkman - - * src/session.c (load_state): g_file_get_contents() takes a gsize - not int (fixes bus error on 64-bit platforms) - -2002-04-22 Havoc Pennington - - * src/main.c (main): call setlocale ourselves because due to a - GLib bug that sticks us in ASCII if you call g_print or anything - prior to setlocale, and print a warning if we don't set the locale - successfully. #79280 - - * src/workspace.c (meta_workspace_get_work_area): be more verbose - about how the work area was computed, to help find bugs here. - - * src/main.c (main): put locale and codeset in the log file - -2002-04-21 Havoc Pennington - - * src/window.c (meta_window_send_icccm_message): add error trap, - fixes a possible BadWindow if a window closed itself in response - to the delete window message prior to us sending the ping message. - -2002-04-21 Havoc Pennington - - * src/window.c (meta_window_move_resize_now): never revert to - user_rect.width, user_rect.height. Maybe fixes assorted resize - screwups e.g. with gnome-terminal. - -2002-04-21 Anders Carlsson - - * src/iconcache.c (scaled_from_pixdata): Add padding if - icon width and height differ. - -2002-04-17 Havoc Pennington - - * src/screen.c (meta_screen_new): query Xinerama screen - information if HAVE_XINERAMA - - * configure.in (found_xinerama): check for Xinerama - -2002-04-17 Changwoo Ryu - - * configure.in (ALL_LINGUAS): Added ko (Korean). - -2002-04-16 Akira TAGOH - - * configure.in (ALL_LINGUAS): add ja.po entry. - -2002-04-15 Havoc Pennington - - * src/window.c (update_title): fix issue with GNU libc - mangling %.10s format - - * metacity.spec: Fix up spec file - - * README: update README - - * configure.in (ALL_LINGUAS): require GTK 2.0.0 - -2002-04-15 Havoc Pennington - - * src/display.c (meta_display_ping_window): reply immediately for - windows that don't support _NET_WM_PING - - * src/window.c (update_protocols): check whether windows - support _NET_WM_PING - -2002-04-13 Havoc Pennington - - * src/ui.c (get_cmap): same fix as libwnck, avoid using cmap - with the wrong depth - -2002-04-13 Havoc Pennington - - * src/delete.c: new file containing all the - wacky mess I just added to a simple "click the close button", - contains all the dealing-with-dead-application cruft. - Use metacity-window-demo to test by clicking the - toolbar button that locks it up. - -2002-04-12 Havoc Pennington - - * src/tools/metacity-window-demo.c (do_appwindow): make one of the - toolbar buttons lock up the demo - - * src/window.c (meta_window_delete): move error trap to be around - a narrower part of the function, and add part of the ping stuff, - nothing user-visible yet - - * src/metacity-dialog.c (main): metacity-dialog executable to - live in libexecdir and pop up dialogs for us. - -2002-04-09 Havoc Pennington - - * src/theme.c (multiply_alpha): fix alpha multiplication routine - to perhaps work correctly, reported by tigert. Also, be sure - we always copy the image if necessary before modifying the - alpha channel. - -2002-04-05 Havoc Pennington - - * src/stack.c: remove the unused tab stuff - - * src/display.c: implement tab list among panels - - * src/keybindings.c: fill in move-between-panels keybindings - -2002-03-31 Johan Dahlin - - * src/menu.c (meta_window_menu_new): Make sure all menu items are - translated. - -2002-03-27 Havoc Pennington - - * src/window.c (meta_window_free): remove - unmanaged windows from save set, and unselect - input so we don't get events from them. Fixes annoying - bug where withdrawn windows would decide to map themselves - due to save set stuff. - -2002-03-22 Zbigniew Chyla - - * configure.in (ALL_LINGUAS): Added pl (Polish). - -2002-03-21 Havoc Pennington - - * src/themes/Bright/metacity-theme-1.xml: Added "Bright" theme - from Gaute Lindkvist, with some small clipping tweaks to keep - text/icons from overlapping their frames. - -2002-03-19 Havoc Pennington - - * src/resizepopup.c (place_vertical_size_window) - (place_horizontal_size_window): disable the little shaped windows - with the window size, they caused a crash anytime you tried to - resize with Xft. And they were kind of on crack anyway. - -2002-03-17 Havoc Pennington - - * src/resizepopup.c (ensure_tick_windows): turn off the tick - marks, that got annoying after about 5 minutes. One big shape - window instead of lots of little windows might fix it. - -2002-03-17 Havoc Pennington - - * src/resizepopup.c: Add some total crackrock resize-grid - indication for windows that have width_inc/height_inc - so I can debug gnome-terminal sizing. - -2002-03-17 Havoc Pennington - - * src/session.c (set_clone_restart_commands): use proper property - name for SmDiscardCommand (instead of setting the clone command to - "rm"). Also fix typo that iterated over clonev not discardv to - fill in prop list, and NULL-terminate discardv. #74584 from Kang - Jeong-Hee. - -2002-03-13 Havoc Pennington - - * src/main.c (main): put back --sm-client-id argument, needed - for including us in a default session - -2002-03-13 Havoc Pennington - - * src/session.c (meta_session_init): don't save a file here, only - in response to SaveYourself. Change the code to properly use a - unique state file for each SaveYourself. Totally, totally - untested. - -2002-03-12 Havoc Pennington - - * src/theme-viewer.c: improve the theme viewer so people - can see the broken aspects of their themes. - -2002-03-11 Havoc Pennington - - * src/keybindings.c: use new functions - - * src/display.c (meta_display_get_tab_next): - (meta_display_get_tab_list): new tab order functions using - MRU list instead of map order - - * src/window.c (meta_window_notify_focus): maintain focus MRU list - - * src/display.h (struct _MetaDisplay): Keep an MRU list of - windows. - -2002-03-10 Havoc Pennington - - * src/display.c (event_callback): support _NET_NUMBER_OF_DESKTOPS - message so you can change number of desktops with the pager - - * src/prefs.c (meta_prefs_set_num_workspaces): new function - - * src/display.c (meta_spew_event): print stacking aspects of - configure requests - -2002-03-10 Havoc Pennington - - * src/screen.c (set_supported_hint): we didn't claim to support - _NET_ACTIVE_WINDOW so gtk_window_present() didn't work. Mumble. - Only worked with tasklist because libwnck didn't check for - WM support. - - * src/window.c (meta_window_free): clean off window state - when windows are withdrawn, to avoid sticking dialogs - to their initial desktop. - (meta_window_queue_calc_showing): return if window is withdrawn - -2002-03-08 Laszlo Peter - - * configure.in: fix the X linker flags - -2002-03-06 Havoc Pennington - - * src/core.c (meta_core_get_grab_frame): add some assertions - - * src/menu.c (meta_window_menu_new): make another warning - into a verbose - - * src/display.c (meta_change_button_grab): use verbose rather than - warning to log failures to grab button, since these are typically - BadWindow from a destroyed window. - -2002-03-06 Havoc Pennington - - * src/frames.c (meta_frames_manage_window): use hash_table_replace - instead of g_hash_table_insert - - * src/main.c (main): only enable verbose/debug if you set - METACITY_VERBOSE/METACITY_DEBUG - - * src/util.c (ensure_logfile): only use a log file if - METACITY_USE_LOGFILE is set - - * src/display.c (meta_display_for_x_display): add warning if - MetaDisplay isn't found - - * src/window.c (meta_window_free): add an assertion that we - successfully cleared the grab window - -2002-03-05 Havoc Pennington - - Work on opaque animations more, still suck too much - to turn on. Not sure how to make them good. - - * src/effects.c (meta_effects_draw_box_animation): - add a slide-up mode for shading - - * src/ui.c (meta_image_window_set): change image window to work by - setting back pixmap on the GtkWindow, instead of using GtkImage. - -2002-03-04 Havoc Pennington - - * src/main.c (main): try ignoring SIGXFSZ, though I'm not - sure what that does exactly. I'm hoping it gives me EFBIG. - - * src/util.c (ensure_logfile): log to a file in /tmp instead - of to ~/metacity.log. - -2002-03-04 Havoc Pennington - - * configure.in: fix configure.in since GTK no longer gives us - -L/usr/X11R6/lib - -2002-03-03 Havoc Pennington - - * src/window.c: improve debug spew about initial workspace - -2002-03-02 Havoc Pennington - - * src/window.c (recalc_window_features): disable resize etc. if - we're fullscreen - (constrain_size): fix size constraints when fullscreen - - * src/display.c (meta_display_open): fix missing comma that - ended up concatenating two of the properties breaking - FULLSCREEN state and PING protocol - -2002-03-02 Havoc Pennington - - * src/display.c: Add hacking to fix the problem that we made our - XGrabPointer() during Alt+Tab actually succeed, so on popping down - Alt+Tab we got an EnterNotify from the ungrab, which resulted in - focusing the window under the mouse. i.e. Alt+Tab didn't work with - sloppy focus. - -2002-02-26 Havoc Pennington - - Screw around with Anders's ping patch so he'll get plenty of CVS - conflicts. ;-) - - * src/display.c (meta_display_ping_window): spew warnings - if we try to call this with CurrentTime - (meta_display_ping_timeout): remove ping from the pending pings - after it times out. - - * src/util.h: added PING debug category - - * src/display.c (remove_pending_pings_for_window): don't remove - "tmp" just before "tmp->next", don't break out of loop after - finding the first match - (meta_display_open): no trailing comma in array init - (event_callback): move the processing of ping replies into a - separate function - - * src/screen.c (set_supported_hint): add _NET_WM_PING to supported - list - - * src/display.h: change gpointer to void* - -2002-02-26 Anders Carlsson - - * src/display.c: (ping_data_free), - (remove_pending_pings_for_window), (meta_display_open), - (event_callback), (meta_display_unregister_x_window), - (meta_display_ping_timeout), (meta_display_ping_window), - (meta_display_window_has_pending_pings): - Implement meta_display_ping_window, and filter out scroll wheel - events. - - * src/display.h: - Add MetaWindowPingFunc, meta_display_ping_window and - meta_display_window_has_pending_pings. - -2002-02-24 Havoc Pennington - - * src/display.c (xcursor_for_op): switch on the op passed in, not - the active op. Gives us the right cursor during resizing, etc. - - * src/errors.c: rearrange all the error stuff to adapt to the GDK - change a while back, so now we print our X errors again - - * src/display.c (meta_display_begin_grab_op): remove KeyPressMask - and KeyReleaseMask from the XGrabPointer(), this caused BadValue - and kept the grab from ever succeeding. Fixes the problem with the - GTK resize grip - this is why you shouldn't break your X error - spew. ;-) - - * src/display.c: debug spew tweaks - - * src/window.c (meta_window_client_message): do some - s/verbose/topic/ stuff - -2002-02-23 Havoc Pennington - - * src/ui.c (meta_ui_init): fix the - be-sure-we-create-coverage-cache hack - -2002-02-19 Havoc Pennington - - * src/ui.c (meta_ui_init): put in hack to keep Pango from mangling - our server grab and locking up on startup. (hack doesn't work - but I want to fix it on my real computer not this laptop) - - * src/window.c: Implement _NET_WM_STATE_FULLSCREEN - - * src/display.c (meta_display_open): add atoms for - _NET_WM_STATE_FULLSCREEN - -2002-02-16 Kjartan Maraas - - * src/main.c: Use bind_textdomain_codeset etc. - -2002-02-14 Havoc Pennington - - * src/theme-viewer.c: use the preview widget here - - * src/preview-widget.h, src/preview-widget.c: make the theme - preview into a nice widget - - * src/frames.c (meta_frames_ensure_layout): replace frame layout - if the frame style changes, this only ends up mattering if you - e.g. changed the font size for windows in a different state such - as maximized, which is crack, but the code may as well be correct - - * src/theme.c (meta_theme_get_frame_style): new function so we can - detect an invalid cache of the PangoLayout in a frame - -2002-02-14 Anders Carlsson - - * src/themes/Crux/metacity-theme-1.xml: Fix some bugs with - prelighting. - -2002-02-13 Anders Carlsson - - * src/theme.c (meta_pango_font_desc_get_text_height): Use - pango_context_get_metrics instead of loading the font. - -2002-02-12 Anders Carlsson - - * src/frames.c (meta_frames_manage_window): Set prelit_control - to META_FRAME_CONTROL_NONE. - (meta_frames_update_prelit_control): New function for setting - the prelit control. - (meta_frames_paint_to_drawable): Set prelight state. - (meta_frames_enter_notify_event): Update prelit control. - (meta_frames_leave_notify_event): Likewise. - (meta_frames_motion_notify_event): Likewise. - - * src/frames.h (struct _MetaUIFrame): add prelit_control. - - * src/window.c (update_mwm_hints): and MWM_FUNC_ALL - with hints->functions instead of hints->flags. - -2002-02-11 Anders Carlsson - - * src/theme.c (meta_frame_layout_new): Set title_scale to 1.0 - -2002-02-11 Bastien Nocera - - * src/theme-viewer.c: (main): change default theme to be Atlanta - like in the .schema file - -2002-02-10 Havoc Pennington - - * src/tools/Makefile.am (EXTRA_DIST): add $(icon_DATA) - - * configure.in: 2.3.55 - - * HACKING: update - - * README: update - -2002-02-09 Havoc Pennington - - * src/theme.c (meta_theme_set_current): add a newline to an error - message - - * src/themes/Gorilla: add Gorilla theme by Jakub Steiner ported to - metacity by Kenneth Christiansen - -2002-02-09 Havoc Pennington - - * src/theme.c (meta_draw_op_draw_with_env): implement wacky "tile" - draw op to lose some of the PNG files in Gorilla theme - - * src/theme-parser.c: parse the tile primitive - -2002-02-09 Havoc Pennington - - * src/window.c (update_icon): port to icon cache - - * src/iconcache.c, src/iconcache.c: begin process of cleaning up - window.c by moving the icon-reading code in here, based on the - code in libwnck, which was in turn based on the earlier metacity - code - -2002-02-09 Havoc Pennington - - * src/stack.c (meta_stack_sync_to_server): hmm, and don't set - last_window at all if we don't ++newp. Fixes even more obscure - stacking bug. - -2002-02-09 Havoc Pennington - - * src/stack.c (meta_stack_sync_to_server): assign last_window - prior to ++newp, so we don't try to stack windows with respect to - themselves. Fixes some obscure stacking bugs. - -2002-02-09 Havoc Pennington - - * src/theme-parser.c: try to make more error message strings the - same, easier for translators - - * src/theme.c (meta_draw_op_free): free color spec for line op - (meta_theme_free): free the integer_constants hash - - * src/theme-parser.c (parse_boolean): move above first use - - * src/theme-viewer.c: fixes for theme.h changes - - * src/frames.c (queue_recalc_func): don't recreate layout - immediately, just save title text. should speed things up. - (meta_frames_set_title): just remove the layout here also, - and save title text. - - * src/theme-parser.c (parse_toplevel_element): parse title_scale - attribute on frame_geometry - - * src/theme.c: support setting the text size - - * src/frames.c: support setting the text size - - * theme-format.txt: updates - -2002-02-09 Havoc Pennington - - * src/themes/Atlanta/metacity-theme-1.xml: put in some kind of - distinctive frame for UTILITY, though it's ugly. Also put in the - borderless look for maximized windows. - - * src/stack.c (compute_layer): put splash screen in the splash - layer - - * src/stack.h (enum): create a splash screen layer - - * src/place.c (meta_window_place): center splashscreen, and fix a - typo in the centering code - - * src/window.c (recalc_window_features): disable most features on - splash screens - - * src/screen.c (set_supported_hint): add UTILITY and SPLASHSCREEN - hints - - * src/window.c: add UTILITY, SPLASHSCREEN implementation - - * src/window.h (enum): add UTILITY, SPLASHSCREEN types - - * src/theme-parser.c (parse_toplevel_element): parser support - for has_title attribute - - * src/theme.c (meta_frame_layout_get_borders): handle a has_title - field in the layout, for utility windows that don't display a - title (would be better to be able to shrink the title text, - but that's kind of tricky to implement :-/) - -2002-02-08 Havoc Pennington - - * src/screen.c (set_supported_hint): add _NET_WM_STATE_HIDDEN - to _NET_SUPPORTED - - * src/keybindings.c (meta_set_keybindings_disabled): put in header - file, to fix warning. - - * src/display.c (meta_display_open): add _NET_WM_STATE_HIDDEN atom - - * src/window.c (set_net_wm_state): set _NET_WM_STATE_HIDDEN for - shaded and minimized windows - (meta_window_show): call set_net_wm_state() if we map the window - or frame - (meta_window_hide): call set_net_wm_state() if we unmap the window - or frame - -2002-02-08 Havoc Pennington - - * src/window.c (set_net_wm_state): only set skip pager/tasklist if - the app set it, don't set it again based on semantic type. - -2002-02-08 Anders Carlsson - - * src/theme.c (scale_and_alpha_pixbuf): If we're only - scaling horizontally or vertically, use GDK_INTERP_NEAREST. - -2002-02-08 Havoc Pennington - - * autogen.sh: unbreak - -2002-02-08 Havoc Pennington - - * src/display.c (meta_display_grab_focus_window_button): grab - buttons 2 and 3 also, so you can focus a window with those, - #70840 - (event_callback): fix this to let you focus a window with any - unmodified click, and also with Alt+button1 - - * configure.in (AC_OUTPUT): add po/Makefile.in - - * autogen.sh: port to glib-gettextize, remove stupid - auto-find-subdirs crap - - * Makefile.am (SUBDIRS): add po to subdirs, #70615 - - * src/window.c (meta_window_activate): unshaded window if shaded, - I thought this was in bugzilla but I don't see it. anyway thanks - whoever mentioned it to me. - -2002-02-08 Havoc Pennington - - * src/tools/metacity-window-demo.c (menu_items): add modal dialog test - -2002-02-08 Havoc Pennington - - * src/window.c (meta_window_show): when mapping a window with - struts, invalidate the work areas it's on. Should fix at least - part of the problem with windows maximizing over panels. - - * src/workspace.c (meta_workspace_invalidate_work_area): also - queue move/resize on sticky windows - - * src/tools/Makefile.am: consolidate reload-theme, restart into a - "metacity-message" app and add enable/disable keybindings to the - messages it knows about. - - * src/keybindings.c: - (meta_change_keygrab): grab keyboard synchronously - (meta_display_process_key_event): if all keybindings are toggled - off, ReplayKeyboard, else AsyncKeyboard, except that the debug - binding for toggling back on is always processed - (meta_set_keybindings_disabled): function to disable/enable - all keybindings - -2002-02-07 Havoc Pennington - - * src/run-metacity.sh: if DEMO_TEST is set then run the window - demo - - * src/tools/metacity-window-demo.c: Create an app with all the - semantic window types, for testing and for designing themes. - -2002-02-07 Havoc Pennington - - Throughout: move to meta_topic rather than meta_verbose so - metacity.log can start being more useful - - * src/util.h (enum): add more debug topics - - * src/frames.c: clean up some cruft that caused warnings - -2002-02-07 Havoc Pennington - - * src/theme.c (colorize_pixbuf): do random voodoo on the algorithm - -2002-02-07 Havoc Pennington - - * src/theme.c (colorize_pixbuf): use the intensity of the gray - pixel for both saturation and value, not just value. - -2002-02-07 Havoc Pennington - - * src/theme.c (INTENSITY): don't define the macro twice - -2002-02-07 Havoc Pennington - - * src/theme.c (colorize_pixbuf): get algorithm right (use HSV/RGB - conversion) at cost of making it a lot slower. It doesn't matter - anyhow with the cache, though. - -2002-02-06 Havoc Pennington - - * src/theme.c (colorize_pixbuf): handle out-of-memory creating - target pixbuf - - * src/themes/Crux/*.png: convert the green-channel images to grayscale - -2002-02-06 Havoc Pennington - - * src/prefs.c (change_notify): s/update_focus_mode/update_theme/ - in case of theme key changing - -2002-02-06 Havoc Pennington - - * src/theme-viewer.c: benchmark theme on startup - - * src/theme-parser.c (parse_draw_op_element): fix "colorize != - NULL" to "colorize_spec != NULL" and free pixbuf on color spec - failure - - * src/theme.c (colorize_pixbuf): minor reformatting, raise - function calls out of inner loop, clamp r/g/b values to uchar - range before assigning to uchar - (draw_op_as_pixbuf): cache the colorized pixbuf - (meta_draw_op_free): free the cache pixbuf - -2002-02-07 Anders Carlsson - - * src/theme-parser.c: (parse_draw_op_element): - Add support for "colorize" image attribute. - - * src/theme.c: (colorize_pixbuf): - New function that colorizes a pixbuf. - - (pos_tokenize): Allow "\n" as a whitespace character. - - (meta_draw_op_free): Free colorize_spec; - - (draw_op_as_pixbuf): Colorize image if needed. - - * src/theme.h: Add colorize_spec to struct. - -2002-02-07 Anders Carlsson - - * src/themes/Crux/metacity-theme-1.xml: Add maximized and - shaded_and_maximized frame styles. - -2002-02-06 Havoc Pennington - - * src/main.c (prefs_changed_callback): redo window - sizes/appearance when the theme changes - - * src/display.c (meta_display_retheme_all): new function - - * src/theme-parser.c (locate_attributes): remove error handling - for MAX_ATTRS reached, add an assert instead, the way this code - ended up the attrs in the array depend on the code not the theme - file. - -2002-02-06 Havoc Pennington - - * src/main.c (main): disable custom log handler and fatal mask for - now - - * src/theme.c (meta_draw_op_list_draw): - Add META_DRAW_CLIP - - * src/main.c: load theme, monitor current theme setting - - * src/prefs.c: add "current theme" setting - - * src/stack.c (meta_stack_free): don't try to free - last_root_children_stacked if it doesn't exist - - * src/themewidget.c: pluggable GtkMisc subclass to use - for menu icons - - * src/screen.c (meta_screen_manage_all_windows): fix - signed/unsigned warning - - * src/frames.c: port to theme system - (meta_frames_style_set): chain up - - * theme-format.txt: new file - - * configure.in: add more compiler warnings - - * src/theme.c: add various stuff needed to get theme parser - working. Remove the "spacer" concept from FrameLayout object. - Add draw op that references a draw op list. - - * configure.in: require GTK 1.3.13 - - * src/Makefile.am: add theme-parser.[hc], implement loading a - theme - - * src/theme.c: add "draw title" and "draw window icon" operations - (meta_draw_op_draw): put object_width/object_height in expression - environment before computing x/y. Handle out-of-memory when - creating pixbufs. Assorted other cleanups. - -2002-02-07 Anders Carlsson - - * src/themes/Crux/metacity-theme-1.xml: - Simplify things so we can remove some - now unnecessary .png files. - * src/themes/Crux/*.png: Remove some files. - -2002-02-07 Anders Carlsson - - * src/themes/Crux/metacity-theme-1.xml - * src/themes/Crux/*.png: - Add Crux theme - -2002-02-07 Kenneth Rohde Christiansen - - * configure.in: add da to ALL_LINGUAS - * po/da.po: add Danish translation - -2002-02-02 Havoc Pennington - - * src/theme-viewer.c: test % operator - - * src/theme.c (pos_tokenize): add % to switch for operators - - * src/theme.c: rework theme stuff so we have - MetaDrawOp/MetaDrawOpList instead of MetaTextureSpec/MetaShapeSpec - -2002-01-28 Havoc Pennington - - * src/theme.c (meta_texture_spec_render): fix shadowed variable - (stupid -Wall should have that) - - * src/theme-viewer.c (main): implement a simple - viewer for frame styles - - * src/theme.c (meta_frame_style_get_test): create partial - frame style to test drawing - -2002-01-27 Havoc Pennington - - * src/theme.c (meta_shape_spec_draw): implement - (meta_texture_spec_draw): implement shape spec and blank - texture support - (meta_frame_style_draw): implement - -2002-01-27 Havoc Pennington - - * src/display.c (meta_set_syncing): move in here so util.c doesn't - require display.[hc] - - * src/theme.h, src/theme.c: implement coordinate expression - parser, write MetaShapeSpec declaration - - * src/util.c (meta_exit): move in here so we can link - to util.c with a different main() - - * src/theme.h: rename the MetaWindow* enums to MetaFrame* - -2002-01-27 Peteris Krisjanis - - * configure.in - Added lv to ALL_LINGUAS - -2002-01-27 Havoc Pennington - - * src/frames.c (get_control): Only consider the bottom of the - titlebar a resize control; I keep accidentally resizing windows - instead of activating them. Also, give south resizing priority - over north, if the window is so small the active regions overlap - - * src/theme.c: add MetaTheme, get MetaFrameStyleSet into - a usable state - - * src/common.h: move window type back to window.h, decided - not to use it on frame side - (MetaFrameType): add this instead - -2002-01-27 Havoc Pennington - - * src/theme.h, src/theme.c: implement all kinds of crazy - compositing-one-texture-onto-another BS. - -2002-01-27 Havoc Pennington - - * src/display.c (event_callback): make the check for whether to - eat focus click a lot more complicated - - * src/window.c (meta_window_same_application): new function - - * src/prefs.h, src/prefs.c: add application based pref - - * src/metacity.schemas: add "application_based" setting to - give me a mode to fool with being application based, - without being unusable in the meantime. Yeah the crack flows - freely these days. Everyone knew it would happen. - -2002-01-27 Havoc Pennington - - * src/frames.c: separate code to draw frame from the - expose_event handler, so in principle we can draw the - frame to a pixmap, but this isn't used yet. - -2002-01-22 Hasbullah Bin Pit - - * configure.in: Added Malay (ms)to ALL_LINGUAS. - * po/ms.po: Added Malay Translation. - -2002-01-19 Havoc Pennington - - * src/wm-tester/test-resizing.c: cheesy client with static - bit gravity, used to test the below change. - - * src/window.c (meta_window_move_resize_internal): implement - Owen's proposal for window resizing. - http://mail.gnome.org/archives/wm-spec-list/1999-November/msg00088.html - - Currently you have to do METACITY_USE_STATIC_GRAVITY=1 in order to - use it, because some GDK bug is screwing up exposes on my frames - when it's enabled. - - * src/display.c (meta_display_create_x_cursor): fix glyph for - NE/NW cursors - - * src/frames.c (get_control): add ability to resize from top - - * src/frame.c (meta_frame_get_flags): can't resize shaded windows - (meta_frame_sync_to_window): add gravity arg - - * src/common.h (MetaWindowType): move here from window.h so - it can be used in themes stuff. - (MetaFrameFlags): remove META_FRAME_TRANSIENT since it - overlaps with window type and was unused. - -2002-01-18 Havoc Pennington - - * src/window.c (constrain_position): give priority to keeping NW - corner onscreen rather than SE, if we need to shift the window - to fit inside constraints - - * src/frames.c (meta_frames_get_geometry): don't depend on the - current window size - - * src/theme.c: move geometry stuff in here, to be calculated as - part of the theme - - * src/core.c (meta_core_get_client_size): new function to replace - meta_core_get_frame_size() so we don't have weird cycles - in the geometry calculation - -2002-01-12 Havoc Pennington - - * src/window.c (meta_window_queue_move_resize): make this actually - queue, rather than being synchronous as it was before. We'll see - what breaks. Should be more efficient and reduce flickery stuff a - bit in some cases. - -2002-01-15 Havoc Pennington - - * src/keybindings.c (handle_tab_backward): fix crash - when grab failed due to another operation in progress - (handle_tab_forward): fix crash when grab failed - -2002-01-10 Havoc Pennington - - * src/frame.c (meta_window_destroy_frame): only bump - unmaps_pending if the window was mapped - (meta_window_ensure_frame): ditto - - * src/keybindings.c: change arrow key bindings to use Ctrl+Alt not - just Alt, and add debug mode key bindings - - * src/stack.c (meta_stack_get_default_focus_window): don't choose - a default focus window with unmaps pending, since we probably just - unmapped it. - - * src/display.c (event_callback): move notify_focus on UnmapNotify - after the window_free check, so we can move focus to another - window when we unmanage - - * src/window.c (meta_window_hide): invalidate work areas when - hiding a window with struts - (meta_window_free): invalidate work areas when unmanaging a window - with struts - -2002-01-09 Havoc Pennington - - * src/window.c, src/window.h: store strut information, - update it on property changes, etc. etc. so we avoid panel - on maximize. - - * src/workspace.c (meta_workspace_get_work_area): add accessor for - work area so we can compute it lazily - - * src/display.h, src/display.c: add _NET_WM_STRUT atom - and _WIN_HINTS atom - -2002-01-08 Havoc Pennington - - * configure.in (ACLOCAL): add code to save ACLOCAL_FLAGS - - * src/frames.c (meta_frames_expose_event): max dither - - * src/testgradient.c (render_simple): change dither mode to MAX - to avoid banding - - * src/theme.c: lose the gradient cache, and put in some initial - data types for the theme format - -2002-01-07 Havoc Pennington - - * src/frames.c (meta_frames_expose_event): make gradient a bit - more subtle (don't go to the full background, but to a blend of - selection and background; put lighter color on top) - -2002-01-06 Havoc Pennington - - * src/window.c (meta_window_notify_focus): rearrange code a bit to - make it clear that has_focus flag always follows - display->focus_window - -2002-01-06 Havoc Pennington - - * src/window.c (meta_window_notify_focus): put in attempted fix - for the GTK 1.2 plug/socket screwup, now that my fixed debug spew - reveals what's actually happening. ;-) - - * src/gradient.c (meta_gradient_description_new): object - to store gradient descriptions - - * src/window.c (meta_window_notify_focus): fix the debug spew - that was confusing me - - * src/wm-tester/focus-window.c: add little program to focus - a window ID - -2002-01-06 Havoc Pennington - - * src/theme.c (meta_theme_get_gradient): change to use spiffy - gradient code. - - * src/gradient.c: copy lovely gradient code from WindowMaker, - as usual Dan and Alfredo have very nice code - -2002-01-06 Fatih Demir - - * configure.in: Added "tr" to the languages list. - -2002-01-05 Havoc Pennington - - * src/frames.c (meta_frames_expose_event): draw titlebar highlight - with snazzy gradient that needs some tweaking to be less - dumb-looking - - * src/theme.c: replace old theme.[hc] contents with newer stuff - that doesn't do anything - -2002-01-05 Havoc Pennington - - GTK 1.2 plug/socket clients still broken, don't know why. - - * src/screen.c (meta_screen_new): select focus change on root - window, for debugging - - * src/display.c (event_callback): when unfocusing, use - no_focus_window to hold the focus - - * src/display.h (struct _MetaDisplay): have a no_focus_window to - hold the focus when we don't want to have anything focused. - Then we can avoid confusing focusing-the-frame stuff. - - * src/window.c (meta_window_notify_focus): improve some debug spew - (meta_window_notify_focus): add hack from WindowMaker to ignore - focus in events with detail > NotifyNonlinearVirtual - -2002-01-04 Havoc Pennington - - * src/display.c (event_callback): don't lower docks when a grab - causes them to get LeaveNotify - -2002-01-04 Havoc Pennington - - * src/screen.c (meta_screen_free): set event mask on root window - to 0 so other window managers (such as ourselves restarting) can - start up; addresses race condition on restart where the old WM - still had RedirectMask when the new WM was trying to start up. - - * src/display.c (meta_display_close): free each screen - - * src/window.c (meta_window_show): always focus new windows in - click-to-focus mode - -2002-01-03 Havoc Pennington - - * src/window.c: use meta_XFree not XFree - - * src/display.h (meta_XFree): add null-safe XFree - - * src/util.c (meta_warning): have message prefix indicate that - it's a warning - (meta_fatal): indicate it's an error - - * src/window.c (update_sm_hints): clean up using - meta_prop_get_latin1_string - (update_role): ditto - (read_client_leader): clean up using meta_prop_get_window - (update_net_wm_type): clean up using meta_prop_get_cardinal - (update_initial_workspace): ditto - (update_net_wm_type): clean up using meta_prop_get_atom_list - (read_rgb_icon): get result from XGetWindowProperty return value - not from error trap - (update_kwm_icon): ditto - (meta_window_new): fix to read WM_STATE correctly - -2002-01-03 Havoc Pennington - - * src/window.c (update_net_wm_state): clean up using - meta_prop_get_atom_list - (update_mwm_hints): clean up using meta_prop_get_motif_hints - - * src/Makefile.am (metacity_SOURCES): add xprops.[hc] - - * src/xprops.c: new file with convenience functions for X - properties - -2002-01-03 Havoc Pennington - - * src/workspace.c (meta_workspace_activate): focus top window when - switching to a new workspace - - * src/util.c (meta_topic): start putting verbose output in - categories - - * src/window.c (meta_window_shade): focus frame after we queue - the calc_showing so the maps/unmaps have already happened. - - * src/display.c (meta_display_get_current_time): add the "get time - of current event" function and call it occasionally. - - * src/window.c (meta_window_free): if we have focus, call - meta_screen_focus_top_window(). - (meta_window_minimize): ditto - (meta_window_delete): ditto - - * src/screen.c (meta_screen_ensure_tab_popup): fix memory leak - - didn't free tab list - (meta_screen_focus_top_window): new function to use when we unmap - or unmanage a focused window - - * src/stack.c (meta_stack_get_default_focus_window): function used - in meta_screen_focus_top_window - -2001-12-21 Havoc Pennington - - * src/frame.c (meta_window_ensure_frame): add a server grab - here since we were failing to have one when calling the function - -2001-12-27 Duarte Loreto - - * configure.in: Added portuguese to ALL_LINGUAS - -2001-12-16 Kjartan Maraas - - * configure.in: Added "no" to ALL_LINGUAS. - -2001-12-11 Stanislav Visnovsky - - * configure.in: Added "sk" to ALL_LINGUAS. - -2001-12-10 Havoc Pennington - - Rework the click-client-area-to-focus support to use synchronous - grabs, avoids a big mess, lets us pass through click when - required (for dock/desktop). Disadvantage is all left-button - clicks now require window manager approval. ;-) - - * src/display.c (event_callback): don't focus dock/desktop when - the mouse enters them; require a click. - (meta_change_button_grab): allow sync grabs - (meta_display_grab_unfocused_window_buttons): establish a - synchronous grab and maintain it all the time, rename to - meta_display_grab_focus_window_button - - * src/window.c: change to reflect display.c - -2001-12-10 Havoc Pennington - - * src/window.c (meta_window_update_unfocused_button_grabs): oops, - unbreak this _again_ - reported by Josh Barrow - -2001-12-10 Havoc Pennington - - * src/window.c (meta_window_update_unfocused_button_grabs): don't - allow grab on docks/desktop for now; needs fixing later to - do the grab, but pass thru click, so we can focus those windows. - And in fact we need to do that even in sloppy mode. - -2001-12-10 Havoc Pennington - - * src/screen.c (meta_screen_foreach_window): fix broken - "tmp = tmp->data" - - Implement do-not-pass-thru-click for click-to-focus mode. - - * src/screen.c (update_focus_mode): when focus mode changes, - update all the window grabs - - * src/display.c (meta_display_grab_unfocused_window_buttons): - implement grabbing button 1 on client area of unfocused - click-to-focus windows - - * src/window.c (meta_window_update_unfocused_button_grabs): update - whether we're grabbing unmodified button 1 on client area - according to focus state and focus mode - (meta_window_new): start out with proper grab state - -2001-12-10 Havoc Pennington - - * src/menu.c (meta_window_menu_new): don't do mnemonics for - workspaces above 9 - -2001-12-10 Havoc Pennington - - * src/screen.c (meta_screen_new): oops, remove extra workspace - creation, and update to current pref. - -2001-12-09 Havoc Pennington - - * src/workspace.c (meta_workspace_free): update number of - workspaces hint - - * src/screen.c (update_num_workspaces): implement number of - workspaces setting - - * src/window.c (meta_window_configure_request): honor configure - requests on windows of type NORMAL, but still be mean to those of - type DIALOG - - * src/main.c (main): add more log domains to those we set a log - handler for, and only set warnings fatal in debug mode - - * src/metacity.schemas: add number of workspaces setting - -2001-12-09 Havoc Pennington - - * src/display.c (event_callback): in click-to-focus mode don't - focus on enter notify. Implement unfocusing on LeaveNotify in - mouse focus mode. Click to focus just ends up working if we - do nothing on enter/leave, because of the way things already - worked. Except I need to add some relatively complex hack to - allow clicking on client area, right now you have to click - on the frame. - -2001-12-09 Havoc Pennington - - * src/main.c (main): move SM init a bit later in the process, and - init prefs - - * src/session.c: fix no SM case (though I hardly know why I'm - bothering) - - * src/main.c (main): call bindtextdomain - - * src/util.h (_): actually call gettext - - * configure.in: put in AM_GLIB_GNU_GETTEXT and gconf stuff - - * src/prefs.c: Preferences - this marks the beginning of our doom. - None of them are actually implemented yet, but we monitor - some stuff from gconf. - -2001-12-07 Havoc Pennington - - * src/window.c (meta_window_unminimize): when unminimizing an app, - if we're in "show desktop" (all windows minimized) mode, leave - show desktop mode. Will occasionally be a bit weird, but allows - people to recover via task list if they accidentally do the show - desktop thing, and don't know what's going on. - -2001-12-06 Havoc Pennington - - * src/ui.c (meta_text_property_to_utf8): fix gdkatom/xatom screwup - - gee, I should read my warnings - -2001-12-03 Laszlo Peter - - * src/frames.c: add a dummy element to the enum so - the signals array is not empty. (breaks the build with Forte C) - - * src/window.c: s/__FUNCTION__/G_GNUC_FUNCTION/ - -2001-11-27 Havoc Pennington - - * src/window.c (constrain_position): change so that window can be - offscreen to the bottom or the right, as long as a small top-left - corner of the window remains onscreen. However, windows still - can't go off the left or top. - -2001-11-26 Havoc Pennington - - * src/window.c (window_query_root_pointer): add error trap - -2001-11-27 Jesus Bravo Alvarez - - * configure.in: Added gl (Galician) to ALL_LINGUAS. - -Tue Nov 20 18:49:16 2001 Owen Taylor - - * configure.in (found_sm): Add some additional quoting to - make it work with autoconf-2.5x. - -2001-11-02 Laszlo Peter - - * src/window.c (update_sm_hints): protect meta_verbose from - a NULL pointer. - -2001-10-29 Havoc Pennington - - * configure.in: bump version - -2001-10-29 Havoc Pennington - - * src/window.c (idle_calc_showing): handle queue/unqueue of - calc showings as we are iterating over the pending list - (meta_window_show): focus placed transients in here instead - of in meta_window_place - now it should actually work, yay - - * src/place.c (meta_window_place): remove focusing of transient - child from here; this was really broken - -2001-10-29 Yuriy Syrota - - * configure.in: Added "uk" to ALL_LINGUAS. - -2001-10-29 Havoc Pennington - - * README: note exciting new unminimize feature for the tab popup - - * src/keybindings.c (process_tab_grab): use meta_window_activate() - when choosing a window with tab popup, this should deiconify it - - * src/window.c (meta_window_client_message): use - meta_window_activate for _NET_ACTIVE_WINDOW message - (meta_window_activate): new function to raise/focus/unminimize - (meta_window_flush_calc_showing): new function - (meta_window_focus): force a calc showing on focus, so that we can - focus the window if appropriate (it must be mapped) - -2001-10-26 Havoc Pennington - - * src/display.c (meta_display_grab_window_buttons): fix for - ignoring NumLock on Alt-windowclick (previous NumLock fix - was only for key grabs not button grabs) - -2001-10-25 Havoc Pennington - - * src/window.c (meta_window_new): set the current workspace hint - -2001-10-25 Havoc Pennington - - * src/window.c (meta_window_visible_on_workspace): - I was using meta_workspace_contains_window() in a number of - places where on_all_workspaces should also have been considered, - thus this new function. Fixes bugs such as pinned windows - not appearing in the tab order. - (meta_window_client_message): use meta_window_visible_on_workspace - - * src/stack.c (find_tab_forward): ditto - (find_tab_backward): ditto - (meta_stack_get_tab_next): ditto - (meta_stack_get_tab_list): ditto - - * src/place.c (get_windows_on_same_workspace): ditto - - * src/keybindings.c (handle_focus_previous): ditto - (handle_focus_previous): ditto - -2001-10-24 Havoc Pennington - - * src/frames.c (meta_frames_expose_event): use bg/fg not base/text - for the window title area. - -2001-10-24 Havoc Pennington - - * src/window.c (meta_window_new): support initial - on-all-workspaces setting - -2001-10-22 Havoc Pennington - - * src/stack.c (meta_stack_sync_to_server): fix to keep desktop - window from appearing on top of everything else, among other stack - bugs. Untested. - -2001-10-15 Havoc Pennington - - * src/window.c (meta_window_new): use queried attributes to check - whether window should be initially maximized, rather than window - rect - -2001-10-15 Havoc Pennington - - * src/main.c (meta_restart): add a restart feature, for debugging - - * src/tools/metacity-restart.c: little utility program to trigger - the restart - -2001-10-14 Havoc Pennington - - * src/frames.c (meta_frames_button_press_event): raise/focus - windows on left-click, seem to have broken that yesterday - - * src/keybindings.c, src/display.c, src/window.c: add keybinding - to show/hide all normal windows (so you can see the desktop). - Currently Ctrl+Alt+D, which I don't like, but yay. - -2001-10-14 Havoc Pennington - - * src/window.c (meta_window_new): take a window mapped at - fullscreen size/pos to desire maximization; once I add a - fullscreen state, will change to copy kwin and take this mapping - as a desire for fullscreen, but for now testing with maximization. - - * src/window.h: remove fullscreen window type, now proposing it - as a window state instead. - -2001-10-14 Havoc Pennington - - * src/window.c (meta_window_maximize): always raise windows on - maximize - (meta_window_client_message): when activating a window, move - it to current workspace, instead of moving user to the - window's workspace. - -2001-10-14 HÃ�©ctor GarcÃ�­a Ã�lvarez - - * configure.in: Added "es" to ALL_LINGUAS for Spanish translation. - -2001-10-14 Havoc Pennington - - * src/display.c (event_callback): only handle events here if - the modmask from our button grab is active. i.e. only the - Alt-click is handled here. - - * src/frames.c: add check for whether button presses are in the - frame client area before handling them, so we don't weirdly let - you move a frame by clicking in its client area if the client - hasn't selected button press events. - -2001-10-13 Havoc Pennington - - * src/stack.c (meta_stack_sync_to_server): set last window before - setting newp, so we don't get the current window as the last - window and screw everything up - (IN_TAB_CHAIN): use type not layer to decide if a window is - in the tab chain, keeps panel out of alt-tab choices - -2001-10-13 Havoc Pennington - - * configure.in: add bad hack to work with GTK 1.3.9.90 RPMs from - gnomehide for now - - * src/ui.c: another piece of bad hack in here - -2001-10-13 Havoc Pennington - - * configure.in: bump version - -2001-10-13 Havoc Pennington - - * src/session.c (meta_session_init): hmm, fix build - -2001-10-12 Havoc Pennington - - * src/session.c (meta_session_init): set the session manager - priority so we start up before other apps. - -2001-10-12 Mikael Hallendal - - * src/ui.c (meta_ui_get_default_window_icon): use - gdk_pixbuf_new_from_inline - (meta_ui_get_default_mini_icon): use - gdk_pixbuf_new_from_inline - -2001-10-11 Christian Rose - - * configure.in: Added "sv" to ALL_LINGUAS. - -2001-10-10 Havoc Pennington - - * src/stack.c (meta_stack_free): fix mem leak of the MetaStack - object - (meta_stack_sync_to_server): try to avoid the restack-flicker - thing - -2001-10-07 Havoc Pennington - - * src/display.c (meta_display_update_active_window_hint): - set _NET_ACTIVE_WINDOW hint - - * src/window.c (meta_window_client_message): support - _NET_ACTIVE_WINDOW client message - -2001-10-07 Havoc Pennington - - * src/window.c (meta_window_client_message): don't allow - shade/maximize/minimize for windows that don't support those - operations. (minimizing the panel = bad) - -2001-10-04 Havoc Pennington - - * src/keybindings.c (meta_change_keygrab): add code to grab all - modifier combinations, so keybindings work with NumLock etc. - - * src/menu.c (meta_window_menu_new): remove newlines from menu - items - -2001-09-27 Havoc Pennington - - * src/session.c (save_state): when encoding text for session file, - escape XML entities - -2001-09-21 Alex Graveley - - * src/Makefile.am (metacity_SOURCES): Add inlinepixbufs.h so - that it gets generated. - - * src/frames.c (meta_frames_style_set): Update for new opaque - PangoFontMetrics. - -2001-09-17 Havoc Pennington - - * src/ui.c (meta_ui_init): add hackaround for the warning about - gtk-menu-bar-accel - -2001-09-17 Havoc Pennington - - * src/ui.c (meta_ui_get_default_mini_icon): - (meta_ui_get_default_window_icon): ref the returned icon, oops. - - * src/main.c (main): get the GLib warning/error output into - the metacity logfile, set warnings to be always fatal - - * configure.in: bump version to 2.3.13 - - * src/window.c (get_text_property): hrm, fix bug where we didn't - check errors on XGetTextProperty - -2001-09-17 Havoc Pennington - - * src/Makefile.am (VARIABLES): fix srcdir != builddir glitch - -2001-09-17 Havoc Pennington - - * src/ui.c: use the inline image data for default icon - - * src/common.h (META_MINI_ICON_HEIGHT): move icon size defines - here - - * src/Makefile.am: Create an inlinepixbufs.h header with inline - images - -2001-09-16 Havoc Pennington - - * src/session.c (process_ice_messages): disconnect this callback - on error - -2001-09-16 Havoc Pennington - - * src/window.c (meta_window_lower): new function - - * configure.in: bump version to 2.3.8 - - * src/display.c (event_callback): raise dock on enter notify, - lower it on leave notify (need to refine this behavior) - - * src/stack.c (compute_layer): experiment with putting the panel - in the normal layer, and raising it on mouseover - -2001-09-15 Havoc Pennington - - * src/window.c: add support for a mini icon in the titlebar - (update_icon): re-enable support for _NET_WM_ICON - - * src/session.c (save_state): add an ferror check when writing - session file - -2001-09-11 Havoc Pennington - - * src/main.c (usage): exit with error code on usage() (kind of - wrong for --help, but oh well). - -2001-09-11 Havoc Pennington - - * src/window.c: fix up handling of text properties, so we - get UTF8_STRING as that type and not as text list, and so - we properly convert from text list to UTF-8 - -2001-09-10 Havoc Pennington - - * src/menu.c (meta_window_menu_new): icon for unmaximize - - * src/ui.c (meta_ui_init): fix call to XDisplayName - - * src/util.c: add missing header - - * src/frames.c: draw an unmaximize control if already maximized - -2001-09-10 Havoc Pennington - - * src/window.c: Don't separate user_has_moved/user_has_resized, - fixes bug in east-resizing Emacs, among other things - - * src/frame.c (meta_frame_sync_to_window): return immediately if - nothing to do - - * src/util.c (ensure_logfile): replace rather than truncate old - logfiles - -2001-09-08 Havoc Pennington - - * src/ui.c (meta_ui_init): don't use gdk_display_name - - * src/frame.c (meta_window_ensure_frame): create frame - with screen default visual, rather than client window visual; - for DRI games, the client window visual was not allowed to be - a child of another window with the same visual, apparently. - Anyhow now we copy twm, etc. so it must be correct. - - * src/place.c (meta_window_place): if a transient is placed and - its parent has focus, focus the transient. - -2001-09-06 Havoc Pennington - - * configure.in: bump version 2.3.5, require newer GTK release - -2001-09-04 Havoc Pennington - - * src/wm-tester/Makefile.am (noinst_PROGRAMS): make test apps - noinst - - * src/metacity.desktop: for the capplet - - * src/Makefile.am: add .desktop file - -2001-09-01 Havoc Pennington - - * src/errors.c: clean up the code, and replace GDK X error handler - with one that chains up to GDK but first logs the error to logfile. - -2001-08-31 Havoc Pennington - - * src/tabpopup.c (meta_ui_tab_popup_new): fix args to - gtk_alignment_new() - -2001-08-29 Havoc Pennington - - * src/display.c (event_callback): avoid focusing a window on tab - popup popdown - - * src/screen.c (meta_screen_ensure_tab_popup): compute frame - outline size here - -2001-08-29 Havoc Pennington - - * src/tabpopup.c: Switch back to outline. - -2001-08-29 Havoc Pennington - - * src/tabpopup.c: experiment with window-cover-with-icon - instead of just the outline; can't decide. - -2001-08-29 Havoc Pennington - - * src/tabpopup.c: add crackrock window-outlining feature - - * src/session.c (window_type_to_string): handle fullscreen - -2001-08-29 Havoc Pennington - - * src/display.c (meta_display_open): wrong atom name - - _NET_SUPPORTED not _NET_WM_SUPPORTED - - * src/window.c (meta_window_configure_request): geez, why were we - honoring configure requests for width/height for normal windows. - Denied! - (meta_window_client_message): _NET_WM_MOVERESIZE support, sort of - (doesn't quite work, acts like owner_events = true?) - - * src/display.c: add _NET_WM_MOVERESIZE atom - -2001-08-28 Havoc Pennington - - Unbreak tab popup a bit. - - * src/stack.c (meta_stack_get_tab_list): add workspace argument - (meta_stack_get_tab_next): add workspace argument - - * src/window.c: implement recording of the last user-initiated - window position, so we can magically handle moving panels around - really nicely. - - * src/wm-tester/main.c (set_up_icon_windows): fix to use new GTK - API - -2001-08-24 Havoc Pennington - - * src/window.c (constrain_position): force fullscreen windows to - be at 0,0 - - * src/ui.c: use NULL colormap to get bitmaps, requires - very latest GTK from CVS or it will spew warnings - and not work. - - * src/window.c (constrain_size): disallow larger than screen in - all cases, even if user has performed a resize operation. - (constrain_position): keep window boxed onscreen. - - * src/keybindings.c (meta_display_process_key_event): revert an - earlier change that disabled global keybindings when a grab is in - effect; instead, only disable global keybindings if a _keyboard_ - grab is in effect. The earlier change was just a broken - workaround, the problems it fixed should have been solved by the - addition of XGrabKeyboard() on the metacity keyboard grabs. - - This should fix the problem with - pick-up-window-and-move-to-another-desktop. - -2001-08-23 Havoc Pennington - - * src/window.c (update_icon): attempt to use the mask as well as - the pixmap. Probably doesn't work so well. - - * src/tabpopup.c: make this look a little nicer - -2001-08-22 Havoc Pennington - - * src/window.c (update_mwm_hints): all the MWM flag tests were - backward - -2001-08-22 Havoc Pennington - - * src/window.c (update_icon): half-ass implementation of - getting pixmap icons (WM_NORMAL_HINTS and KWM_WIN_ICON). - Ignores mask for now, with possibly ugly results for - some apps. - (read_rgb_icon): fixage - -2001-08-19 Havoc Pennington - - * src/window.c: add a "fullscreen" semantic type; if a window - requests the screen size exactly, and is undecorated, and is not a - desktop window, we consider it a fullscreen window and keep it on - top. - - Totally untested. - -2001-08-19 Havoc Pennington - - * src/screen.c (set_supported_hint): we support _NET_WM_ICON - - * src/wm-tester/main.c: add stuff to test _NET_WM_ICON - (but it doesn't work, so it isn't tested yet) - - * src/window.c (update_icon): read _NET_WM_ICON - - * src/screen.c (meta_screen_new): set the WM_ICON_SIZE hint - - * src/tabpopup.c (meta_ui_tab_popup_select): remove assertion - - * src/window.c (meta_window_get_icon_geometry): fix obscure - memleak - -2001-08-19 Havoc Pennington - - * src/display.c (meta_display_grab_window_buttons): remove XSync, - error traps already do that - (meta_display_grab_window_buttons): implement - - * src/keybindings.c: - src/display.c: wire up the tab window, it rulez! - -2001-08-19 Havoc Pennington - - * src/tabpopup.c: add prototype thingy to display windows we're - cycling through with tab. Not wired up to keybindings yet. - -2001-08-18 Havoc Pennington - - * src/effects.c (meta_effects_draw_box_animation): put an XFlush() - right after starting things moving - -2001-08-18 Havoc Pennington - - * src/window.c (meta_window_configure_request): - (meta_window_move_resize_internal): Make a half-hearted - not-very-tested attempt to handle window resizes correctly with - respect to window gravity. - -2001-08-18 Havoc Pennington - - * src/window.c (meta_window_get_gravity_position): hrm, I fixed - this wrong the other day. Fixes static gravity when moving - windows. - -2001-08-18 Havoc Pennington - - * src/ui.c (meta_image_window_set_position): also set the current - size. Lame hack of the day. - - * src/effects.c (effects_draw_box_animation_timeout): use the - delay exposes feature to avoid the screen dirt - - * src/ui.c - (meta_ui_push_delay_exposes): - (meta_ui_pop_delay_exposes): feature to let us delay redraws until - after we do server-grabbed draw-on-inferiors effects - -2001-08-17 Havoc Pennington - - * src/window.c (meta_window_get_gravity_position): fix for - StaticGravity - -2001-08-09 Havoc Pennington - - * src/window.c (meta_window_configure_request): Honor USPosition - even post-map. I know I'll regret this. - -2001-08-07 Havoc Pennington - - * src/display.c (meta_display_open): set _NET_WM_NAME - hint as a UTF8_STRING not STRING. Patch from Anders. - -2001-08-06 Havoc Pennington - - * src/effects.c: disable opaque animations by default, current - implementation suXors. - -2001-08-06 Havoc Pennington - - * src/effects.c (meta_effects_draw_box_animation): Get start - time after we do the pixbuf from drawable, so we don't count - time spent getting pixbuf from drawable in the animation time. - -2001-08-06 Havoc Pennington - - * src/effects.c: add opaque minimize/shade feature. The wireframe - seemed kind of confusing and unclear from a UI standpoint. - I know, I know. The bloat begins here. - - Also, we don't need to grab the server during opaque min/shade, - which has some nice implications. - - * src/ui.c: Add features to render a window with an image in it, - and also wrap pixbuf_from_drawable - - * src/effects.c (meta_effects_draw_box_animation): - modify to be smoother (at least theoretically) by - syncing to current time and "dropping frames" - as appropriate. - - * src/window.c (meta_window_shade): draw animation - for shading too - -2001-08-05 Anders Carlsson - - * src/display.h, src/display.c: Add _NET_WM_ICON_GEOMETRY atom. - - * src/window.c (meta_window_calc_showing): See if the window has - an icon geometry and show a morphing animation from the window's - coordinates to the icon's coordinates. - (meta_window_get_icon_geometry): New function that fetches a - window's icon geometry. - - * src/Makefile.am: Add effects.[ch]. - - * src/effects.c: New file with cool effects. - -2001-08-03 Havoc Pennington - - * src/keybindings.c: Add Alt + left/right arrow to - move between workspaces. - - * src/screen.c (set_wm_check_hint): put property pointing back to - itself on the _WIN_SUPPORTING_WM_CHECK window. - -2001-08-03 Havoc Pennington - - * src/display.c (event_callback): push error trap around configure - of withdrawn window, fixes a crash caused by rapidly - creating/destroying a window. - - * src/window.c (recalc_window_features): don't allow shading - undecorated windows. - - * src/wm-tester/main.c: add a program to torture window managers. - -2001-08-01 Havoc Pennington - - * src/window.c (recalc_window_features): if a window isn't - resizeable, turn off maximize function. If min size is equal to - max size, turn off resize function. - diff --git a/Doxyfile b/Doxyfile deleted file mode 100644 index a8a75411a..000000000 --- a/Doxyfile +++ /dev/null @@ -1,1297 +0,0 @@ -# Doxyfile 1.5.3 - -# This is the doxyfile for Metacity. - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file that -# follow. The default is UTF-8 which is also the encoding used for all text before -# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into -# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of -# possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = metacity - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -# Do not enter a setting here; it will only get out of date. -PROJECT_NUMBER = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, -# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, -# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, -# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to -# include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be extracted -# and appear in the documentation as a namespace called 'anonymous_namespace{file}', -# where file will be replaced with the base name of the file that contains the anonymous -# namespace. By default anonymous namespace are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = YES - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = src - -# This tag can be used to specify the character encoding of the source files that -# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default -# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. -# See http://www.gnu.org/software/libiconv for the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py - -FILE_PATTERNS = *.c *.h - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the output. -# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, -# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH -# then you must also enable this option. If you don't then doxygen will produce -# a warning and turn it on anyway - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES (the default) -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to -# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to -# specify the directory where the mscgen tool resides. If left empty the tool is assumed to -# be found in the default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will -# generate a caller dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the number -# of direct children of the root node in a graph is already larger than -# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/HACKING b/HACKING deleted file mode 100644 index 763bc8830..000000000 --- a/HACKING +++ /dev/null @@ -1,298 +0,0 @@ -Intro... - -Window managers have a few ways in which they are significantly different -from other applications. This file, combined with the code overview in -doc/code-overview.txt, should hopefully provide a series of relatively -quick pointers (hopefully only a few minutes each) to some of the places -one can look to orient themselves and get started. Some of this will be -general to window managers on X, much will be specific to Metacity, and -there's probably some information that's common to programs in general but -is nonetheless useful. - -Overview - Administrative issues - Minimal Building/Testing Environment - Relevant standards and X properties - Debugging and testing - Debugging logs - Adding information to the log - Valgrind - Testing Utilities - Technical gotchas to keep in mind - Other important reading - Extra reading - Ideas for tasks to work on - - -Administrative issues - Don't commit substantive code in here without asking hp@redhat.com. - Adding translations, no-brainer typo fixes, etc. is fine. - - The code could use cleanup in a lot of places, feel free to do so. - - See http://developer.gnome.org/dotplan/for_maintainers.html for - information on how to make a release. The only difference from those - instructions is that the minor version number of a Metacity release - should always be a number from the Fibonacci sequence. - -Minimal Building/Testing Environment - You do not need to _install_ a development version of Metacity to - build, run and test it; you can run it from some temporary - directory. Also, you do not need to build all of Gnome in order to - build a development version of Metacity -- odds are, you may be able - to build metacity from CVS without building any other modules. - - As long as you have gtk+ >= 3.0 and GIO >= 2.25.10 with your distro - (gtk+ >= 2.6 if you manually revert the change from bug 348633), you - should be able to install your distro's development packages - (e.g. gtk2-devel, glib-devel, startup-notification-devel on - Fedora; also, remember to install the gnome-common package which is - needed for building cvs versions of Gnome modules like Metacity) as - well as the standard development tools (gcc, autoconf, automake, - pkg-config, intltool, and libtool) and be ready to build and test - Metacity. Steps to do so: - - $ svn checkout http://svn.gnome.org/svn/metacity/trunk metacity - $ cd metacity - $ ./autogen.sh --prefix /usr - $ make - $ ./src/metacity --replace - - Again, note that you do not need to run 'make install'. - -Relevant standards and X properties - There are two documents that describe some basics about how window - managers should behave: the ICCCM (Inter-Client Communication Conventions - Manual) and EWMH (Extended Window Manager Hints). You can find these at - the following locations: - ICCCM - http://tronche.com/gui/x/icccm/ - EWMH - :pserver:anoncvs@pdx.freedesktop.org:/cvs - The ICCCM is usually available in RPM or DEB format as well. There is - actually an online version of the EWMH, but it is almost always woefully - out of date. Just get it from cvs with these commands (the backslash - means include the stuff from the next line): - cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions login - cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions \ - checkout wm-spec - - DO NOT GO AND READ THOSE THINGS. THEY ARE REALLY, REALLY BORING. - - If you do, you'll probably end up catching up on your sleep instead of - hacking on Metacity. ;-) Instead, just look at the table of contents and - glance at a page or two to get an idea of what's in there. Then only - refer to it if you see something weird in the code and you don't know - what it is but has some funny looking name like you see in one of those - two documents. - - You can refer to the COMPLIANCE file for additional information on these - specifications and Metacity's compliance therewith. - - One of the major things those documents cover that are useful to learn - about immediately are X properties. The right way to learn about those, - though, is through hand on experimentation with the xprop command (and - then look up things you find from xprop in those two manuals if you're - curious enough). First, try running - xprop - in a terminal and click on one of the windows on your screen. That gives - you the x properties for that window. Look through them and get a basic - idea of what's there for kicks. Note that you can get rid of some of the - verboseness by grepping out the _NET_WM_ICON stuff, i.e. - xprop | grep -v _NET_WM_ICON - Next, try running - xprop -root - in a terminal. There's all the properties of the root window (which you - can think of as the "main" Xserver window). You can also manually - specify individual windows that you want the properties of with - xprop -id - if you know the id of the window in question. You can get the id of a - given window by either running xwininfo, e.g. - xwininfo | grep "Window id" | cut -f 4 -d ' ' - or by looking at the _NET_CLIENT_STACKING property of the root - window. Finally, it can also be useful to add "-spy" (without the - quotes) to the xprop command to get it to continually monitor that - window and report any changes to you. - -Debugging information - Trying to run a window manager under a typical debugger, such as gdb, - unfortunately just doesn't work very well. So, we have to resort to - other methods. - - Debugging logs - - First, note that you can start a new version of metacity to replace the - existing one by running - metacity --replace - (which also comes in handy in the form "./src/metacity --replace" when - trying to quickly test a small change while hacking on metacity without - doing a full "make install", though I'm going off topic...) This will - allow you to see any warnings printed at the terminal. Sometimes it's - useful to have these directed to a logfile instead, which you can do by - running - METACITY_USE_LOGFILE=1 metacity --replace - The logfile it uses will be printed in the terminal. Sometimes, it's - useful to get more information than just warnings. You can set - METACITY_VERBOSE to do that, like so: - METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 metacity --replace - (note that METACITY_VERBOSE=1 can be problematic without - METACITY_USE_LOGFILE=1; avoid it unless running in from something that - won't be managed by the new Metacity--see bug 305091 for more details). - There are also other flags, such as METACITY_DEBUG, most of which I - haven't tried and don't know what they do. Go to the source code - directory and run - grep "METACITY_" * | grep getenv - to find out what the other ones are. - - Adding information to the log - - Since we can't single step with a debugger, we often have to fall back to - the primitive method of getting information we want to know: adding - "print" statements. Metacity has a fairly structured way to do this, - using the functions meta_warning, meta_topic, and meta_verbose. All - three have the same basic format as printf, except that meta_topic also - takes a leading enumeration parameter to specify the type of message - being shown (makes it easier for grepping in a verbose log). You'll find - tons of examples in the source code if you need them; just do a quick - grep or look in most any file. Note that meta_topic and meta_verbose - messages only appear if verbosity is turned on. I tend to frequently add - temporary meta_warning statements (or switch meta_topic or meta_verbose - ones to meta_warning ones) and then undo the changes once I've learned - the info that I needed. - - There is also a meta_print_backtrace (which again is only active if - verbosity is turned on) that can also be useful if you want to learn how - a particular line of code gets called. And, of course, there's always - g_assert if you want to make sure some section isn't executed (or isn't - executed under certain conditions). - - Valgrind - - Valgrind is awesome for finding memory leaks or corruption and - uninitialized variables. But I also tend to use it in a non-traditional - way as a partial substitute for a normal debugger: it can provide me with - a stack trace of where metacity is crashing if I made a change that - caused it to do so, which is one of the major uses of debuggers. (And, - what makes it cooler than a debugger is that there will also often be - warnings pinpointing the cause of the crash from either some kind of - simple memory corruption or an uninitialized variable). Sometimes, when - I merely want to know what is calling a particular function I'll just - throw in an "int i; printf("%d\n", i);" just because valgrind will give - me a full stacktrace whenever it sees that uninitialized variable being - used (yes, I could use meta_print_backtrace, but that means I have to - turn verbosity on). - - To run metacity under valgrind, use options typical for any Gnome - program, such as - valgrind --log-file=metacity.log --tool=memcheck --num-callers=48 \ - --leak-check=yes --leak-resolution=high --show-reachable=yes \ - ./src/metacity --replace - where, again, the backslashes mean to join all the stuff on the following - line with the previous one. - - However, there is a downside. Things run a little bit slowly, and it - appears that you'll need about 1.5GB of ram, which unfortunately prevents - most people from trying this. - - Testing Utilities - - src/run-metacity.sh - The script src/run-metacity.sh is useful to hack on the window manager. - It runs metacity in an Xnest. e.g.: - CLIENTS=3 ./run-metacity.sh - or - DEBUG=memprof ./run-metacity.sh - or - DEBUG_TEST=1 ./run-metacity-sh - or whatever. - - metacity-message - The tool metacity-message can be used as follows: - metacity-message reload-theme - metacity-message restart - metacity-message enable-keybindings - metacity-message disable-keybindings - The first of these is useful for testing themes, the second is just - another way (besides the --restart flag to metacity itself) of - restarting metacity, and the third is useful for testing Metacity when - running it under an Xnest (typically, the Metacity under the Xnest - wouldn't get keybinding notifications--making keyboard navigation not - work--but if you disable the keybindings for the global Metacity then - the Metacity under the Xnest can then get those keybinding notifications). - - metacity-window-demo - metacity-window-demo is good for trying behavior of various kinds - of window without launching a full desktop. - -Technical gotchas to keep in mind - Files that include gdk.h or gtk.h are not supposed to include - display.h or window.h or other core files. Files in the core - (display.[hc], window.[hc]) are not supposed to include gdk.h or - gtk.h. Reasons: - - "Basically you don't want GDK most of the time. It adds - abstractions that cause problems, because they aren't designed to - be used in a WM where we do weird stuff (display grabs, and just - being the WM). At best GDK adds inefficiency, at worst it breaks - things in weird ways where you have to be a GDK guru to figure - them out. Owen also told me that they didn't want to start adding - a lot of hacks to GDK to let a WM use it; we both agreed back in - the mists of time that metacity would only use it for the "UI" - bits as it does. - - Having the split in the source code contains and makes very clear - the interface between the WM and GDK/GTK. This keeps people from - introducing extra GDK/GTK usage when it isn't needed or - appropriate. Also, it speeds up the compilation a bit, though this - was perhaps more relevant 5 years ago than it is now. - - There was also a very old worry that the GDK stuff might have to - be in a separate process to work right; that turned out to be - untrue. Though who knows what issues the CM will introduce." - - Remember that strings stored in X properties are not in UTF-8, and they - have to end up in UTF-8 before we try putting them through Pango. - - If you make any X request involving a client window, you have to - meta_error_trap_push() around the call; this is not necessary for X - requests on the frame windows. - - Remember that not all windows have frames, and window->frame can be NULL. - -Other important reading & where to get started - Extra reading - - There are some other important things to read to get oriented as well. - These are: - http://pobox.com/~hp/features.html - rationales.txt - doc/code-overview.txt - - It pays to read http://pobox.com/~hp/features.html in order - to understand the philosophy of Metacity. - - The rationales.txt file has two things: (1) a list of design choices with - links in the form of bugzilla bugs that discuss the issue, and (2) a list - outstanding bug categories, each of which is tracked by a particular - tracker bug in bugzilla from which you can find several closely related - bug reports. - - doc/code-overview.txt provides a fairly good overview of the code, - including coverage of the function of the various files, the main - structures and their relationships, and places to start looking in the - code tailored to general categories of tasks. - - Ideas for tasks to work on - - There are a variety of things you could work on in the code. You may - have ideas of your own, but in case you don't, let me provide a list of - ideas you could choose from: - - If you're ambitious, there's a list of things Havoc made that he'd really - like to see tackled, which you can find at - http://log.ometer.com/2004-05.html. Be sure to double check with someone - to make sure the item is still relevant if you're interested in one of - these. Another place to look for ideas, of course, is bugzilla. One can - just do queries and look for things that look fixable. - - However, perhaps the best way of getting ideas of related tasks to work - on, is to look at the second half of the rationales.txt file, which tries - to group bugs by type. diff --git a/MAINTAINERS b/MAINTAINERS deleted file mode 100644 index 0031c7f9c..000000000 --- a/MAINTAINERS +++ /dev/null @@ -1,8 +0,0 @@ -Tomas Frydrych -Email: tf linux intel com -Userid: tomasf - -Owen Taylor -Email: otaylor redhat com -Userid: otaylor - diff --git a/METACITY_MAINTAINERS b/METACITY_MAINTAINERS deleted file mode 100644 index 205dbf224..000000000 --- a/METACITY_MAINTAINERS +++ /dev/null @@ -1,43 +0,0 @@ -Currently active maintainers --------------------------------- - -Elijah Newren -Email: newren gmail com -Userid: newren - - - Usually won't touch the theme bugs (isn't interested) or the - compositor (until open source nvidia drivers are up to snuff). - Tends to be most interested in libwnck/gtk interactions, focus - issues, constraints problems, and raising/stacking, but works on - just about anything other than themes and the compositor. - -Thomas Thurman -Email: thomas thurman org uk -Userid: tthurman - - - Responsible for all theme bugs and the compositor (thank goodness - Thomas got involved, eh?). I'm sure he'll replace this sentence - with his interests when he reads it. ;-) - - -Semi-active maintainers --------------------------------- - -Havoc Pennington -Email: hp redhat com -Userid: hp - - Original author. Doesn't patch metacity anymore, but is active in - answering questions, responding to bugs, providing very helpful - suggestions and insight, and even assisting with debugging. - - -Important historical figureheads --------------------------------- - -Rob Adams (readams readams net) - - Was the main maintainer of metacity for a while; particular areas - of focus included xinerama, placement, and an older version of the - constraints code. Still responds to bugs every once in a while. - -Søren Sandmann (sandmann redhat com) - - Wrote most of the current compositing manager code + libcm diff --git a/README b/README deleted file mode 100644 index aa45a7616..000000000 --- a/README +++ /dev/null @@ -1,416 +0,0 @@ -The original codebase named "Metacity" is not a meta-City as in an -urban center, but rather Meta-ness as in the state of being -meta. i.e. metacity : meta as opacity : opaque. Also it may have -something to do with the Meta key on UNIX keyboards. - -Since then, it has been renamed mutter after a rebase on top of -clutter as a compositing manager. - -COMPILING MUTTER -=== - -You need GTK+ 2.2. For startup notification to work you need -libstartup-notification at -http://www.freedesktop.org/software/startup-notification/ or on the -GNOME ftp site. -You need Clutter 1.0. You need gobject-introspection 0.6.3. - -REPORTING BUGS AND SUBMITTING PATCHES -=== - -Report new bugs on http://bugzilla.gnome.org. Please check for -duplicates, *especially* if you are reporting a feature request. - -Please do *not* add "me too!" or "yes I really want this!" comments to -feature requests in bugzilla. Please read -http://pobox.com/~hp/features.html prior to adding any kind of flame -about missing features or misfeatures. - -Feel free to send patches too; Metacity is relatively small and -simple, so if you find a bug or want to add a feature it should be -pretty easy. Send me mail, or put the patch in bugzilla. - -See the HACKING file for some notes on hacking Mutter. - -MUTTER FEATURES -=== - - - Uses GTK+ 2.0 for drawing window frames. This means colors, fonts, - etc. come from GTK+ theme. - - - Does not expose the concept of "window manager" to the user. Some - of the features in the GNOME control panel and other parts of the - desktop happen to be implemented in metacity, such as changing your - window border theme, or changing your window navigation shortcuts, - but the user doesn't need to know this. - - - Includes only the window manager; does not try to be a desktop - environment. The pager, configuration, etc. are all separate and - modular. The "libwnck" library (which I also wrote) is available - for writing metacity extensions, pagers, and so on. (But libwnck - isn't metacity specific, or GNOME-dependent; it requires only GTK, - and should work with KWin, fvwm2, and other EWMH-compliant WMs.) - - - Has a simple theme system and a couple of extra themes come with it. - Change themes via gsettings: - gsettings set org.gnome.desktop.wm.preferences theme Crux - gsettings set org.gnome.desktop.wm.preferences theme Gorilla - gsettings set org.gnome.desktop.wm.preferences theme Atlanta - gsettings set org.gnome.desktop.wm.preferences theme Bright - - See theme-format.txt for docs on the theme format. Use - metacity-theme-viewer to preview themes. - - - Change number of workspaces via gsettings: - gsettings set org.gnome.desktop.wm.preferences num-workspaces 5 - - Can also change workspaces from GNOME 2 pager. - - - Change focus mode: - gsettings set org.gnome.desktop.wm.preferences focus-mode mouse - gsettings set org.gnome.desktop.wm.preferences focus-mode sloppy - gsettings set org.gnome.desktop.wm.preferences focus-mode click - - - Global keybinding defaults include: - - Alt-Tab forward cycle window focus - Alt-Shift-Tab backward cycle focus - Alt-Ctrl-Tab forward cycle focus among panels - Alt-Ctrl-Shift-Tab backward cycle focus among panels - Alt-Escape cycle window focus without a popup thingy - Ctrl-Alt-Left Arrow previous workspace - Ctrl-Alt-Right Arrow next workspace - Ctrl-Alt-D minimize/unminimize all, to show desktop - - Change keybindings for example: - - gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 '[F1]' - - Also try the GNOME keyboard shortcuts control panel. - - - Window keybindings: - - Alt-space window menu - - Mnemonics work in the menu. That is, Alt-space then underlined - letter in the menu item works. - - Choose Move from menu, and arrow keys to move the window. - - While moving, hold down Control to move slower, and - Shift to snap to edges. - - Choose Resize from menu, and nothing happens yet, but - eventually I might implement something. - - Keybindings for things like maximize window, vertical maximize, - etc. can be bound, but may not all exist by default. See - metacity.schemas. - - - Window mouse bindings: - - Clicking anywhere on frame with button 1 will raise/focus window - - If you click a window control, such as the close button, then the - control will activate on button release if you are still over it - on release (as with most GUI toolkits) - - If you click and drag borders with button 1 it resizes the window - - If you click and drag the titlebar with button 1 it moves the - window. - - If you click anywhere on the frame with button 2 it lowers the - window. - - If you click anywhere on the frame with button 3 it shows the - window menu. - - If you hold down Super (windows key) and click inside a window, it - will move the window (buttons 1 and 2) or show menu (button 3). - Or you can configure a different modifier for this. - - If you pick up a window with button 1 and then switch workspaces - the window will come with you to the new workspace, this is - a feature copied from Enlightenment. - - If you hold down Shift while moving a window, the window snaps - to edges of other windows and the screen. - - - Session management: - - Mutter connects to the session manager and will set itself up to - be respawned. It theoretically restores sizes/positions/workspace - for session-aware applications. - - - Mutter implements much of the EWMH window manager specification - from freedesktop.org, as well as the older ICCCM. Please refer to - the COMPLIANCE file for information on mutter compliance with - these standards. - - - Uses Pango to render text, so has cool i18n capabilities. - Supports UTF-8 window titles and such. - - - There are simple animations for actions such as minimization, - to help users see what is happening. Should probably - have a few more of these and make them nicer. - - - if you have the proper X setup, set the GDK_USE_XFT=1 - environment variable to get antialiased window titles. - - - considers the panel when placing windows and maximizing - them. - - - handles the window manager selection from the ICCCM. Will exit if - another WM claims it, and can claim it from another WM if you pass - the --replace argument. So if you're running another - ICCCM-compliant WM, you can run "mutter --replace" to replace it - with Metacity. - - - does basic colormap handling - - - and much more! well, maybe not a lot more. - -HOW TO ADD EXTERNAL FEATURES -=== - -You can write a mutter "plugin" such as a pager, window list, icon -box, task menu, or even things like "window matching" using the -Extended Window Manager Hints. See http://www.freedesktop.org for the -EWMH specification. An easy-to-use library called "libwnck" is -available that uses the EWMH and is specifically designed for writing -WM accessories. - -You might be interested in existing accessories such as "Devil's Pie" -by Ross Burton, which add features to Mutter (or other -EWMH-compliant WMs). - -MUTTER BUGS, NON-FEATURES, AND CAVEATS -=== - -See bugzilla: http://bugzilla.gnome.org/query.cgi - -FAQ -=== - -Q: Will you add my feature? - -A: If it makes sense to turn on unconditionally, or is genuinely a - harmless preference that I would not be embarrassed to put in a - simple, uncluttered, user-friendly configuration dialog. - - If the only rationale for your feature is that other window - managers have it, or that you are personally used to it, or - something like that, then I will not be impressed. Metacity is - firmly in the "choose good defaults" camp rather than the "offer 6 - equally broken ways to do it, and let the user pick one" camp. - - This is part of a "no crackrock" policy, despite some exceptions - I'm mildly embarrassed about. For example, multiple workspaces - probably constitute crackrock, they confuse most users and really - are not that useful if you have a decent tasklist and so on. But I - am too used to them to turn them off. Or alternatively - iconification/tasklist is crack, and workspaces/pager are good. But - having both is certainly a bit wrong. Sloppy focus is probably - crackrock too. - - But don't think unlimited crack is OK just because I slipped up a - little. No slippery slope here. - - Don't let this discourage patches and fixes - I love those. ;-) - Just be prepared to hear the above objections if your patch adds - some crack-ridden configuration option. - - http://pobox.com/~hp/free-software-ui.html - http://pobox.com/~hp/features.html - -Q: Will Mutter be part of GNOME? - -A: It is not officially part of GNOME as of GNOME 2.27. We are - hoping to have mutter officially included as of GNOME 2.28. - -Q: Why does Mutter remember the workspace/position of some apps - but not others across logout/login? - -A: Mutter only stores sizes/positions for apps that are session - managed. As far as I can determine, there is no way to attempt to - remember workspace/position for non-session-aware apps without - causing a lot of weird effects. - - The reason is that you don't know which non-SM-aware apps were - launched by the session. When you initially log in, Metacity sees a - bunch of new windows appear. But it can't distinguish between - windows that were stored in your session, or windows you just - launched after logging in. If Metacity tried to guess that a window - was from the session, it could e.g. end up maximizing a dialog, or - put a window you just launched on another desktop or in a weird - place. And in fact I see a lot of bugs like this in window managers - that try to handle non-session-aware apps. - - However, for session-aware apps, Mutter can tell that the - application instance is from the session and thus restore it - reliably, assuming the app properly restores the windows it had - open on session save. - - So the correct way to fix the situation is to make apps - session-aware. libSM has come with X for years, it's very - standardized, it's shared by GNOME and KDE - even twm is - session-aware. So anyone who won't take a patch to add SM is more - archaic than twm - and you should flame them. ;-) - - Docs on session management: - http://www.fifi.org/doc/xspecs/xsmp.txt.gz - http://www.fifi.org/doc/xspecs/SMlib.txt.gz - - See also the ICCCM section on SM. For GNOME apps, use the - GnomeClient object. For a simple example of using libSM directly, - twm/session.c in the twm source code is pretty easy to understand. - -Q: How about adding viewports in addition to workspaces? - -A: I could conceivably be convinced to use viewports _instead_ of - workspaces, though currently I'm not thinking that. But I don't - think it makes any sense to have both; it's just confusing. They - are functionally equivalent. - - You may think this means that you won't have certain keybindings, - or something like that. This is a misconception. The only - _fundamental_ difference between viewports and workspaces is that - with viewports, windows can "overlap" and appear partially on - one and partially on another. All other differences that - traditionally exist in other window managers are accidental - - the features commonly associated with viewports can be implemented - for workspaces, and vice versa. - - So I don't want to have two kinds of - workspace/desktop/viewport/whatever, but I'm willing to add - features traditionally associated with either kind if those - features make sense. - -Q: Why is the panel always on top? - -A: Because it's a better user interface, and until we made this not - configurable a bunch of apps were not getting fixed (the app - authors were just saying "put your panel on the bottom" instead of - properly supporting fullscreen mode, and such). - - rationales.txt has the bugzilla URL for some flamefesting on this, - if you want to go back and relive the glory. - Read these and the bugzilla stuff before asking/commenting: - http://pobox.com/~hp/free-software-ui.html - http://pobox.com/~hp/features.html - -Q: Why is there no edge flipping? - -A: This one is also in rationales.txt. Because "ouija board" UI, where - you just move the mouse around and the computer guesses what you - mean, has a lot of issues. This includes mouse focus, shade-hover - mode, edge flipping, autoraise, etc. Metacity has mouse focus and - autoraise as a compromise, but these features are all confusing for - many users, and cause problems with accessibility, fitt's law, and - so on. - - Read these and the bugzilla stuff before asking/commenting: - http://pobox.com/~hp/free-software-ui.html - http://pobox.com/~hp/features.html - -Q: Why does wireframe move/resize suck? - -A: You can turn it on with the reduced_resources setting. - - But: it has low usability, and is a pain - to implement, and there's no reason opaque move/resize should be a - problem on any setup that can run a modern desktop worth a darn to - begin with. - - Read these and the bugzilla stuff before asking/commenting: - http://pobox.com/~hp/free-software-ui.html - http://pobox.com/~hp/features.html - - The reason we had to add wireframe anyway was broken - proprietary apps that can't handle lots of resize events. - -Q: Why no XYZ? - -A: You are probably getting the idea by now - check rationales.txt, - query/search bugzilla, and read http://pobox.com/~hp/features.html - and http://pobox.com/~hp/free-software-ui.html - - Then sit down and answer the question for yourself. Is the feature - good? What's the rationale for it? Answer "why" not just "why not." - Justify in terms of users as a whole, not just users like - yourself. How else can you solve the same problem? etc. If that - leads you to a strong opinion, then please, post the rationale for - discussion to an appropriate bugzilla bug, or to - usability@gnome.org. - - Please don't just "me too!" on bugzilla bugs, please don't think - flames will get you anywhere, and please don't repeat rationale - that's already been offered. - -Q: Your dumb web pages you made me read talk about solving problems in - fundamental ways instead of adding preferences or workarounds. - What are some examples where metacity has done this? - -A: There are quite a few, though many opportunities remain. Sometimes - the real fix involves application changes. The metacity approach is - that it's OK to require apps to change, though there are also - plenty of workarounds in metacity for battles considered too hard - to fight. - - Here are some examples: - - - fullscreen mode was introduced to allow position constraints, - panel-on-top, and other such things to apply to normal windows - while still allowing video players etc. to "just work" - - - "whether to include minimized windows in Alt+Tab" was solved - by putting minimized windows at the *end* of the tab order. - - - Whether to pop up a feedback display during Alt+Tab was solved by - having both Alt+Tab and Alt+Esc - - - Whether to have a "kill" feature was solved by automatically - detecting and offering to kill stuck apps. Better, metacity - actually does "kill -9" on the process, it doesn't just - disconnect the process from the X server. You'll appreciate this - if you ever did a "kill" on Netscape 4, and watched it keep - eating 100% CPU even though the X server had booted it. - - - The workspaces vs. viewports mess was avoided by adding - directional navigation and such to workspaces, see discussion - earlier in this file. - - - Instead of configurable placement algorithms, there's just one - that works fairly well most of the time. - - - To avoid excess CPU use during opaque move/resize, we rate limit - the updates to the application window's size. - - - Instead of configurable "show size of window while resizing," - it's only shown for windows where it matters, such as terminals. - (Only use-case given for all windows is for web designers - choosing their web browser size, but there are web sites and - desktop backgrounds that do this for you.) - - - Using startup notification, applications open on the workspace - where you launched them, not the active workspace when their - window is opened. - - - and much more. - -Q: I think mutter sucks. - -A: Feel free to use any WM you like. The reason metacity follows the - ICCCM and EWMH specifications is that it makes metacity a modular, - interchangeable part in the desktop. libwnck-based apps such as the - GNOME window list will work just fine with any EWMH-compliant WM. - -Q: Did you spend a lot of time on this? - -A: Originally the answer was no. Sadly the answer is now yes. - -Q: How can you claim that you are anti-crack, while still - writing a window manager? - -A: I have no comment on that. diff --git a/rationales.txt b/doc/rationales.txt similarity index 100% rename from rationales.txt rename to doc/rationales.txt diff --git a/src/run-mutter.sh b/src/run-mutter.sh deleted file mode 100755 index b64834f7a..000000000 --- a/src/run-mutter.sh +++ /dev/null @@ -1,109 +0,0 @@ -#! /bin/bash - -if test -z "$XNEST_DISPLAY"; then - XNEST_DISPLAY=:8 -fi - -if test -z "$CLIENT_DISPLAY"; then - CLIENT_DISPLAY=:8 -fi - -if test -z "$MUTTER_DISPLAY"; then - export MUTTER_DISPLAY=$CLIENT_DISPLAY -fi - -if test -z "$SCREENS"; then - SCREENS=1 -fi - -MAX_SCREEN=`echo $SCREENS-1 | bc` - -if test "$DEBUG" = none; then - DEBUG= -elif test -z "$DEBUG"; then - DEBUG= -fi - -if test -z "$CLIENTS"; then - CLIENTS=0 -fi - -if test -z "$SM_CLIENTS"; then - SM_CLIENTS=0 -fi - -if test -n "$EVIL_TEST"; then - TEST_CLIENT='./wm-tester/wm-tester --evil' -fi - -if test -n "$ICON_TEST"; then - TEST_CLIENT='./wm-tester/wm-tester --icon-windows' -fi - -if test -n "$DEMO_TEST"; then - TEST_CLIENT='./tools/mutter-window-demo' -fi - -if test -n "$XINERAMA"; then - XINERAMA_FLAGS='+xinerama' -fi - -export EF_ALLOW_MALLOC_0=1 - -if test -z "$ONLY_WM"; then - echo "Launching Xnest" - Xnest -ac $XNEST_DISPLAY -scrns $SCREENS -geometry 640x480 -bw 15 $XINERAMA_FLAGS & - ## usleep 800000 - sleep 1 - - if test -n "$XMON_DIR"; then - echo "Launching xmond" - $XMON_DIR/xmonui | $XMON_DIR/xmond -server localhost:$XNEST_DISPLAY & - sleep 1 - fi - - if test -n "$XSCOPE_DIR"; then - ## xscope doesn't like to die when it should, it backgrounds itself - killall -9 xscope - killall -9 xscope - echo "Launching xscope" - DISPLAY= $XSCOPE_DIR/xscope -o1 -i28 > xscoped-replies.txt & - export MUTTER_DISPLAY=localhost:28 - sleep 1 - fi - - echo "Launching clients" - if test -n "$TEST_CLIENT"; then - for I in `seq 0 $MAX_SCREEN`; do - DISPLAY=$CLIENT_DISPLAY.$I $TEST_CLIENT & - done - fi - - if test $CLIENTS != 0; then - for I in `seq 1 $CLIENTS`; do - echo "Launching xterm $I" - DISPLAY=$CLIENT_DISPLAY xterm -geometry 25x15 & - done - fi - - if test $SM_CLIENTS != 0; then - for I in `seq 1 $SM_CLIENTS`; do - echo "Launching gnome-terminal $I" - DISPLAY=$CLIENT_DISPLAY gnome-terminal --geometry 25x15 & - done - fi - - if test -e ~/.Xmodmap; then - DISPLAY=$CLIENT_DISPLAY xmodmap ~/.Xmodmap - fi - - usleep 50000 - - for I in `seq 0 $MAX_SCREEN`; do - DISPLAY=$CLIENT_DISPLAY.$I xsetroot -solid royalblue3 - done -fi - -if test -z "$ONLY_SETUP"; then - MUTTER_VERBOSE=1 MUTTER_USE_LOGFILE=1 MUTTER_DEBUG_BUTTON_GRABS=1 exec $DEBUG ./mutter $OPTIONS -fi diff --git a/stamp.h.in b/stamp.h.in deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/tokentest/Makefile b/test/tokentest/Makefile deleted file mode 100644 index 010fd604d..000000000 --- a/test/tokentest/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# completely hacked-up makefile, proceed at your own risk, etc - -default: - @echo "Try 'make tp' or 'make glib'" - -tp: tokentest.c - gcc `pkg-config --cflags --libs glib-2.0 gdk-2.0 atk` -DMUTTER_DATADIR=\"/usr/share/mutter\" -I../.. -I../../src -I../../src/include tokentest.c ../../src/ui/theme.c ../../src/ui/gradient.c -o tp diff --git a/test/tokentest/README b/test/tokentest/README deleted file mode 100644 index c98dbe4ad..000000000 --- a/test/tokentest/README +++ /dev/null @@ -1,19 +0,0 @@ -Tokeniser test -============== -This directory contains a set of tools for checking the behaviour -of the tokeniser for Metacity theme files. - -tokentest.ini contains a list of all expressions retrieved from -all theme files on art.gnome.org, and mappings to what the tokenising -should be, in a separate representation. get-tokens.py produces the -template version of this; it will produce a file with no expected -values. - -tokentest.c will either check that a tokeniser behaves according to -tokentest.ini, or, if it finds a file, is empty it will print the -values that the tokeniser it's using is producing. - -The makefile is a hacky attempt at letting you compile either against -Metacity's existing tokeniser or one which uses GLib's "scanner". - -This code may or may not eventually end up in the automated test suite. \ No newline at end of file diff --git a/test/tokentest/get-tokens.py b/test/tokentest/get-tokens.py deleted file mode 100644 index 42a8844e6..000000000 --- a/test/tokentest/get-tokens.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/python -# Copyright (C) 2008 Thomas Thurman -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . - - -import os -import xml.sax - -standard = ['x', 'y', 'width', 'height'] - -expressions = { - 'line': ['x1', 'x2', 'y1', 'y2'], - 'rectangle': standard, - 'arc': standard, - 'clip': standard, - 'gradient': standard, - 'image': standard, - 'gtk_arrow': standard, - 'gtk_box': standard, - 'gtk_vline': standard, - 'icon': standard, - 'title': standard, - 'include': standard, - 'tile': ['x', 'y', 'width', 'height', - 'tile_xoffset', 'tile_yoffset', - 'tile_width', 'tile_height'], -} - -all_themes = '../../../all-themes/' - -result = {} - -class themeparser: - def __init__(self, name): - self.filename = name - - def processingInstruction(self): - pass - - def characters(self, what): - pass - - def setDocumentLocator(self, where): - pass - - def startDocument(self): - pass - - def startElement(self, name, attrs): - if expressions.has_key(name): - for attr in expressions[name]: - if attrs.has_key(attr): - expression = attrs[attr] - if not result.has_key(expression): result[expression] = {} - result[expression][self.filename] = 1 - - def endElement(self, name): - pass # print "end element" - - def endDocument(self): - pass - -def maybe_parse(themename, filename): - if os.access(all_themes+filename, os.F_OK): - parser = themeparser(themename) - xml.sax.parse(all_themes+filename, parser) - -for theme in os.listdir(all_themes): - maybe_parse(theme, theme+'/metacity-1/metacity-theme-1.xml') - maybe_parse(theme, theme+'/metacity-theme-1.xml') - -print '[tokentest0]' - -for expr in sorted(result.keys()): - print "# %s" % (', '.join(sorted(result[expr]))) - print "%s=REQ" % (expr) - print diff --git a/test/tokentest/tokentest.c b/test/tokentest/tokentest.c deleted file mode 100644 index 107d9ee4a..000000000 --- a/test/tokentest/tokentest.c +++ /dev/null @@ -1,304 +0,0 @@ -/* - * tokentest.c - test for Metacity's tokeniser - * - * Copyright (C) 2008 Thomas Thurman - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -/* Still under heavy development. */ -/* Especially: FIXME: GErrors need checking! */ - -#include -#include -#include -#include -#include -#include - -#define TOKENTEST_GROUP "tokentest0" - -/************************/ -/* Dummy functions which are just here to keep the linker happy */ - -MetaTheme* meta_theme_load (const char *theme_name, - GError **err) { - /* dummy */ - return NULL; -} - -void -meta_bug(const char *format, ...) -{ - /* dummy */ -} - -void -meta_warning(const char *format, ...) -{ - /* dummy */ -} - -GType -gtk_widget_get_type (void) -{ - /* dummy */ -} - -GType -gtk_object_get_type (void) -{ - /* dummy */ -} - -void gtk_paint_arrow (GtkStyle *style, - GdkWindow *window, - GtkStateType state_type, - GtkShadowType shadow_type, - GdkRectangle *area, - GtkWidget *widget, - const gchar *detail, - GtkArrowType arrow_type, - gboolean fill, - gint x, - gint y, - gint width, - gint height) -{ - /* dummy */ -} - -void gtk_paint_vline (GtkStyle *style, - GdkWindow *window, - GtkStateType state_type, - GdkRectangle *area, - GtkWidget *widget, - const gchar *detail, - gint y1_, - gint y2_, - gint x) -{ - /* dummy */ -} -void gtk_paint_box (GtkStyle *style, - GdkWindow *window, - GtkStateType state_type, - GtkShadowType shadow_type, - GdkRectangle *area, - GtkWidget *widget, - const gchar *detail, - gint x, - gint y, - gint width, - gint height) -{ - /* dummy */ -} - -GtkIconTheme *gtk_icon_theme_get_default (void) -{ - /* dummy */ -} - -GdkPixbuf * gtk_icon_theme_load_icon (GtkIconTheme *icon_theme, - const gchar *icon_name, - gint size, - GtkIconLookupFlags flags, - GError **error) -{ - /* dummy */ -} - -MetaRectangle meta_rect (int x, int y, int width, int height) -{ - /* dummy */ -} - -void -meta_topic_real (MetaDebugTopic topic, - const char *format, - ...) -{ - /* dummy */ -} - - -/*********************************/ - -GString *draw_spec_to_string(MetaDrawSpec *spec) -{ - GString *result; - int i; - - if (spec == NULL) - return g_string_new ("NONE"); - - result = g_string_new (""); - - if (spec->constant) - { - g_string_append_printf (result, "{%d==}", spec->value); - } - - for (i=0; in_tokens; i++) - { - PosToken t = spec->tokens[i]; - - switch (t.type) - { - case POS_TOKEN_INT: - g_string_append_printf (result, "(int %d)", t.d.i.val); - break; - - case POS_TOKEN_DOUBLE: - g_string_append_printf (result, "(double %g)", t.d.d.val); - break; - - case POS_TOKEN_OPERATOR: - - switch (t.d.o.op) { - case POS_OP_NONE: - g_string_append (result, "(no-op)"); - break; - - case POS_OP_ADD: - g_string_append (result, "(add)"); - break; - - case POS_OP_SUBTRACT: - g_string_append (result, "(subtract)"); - break; - - case POS_OP_MULTIPLY: - g_string_append (result, "(multiply)"); - break; - - case POS_OP_DIVIDE: - g_string_append (result, "(divide)"); - break; - - case POS_OP_MOD: - g_string_append (result, "(mod)"); - break; - - case POS_OP_MAX: - g_string_append (result, "(max)"); - break; - - case POS_OP_MIN: - g_string_append (result, "(min)"); - break; - - default: - g_string_append_printf (result, "(op %d)", t.d.o.op); - } - - break; - - case POS_TOKEN_VARIABLE: - g_string_append_printf (result, "(str %s)", t.d.v.name); - break; - - case POS_TOKEN_OPEN_PAREN: - g_string_append (result, "( "); - break; - - case POS_TOKEN_CLOSE_PAREN: - g_string_append (result, " )"); - break; - - default: - g_string_append_printf (result, "(strange %d)", t.type); - } - - } - - return result; -} - -GKeyFile *keys; - -void -load_keys () -{ - GError* err = NULL; - gchar** keys_of_file; - gchar** cursor; - gboolean ever_printed_header = FALSE; - gint passes = 0, fails = 0; - - keys = g_key_file_new (); - - g_key_file_load_from_file (keys, - "tokentest.ini", - G_KEY_FILE_KEEP_COMMENTS, - &err); - - keys_of_file = g_key_file_get_keys (keys, - TOKENTEST_GROUP, - NULL, - &err); - - cursor = keys_of_file; - - while (*cursor) - { - gchar *desideratum = g_key_file_get_value (keys, - TOKENTEST_GROUP, - *cursor, - &err); - MetaTheme *dummy = meta_theme_new (); - MetaDrawSpec *spec; - GString *str; - - spec = meta_draw_spec_new (dummy, *cursor, &err); - - str = draw_spec_to_string (spec); - - if (strcmp ("REQ", desideratum)==0) { - gchar *comment = g_key_file_get_comment (keys, TOKENTEST_GROUP, *cursor, &err); - - if (!ever_printed_header) { - g_print ("[%s]\n", TOKENTEST_GROUP); - ever_printed_header = TRUE; - } - - g_print ("\n#%s%s=%s\n", comment? comment: "", *cursor, str->str); - g_free (comment); - } else if (strcmp (str->str, desideratum)==0) { - g_print("PASS: %s\n", *cursor); - passes++; - } else { - g_warning ("FAIL: %s, wanted %s, got %s\n", - *cursor, desideratum, str->str); - fails++; - } - - meta_theme_free (dummy); - g_string_free (str, TRUE); - g_free (desideratum); - - cursor++; - } - - g_strfreev (keys_of_file); - - g_print("\n# Passes: %d. Fails: %d.\n", passes, fails); -} - -int -main () -{ - load_keys (); -} diff --git a/test/tokentest/tokentest.ini b/test/tokentest/tokentest.ini deleted file mode 100644 index edfc58764..000000000 --- a/test/tokentest/tokentest.ini +++ /dev/null @@ -1,1873 +0,0 @@ -# Copyright (C) 2008 Thomas Thurman and others -# Generated using the "get-tokens.py" script from all themes on -# art.gnome.org, which are all released under DFSG-compatible -# licences. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . - -########################### - -[tokentest0] - -########################### - -# Some very simple examples -width+height=(str width)(add)(str height) -width*height=(str width)(multiply)(str height) -width `min` height=(str width)(min)(str height) - -########################### - -# Strings which can't possibly be well-formed -~~~=NONE - -########################### - -# Strings auto-generated by the original tokeniser -# from art.gnome.org themes (the theme name is given -# in a comment) - -# Amiga, AmigaRelief, pOS -(((height - title_height) / 2) `max` 0)=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) ) - -# Amiga, AmigaRelief, pOS -(((height - title_height) / 2) `max` 0)=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) ) - -# Aquarius, Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Gilouche, GiloucheIM, River, SmoothGNOME, TangoDance, c2 -(((height - title_height) / 2) `max` 0) + 1=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) )(add)(int 1) - -# Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, River, SmoothGNOME, TangoDance, c2 -(((height - title_height) / 2) `max` 0) + 2=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) )(add)(int 2) - -# Clearlooks-RedExit -(((height - title_height) / 2) `max` 0) - 1=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) )(subtract)(int 1) - -# Gilouche, GiloucheIM -(((height - title_height) / 2) `max` 0)-1=( ( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) )(subtract)(int 1) - -# Gilouche, GiloucheIM -((3 `max` (width-title_width)) / 2)=( ( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2) ) - -# Gilouche, GiloucheIM -((3 `max` (width-title_width)) / 2)+1=( ( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2) )(add)(int 1) - -# Gilouche, GiloucheIM -((3 `max` (width-title_width)) / 2)-1=( ( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2) )(subtract)(int 1) - -# Esco -((height - (ButtonIPad + 1) * 2) * 0.4) * 0.67=( ( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.4) )(multiply)(double 0.67) - -# Atlanta, Bright, Carved2, Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, Gilouche, GiloucheIM, Metabox, Mista, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, River, Sandwish, Simple, SmoothGNOME, TangoDance, Tetelestai-Modern -((height - title_height) / 2) `max` 0=( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) - -# Simple, Tetelestai-Modern -((height - title_height) / 2) `max` 0 + 1=( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0)(add)(int 1) - -# Outcrop -((height - title_height) / 2) `max` 0 +2=( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0)(add)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((height-(Bmin`max`height-Bpad*2))/2)=( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((height-(Bmin`max`height-Bpad*2))/2) + 1=( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(add)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((height-(Bmin`max`height-Bpad*2))/2) + 2=( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(add)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((height-(Bmin`max`height-Bpad*2))/2) - 1=( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 1) - -# Clearbox-in, Clearbox-out, Simplebox -((height-title_height)/2) `max` 0=( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(max)(int 0) - -# Crux -((left_width + ButtonWidth + IconTitleSpacing + title_width + CenterTitlePieceWidth * height / 22) `min` (width - 3 * ButtonWidth - right_width)) + 1=( ( (str left_width)(add)(str ButtonWidth)(add)(str IconTitleSpacing)(add)(str title_width)(add)(str CenterTitlePieceWidth)(multiply)(str height)(divide)(int 22) )(min)( (str width)(subtract)(int 3)(multiply)(str ButtonWidth)(subtract)(str right_width) ) )(add)(int 1) - -# Crux -((left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - object_width * height / 22 - right_width - 3 * ButtonWidth)) + 1=( ( (str left_width)(add)(str ButtonWidth)(add)(str IconTitleSpacing)(add)(str title_width) )(min)( (str width)(subtract)(str object_width)(multiply)(str height)(divide)(int 22)(subtract)(str right_width)(subtract)(int 3)(multiply)(str ButtonWidth) ) )(add)(int 1) - -# Crux, Sandwish -((title_width + height / 2 + 32)) + 1=( ( (str title_width)(add)(str height)(divide)(int 2)(add)(int 32) ) )(add)(int 1) - -# Crux, Sandwish -((title_width + height / 2 - 4) `min` (width - object_width - 26))=( ( (str title_width)(add)(str height)(divide)(int 2)(subtract)(int 4) )(min)( (str width)(subtract)(str object_width)(subtract)(int 26) ) ) - -# Crux, Sandwish -((title_width + height / 2) `min` (width - object_width - 6)) + 1=( ( (str title_width)(add)(str height)(divide)(int 2) )(min)( (str width)(subtract)(str object_width)(subtract)(int 6) ) )(add)(int 1) - -# Sandwish -((title_width - 4) `min` (title_width/2-10))=( ( (str title_width)(subtract)(int 4) )(min)( (str title_width)(divide)(int 2)(subtract)(int 10) ) ) - -# Sandwish -((title_width) `min` (title_width/2-10))=( ( (str title_width) )(min)( (str title_width)(divide)(int 2)(subtract)(int 10) ) ) - -# Sandwish -((title_width) `min` (width)) + 1=( ( (str title_width) )(min)( (str width) ) )(add)(int 1) - -# Sandwish -((title_width)) + 1=( ( (str title_width) ) )(add)(int 1) - -# Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2 -((width - title_width) / 2)=( ( (str width)(subtract)(str title_width) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((width-(Bmin`max`height-Bpad*2))/2)=( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((width-(Bmin`max`height-Bpad*2))/2) + 1=( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(add)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -((width-(Bmin`max`height-Bpad*2))/2) + 2=( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(add)(int 2) - -# Sloth -((width-title_width)/2) `max` 40=( ( (str width)(subtract)(str title_width) )(divide)(int 2) )(max)(int 40) - -# Atlanta, EasyListening, Metabox, Outcrop -(0 `max` (width-title_width)) / 2=( (int 0)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2) - -# Outcrop -(0 `max` (width-title_width)) / 2 +1=( (int 0)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2)(add)(int 1) - -# EasyListening -(0 `max` (width-title_width)) / 2 - 1=( (int 0)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2)(subtract)(int 1) - -# Atlanta, Bright, Metabox, Outcrop -(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2=( (int 0)(max)( (str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing) ) )(divide)(int 2) - -# Atlanta, Metabox, Outcrop, Simple -(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing=( (int 0)(max)( (str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing) ) )(divide)(int 2)(add)(str mini_icon_width)(add)(str IconTitleSpacing) - -# Simple -(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing + 1=( (int 0)(max)( (str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing) ) )(divide)(int 2)(add)(str mini_icon_width)(add)(str IconTitleSpacing)(add)(int 1) - -# Outcrop -(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing +1=( (int 0)(max)( (str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing) ) )(divide)(int 2)(add)(str mini_icon_width)(add)(str IconTitleSpacing)(add)(int 1) - -# Aquarius, Carved2, Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, Gilouche, GiloucheIM, River, SmoothGNOME, TangoDance, c2 -(3 `max` (width-title_width)) / 2=( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2) - -# Aquarius, Carved2, Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, River, SmoothGNOME, TangoDance, c2 -(3 `max` (width-title_width)) / 2 + 1=( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2)(add)(int 1) - -# Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks2-Squared, Clearlooks2-Squared-Berries, River, SmoothGNOME, TangoDance, c2 -(3 `max` (width-title_width)) / 2 + 2=( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2)(add)(int 2) - -# Bright -(3 `max` (width-title_width)) / 2+2=( (int 3)(max)( (str width)(subtract)(str title_width) ) )(divide)(int 2)(add)(int 2) - -# Sandwish -(4+title_width+20) `min` (title_width-30)=( (int 4)(add)(str title_width)(add)(int 20) )(min)( (str title_width)(subtract)(int 30) ) - -# Sandwish -(4+title_width+291-34) `min` (width-4)=( (int 4)(add)(str title_width)(add)(int 291)(subtract)(int 34) )(min)( (str width)(subtract)(int 4) ) - -# Chiro, c2 -(ButtonIPad+1) + 1=( (str ButtonIPad)(add)(int 1) )(add)(int 1) - -# Esco -(height - (ButtonIPad + 1) * 2) * 0.4=( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.4) - -# Esco -(height - (ButtonIPad + 1) * 2) * 0.4 + 1=( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.4)(add)(int 1) - -# Esco -(height - (ButtonIPad + 1) * 2) * 0.67=( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.67) - -# AgingGorilla, Crux, Gorilla, Sandwish, Soft Squares, Tactile, ThinMC -(height - object_height) / 2=( (str height)(subtract)(str object_height) )(divide)(int 2) - -# Graphite -(height - title_height + 2) / 2=( (str height)(subtract)(str title_height)(add)(int 2) )(divide)(int 2) - -# Agata, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Black, Correcamins, Firey 1.0, Firey Dark, Graphite, Maemo, Redmond, Silverado, Soft Squares, Tactile, ThinMC -(height - title_height) / 2=( (str height)(subtract)(str title_height) )(divide)(int 2) - -# Agata, Black, Firey 1.0, Firey Dark -(height - title_height) / 2 + 1=( (str height)(subtract)(str title_height) )(divide)(int 2)(add)(int 1) - -# Agata -(height - title_height) / 2 - 1=( (str height)(subtract)(str title_height) )(divide)(int 2)(subtract)(int 1) - -# Maemo -(height - title_height) / 2+1=( (str height)(subtract)(str title_height) )(divide)(int 2)(add)(int 1) - -# sky, sky-blue -(height - title_height) / 5=( (str height)(subtract)(str title_height) )(divide)(int 5) - -# Esco -(height / 2) - (mini_icon_height / 2)=( (str height)(divide)(int 2) )(subtract)( (str mini_icon_height)(divide)(int 2) ) - -# Esco -(height / 2) - (mini_icon_height / 2) - 2=( (str height)(divide)(int 2) )(subtract)( (str mini_icon_height)(divide)(int 2) )(subtract)(int 2) - -# Esco -(height / 2) - (title_height / 2)=( (str height)(divide)(int 2) )(subtract)( (str title_height)(divide)(int 2) ) - -# Esco -(height / 2) - (title_height / 2) - 1=( (str height)(divide)(int 2) )(subtract)( (str title_height)(divide)(int 2) )(subtract)(int 1) - -# Esco -(height / 2) - (title_height / 2) - 2=( (str height)(divide)(int 2) )(subtract)( (str title_height)(divide)(int 2) )(subtract)(int 2) - -# Atlanta -(height-(ArrowSpacer*2)) `max` MinArrowSize=( (str height)(subtract)( (str ArrowSpacer)(multiply)(int 2) ) )(max)(str MinArrowSize) - -# Outcrop -(height-1)-(title_height /1.5)=( (str height)(subtract)(int 1) )(subtract)( (str title_height)(divide)(double 1.5) ) - -# Clearlooks-2.0-blend, Gilouche, GiloucheIM, TangoDance -(height-10)/2=( (str height)(subtract)(int 10) )(divide)(int 2) - -# Atlanta, Bright, Metabox, Outcrop -(height-mini_icon_height) / 2=( (str height)(subtract)(str mini_icon_height) )(divide)(int 2) - -# Aquarius, Clearlooks-RedExit, Firey 1.0, Firey Dark, Gilouche, GiloucheIM -(height-mini_icon_height)/2=( (str height)(subtract)(str mini_icon_height) )(divide)(int 2) - -# Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, TangoDance -(height-mini_icon_height)/2+1=( (str height)(subtract)(str mini_icon_height) )(divide)(int 2)(add)(int 1) - -# Vista Basic -(height-mini_icon_height)/2-1=( (str height)(subtract)(str mini_icon_height) )(divide)(int 2)(subtract)(int 1) - -# boxx -(height-object_height)/2=( (str height)(subtract)(str object_height) )(divide)(int 2) - -# boxx -(height-object_height)/2+1=( (str height)(subtract)(str object_height) )(divide)(int 2)(add)(int 1) - -# 4DWM, MWM -(height-title_height)/2=( (str height)(subtract)(str title_height) )(divide)(int 2) - -# Tetelestai-Modern -(height/2)-3=( (str height)(divide)(int 2) )(subtract)(int 3) - -# Tetelestai-Modern -(height/2)-4=( (str height)(divide)(int 2) )(subtract)(int 4) - -# Sloth -(height/2)-5=( (str height)(divide)(int 2) )(subtract)(int 5) - -# Crux -(left_width + ButtonWidth + IconTitleSpacing + title_width) `min` (width - right_width - 3 * ButtonWidth - CenterTitlePieceWidth * height / 22 - 3)=( (str left_width)(add)(str ButtonWidth)(add)(str IconTitleSpacing)(add)(str title_width) )(min)( (str width)(subtract)(str right_width)(subtract)(int 3)(multiply)(str ButtonWidth)(subtract)(str CenterTitlePieceWidth)(multiply)(str height)(divide)(int 22)(subtract)(int 3) ) - -# Chiro, c2 -(title_height + 6)/2=( (str title_height)(add)(int 6) )(divide)(int 2) - -# Chiro, c2 -(title_height + 6)/2+1=( (str title_height)(add)(int 6) )(divide)(int 2)(add)(int 1) - -# Esco -(width - (ButtonIPad + 1) * 2) * 0.67=( (str width)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.67) - -# AgingGorilla, Crux, Gorilla, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Sandwish, Soft Squares, Tactile, ThinMC -(width - object_width) / 2=( (str width)(subtract)(str object_width) )(divide)(int 2) - -# Crux, Sandwish -(width - title_width - height / 2 - 32 - 7) `max` 0=( (str width)(subtract)(str title_width)(subtract)(str height)(divide)(int 2)(subtract)(int 32)(subtract)(int 7) )(max)(int 0) - -# Crux -(width - title_width - left_width - ButtonWidth - IconTitleSpacing - CenterTitlePieceWidth * height / 22 - right_width) `max` (3 * ButtonWidth)=( (str width)(subtract)(str title_width)(subtract)(str left_width)(subtract)(str ButtonWidth)(subtract)(str IconTitleSpacing)(subtract)(str CenterTitlePieceWidth)(multiply)(str height)(divide)(int 22)(subtract)(str right_width) )(max)( (int 3)(multiply)(str ButtonWidth) ) - -# Sandwish -(width - title_width - left_width - ButtonWidth - IconTitleSpacing - right_width) `max` (3 * ButtonWidth)=( (str width)(subtract)(str title_width)(subtract)(str left_width)(subtract)(str ButtonWidth)(subtract)(str IconTitleSpacing)(subtract)(str right_width) )(max)( (int 3)(multiply)(str ButtonWidth) ) - -# Agata, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Black, Firey 1.0, Firey Dark, Soft Squares, Tactile -(width - title_width) / 2=( (str width)(subtract)(str title_width) )(divide)(int 2) - -# Agata, Black -(width - title_width) / 2 +1=( (str width)(subtract)(str title_width) )(divide)(int 2)(add)(int 1) - -# Agata -(width - title_width) / 2 -1=( (str width)(subtract)(str title_width) )(divide)(int 2)(subtract)(int 1) - -# Sandwish -(width -183) `max` 0=( (str width)(subtract)(int 183) )(max)(int 0) - -# Graphite -(width -title_width + 2) / 2=( (str width)(subtract)(str title_width)(add)(int 2) )(divide)(int 2) - -# Graphite -(width -title_width) / 2=( (str width)(subtract)(str title_width) )(divide)(int 2) - -# Carved2 -(width / 2) + 3=( (str width)(divide)(int 2) )(add)(int 3) - -# Carved2 -(width / 2) - 3=( (str width)(divide)(int 2) )(subtract)(int 3) - -# Atlanta -(width-(ArrowSpacer*2)) `max` MinArrowSize=( (str width)(subtract)( (str ArrowSpacer)(multiply)(int 2) ) )(max)(str MinArrowSize) - -# Clearlooks-2.0-blend, Gilouche, GiloucheIM, TangoDance -(width-10)/2=( (str width)(subtract)(int 10) )(divide)(int 2) - -# boxx -(width-18-title_width-18)/18*18+9=( (str width)(subtract)(int 18)(subtract)(str title_width)(subtract)(int 18) )(divide)(int 18)(multiply)(int 18)(add)(int 9) - -# Metabox -(width-ButtonIPad)/2+1=( (str width)(subtract)(str ButtonIPad) )(divide)(int 2)(add)(int 1) - -# Clearlooks-RedExit, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Mista -(width-mini_icon_width)/2=( (str width)(subtract)(str mini_icon_width) )(divide)(int 2) - -# Aquarius, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, TangoDance, Vista Basic -(width-mini_icon_width)/2-2=( (str width)(subtract)(str mini_icon_width) )(divide)(int 2)(subtract)(int 2) - -# MWM -(width-title_width)/2 `max` 10=( (str width)(subtract)(str title_width) )(divide)(int 2)(max)(int 10) - -# 4DWM, Agata, AgingGorilla, Almond, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Black, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Correcamins, Crux, EasyListening, Esco, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Gorilla, Graphite, MWM, Maemo, MetaGrip, Metabox, Mista, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Sandwish, Shiny, Shiny-Tango, Silverado, Simple, Simplebox, Sloth , SmoothGNOME, Soft Squares, Tactile, TangoDance, Tetelestai-Modern, ThinMC, Vista Basic, W2k, boxx, c2, pOS, sky, sky-blue -0={0==}(int 0) - -# Esco -0 - 25={-25==}(int 0)(subtract)(int 25) - -# Clearbox-look-2 -0 `max` ((height-title_height)/2)=(int 0)(max)( ( (str height)(subtract)(str title_height) )(divide)(int 2) ) - -# Bentham -0 `max` ((width-title_width)) / 2 - height=(int 0)(max)( ( (str width)(subtract)(str title_width) ) )(divide)(int 2)(subtract)(str height) - -# Vista Basic -0+1={1==}(int 0)(add)(int 1) - -# Vista Basic -0+2={2==}(int 0)(add)(int 2) - -# Amiga -0.125 * height=(double 0.125)(multiply)(str height) - -# Amiga -0.125 * width=(double 0.125)(multiply)(str width) - -# Amiga, AmigaRelief -0.25 * height=(double 0.25)(multiply)(str height) - -# Amiga, AmigaRelief -0.25 * width=(double 0.25)(multiply)(str width) - -# AmigaRelief -0.3 * height=(double 0.3)(multiply)(str height) - -# AmigaRelief -0.3 * width=(double 0.3)(multiply)(str width) - -# Amiga, AmigaRelief -0.35 * height=(double 0.35)(multiply)(str height) - -# Amiga, AmigaRelief -0.35 * width=(double 0.35)(multiply)(str width) - -# Amiga, AmigaRelief -0.375 * height=(double 0.375)(multiply)(str height) - -# Amiga, AmigaRelief -0.375 * width=(double 0.375)(multiply)(str width) - -# Amiga, AmigaRelief -0.4 * height=(double 0.4)(multiply)(str height) - -# Amiga, AmigaRelief -0.4 * width=(double 0.4)(multiply)(str width) - -# Amiga, AmigaRelief -0.5 * height=(double 0.5)(multiply)(str height) - -# Amiga, AmigaRelief -0.5 * width=(double 0.5)(multiply)(str width) - -# Amiga, AmigaRelief -0.525 * height=(double 0.525)(multiply)(str height) - -# AmigaRelief -0.525 * width=(double 0.525)(multiply)(str width) - -# AmigaRelief -0.6 * height=(double 0.6)(multiply)(str height) - -# AmigaRelief -0.6 * width=(double 0.6)(multiply)(str width) - -# AmigaRelief -0.625 * height=(double 0.625)(multiply)(str height) - -# AmigaRelief -0.625 * width=(double 0.625)(multiply)(str width) - -# AmigaRelief -0.65 * height=(double 0.65)(multiply)(str height) - -# AmigaRelief -0.7 * height=(double 0.7)(multiply)(str height) - -# AmigaRelief -0.7 * width=(double 0.7)(multiply)(str width) - -# AmigaRelief -0.75 * height=(double 0.75)(multiply)(str height) - -# AmigaRelief -0.75 * width=(double 0.75)(multiply)(str width) - -# 4DWM, AgingGorilla, Almond, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, Esco, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Gorilla, MWM, Maemo, MetaGrip, Metabox, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Shiny, Shiny-Tango, Silverado, Simple, Simplebox, SmoothGNOME, Soft Squares, Tactile, TangoDance, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -1={1==}(int 1) - -# Clearbox-look-2 -1 `max` ((height-title_height)/2)+1=(int 1)(max)( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(add)(int 1) - -# Almond, MetaGrip, Shiny, Shiny-Tango -1 `max` ((height-title_height)/2)-1=(int 1)(max)( ( (str height)(subtract)(str title_height) )(divide)(int 2) )(subtract)(int 1) - -# Agata, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Amiga, AmigaRelief, Black, Clearlooks-2.0-blend, Gilouche, GiloucheIM, Maemo, Outcrop, Shiny, Shiny-Tango, Sloth , TangoDance, pOS, sky, sky-blue -10={10==}(int 10) - -# MetaGrip -1024={1024==}(int 1024) - -# MetaGrip, Shiny, Shiny-Tango -11={11==}(int 11) - -# Almond, Shiny, Shiny-Tango -12={12==}(int 12) - -# Shiny -13={13==}(int 13) - -# Almond, Sloth -14={14==}(int 14) - -# sky, sky-blue -15={15==}(int 15) - -# Almond, Graphite, Maemo, MetaGrip, Shiny, Shiny-Tango, sky, sky-blue -16={16==}(int 16) - -# boxx -1600={1600==}(int 1600) - -# Agata, Maemo, boxx -17={17==}(int 17) - -# EasyListening, MetaGrip, Shiny, Shiny-Tango, boxx -19={19==}(int 19) - -# 4DWM, AgingGorilla, Almond, Amiga, AmigaRelief, Aquarius, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, EasyListening, Esco, Gilouche, GiloucheIM, Gorilla, MWM, Maemo, Mista, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, River, Sandwish, Shiny, Shiny-Tango, Silverado, Simple, Simplebox, Sloth , SmoothGNOME, Tactile, TangoDance, Tetelestai-Modern, ThinMC, Vista Basic, boxx, c2, pOS -2={2==}(int 2) - -# Redmond -2 + ButtonIPad=(int 2)(add)(str ButtonIPad) - -# Shiny, Shiny-Tango -2 `max` ((height-title_height)/2)=(int 2)(max)( ( (str height)(subtract)(str title_height) )(divide)(int 2) ) - -# Firey 1.0, Firey Dark, Maemo, MetaGrip, Shiny, Shiny-Tango -20={20==}(int 20) - -# Shiny, Shiny-Tango -21={21==}(int 21) - -# Soft Squares -22={22==}(int 22) - -# Graphite, MetaGrip, Shiny, Shiny-Tango, sky, sky-blue -23={23==}(int 23) - -# Almond, Maemo, Shiny, Shiny-Tango -24={24==}(int 24) - -# Agata -25={25==}(int 25) - -# 4DWM, AgingGorilla, Amiga, AmigaRelief, Aquarius, Bright, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, EasyListening, Esco, Gilouche, GiloucheIM, Gorilla, Maemo, MetaGrip, Mista, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Sandwish, Shiny, Shiny-Tango, Sloth , SmoothGNOME, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -3={3==}(int 3) - -# Atlanta, Bright, Metabox, Redmond, Simple, SmoothGNOME, Tetelestai-Modern -3 + ButtonIPad=(int 3)(add)(str ButtonIPad) - -# SmoothGNOME -3 + ButtonIPad+1=(int 3)(add)(str ButtonIPad)(add)(int 1) - -# Chiro, Maemo, SmoothGNOME -32={32==}(int 32) - -# Outcrop -36={36==}(int 36) - -# Graphite -39={39==}(int 39) - -# 4DWM, Agata, AgingGorilla, Almond, Amiga, AmigaRelief, Aquarius, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, EasyListening, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Gorilla, MWM, Maemo, MetaGrip, Redmond, River, Sandwish, Silverado, Simplebox, Sloth , SmoothGNOME, W2k, boxx, c2, pOS -4={4==}(int 4) - -# Clearbox-look-2 -4 `max` (width-title_width)/2=(int 4)(max)( (str width)(subtract)(str title_width) )(divide)(int 2) - -# sky, sky-blue -40={40==}(int 40) - -# TangoDance -48={48==}(int 48) - -# 4DWM, AgingGorilla, Almond, AmigaRelief, Aquarius, Black, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Correcamins, Crux, Gorilla, MWM, MetaGrip, Outcrop, Redmond, Sandwish, Shiny, Shiny-Tango, Simplebox, Sloth , Tactile, ThinMC, Vista Basic, pOS -5={5==}(int 5) - -# Almond, Clearbox-look-2, MetaGrip, Shiny, Shiny-Tango -5 `max` (width-title_width)/2+1=(int 5)(max)( (str width)(subtract)(str title_width) )(divide)(int 2)(add)(int 1) - -# 4DWM, AgingGorilla, Clearbox-in, Clearbox-out, Clearlooks-RedExit, Firey 1.0, Firey Dark, Gorilla, Graphite, MWM, Maemo, Outcrop, Simplebox, Soft Squares, Vista Basic, pOS -6={6==}(int 6) - -# Shiny, Shiny-Tango -6 `max` (width-title_width)/2+2=(int 6)(max)( (str width)(subtract)(str title_width) )(divide)(int 2)(add)(int 2) - -# 4DWM, Almond, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Clearbox-in, Clearbox-out, MWM, MetaGrip, Outcrop, Shiny, Shiny-Tango, Simplebox, pOS -7={7==}(int 7) - -# 4DWM, AgingGorilla, Almond, Clearlooks-RedExit, Gorilla, Maemo, Outcrop, Shiny, Sloth , Tactile, pOS -8={8==}(int 8) - -# Clearlooks-RedExit -8 + top_height - 16=(int 8)(add)(str top_height)(subtract)(int 16) - -# Vista Basic -87={87==}(int 87) - -# Clearbox-in, Clearbox-out, Outcrop, Shiny, Shiny-Tango, Simplebox, Vista Basic, pOS, sky, sky-blue -9={9==}(int 9) - -# Atlanta -ArrowSpacer `min` (height-MinArrowSize)/2=(str ArrowSpacer)(min)( (str height)(subtract)(str MinArrowSize) )(divide)(int 2) - -# Atlanta -ArrowSpacer `min` (width-MinArrowSize)/2=(str ArrowSpacer)(min)( (str width)(subtract)(str MinArrowSize) )(divide)(int 2) - -# Atlanta, Bright, Carved2, Chiro, Esco, Metabox, Redmond, River, Simple, SmoothGNOME, Tetelestai-Modern, c2 -ButtonIPad=(str ButtonIPad) - -# Esco -ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33=(str ButtonIPad)(add)( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.33) - -# Esco -ButtonIPad + (height - (ButtonIPad + 1) * 2) * 0.33 + 1=(str ButtonIPad)(add)( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.33)(add)(int 1) - -# Esco -ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33=(str ButtonIPad)(add)( (str width)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.33) - -# Esco -ButtonIPad + (width - (ButtonIPad + 1) * 2) * 0.33 + 1=(str ButtonIPad)(add)( (str width)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.33)(add)(int 1) - -# Carved2, Chiro, Esco, River, c2 -ButtonIPad + 1=(str ButtonIPad)(add)(int 1) - -# Esco -ButtonIPad + 1 + 1=(str ButtonIPad)(add)(int 1)(add)(int 1) - -# Chiro, River, c2 -ButtonIPad + 2=(str ButtonIPad)(add)(int 2) - -# Chiro, River, c2 -ButtonIPad + 3=(str ButtonIPad)(add)(int 3) - -# Carved2, Chiro, Esco, Metabox, Redmond, River, Simple, Tetelestai-Modern, c2 -ButtonIPad - 1=(str ButtonIPad)(subtract)(int 1) - -# Esco -ButtonIPad - 1 + 1=(str ButtonIPad)(subtract)(int 1)(add)(int 1) - -# Atlanta, Bright, Chiro, Metabox, Redmond, Simple, SmoothGNOME, Tetelestai-Modern, c2 -ButtonIPad+1=(str ButtonIPad)(add)(int 1) - -# Simple -ButtonIPad+2=(str ButtonIPad)(add)(int 2) - -# Redmond, SmoothGNOME -ButtonIPad-1=(str ButtonIPad)(subtract)(int 1) - -# Clearbox-look-2 -ButtonPad=(str ButtonPad) - -# Clearbox-look-2 -ButtonPad+(height-ButtonPad)/6=(str ButtonPad)(add)( (str height)(subtract)(str ButtonPad) )(divide)(int 6) - -# Clearbox-look-2 -ButtonPad+(height-ButtonPad)/6-1=(str ButtonPad)(add)( (str height)(subtract)(str ButtonPad) )(divide)(int 6)(subtract)(int 1) - -# Clearbox-look-2 -ButtonPad+1=(str ButtonPad)(add)(int 1) - -# Clearbox-look-2 -ButtonPad+2=(str ButtonPad)(add)(int 2) - -# Clearbox-look-2 -ButtonPad+3=(str ButtonPad)(add)(int 3) - -# Clearbox-look-2 -ButtonPad-1=(str ButtonPad)(subtract)(int 1) - -# Clearbox-look-2 -ButtonPad-2=(str ButtonPad)(subtract)(int 2) - -# Mista -CaptionStart=(str CaptionStart) - -# AgingGorilla, Crux, Gorilla, Sandwish -IconTitleSpacing=(str IconTitleSpacing) - -# Clearbox-look-2 -PrelightPad=(str PrelightPad) - -# Clearbox-look-2 -PrelightPad+(height-PrelightPad)/6=(str PrelightPad)(add)( (str height)(subtract)(str PrelightPad) )(divide)(int 6) - -# Clearbox-look-2 -PrelightPad+(height-PrelightPad)/6-1=(str PrelightPad)(add)( (str height)(subtract)(str PrelightPad) )(divide)(int 6)(subtract)(int 1) - -# Clearbox-look-2 -PrelightPad+1=(str PrelightPad)(add)(int 1) - -# Clearbox-look-2 -PrelightPad+2=(str PrelightPad)(add)(int 2) - -# Clearbox-look-2 -PrelightPad+3=(str PrelightPad)(add)(int 3) - -# Clearbox-look-2 -PrelightPad-1=(str PrelightPad)(subtract)(int 1) - -# Clearbox-look-2 -PrelightPad-2=(str PrelightPad)(subtract)(int 2) - -# Carved2 -ResizerWidth=(str ResizerWidth) - -# Carved2 -ResizerWidth + 1=(str ResizerWidth)(add)(int 1) - -# Mista -TitlebarPad=(str TitlebarPad) - -# Silverado -bottom_height=(str bottom_height) - -# Carved2 -bottom_height - 3=(str bottom_height)(subtract)(int 3) - -# Carved2 -bottom_height - 4=(str bottom_height)(subtract)(int 4) - -# MWM, Tetelestai-Modern -bottom_height-1=(str bottom_height)(subtract)(int 1) - -# 4DWM -bottom_height-2=(str bottom_height)(subtract)(int 2) - -# 4DWM -bottom_height-4=(str bottom_height)(subtract)(int 4) - -# 4DWM, Agata, AgingGorilla, Almond, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Amiga, Atlanta, Black, Bright, Carved2, Chiro, Clearbox-in, Clearbox-out, Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Correcamins, Crux, EasyListening, Esco, Firey 1.0, Firey Dark, Gorilla, Graphite, MWM, Maemo, MetaGrip, Metabox, Mista, Outcrop, Redmond, River, Sandwish, Shiny, Shiny-Tango, Silverado, Simple, Simplebox, SmoothGNOME, Soft Squares, Tactile, TangoDance, Tetelestai-Modern, ThinMC, Vista Basic, W2k, boxx, c2, sky, sky-blue -height=(str height) - -# Esco -height + 25=(str height)(add)(int 25) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height - ((height-(Bmin`max`height-Bpad*2))/2)=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height - ((height-(Bmin`max`height-Bpad*2))/2) - 1=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height - ((height-(Bmin`max`height-Bpad*2))/2) - 2=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height - ((height-(Bmin`max`height-Bpad*2))/2)-1=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 1) - -# Esco -height - (ButtonIPad + 1) * 2=(str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) - -# AgingGorilla, Aquarius, Carved2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Gilouche, GiloucheIM, Gorilla, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Simple, SmoothGNOME, TangoDance -height - 1=(str height)(subtract)(int 1) - -# Esco -height - 1 - ButtonIPad - 1=(str height)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Esco -height - 1 - ButtonIPad - 1 + 1=(str height)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1)(add)(int 1) - -# Esco -height - 1 - ButtonIPad - 1 - 1=(str height)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1) - -# Esco -height - 1 - ButtonIPad - 1 - 1 + 1=(str height)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1)(add)(int 1) - -# AgingGorilla, Gorilla -height - 10=(str height)(subtract)(int 10) - -# AgingGorilla, Gorilla -height - 12=(str height)(subtract)(int 12) - -# AgingGorilla, Gorilla -height - 14=(str height)(subtract)(int 14) - -# AgingGorilla, Aquarius, Carved2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Gorilla, Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2, Redmond, River, Simple, SmoothGNOME -height - 2=(str height)(subtract)(int 2) - -# Esco, Gilouche, GiloucheIM, SmoothGNOME, TangoDance -height - 3=(str height)(subtract)(int 3) - -# Crux, Sandwish, SmoothGNOME -height - 4=(str height)(subtract)(int 4) - -# Atlanta, Bright, Simple -height - 5 - ButtonIPad=(str height)(subtract)(int 5)(subtract)(str ButtonIPad) - -# AgingGorilla, Esco, Gorilla -height - 7=(str height)(subtract)(int 7) - -# Metabox, Redmond, SmoothGNOME, Tetelestai-Modern -height - 7 - ButtonIPad=(str height)(subtract)(int 7)(subtract)(str ButtonIPad) - -# AgingGorilla, Gorilla -height - 8=(str height)(subtract)(int 8) - -# Carved2, Chiro, Metabox, Redmond, River, Simple, SmoothGNOME, Tetelestai-Modern, c2 -height - ButtonIPad=(str height)(subtract)(str ButtonIPad) - -# Carved2, Simple -height - ButtonIPad + 1=(str height)(subtract)(str ButtonIPad)(add)(int 1) - -# Esco -height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4)=(str height)(subtract)(str ButtonIPad)(subtract)( ( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.4) ) - -# Esco -height - ButtonIPad - ((height - (ButtonIPad + 1) * 2) * 0.4) - 1=(str height)(subtract)(str ButtonIPad)(subtract)( ( (str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) )(multiply)(double 0.4) )(subtract)(int 1) - -# Atlanta, Carved2, Esco, Metabox, Redmond, SmoothGNOME, Tetelestai-Modern -height - ButtonIPad - 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Esco -height - ButtonIPad - 1 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 1)(add)(int 1) - -# Esco -height - ButtonIPad - 1 - 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1) - -# Esco -height - ButtonIPad - 1 - 1 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1)(add)(int 1) - -# Bright, Chiro, Esco, Redmond, River, SmoothGNOME, c2 -height - ButtonIPad - 2=(str height)(subtract)(str ButtonIPad)(subtract)(int 2) - -# Esco -height - ButtonIPad - 2 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 2)(add)(int 1) - -# Esco -height - ButtonIPad - 3=(str height)(subtract)(str ButtonIPad)(subtract)(int 3) - -# Esco -height - ButtonIPad - 3 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 3)(add)(int 1) - -# Esco -height - ButtonIPad - 3 - 4=(str height)(subtract)(str ButtonIPad)(subtract)(int 3)(subtract)(int 4) - -# Esco -height - ButtonIPad - 3 - 4 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 3)(subtract)(int 4)(add)(int 1) - -# Esco -height - ButtonIPad - 3 - 5=(str height)(subtract)(str ButtonIPad)(subtract)(int 3)(subtract)(int 5) - -# Esco -height - ButtonIPad - 3 - 5 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 3)(subtract)(int 5)(add)(int 1) - -# Metabox, Tetelestai-Modern -height - ButtonIPad - 4=(str height)(subtract)(str ButtonIPad)(subtract)(int 4) - -# Esco -height - ButtonIPad - 5=(str height)(subtract)(str ButtonIPad)(subtract)(int 5) - -# Esco -height - ButtonIPad - 5 + 1=(str height)(subtract)(str ButtonIPad)(subtract)(int 5)(add)(int 1) - -# Atlanta, Bright, Metabox, Redmond, SmoothGNOME, Tetelestai-Modern -height - ButtonIPad - ThickLineWidth + 1=(str height)(subtract)(str ButtonIPad)(subtract)(str ThickLineWidth)(add)(int 1) - -# Simple -height - ButtonIPad - ThickLineWidth + 3=(str height)(subtract)(str ButtonIPad)(subtract)(str ThickLineWidth)(add)(int 3) - -# Chiro, River, c2 -height - ButtonIPad-1=(str height)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Quiet-Environment, Quiet-Graphite, Quiet-Human, Quiet-Purple-2K6 -height - height / 4=(str height)(subtract)(str height)(divide)(int 4) - -# Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2 -height - height / 4 + 2=(str height)(subtract)(str height)(divide)(int 4)(add)(int 2) - -# Crux, Maemo, Sandwish -height - object_height=(str height)(subtract)(str object_height) - -# Esco -height - top_height - bottom_height + 1=(str height)(subtract)(str top_height)(subtract)(str bottom_height)(add)(int 1) - -# Esco -height - top_height - bottom_height - 1=(str height)(subtract)(str top_height)(subtract)(str bottom_height)(subtract)(int 1) - -# Aquarius, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, TangoDance -height / 2=(str height)(divide)(int 2) - -# TangoDance -height / 2 - 1=(str height)(divide)(int 2)(subtract)(int 1) - -# TangoDance -height / 2 - 2=(str height)(divide)(int 2)(subtract)(int 2) - -# Aquarius, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, TangoDance -height / 2 - 3=(str height)(divide)(int 2)(subtract)(int 3) - -# Aquarius, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height / 2 - 4=(str height)(divide)(int 2)(subtract)(int 4) - -# Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2 -height / 3=(str height)(divide)(int 3) - -# Quiet-Environment, Quiet-Graphite, Quiet-Human, Quiet-Purple-2K6 -height / 4=(str height)(divide)(int 4) - -# Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2 -height / 4 + 2=(str height)(divide)(int 4)(add)(int 2) - -# Outcrop -height /2=(str height)(divide)(int 2) - -# Outcrop -height /2 +1=(str height)(divide)(int 2)(add)(int 1) - -# Outcrop -height /2 +2=(str height)(divide)(int 2)(add)(int 2) - -# Outcrop -height /2 -1=(str height)(divide)(int 2)(subtract)(int 1) - -# Bentham -height `max` ((width-title_width)) / 2=(str height)(max)( ( (str width)(subtract)(str title_width) ) )(divide)(int 2) - -# Mista -height `min` object_height=(str height)(min)(str object_height) - -# Sloth -height+1=(str height)(add)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height-((height-(Bmin`max`height-Bpad*2))/2)*2-1=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(multiply)(int 2)(subtract)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -height-((height-(Bmin`max`height-Bpad*2))/2)*2-3=(str height)(subtract)( ( (str height)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(multiply)(int 2)(subtract)(int 3) - -# 4DWM -height-(2 * right_width - 1)=(str height)(subtract)( (int 2)(multiply)(str right_width)(subtract)(int 1) ) - -# Chiro, c2 -height-(ButtonIPad+1)*2-1=(str height)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2)(subtract)(int 1) - -# 4DWM -height-(right_width-1)=(str height)(subtract)( (str right_width)(subtract)(int 1) ) - -# 4DWM -height-(right_width-2)=(str height)(subtract)( (str right_width)(subtract)(int 2) ) - -# 4DWM, Almond, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Bright, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, MWM, MetaGrip, Metabox, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Simple, Simplebox, Sloth , SmoothGNOME, Tactile, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -height-1=(str height)(subtract)(int 1) - -# pOS -height-11=(str height)(subtract)(int 11) - -# 4DWM, AmigaRelief, Aquarius, Atlanta, Bentham, Bright, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, Gilouche, GiloucheIM, MWM, Metabox, Outcrop, River, Shiny, Shiny-Tango, Silverado, Simple, SmoothGNOME, Tactile, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -height-2=(str height)(subtract)(int 2) - -# Shiny, Shiny-Tango -height-21=(str height)(subtract)(int 21) - -# Soft Squares, Tactile -height-23=(str height)(subtract)(int 23) - -# Maemo -height-25=(str height)(subtract)(int 25) - -# Maemo -height-26=(str height)(subtract)(int 26) - -# Maemo, Shiny, Shiny-Tango -height-29=(str height)(subtract)(int 29) - -# 4DWM, Aquarius, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Gilouche, GiloucheIM, MWM, Outcrop, River, Simple, Simplebox, SmoothGNOME, Tactile, Tetelestai-Modern, W2k, c2 -height-3=(str height)(subtract)(int 3) - -# 4DWM, Amiga, AmigaRelief, Aquarius, Bright, Carved2, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, Maemo, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, River, Sandwish, SmoothGNOME, Tetelestai-Modern, W2k, c2, pOS -height-4=(str height)(subtract)(int 4) - -# 4DWM, Almond, Amiga, AmigaRelief, Aquarius, Carved2, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, MWM, River, SmoothGNOME, Tetelestai-Modern, W2k, c2, pOS -height-5=(str height)(subtract)(int 5) - -# 4DWM, AmigaRelief, Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, EasyListening, MWM, pOS -height-6=(str height)(subtract)(int 6) - -# 4DWM, MWM, Shiny, Shiny-Tango, pOS -height-7=(str height)(subtract)(int 7) - -# 4DWM, pOS -height-8=(str height)(subtract)(int 8) - -# Almond, Outcrop, pOS -height-9=(str height)(subtract)(int 9) - -# Carved2 -height-ButtonIPad*2=(str height)(subtract)(str ButtonIPad)(multiply)(int 2) - -# Simple -height-ButtonIPad*2 + 1=(str height)(subtract)(str ButtonIPad)(multiply)(int 2)(add)(int 1) - -# Atlanta, Chiro, Metabox, Redmond, River, SmoothGNOME, Tetelestai-Modern, c2 -height-ButtonIPad*2-1=(str height)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 1) - -# Bright -height-ButtonIPad*2-2=(str height)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 2) - -# Chiro, River, c2 -height-ButtonIPad*2-5=(str height)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 5) - -# Clearbox-look-2 -height-ButtonPad=(str height)(subtract)(str ButtonPad) - -# Clearbox-look-2 -height-ButtonPad*2+1=(str height)(subtract)(str ButtonPad)(multiply)(int 2)(add)(int 1) - -# Clearbox-look-2 -height-ButtonPad*2-2=(str height)(subtract)(str ButtonPad)(multiply)(int 2)(subtract)(int 2) - -# Clearbox-look-2 -height-ButtonPad+1=(str height)(subtract)(str ButtonPad)(add)(int 1) - -# Clearbox-look-2 -height-ButtonPad-1=(str height)(subtract)(str ButtonPad)(subtract)(int 1) - -# Clearbox-look-2 -height-ButtonPad-2=(str height)(subtract)(str ButtonPad)(subtract)(int 2) - -# Clearbox-look-2 -height-PrelightPad=(str height)(subtract)(str PrelightPad) - -# Clearbox-look-2 -height-PrelightPad*2+1=(str height)(subtract)(str PrelightPad)(multiply)(int 2)(add)(int 1) - -# Clearbox-look-2 -height-PrelightPad*2-2=(str height)(subtract)(str PrelightPad)(multiply)(int 2)(subtract)(int 2) - -# Clearbox-look-2 -height-PrelightPad+1=(str height)(subtract)(str PrelightPad)(add)(int 1) - -# Clearbox-look-2 -height-PrelightPad-1=(str height)(subtract)(str PrelightPad)(subtract)(int 1) - -# Clearbox-look-2 -height-PrelightPad-2=(str height)(subtract)(str PrelightPad)(subtract)(int 2) - -# Chiro, Gilouche, GiloucheIM, SmoothGNOME, Tetelestai-Modern -height-bottom_height=(str height)(subtract)(str bottom_height) - -# Carved2 -height-bottom_height + 1=(str height)(subtract)(str bottom_height)(add)(int 1) - -# Carved2 -height-bottom_height + 2=(str height)(subtract)(str bottom_height)(add)(int 2) - -# 4DWM, MWM -height-bottom_height+1=(str height)(subtract)(str bottom_height)(add)(int 1) - -# Gilouche, GiloucheIM -height-bottom_height-top_height=(str height)(subtract)(str bottom_height)(subtract)(str top_height) - -# 4DWM -height-bottom_height/2=(str height)(subtract)(str bottom_height)(divide)(int 2) - -# Mista -height-object_height=(str height)(subtract)(str object_height) - -# 4DWM, MWM -height-right_width=(str height)(subtract)(str right_width) - -# MWM -height-right_width-1=(str height)(subtract)(str right_width)(subtract)(int 1) - -# c2 -height-title_height=(str height)(subtract)(str title_height) - -# Chiro, SmoothGNOME -height-title_height-38=(str height)(subtract)(str title_height)(subtract)(int 38) - -# Amiga, AmigaRelief, c2, pOS -height-title_height-6=(str height)(subtract)(str title_height)(subtract)(int 6) - -# 4DWM, MWM -height-top_height=(str height)(subtract)(str top_height) - -# 4DWM -height-top_height+1=(str height)(subtract)(str top_height)(add)(int 1) - -# 4DWM, MWM, Tactile -height-top_height-1=(str height)(subtract)(str top_height)(subtract)(int 1) - -# 4DWM -height-top_height-2=(str height)(subtract)(str top_height)(subtract)(int 2) - -# Atlanta, Bright, Metabox, Simple, SmoothGNOME, TangoDance, Tetelestai-Modern -height-top_height-bottom_height+1=(str height)(subtract)(str top_height)(subtract)(str bottom_height)(add)(int 1) - -# Sloth -height/1.5=(str height)(divide)(double 1.5) - -# 4DWM, Aquarius, Bentham, Clearbox-in, Clearbox-out, MWM, Simplebox, Sloth , Tetelestai-Modern -height/2=(str height)(divide)(int 2) - -# Bentham -height/2 + height/4 - 1=(str height)(divide)(int 2)(add)(str height)(divide)(int 4)(subtract)(int 1) - -# Bentham -height/2 + height/4 - 2=(str height)(divide)(int 2)(add)(str height)(divide)(int 4)(subtract)(int 2) - -# Bentham -height/2 - height/4=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 4) - -# Bentham -height/2 - height/4 + 1=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 4)(add)(int 1) - -# Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2 -height/2 - width/2=(str height)(divide)(int 2)(subtract)(str width)(divide)(int 2) - -# Amiga, AmigaRelief -height/2 - width/2 + 2=(str height)(divide)(int 2)(subtract)(str width)(divide)(int 2)(add)(int 2) - -# Clearbox-look-2 -height/2+(height-ButtonPad)/6+1=(str height)(divide)(int 2)(add)( (str height)(subtract)(str ButtonPad) )(divide)(int 6)(add)(int 1) - -# Clearbox-look-2 -height/2+(height-PrelightPad)/6+1=(str height)(divide)(int 2)(add)( (str height)(subtract)(str PrelightPad) )(divide)(int 6)(add)(int 1) - -# 4DWM, Aquarius, Clearbox-in, Clearbox-out, Simplebox -height/2+1=(str height)(divide)(int 2)(add)(int 1) - -# 4DWM, Clearbox-in, Clearbox-out, MWM, Simplebox -height/2+2=(str height)(divide)(int 2)(add)(int 2) - -# 4DWM, Clearbox-in, Clearbox-out, Simplebox -height/2+3=(str height)(divide)(int 2)(add)(int 3) - -# Clearbox-in, Clearbox-out, Simplebox -height/2+4=(str height)(divide)(int 2)(add)(int 4) - -# Clearbox-in, Clearbox-out, Simplebox -height/2+5=(str height)(divide)(int 2)(add)(int 5) - -# Clearbox-in, Clearbox-out, Simplebox -height/2+6=(str height)(divide)(int 2)(add)(int 6) - -# Aquarius -height/2+height/4=(str height)(divide)(int 2)(add)(str height)(divide)(int 4) - -# Aquarius -height/2+height/4-1=(str height)(divide)(int 2)(add)(str height)(divide)(int 4)(subtract)(int 1) - -# Clearbox-in, Clearbox-out, MWM, Simplebox -height/2-1=(str height)(divide)(int 2)(subtract)(int 1) - -# 4DWM, Aquarius, Clearbox-in, Clearbox-out, Simplebox -height/2-2=(str height)(divide)(int 2)(subtract)(int 2) - -# Clearbox-in, Clearbox-out, Outcrop, Simplebox -height/2-3=(str height)(divide)(int 2)(subtract)(int 3) - -# Clearbox-in, Clearbox-out, Outcrop, Simplebox -height/2-4=(str height)(divide)(int 2)(subtract)(int 4) - -# Clearbox-in, Clearbox-out, Simplebox -height/2-5=(str height)(divide)(int 2)(subtract)(int 5) - -# Aquarius -height/2-5+(2`max`height/8)=(str height)(divide)(int 2)(subtract)(int 5)(add)( (int 2)(max)(str height)(divide)(int 8) ) - -# Aquarius -height/2-height/4=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 4) - -# Aquarius -height/2-height/4+1=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 4)(add)(int 1) - -# Aquarius -height/2-height/4+2=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 4)(add)(int 2) - -# Aquarius -height/2-height/6+1=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 6)(add)(int 1) - -# Aquarius -height/2-height/6+2=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 6)(add)(int 2) - -# Bentham -height/2-height/8-1=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 8)(subtract)(int 1) - -# Bentham -height/2-height/8-2=(str height)(divide)(int 2)(subtract)(str height)(divide)(int 8)(subtract)(int 2) - -# Aquarius -height/3+1=(str height)(divide)(int 3)(add)(int 1) - -# Aquarius -height/3-1=(str height)(divide)(int 3)(subtract)(int 1) - -# Aquarius -height/3-3=(str height)(divide)(int 3)(subtract)(int 3) - -# Bentham -height/4=(str height)(divide)(int 4) - -# Bentham -height/4+2=(str height)(divide)(int 4)(add)(int 2) - -# 4DWM, Esco, Gilouche, GiloucheIM, MWM, Silverado -left_width=(str left_width) - -# Esco -left_width - 1=(str left_width)(subtract)(int 1) - -# 4DWM, Atlanta, Bright, Chiro, Gilouche, GiloucheIM, MWM, Metabox, Simple, SmoothGNOME, TangoDance, Tetelestai-Modern -left_width-1=(str left_width)(subtract)(int 1) - -# 4DWM, Tetelestai-Modern -left_width-2=(str left_width)(subtract)(int 2) - -# 4DWM -left_width-3=(str left_width)(subtract)(int 3) - -# Aquarius, Atlanta, Clearlooks-2.0-blend, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Metabox, Mista, Outcrop, Silverado, TangoDance, Vista Basic, W2k -mini_icon_height=(str mini_icon_height) - -# Bright -mini_icon_height-1=(str mini_icon_height)(subtract)(int 1) - -# Aquarius, Atlanta, Clearlooks-2.0-blend, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Metabox, Mista, Outcrop, Silverado, Sloth , TangoDance, Vista Basic, W2k -mini_icon_width=(str mini_icon_width) - -# Esco -mini_icon_width + IconTitleSpacing=(str mini_icon_width)(add)(str IconTitleSpacing) - -# Bright -mini_icon_width-1=(str mini_icon_width)(subtract)(int 1) - -# Agata, AgingGorilla, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Black, Correcamins, Crux, Firey 1.0, Firey Dark, Gorilla, Graphite, Maemo, Mista, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Sandwish, Soft Squares, Tactile, ThinMC, Vista Basic, boxx, sky, sky-blue -object_height=(str object_height) - -# Maemo -object_height+2=(str object_height)(add)(int 2) - -# Agata, AgingGorilla, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Black, Correcamins, Crux, Firey 1.0, Firey Dark, Gorilla, Graphite, Maemo, Mista, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Sandwish, Silverado, Soft Squares, Tactile, ThinMC, Vista Basic, W2k, sky, sky-blue -object_width=(str object_width) - -# Crux -object_width * height / 22=(str object_width)(multiply)(str height)(divide)(int 22) - -# Maemo -object_width+2=(str object_width)(add)(int 2) - -# 4DWM, MWM, Silverado -right_width=(str right_width) - -# 4DWM, MWM -right_width-1=(str right_width)(subtract)(int 1) - -# 4DWM, Tetelestai-Modern -right_width-2=(str right_width)(subtract)(int 2) - -# 4DWM -right_width-3=(str right_width)(subtract)(int 3) - -# 4DWM -right_width-4=(str right_width)(subtract)(int 4) - -# Gilouche, GiloucheIM -title_height + 10=(str title_height)(add)(int 10) - -# TangoDance -title_height + 12=(str title_height)(add)(int 12) - -# Clearlooks, Clearlooks-Pinstripe, River -title_height + 3=(str title_height)(add)(int 3) - -# Chiro, SmoothGNOME -title_height + 38=(str title_height)(add)(int 38) - -# Chiro, Gilouche, GiloucheIM, River, SmoothGNOME, TangoDance, c2 -title_height + 4=(str title_height)(add)(int 4) - -# Chiro, Clearlooks, Clearlooks-Pinstripe, Gilouche, GiloucheIM, River, SmoothGNOME, TangoDance, c2 -title_height + 5=(str title_height)(add)(int 5) - -# Clearlooks, Clearlooks-Pinstripe, SmoothGNOME, c2 -title_height + 6=(str title_height)(add)(int 6) - -# TangoDance -title_height + 9=(str title_height)(add)(int 9) - -# Outcrop -title_height +8=(str title_height)(add)(int 8) - -# Outcrop -title_height -7=(str title_height)(subtract)(int 7) - -# TangoDance -title_height / 2 - 5=(str title_height)(divide)(int 2)(subtract)(int 5) - -# Outcrop -title_height /1.5=(str title_height)(divide)(double 1.5) - -# Outcrop -title_height /2=(str title_height)(divide)(int 2) - -# Outcrop -title_height /4=(str title_height)(divide)(int 4) - -# 4DWM -title_height*2/3=(str title_height)(multiply)(int 2)(divide)(int 3) - -# AmigaRelief, pOS -title_height+3=(str title_height)(add)(int 3) - -# Amiga, AmigaRelief, Clearbox-look-2, pOS -title_height+4=(str title_height)(add)(int 4) - -# Amiga, AmigaRelief, pOS -title_height+5=(str title_height)(add)(int 5) - -# Chiro, Outcrop, SmoothGNOME, c2 -title_height+6=(str title_height)(add)(int 6) - -# Outcrop -title_height+7=(str title_height)(add)(int 7) - -# Outcrop -title_height+8=(str title_height)(add)(int 8) - -# sky, sky-blue -title_width + 16 `min` width - 14=(str title_width)(add)(int 16)(min)(str width)(subtract)(int 14) - -# sky, sky-blue -title_width + 21 `min` width - object_width=(str title_width)(add)(int 21)(min)(str width)(subtract)(str object_width) - -# sky, sky-blue -title_width + 6=(str title_width)(add)(int 6) - -# Esco -title_width + mini_icon_width + IconTitleSpacing * 3 - 1=(str title_width)(add)(str mini_icon_width)(add)(str IconTitleSpacing)(multiply)(int 3)(subtract)(int 1) - -# boxx -title_width+15=(str title_width)(add)(int 15) - -# Maemo -title_width+181=(str title_width)(add)(int 181) - -# Sandwish -title_width+20=(str title_width)(add)(int 20) - -# Maemo -title_width+32=(str title_width)(add)(int 32) - -# Maemo -title_width+32+149=(str title_width)(add)(int 32)(add)(int 149) - -# boxx -title_width-2=(str title_width)(subtract)(int 2) - -# Sandwish -title_width/2+150=(str title_width)(divide)(int 2)(add)(int 150) - -# 4DWM, Chiro, Clearbox-in, Clearbox-out, Esco, MWM, Simplebox -top_height=(str top_height) - -# Clearlooks-RedExit, Esco -top_height - 1=(str top_height)(subtract)(int 1) - -# Clearlooks-RedExit -top_height - 16=(str top_height)(subtract)(int 16) - -# Clearlooks-RedExit -top_height - 2=(str top_height)(subtract)(int 2) - -# Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -top_height / 2=(str top_height)(divide)(int 2) - -# Aquarius -top_height*2/5=(str top_height)(multiply)(int 2)(divide)(int 5) - -# Aquarius -top_height*3/10=(str top_height)(multiply)(int 3)(divide)(int 10) - -# Aquarius -top_height*3/5=(str top_height)(multiply)(int 3)(divide)(int 5) - -# Aquarius -top_height*4/5=(str top_height)(multiply)(int 4)(divide)(int 5) - -# Aquarius -top_height*7/10=(str top_height)(multiply)(int 7)(divide)(int 10) - -# Aquarius -top_height*9/10=(str top_height)(multiply)(int 9)(divide)(int 10) - -# 4DWM -top_height+1=(str top_height)(add)(int 1) - -# 4DWM, Aquarius, Atlanta, Bright, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Gilouche, GiloucheIM, MWM, Metabox, Simple, SmoothGNOME, Tactile, TangoDance, Tetelestai-Modern -top_height-1=(str top_height)(subtract)(int 1) - -# 4DWM, Aquarius, Clearlooks-2.0-blend, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -top_height-2=(str top_height)(subtract)(int 2) - -# 4DWM -top_height-3=(str top_height)(subtract)(int 3) - -# Aquarius -top_height/10=(str top_height)(divide)(int 10) - -# Aquarius -top_height/10+1=(str top_height)(divide)(int 10)(add)(int 1) - -# Aquarius -top_height/2=(str top_height)(divide)(int 2) - -# Aquarius -top_height/5=(str top_height)(divide)(int 5) - -# 4DWM, Agata, AgingGorilla, Almond, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Black, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Correcamins, Crux, EasyListening, Esco, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Gorilla, Graphite, MWM, MetaGrip, Metabox, Mista, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Sandwish, Shiny, Shiny-Tango, Silverado, Simple, Simplebox, SmoothGNOME, TangoDance, Tetelestai-Modern, ThinMC, Vista Basic, W2k, boxx, c2, pOS, sky, sky-blue -width=(str width) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width - ((width-(Bmin`max`height-Bpad*2))/2)=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width - ((width-(Bmin`max`height-Bpad*2))/2) - 1=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 1) - -# Esco -width - (ButtonIPad + 1) * 2=(str width)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2) - -# sky, sky-blue -width - 0=(str width)(subtract)(int 0) - -# AgingGorilla, Aquarius, Carved2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Gilouche, GiloucheIM, Gorilla, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Simple, SmoothGNOME, Soft Squares, TangoDance -width - 1=(str width)(subtract)(int 1) - -# Esco -width - 1 - ButtonIPad=(str width)(subtract)(int 1)(subtract)(str ButtonIPad) - -# Esco -width - 1 - ButtonIPad + 1=(str width)(subtract)(int 1)(subtract)(str ButtonIPad)(add)(int 1) - -# Esco -width - 1 - ButtonIPad - 1=(str width)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Esco -width - 1 - ButtonIPad - 1 + 1=(str width)(subtract)(int 1)(subtract)(str ButtonIPad)(subtract)(int 1)(add)(int 1) - -# Agata, Black, Correcamins -width - 10=(str width)(subtract)(int 10) - -# AgingGorilla, Gorilla -width - 11=(str width)(subtract)(int 11) - -# AgingGorilla, Almond, Gorilla, Graphite, sky, sky-blue -width - 12=(str width)(subtract)(int 12) - -# AgingGorilla, Gorilla -width - 13=(str width)(subtract)(int 13) - -# AgingGorilla, Gorilla -width - 16=(str width)(subtract)(int 16) - -# AgingGorilla, Aquarius, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Esco, Gilouche, GiloucheIM, Gorilla, Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2, Redmond, River, Simple, SmoothGNOME, Soft Squares, TangoDance, ThinMC -width - 2=(str width)(subtract)(int 2) - -# Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple -width - 20=(str width)(subtract)(int 20) - -# Almond -width - 24=(str width)(subtract)(int 24) - -# Graphite, sky, sky-blue -width - 27=(str width)(subtract)(int 27) - -# Carved2, Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Gilouche, GiloucheIM, SmoothGNOME, TangoDance -width - 3=(str width)(subtract)(int 3) - -# Aquarius, Carved2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, Firey 1.0, Firey Dark, Gilouche, GiloucheIM, Quiet-Environment-v2, Quiet-Graphite-v2, Quiet-Purple-2K6-v2, River, Sandwish, SmoothGNOME, Tactile, TangoDance -width - 4=(str width)(subtract)(int 4) - -# Gilouche, GiloucheIM -width - 5=(str width)(subtract)(int 5) - -# Atlanta, Bright, Simple -width - 5 - ButtonIPad=(str width)(subtract)(int 5)(subtract)(str ButtonIPad) - -# Firey 1.0, Firey Dark, Tactile -width - 6=(str width)(subtract)(int 6) - -# Agata, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Esco -width - 7=(str width)(subtract)(int 7) - -# Metabox, Redmond, SmoothGNOME, Tetelestai-Modern -width - 7 - ButtonIPad=(str width)(subtract)(int 7)(subtract)(str ButtonIPad) - -# AgingGorilla, Gorilla -width - 8=(str width)(subtract)(int 8) - -# AgingGorilla, Gorilla -width - 9=(str width)(subtract)(int 9) - -# Atlanta, Metabox, Redmond, SmoothGNOME, Tetelestai-Modern -width - ButtonIPad=(str width)(subtract)(str ButtonIPad) - -# Simple -width - ButtonIPad + 1=(str width)(subtract)(str ButtonIPad)(add)(int 1) - -# Atlanta, Esco, Redmond, SmoothGNOME, Tetelestai-Modern -width - ButtonIPad - 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Esco -width - ButtonIPad - 1 + 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1)(add)(int 1) - -# Esco -width - ButtonIPad - 1 - 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1) - -# Esco -width - ButtonIPad - 1 - 1 + 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1)(subtract)(int 1)(add)(int 1) - -# Bright, Esco -width - ButtonIPad - 2=(str width)(subtract)(str ButtonIPad)(subtract)(int 2) - -# Esco -width - ButtonIPad - 2 + 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 2)(add)(int 1) - -# Esco, Metabox, Tetelestai-Modern -width - ButtonIPad - 4=(str width)(subtract)(str ButtonIPad)(subtract)(int 4) - -# Esco -width - ButtonIPad - 4 + 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 4)(add)(int 1) - -# Esco -width - ButtonIPad - 5=(str width)(subtract)(str ButtonIPad)(subtract)(int 5) - -# Esco -width - ButtonIPad - 5 + 1=(str width)(subtract)(str ButtonIPad)(subtract)(int 5)(add)(int 1) - -# Tetelestai-Modern -width - ButtonIPad -2=(str width)(subtract)(str ButtonIPad)(subtract)(int 2) - -# Bright -width - ButtonIPad-1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Carved2 -width - ResizerWidth - 1=(str width)(subtract)(str ResizerWidth)(subtract)(int 1) - -# Carved2 -width - ResizerWidth - 2=(str width)(subtract)(str ResizerWidth)(subtract)(int 2) - -# Esco -width - left_width - right_width + 1=(str width)(subtract)(str left_width)(subtract)(str right_width)(add)(int 1) - -# Esco -width - left_width - right_width - 1=(str width)(subtract)(str left_width)(subtract)(str right_width)(subtract)(int 1) - -# Esco -width - mini_icon_width - IconTitleSpacing=(str width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing) - -# Agata, Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple, Black, Correcamins, Crux, Firey 1.0, Firey Dark, Graphite, Maemo, Sandwish, Silverado, Tactile, sky, sky-blue -width - object_width=(str width)(subtract)(str object_width) - -# Esco -width - title_width - IconTitleSpacing=(str width)(subtract)(str title_width)(subtract)(str IconTitleSpacing) - -# Esco -width - title_width - IconTitleSpacing + 25 + 3=(str width)(subtract)(str title_width)(subtract)(str IconTitleSpacing)(add)(int 25)(add)(int 3) - -# Esco -width - title_width - IconTitleSpacing + 25 - 1 + 3=(str width)(subtract)(str title_width)(subtract)(str IconTitleSpacing)(add)(int 25)(subtract)(int 1)(add)(int 3) - -# Esco -width - title_width - IconTitleSpacing - height - 25 + 3=(str width)(subtract)(str title_width)(subtract)(str IconTitleSpacing)(subtract)(str height)(subtract)(int 25)(add)(int 3) - -# Esco -width - title_width - IconTitleSpacing - height - 25 - 1 + 3=(str width)(subtract)(str title_width)(subtract)(str IconTitleSpacing)(subtract)(str height)(subtract)(int 25)(subtract)(int 1)(add)(int 3) - -# Esco -width - title_width - height - (IconTitleSpacing * 2)=(str width)(subtract)(str title_width)(subtract)(str height)(subtract)( (str IconTitleSpacing)(multiply)(int 2) ) - -# Esco -width - title_width - mini_icon_width - (IconTitleSpacing * 2)=(str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)( (str IconTitleSpacing)(multiply)(int 2) ) - -# Esco -width - title_width - mini_icon_width - IconTitleSpacing * 3=(str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing)(multiply)(int 3) - -# Esco -width - title_width - mini_icon_width - IconTitleSpacing * 3 - 18=(str width)(subtract)(str title_width)(subtract)(str mini_icon_width)(subtract)(str IconTitleSpacing)(multiply)(int 3)(subtract)(int 18) - -# Outcrop -width -(width /3.6)=(str width)(subtract)( (str width)(divide)(double 3.6) ) - -# Outcrop -width -(width /3.6) +1=(str width)(subtract)( (str width)(divide)(double 3.6) )(add)(int 1) - -# Outcrop -width -(width /3.6) +2=(str width)(subtract)( (str width)(divide)(double 3.6) )(add)(int 2) - -# Outcrop -width -(width /3.6) -1=(str width)(subtract)( (str width)(divide)(double 3.6) )(subtract)(int 1) - -# Alphacube 0.9b Metacity Color, Alphacube 0.9b Metacity Light, Alphacube 0.9b Metacity Simple -width -7=(str width)(subtract)(int 7) - -# Carved2 -width / 2=(str width)(divide)(int 2) - -# Outcrop -width / 3.4=(str width)(divide)(double 3.4) - -# Outcrop -width / 3.4 -1=(str width)(divide)(double 3.4)(subtract)(int 1) - -# Outcrop -width /2=(str width)(divide)(int 2) - -# Outcrop -width /2+1=(str width)(divide)(int 2)(add)(int 1) - -# Outcrop -width /2-1=(str width)(divide)(int 2)(subtract)(int 1) - -# Outcrop -width /2-2=(str width)(divide)(int 2)(subtract)(int 2) - -# Outcrop -width /3.4 +1=(str width)(divide)(double 3.4)(add)(int 1) - -# Outcrop -width /3.4 +2=(str width)(divide)(double 3.4)(add)(int 2) - -# Mista -width `min` object_width=(str width)(min)(str object_width) - -# Atlanta, Bright -width+1-SpacerWidth/2=(str width)(add)(int 1)(subtract)(str SpacerWidth)(divide)(int 2) - -# Vista Basic -width+2=(str width)(add)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width- ((width-(Bmin`max`height-Bpad*2))/2)=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2)=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) ) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2) - 2=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2)*2=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(multiply)(int 2) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2)*2-1=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(multiply)(int 2)(subtract)(int 1) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2)*2-3=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(multiply)(int 2)(subtract)(int 3) - -# Clearlooks, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop -width-((width-(Bmin`max`height-Bpad*2))/2)-1=(str width)(subtract)( ( (str width)(subtract)( (str Bmin)(max)(str height)(subtract)(str Bpad)(multiply)(int 2) ) )(divide)(int 2) )(subtract)(int 1) - -# Chiro, c2 -width-(ButtonIPad+1)=(str width)(subtract)( (str ButtonIPad)(add)(int 1) ) - -# Chiro, c2 -width-(ButtonIPad+1)*2-1=(str width)(subtract)( (str ButtonIPad)(add)(int 1) )(multiply)(int 2)(subtract)(int 1) - -# Mista -width-(TitlebarPad*2)=(str width)(subtract)( (str TitlebarPad)(multiply)(int 2) ) - -# 4DWM -width-(left_width+right_width - 1)=(str width)(subtract)( (str left_width)(add)(str right_width)(subtract)(int 1) ) - -# 4DWM -width-(right_width-1)=(str width)(subtract)( (str right_width)(subtract)(int 1) ) - -# 4DWM -width-(right_width-2)=(str width)(subtract)( (str right_width)(subtract)(int 2) ) - -# Maemo -width-(title_width+80)=(str width)(subtract)( (str title_width)(add)(int 80) ) - -# Maemo -width-(title_width+88+8)=(str width)(subtract)( (str title_width)(add)(int 88)(add)(int 8) ) - -# Metabox -width-(width-ButtonIPad)/2-1=(str width)(subtract)( (str width)(subtract)(str ButtonIPad) )(divide)(int 2)(subtract)(int 1) - -# sky, sky-blue -width-0=(str width)(subtract)(int 0) - -# 4DWM, Almond, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, MWM, Maemo, MetaGrip, Metabox, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, Redmond, River, Shiny, Shiny-Tango, Simple, Simplebox, Sloth , SmoothGNOME, Soft Squares, Tactile, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -width-1=(str width)(subtract)(int 1) - -# 4DWM, Almond, Outcrop, Shiny, Shiny-Tango -width-10=(str width)(subtract)(int 10) - -# Graphite -width-12=(str width)(subtract)(int 12) - -# Almond, Outcrop, pOS -width-15=(str width)(subtract)(int 15) - -# 4DWM, Almond, Amiga, AmigaRelief, Aquarius, Atlanta, Bentham, Bright, Carved2, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, Gilouche, GiloucheIM, MWM, MetaGrip, Metabox, Outcrop, Quiet-Environment, Quiet-Environment-v2, Quiet-Graphite, Quiet-Graphite-v2, Quiet-Human, Quiet-Purple-2K6, Quiet-Purple-2K6-v2, River, Shiny, Shiny-Tango, Silverado, Simple, SmoothGNOME, Tactile, Tetelestai-Modern, Vista Basic, W2k, boxx, c2, pOS -width-2=(str width)(subtract)(int 2) - -# 4DWM, Aquarius, Bright, Carved2, Chiro, Clearbox-in, Clearbox-look-2, Clearbox-out, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Gilouche, GiloucheIM, Maemo, Outcrop, River, Simple, Simplebox, SmoothGNOME, Tetelestai-Modern, Vista Basic, W2k, c2 -width-3=(str width)(subtract)(int 3) - -# 4DWM, Almond, Amiga, AmigaRelief, Aquarius, Carved2, Chiro, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, Crux, Maemo, MetaGrip, Outcrop, River, Sandwish, Shiny, Shiny-Tango, SmoothGNOME, Tactile, Tetelestai-Modern, Vista Basic, boxx, c2, pOS -width-4=(str width)(subtract)(int 4) - -# 4DWM, Amiga, AmigaRelief, Aquarius, Bright, Chiro, Clearbox-look-2, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, MWM, River, Shiny-Tango, Sloth , SmoothGNOME, boxx, c2, pOS -width-5=(str width)(subtract)(int 5) - -# 4DWM, Aquarius, Clearlooks, Clearlooks-2.0-blend, Clearlooks-Pinstripe, Clearlooks-RedExit, Clearlooks2-Squared, Clearlooks2-Squared-Berries, ClearlooksWithACherryOnTop, EasyListening, MWM, MetaGrip, Shiny, Shiny-Tango, Vista Basic, W2k -width-6=(str width)(subtract)(int 6) - -# 4DWM, MWM, MetaGrip, Outcrop, Shiny, Shiny-Tango, pOS -width-7=(str width)(subtract)(int 7) - -# Maemo -width-70=(str width)(subtract)(int 70) - -# Maemo -width-72=(str width)(subtract)(int 72) - -# Almond, Outcrop, W2k, pOS -width-8=(str width)(subtract)(int 8) - -# 4DWM, Almond, Maemo, Outcrop, pOS -width-9=(str width)(subtract)(int 9) - -# Atlanta, Carved2, Chiro, Metabox, Redmond, River, SmoothGNOME, Tetelestai-Modern, c2 -width-ButtonIPad=(str width)(subtract)(str ButtonIPad) - -# Carved2 -width-ButtonIPad + 1=(str width)(subtract)(str ButtonIPad)(add)(int 1) - -# Simple -width-ButtonIPad + 2=(str width)(subtract)(str ButtonIPad)(add)(int 2) - -# Chiro, River, c2 -width-ButtonIPad - 3=(str width)(subtract)(str ButtonIPad)(subtract)(int 3) - -# Carved2, Chiro, River, c2 -width-ButtonIPad*2=(str width)(subtract)(str ButtonIPad)(multiply)(int 2) - -# Simple -width-ButtonIPad*2 + 2=(str width)(subtract)(str ButtonIPad)(multiply)(int 2)(add)(int 2) - -# Carved2 -width-ButtonIPad*2+1=(str width)(subtract)(str ButtonIPad)(multiply)(int 2)(add)(int 1) - -# Atlanta, Chiro, Metabox, Redmond, River, SmoothGNOME, Tetelestai-Modern, c2 -width-ButtonIPad*2-1=(str width)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 1) - -# Bright -width-ButtonIPad*2-2=(str width)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 2) - -# Chiro, River, c2 -width-ButtonIPad*2-5=(str width)(subtract)(str ButtonIPad)(multiply)(int 2)(subtract)(int 5) - -# Bright, Chiro, Metabox, River, c2 -width-ButtonIPad-1=(str width)(subtract)(str ButtonIPad)(subtract)(int 1) - -# Clearbox-look-2 -width-ButtonPad=(str width)(subtract)(str ButtonPad) - -# Clearbox-look-2 -width-ButtonPad*2+1=(str width)(subtract)(str ButtonPad)(multiply)(int 2)(add)(int 1) - -# Clearbox-look-2 -width-ButtonPad*2-1=(str width)(subtract)(str ButtonPad)(multiply)(int 2)(subtract)(int 1) - -# Clearbox-look-2 -width-ButtonPad+1=(str width)(subtract)(str ButtonPad)(add)(int 1) - -# Clearbox-look-2 -width-ButtonPad-1=(str width)(subtract)(str ButtonPad)(subtract)(int 1) - -# Clearbox-look-2 -width-ButtonPad-2=(str width)(subtract)(str ButtonPad)(subtract)(int 2) - -# Clearbox-look-2 -width-PrelightPad=(str width)(subtract)(str PrelightPad) - -# Clearbox-look-2 -width-PrelightPad*2+1=(str width)(subtract)(str PrelightPad)(multiply)(int 2)(add)(int 1) - -# Clearbox-look-2 -width-PrelightPad*2-1=(str width)(subtract)(str PrelightPad)(multiply)(int 2)(subtract)(int 1) - -# Clearbox-look-2 -width-PrelightPad+1=(str width)(subtract)(str PrelightPad)(add)(int 1) - -# Clearbox-look-2 -width-PrelightPad-1=(str width)(subtract)(str PrelightPad)(subtract)(int 1) - -# Clearbox-look-2 -width-PrelightPad-2=(str width)(subtract)(str PrelightPad)(subtract)(int 2) - -# Atlanta, Outcrop, Simple -width-SpacerWidth=(str width)(subtract)(str SpacerWidth) - -# Bright -width-SpacerWidth+2=(str width)(subtract)(str SpacerWidth)(add)(int 2) - -# Bright -width-SpacerWidth+3=(str width)(subtract)(str SpacerWidth)(add)(int 3) - -# Bright -width-SpacerWidth-2=(str width)(subtract)(str SpacerWidth)(subtract)(int 2) - -# Chiro -width-left_width=(str width)(subtract)(str left_width) - -# Atlanta, Bright, Metabox, Simple, SmoothGNOME, TangoDance, Tetelestai-Modern -width-left_width-right_width+1=(str width)(subtract)(str left_width)(subtract)(str right_width)(add)(int 1) - -# Maemo, Mista -width-object_width=(str width)(subtract)(str object_width) - -# 4DWM, Gilouche, GiloucheIM, MWM, SmoothGNOME, Tetelestai-Modern -width-right_width=(str width)(subtract)(str right_width) - -# 4DWM, MWM, Tetelestai-Modern -width-right_width+1=(str width)(subtract)(str right_width)(add)(int 1) - -# 4DWM -width-right_width/2=(str width)(subtract)(str right_width)(divide)(int 2) - -# 4DWM, MWM -width-top_height=(str width)(subtract)(str top_height) - -# 4DWM -width-top_height+1=(str width)(subtract)(str top_height)(add)(int 1) - -# 4DWM -width-top_height+2=(str width)(subtract)(str top_height)(add)(int 2) - -# 4DWM, MWM -width-top_height-1=(str width)(subtract)(str top_height)(subtract)(int 1) - -# Bentham, Clearbox-in, Clearbox-look-2, Clearbox-out, Simplebox, Sloth -width/2=(str width)(divide)(int 2) - -# Bentham -width/2 + width/4 - 1=(str width)(divide)(int 2)(add)(str width)(divide)(int 4)(subtract)(int 1) - -# Bentham -width/2 + width/4 - 2=(str width)(divide)(int 2)(add)(str width)(divide)(int 4)(subtract)(int 2) - -# Bentham -width/2 - width/4 + 1=(str width)(divide)(int 2)(subtract)(str width)(divide)(int 4)(add)(int 1) - -# Clearbox-in, Clearbox-out, MWM, Simplebox -width/2+1=(str width)(divide)(int 2)(add)(int 1) - -# Clearbox-in, Clearbox-out, Metabox, Simplebox -width/2+2=(str width)(divide)(int 2)(add)(int 2) - -# 4DWM, Clearbox-in, Clearbox-out, Simplebox -width/2+3=(str width)(divide)(int 2)(add)(int 3) - -# Clearbox-in, Clearbox-out, Simplebox -width/2+4=(str width)(divide)(int 2)(add)(int 4) - -# Clearbox-in, Clearbox-out, Simplebox -width/2+5=(str width)(divide)(int 2)(add)(int 5) - -# Aquarius -width/2+height/4=(str width)(divide)(int 2)(add)(str height)(divide)(int 4) - -# Aquarius -width/2+height/4+1=(str width)(divide)(int 2)(add)(str height)(divide)(int 4)(add)(int 1) - -# Aquarius -width/2+height/4+2=(str width)(divide)(int 2)(add)(str height)(divide)(int 4)(add)(int 2) - -# Clearbox-look-2 -width/2+width/2-ButtonPad+1=(str width)(divide)(int 2)(add)(str width)(divide)(int 2)(subtract)(str ButtonPad)(add)(int 1) - -# Clearbox-look-2 -width/2+width/2-PrelightPad+1=(str width)(divide)(int 2)(add)(str width)(divide)(int 2)(subtract)(str PrelightPad)(add)(int 1) - -# 4DWM, Clearbox-in, Clearbox-look-2, Clearbox-out, MWM, Simplebox -width/2-1=(str width)(divide)(int 2)(subtract)(int 1) - -# 4DWM, Clearbox-in, Clearbox-out, MWM, Metabox, Simplebox -width/2-2=(str width)(divide)(int 2)(subtract)(int 2) - -# Clearbox-in, Clearbox-out, Simplebox -width/2-3=(str width)(divide)(int 2)(subtract)(int 3) - -# Clearbox-in, Clearbox-out, Simplebox -width/2-4=(str width)(divide)(int 2)(subtract)(int 4) - -# Clearbox-in, Clearbox-out, Simplebox -width/2-5=(str width)(divide)(int 2)(subtract)(int 5) - -# Clearbox-in, Clearbox-out, Simplebox -width/2-6=(str width)(divide)(int 2)(subtract)(int 6) - -# Aquarius -width/2-height/4=(str width)(divide)(int 2)(subtract)(str height)(divide)(int 4) - -# Aquarius -width/2-height/4+1=(str width)(divide)(int 2)(subtract)(str height)(divide)(int 4)(add)(int 1) - -# Aquarius -width/2-height/4+2=(str width)(divide)(int 2)(subtract)(str height)(divide)(int 4)(add)(int 2) - -# Aquarius -width/2-height/6=(str width)(divide)(int 2)(subtract)(str height)(divide)(int 6) - -# Aquarius -width/2-height/6+1=(str width)(divide)(int 2)(subtract)(str height)(divide)(int 6)(add)(int 1) - -# Bentham -width/2-width/8-1=(str width)(divide)(int 2)(subtract)(str width)(divide)(int 8)(subtract)(int 1) - -# Bentham -width/2-width/8-2=(str width)(divide)(int 2)(subtract)(str width)(divide)(int 8)(subtract)(int 2) - -# Bentham -width/4=(str width)(divide)(int 4) - -# Bentham -width/4+2=(str width)(divide)(int 4)(add)(int 2) - -########################### - -# EOF tokentest.ini diff --git a/tools/xlib.py b/tools/xlib.py deleted file mode 100644 index 4a244c4f6..000000000 --- a/tools/xlib.py +++ /dev/null @@ -1,43 +0,0 @@ -# Very simple Xlib-based client in Python. -# Copyright (c) 2008 Thomas Thurman ; GPL 2.0 or later. -# Originally based around example code in python-xlib -# by Peter Liljenberg . - -import sys - -from Xlib import X -from Xlib.protocol import display -from Xlib.protocol.request import * - -display = display.Display() -screen = display.info.roots[display.default_screen] -window = display.allocate_resource_id() -gc = display.allocate_resource_id() - -CreateWindow(display, None, - depth = screen.root_depth, - wid = window, - parent = screen.root, - x = 100, y = 100, width = 250, height = 250, border_width = 2, - window_class = X.InputOutput, visual = X.CopyFromParent, - background_pixel = screen.white_pixel, - event_mask = (X.ExposureMask | - X.StructureNotifyMask | - X.ButtonPressMask | - X.ButtonReleaseMask | - X.Button1MotionMask), - colormap = X.CopyFromParent) - -CreateGC(display, None, gc, window) - -MapWindow(display, None, window) - -while 1: - event = display.next_event() - - if event.type == X.DestroyNotify: - sys.exit(0) - - print event - -