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/s