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.