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 Penningt