2005-02-16 Elijah Newren <newren@gmail.com>
* 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 <newren@gmail.com>
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 <newren@gmail.com>
Don't unconditionally place splashscreens (and other
not-to-befocused 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 <newren@gmail.com>
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 <adelaney@cs.may.ie>
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 <newren@gmail.com>
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 <newren@gmail.com>
* src/window.c: (meta_window_activate): If we're not passed a
timestamp, make sure to manually get one. Fixes#166728.
2005-02-06 Elijah Newren <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
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 <mightyquinn@letterboxes.org>
* src/metacity.schemas.in: Add period to the end of
reduced_resources' description. Fixes#165780.
2005-02-04 Elijah Newren <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
Correct the stacking when return from fullscreen mode. Fixes
#165718.
* src/window.c: (meta_window_unmake_fullscreen): Update the layer
after resizing the window