2005-01-25 Elijah Newren <newren@gmail.com>
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 Balamurali Viswanathan <balamurali.viswanathan@wipro.com>
* 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 <newren@gmail.com>
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 <newren@gmail.com>
* 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 <newren@gmail.com>
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 <newren@gmail.com>
Patch from John Paul Wallington to fix#163420.
* src/window.c: (check_maximize_to_work_area): fix vertical
maximization for second screen
2005-01-20 Elijah Newren <newren@gmail.com>
* src/tabpopup.c (dimm_icon): use pixbuf, not dimmed_pixbuf (which
isn't defined yet). Fixes crash from #136666.
2005-01-20 Vincent Noel <vnoel@cox.net>
* 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 <vnoel@cox.net>
* 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 <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
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-02 Elijah Newren <newren@gmail.com>
Provide more documentation to make it easier for people to
contribute to Metacity
* 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.
* src/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 <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
* 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 <newren@gmail.com>
* 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 <newren@gmail.com>
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 <newren@gmail.com>
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 <newren@gmail.com>
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