Commit Graph

1187 Commits

Author SHA1 Message Date
Søren Sandmann
8638300708 Port to changes in libcm.
Tue Jan 17 17:25:29 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c: Port to changes in libcm.
2006-01-17 22:27:10 +00:00
Elijah Newren
4dd216f5a8 manually define HOST_NAME_MAX if not already defined to fix Solaris
2006-01-16  Elijah Newren  <newren gmail com>

	* src/window-props.c: manually define HOST_NAME_MAX if not already
	defined to fix Solaris compilation issue.  Caught by Damien
	Carbery, patch from Havoc.  #326745
2006-01-16 17:37:53 +00:00
Elijah Newren
4d868c1ddc post-release version bump to 2.13.34
2006-01-16  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.34
2006-01-16 17:14:20 +00:00
Elijah Newren
97981e4322 2.13.21 release
2006-01-16  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.21 release
2006-01-16 17:13:20 +00:00
Søren Sandmann
35dae65862 Really turn off draw-in-a-loop.
Mon Jan 16 11:55:20 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (meta_compositor_manage_screen): Really turn
	off draw-in-a-loop.
2006-01-16 16:56:09 +00:00
Kyle Ambroff
fac7010411 If no valid window is found in the MRU list, then set focus to the desktop
2006-01-15  Kyle Ambroff  <kambroff@csus.edu>

	* src/workspace.c (focus_ancestor_or_mru_window):
	If no valid window is found in the MRU list, then set focus to the
	desktop window. (#317405)
2006-01-16 06:07:29 +00:00
Elijah Newren
9fdd3d165d Fix accidental overzealous focus holding by the terminal introduced by the
2006-01-15  Elijah Newren  <newren@gmail.com>

	Fix accidental overzealous focus holding by the terminal
	introduced by the original patch in bug 326159.  Windows launched
	from panel icons, the panel menu, or global keybindings should get
	focus now.  #326159.

	* src/display.c (meta_display_open, event_callback):
	* src/display.h (struct MetaDisplay):
	* src/keybindings.c (process_event):
	* src/window.c (meta_window_set_user_time):
	Add a new allow_terminal_deactivation field to MetaDisplay and use
	it to track whether the user's last action was interaction with
	the terminal or some outside action (global keybinding, clicking
	on a dock, etc.) likely to launch a new window.

	* src/window.c (window_state_on_map):
	Allow the focus switch from a terminal to something else if
	allow_terminal_deactiviation is true.

	* src/keybindings.c (handle_panel_keybinding):
	Remove some unneeded code.
2006-01-15 17:03:57 +00:00
Elijah Newren
ef792fc1f7 Patch from Jens Granseuer to fix more build issues with gcc 2.95. #327050.
2006-01-15  Elijah Newren  <newren@gmail.com>

	Patch from Jens Granseuer to fix more build issues with gcc 2.95.
	#327050.

	* src/boxes.c (meta_rectangle_edge_cmp_ignore_type):
	* src/window.c (meta_window_show):
	Remove C99 style variable initiailization
2006-01-15 16:37:06 +00:00
Elijah Newren
50bcc976bc Don't dereference a NULL string. Fixes #327013.
2006-01-14  Elijah Newren  <newren gmail com>

	* src/window.c (__window_is_terminal): Don't dereference a NULL
	string.  Fixes #327013.
2006-01-15 04:45:34 +00:00
Elijah Newren
def12b85b8 fix compilation when HAVE_COMPOSITE_EXTENSIONS is undefined. #326912
2006-01-14  Elijah Newren  <newren gmail com>

	* src/compositor.[ch]: fix compilation when
	HAVE_COMPOSITE_EXTENSIONS is undefined.  #326912
2006-01-14 21:51:46 +00:00
Søren Sandmann
efe25a80ed Only update on damage events.
Fri Jan 13 16:37:26 2006  Søren Sandmann  <sandmann@redhat.com>

	* src/compositor.c (update): Only update on damage events.
2006-01-13 21:38:56 +00:00
Elijah Newren
f9d11c0be6 Patch from Damien Carbery. Fixes #326746.
2006-01-13  Elijah Newren  <newren gmail com>

	Patch from Damien Carbery.  Fixes #326746.

	* src/util.c: explicitly #include Xlib.h to fix a compilation
	issue on Solaris.
2006-01-13 21:36:10 +00:00
Søren Sandmann
fea6191473 Add a dependency on libcm when building with compositor.
Fri Jan 13 14:40:19 2006  Søren Sandmann  <sandmann@redhat.com>

	* configure.in: Add a dependency on libcm when building with
	compositor.

	* src/window.c (meta_window_hide): Make this function static.

	* src/window.c (implement_showing): Use meta_compositor_minimize()
	to do a weird minimize effect.

	* src/compositor.[ch]: Beginning of new GL based compositor.

	* src/screen.h (struct _MetaScreen): Add void pointer to
	compositor data.

	* src/screen.c (meta_screen_new): Remove obsolete compositor
	stuff; initialize compositor_data. Don't composite manage screen
	out of this function.

	* src/errors.c (x_error_handler): Check that display is non-NULL
	before using it. Add comment about how that can happen.

	* src/display.c (meta_display_{begin,end}_grab_op): Remove
	explicity damage of windows.

	* src/display.c (meta_display_open): Composite manage all the
	screens.
2006-01-13 19:41:01 +00:00
Elijah Newren
9ec589b3b8 Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser compilers don't
2006-01-11  Elijah Newren  <newren gmail com>

	* src/textboxes.c (test_area, test_intersect, test_equal,
	  test_overlap_funcs, test_basic_fitting, test_merge_regions,
	  test_regions_okay, test_region_fitting, test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region,
	  test_find_onscreen_edges,
	  test_find_nonintersected_xinerama_edges, test_gravity_resize,
	  test_find_closest_point_to_line):
	Replace __PRETTY_FUNCTION__ with G_STRFUNC, because lesser
	compilers don't support the former.  Caught by Damien Carbery, fix
	suggested by Ray Strode.  #326281.
2006-01-11 16:35:03 +00:00
Elijah Newren
51b8c402d8 post-release version bump to 2.13.21
2006-01-10  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.21
2006-01-10 20:08:27 +00:00
Elijah Newren
f0322ee76c 2.13.13 release
2006-01-10  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.13 release
2006-01-10 20:07:34 +00:00
Elijah Newren
5913b8c5ab Whoops, I forgot to keep my copyright info updated with my previous
2006-01-10  Elijah Newren  <newren@gmail.com>

	* src/bell.c:
	* src/boxes.c:
	* src/boxes.h:
	* src/constraints.c:
	* src/core.c:
	* src/display.c:
	* src/display.h:
	* src/edge-resistance.c:
	* src/frames.c:
	* src/keybindings.c:
	* src/main.c:
	* src/prefs.c:
	* src/prefs.h:
	* src/screen.c:
	* src/screen.h:
	* src/window.c:
	* src/window.h:
	Whoops, I forgot to keep my copyright info updated with my previous
	commits as Havoc had asked me to do.  Doing that now...
2006-01-10 19:43:21 +00:00
Elijah Newren
52df880f32 Add a raise on click option, basically only because all the major distros
2006-01-10  Elijah Newren  <newren@gmail.com>

	Add a raise on click option, basically only because all the major
	distros are patching it in anyway.  See #326156.

	* src/metacity.schemas.in: add the new gconf key and explanation

	* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
	  raise_on_click, update_raise_on_click, meta_prefs_init,
	  change_notify, meta_prefs_get_raise_on_click,
	  meta_preference_to_string):
	Add all the normal preference handling stuff for this new
	raise-on-click option.

	* src/core.c (meta_core_show_window_menu):
	* src/display.c (event_callback, meta_display_begin_grab_op):
	* src/window.c (window_activate, meta_window_configure_request, ):
	Only raise the window if in raise_on_click mode.

	* src/display.c (meta_display_begin_grab_op,
	  meta_display_end_grab_op, meta_display_check_threshold_reached):
	* src/display.h (struct MetaDisplay):
	* src/window.c (meta_window_handle_mouse_grab_op_event):
	if not in raise-on-click mode only raise on button release if the
	click didn't start a move or resize operation; needs a few extra
	MetaDisplay fields to handle this

	* src/core.c (meta_core_user_lower_and_unfocus):
	no need to do the MRU shuffling if not maintaining the stacking
	order == MRU order invariant

	* src/frames.c (meta_frames_button_press_event):
	* src/window.c (meta_window_begin_grab_op):
	remove an unneeded window raising that is already handled elsewhere
2006-01-10 19:35:03 +00:00
Elijah Newren
f6270596de Don't "steal" focus from terminal windows for new window mappings as the
2006-01-10  Elijah Newren  <newren@gmail.com>

	Don't "steal" focus from terminal windows for new window mappings
	as the difference in usage between terminals and other apps seems
	to suggest this difference in treatment.  See #326159 for details,
	feedback welcome.

	* src/window.[ch] (__window_is_terminal): New function, currently
	an ugly hack and should be replaced by a new property set by
	applications if the behavior works to our liking,
	(window_state_on_map): don't transfer focus to new windows from
	terminals unless the new window is a transient of the focused
	terminal

	* src/keybindigns.c (handle_panel_keybinding): panel run dialog
	keybinding should be counted as an explicit transfer of focus to
	the new window, so override the
	don't-transfer-focus-from-terminals in this case
2006-01-10 18:33:53 +00:00
Elijah Newren
a4d1c6fd61 More thorough handling of source indication. Part of #326041.
2006-01-09  Elijah Newren  <newren@gmail.com>

	More thorough handling of source indication.  Part of #326041.

	* src/window.c (window_activate): new function based off the old
	meta_window_activate but which also takes source indication into
	account, (meta_window_active): just call window_activate() with
	the necessary source indication to get the behavior wanted,
	(meta_window_client_message): check source indication too for
	_net_active_window messages

	* src/window.h (enum MetaClientType): convenience enum for source
	indication handling
2006-01-10 05:44:40 +00:00
Elijah Newren
0f8add8b37 Make the taskbar less flash happy and fix up some related stacking issues.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Make the taskbar less flash happy and fix up some related stacking
	issues.  #326035.

	* src/window.c (windows_overlap): new function,
	(meta_window_show): if a window is denied focus but doesn't
	overlap with the focus window there is no need to set the demands
	attention hint nor stack that window below the focus window,
	(meta_window_get_outer_rect): we're not modifying the window so
	declare it to be const
2006-01-10 05:14:48 +00:00
Elijah Newren
8c5b6c875a Fix window outline for minimized windows when using alt-esc. #325092.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix window outline for minimized windows when using alt-esc.
	#325092.

	* src/display.c (meta_display_begin_grab_op): Specify the showing
	type of tabbing operation (Alt tab vs. alt-esc) in addition to the
	listing type of tabbing operation (docks vs normal windows) to
	meta_screen_ensure_tab_popup().

	* src/display.h (enum MetaTabShowType): new convenience enum

	* src/screen.[ch] (meta_screen_ensure_tab_popup): require the
	showing type be specified in addition to the tabbing type; put the
	outline around the window instead of the icon when in alt-esc
	mode.
2006-01-10 05:05:40 +00:00
Elijah Newren
ae52d731be Fix reduced resources resize handling for windows with sizing or resizing
2006-01-09  Elijah Newren  <newren@gmail.com>

	Fix reduced resources resize handling for windows with sizing or
	resizing constraints.  #325774.

	* src/display.c (meta_display_end_grab_op): Provide constraints.c
	with the correct gravity information.
2006-01-10 05:01:08 +00:00
Elijah Newren
d884f9ce8a Be more strict about what is considered a valid region with partial
2006-01-09  Elijah Newren  <newren@gmail.com>

	Be more strict about what is considered a valid region with
	partial struts.  Fixes #322070.

	* src/boxes.[ch]:
	(meta_rectangle_expand_region_conditionally):
	new function behaving like meta_rectangle_expand_region() but
	which only does so when the width and height of the rectangles
	meet a certain threshold

	(replace_rect_with_list):
	Remove a compiling warning

	* src/constraints.c:
	(constrain_partially_onscreen):
	provide minimum thresholds in each direction for the size of the
	rectangles to avoid cases where only a single pixel thick layer of
	a window might be showing
2006-01-10 04:57:51 +00:00
Elijah Newren
ee54debd6a Use the right function to remove the timeout so that we don't crash if
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/bell.c (meta_bell_notify_frame_destroy): Use the right
	function to remove the timeout so that we don't crash if removed
	at an inopportune time.  Fixes #322031.
2006-01-10 04:50:17 +00:00
Elijah Newren
24cfed8cf0 Remove the "pull-away" edge resistance. Fixes another of the zillions of
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	"pull-away" edge resistance.  Fixes another of the zillions of
	issues covered in #321905.
2006-01-10 04:46:45 +00:00
Elijah Newren
008a811e10 Revert to the old edge resistance behavior for keyboard movement/resizing
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Revert to the old
	edge resistance behavior for keyboard movement/resizing based
	resistance.  Not only makes the code much simpler and shorter, but
	also fixes another of the zillions of issues covered in #321905.
2006-01-10 04:42:30 +00:00
Elijah Newren
de65967b62 Remove the timeout resistance at screen/xinerama edges for the whiners.
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Remove the
	timeout resistance at screen/xinerama edges for the whiners.
	Okay, it made sense.  Fixes another of the zillions of issues
	covered in #321905.
2006-01-10 04:39:53 +00:00
Elijah Newren
35532d14cb Make extra timeout edge resistance apply even if one edge already
2006-01-09  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): Make extra
	timeout edge resistance apply even if one edge already offscreen.
	Fixes another of the zillions of issues covered in #321905.
2006-01-10 04:36:36 +00:00
Elijah Newren
9516694385 Allow edge resistance at both sides of a window and also when edges don't
2006-01-09  Elijah Newren  <newren@gmail.com>

	Allow edge resistance at both sides of a window and also when
	edges don't overlap but are a single pixel away from doing so.
	Fixes one of the zillions of issues covered in #321905.

	* src/boxes.[ch]:
	(meta_rectangle_edges_align):
	new function to handle the overlap or off by one determining
	whether edge resistance should kick in for an edge.

	(meta_rectangle_edge_cmp_ignore_type):
	new function to sort edges but ignore the type so that e.g. left &
	right edges of windows can be used interchangeably.

	(meta_rectangle_edge_cmp):
	now uses meta_rectangle_edge_cmp_ignore_type() to do most the work
	and just adds an extra condition

	* src/edge-resistance.c:
	(find_nearest_position):
	use meta_rectangle_edges_align() now to determine whether the
	edges align,

	(apply_edge_resistance, apply_edge_resistance_to_each_side):
	have the edge resistance kick in if either the beginning or ending
	positions would cause overlap in the given direction -- fixes an
	uncommon but annoying corner case,

	(apply_edge_snapping, apply_edge_resistance_to_each_side,
	 meta_display_cleanup_edges,
	 stupid_sort_requiring_extra_pointer_dereference, cache_edges):
	mix edges from both sides now
2006-01-10 04:33:58 +00:00
Elijah Newren
9eb56f151c Plug a few leaks. Fixes #309178.
2006-01-09  Elijah Newren  <newren@gmail.com>

	Plug a few leaks.  Fixes #309178.

	* src/main.c (main): remove an unneeded g_set_prgname() call, free
	some strings allocated by the GOptions parsing
2006-01-10 04:18:09 +00:00
Elijah Newren
339948fcf2 Patch from Björn Lindqvist to fix a logic error. #322149.
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to fix a logic error.  #322149.

	* src/window.c (update_resize): && should have been ||.
2006-01-02 18:48:30 +00:00
Elijah Newren
ebd0c7e9a6 Patch from Jens Granseuer to fix build with gcc 2.95. #322622.
2006-01-02  Elijah Newren  <newren@gmail.com>

	Patch from Jens Granseuer to fix build with gcc 2.95.  #322622.

	* src/boxes.c (meta_rectangle_region_to_string,
	  meta_rectangle_edge_list_to_string, fix_up_edges):
	* src/constraints.c (meta_window_constrain, setup_constraint_info,
	  place_window_if_needed, constrain_maximization,
	  constrain_fullscreen, constrain_size_increments,
	  constrain_size_limits, constrain_aspect_ratio,
	  do_screen_and_xinerama_relative_constrai,
	  constrain_to_single_xinerama, constrain_fully_onscreen,
	  constrain_partially_onscreen):
	* src/edge-resistance.c (find_nearest_position,
	  apply_edge_resistance, apply_edge_resistance_to_each_side):
	* src/testboxes.c (test_clamping_to_region,
	  test_clipping_to_region, test_shoving_into_region):
	* src/window.c (meta_window_new_with_attrs,
	  meta_window_apply_session_info, meta_window_resize,
	  meta_window_resize_with_gravity, meta_window_configure_request):
	Remove C99 style variable initiailization
2006-01-02 18:37:46 +00:00
Elijah Newren
d530c3e405 post-release version bump to 2.13.13
2006-01-02  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.13
2006-01-02 18:00:18 +00:00
Elijah Newren
be86740b3d 2.13.8 release
2006-01-02  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.8 release
2006-01-02 17:59:18 +00:00
Elijah Newren
703f58cdf7 Make the workspace switcher work with dual-head (non-xinerama) setups.
2005-12-27  Elijah Newren  <newren@gmail.com>

	Make the workspace switcher work with dual-head (non-xinerama)
	setups.  Fixes #319423.

	* src/display.c (meta_display_open, event_callback,
	  meta_display_focus_the_no_focus_window):
	* src/display.h (struct MetaDisplay,
	  meta_display_focus_the_no_focus_window):
	* src/keybindings.c (primary_modifier_still_pressed):
	* src/screen.c (meta_screen_new):
	* src/screen.h (struct MetaScreen):
	* src/window.c (meta_window_new_with_attrs, meta_window_show):
	* src/workspace.c (meta_workspace_focus_default_window):
	Replace display->no_focus_window with a no_focus_window for each
	screen.

	* src/display.[ch] (meta_display_xwindow_is_a_no_focus_window,
	  event_callback):
	* src/window.c (meta_window_new_with_attrs):
	New utility function, meta_display_xwindow_is_a_no_focus_window(),
	for checking if the given xwindow is a no_focus_window for one of
	the screens.
2005-12-28 06:24:30 +00:00
Elijah Newren
5e9f20e94c since the title is going to be treated as markup, escape it. Fixes
2005-12-27  Elijah Newren  <newren@gmail.com>

	* src/tabpopup.c (meta_ui_tab_popup_new): since the title is going
	to be treated as markup, escape it.  Fixes #324846.
2005-12-27 16:40:47 +00:00
Kang Jeong-Hee
a710235e86 ko.po updated 2005-12-25 14:27:11 +00:00
Kang Jeong-Hee
6a9242b192 compile with compositor enabled 2005-12-14 12:47:35 +00:00
Elijah Newren
013c8b82db post-release version bump to 2.13.8
2005-12-12  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.8
2005-12-12 18:44:32 +00:00
Elijah Newren
37fb0af742 2.13.5 release
2005-12-12  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.5 release
2005-12-12 18:41:02 +00:00
Elijah Newren
12193322a8 make the debugging message actually correspond to the code. Patch from
2005-12-12  Elijah Newren  <newren@gmail.com>

	* src/window.c (update_net_frame_extents): make the debugging
	message actually correspond to the code.  Patch from Björn
	Lindqvist.  Fixes #322051.
2005-12-12 18:22:40 +00:00
Kjartan Maraas
b3f465c727 Make the wireframe a bit slimmer 2005-11-29 21:36:12 +00:00
Davyd Madeley
616d778f6b display hostname in titlebar for remote X clients. Closes bug #322202.
2005-11-24  Davyd Madeley  <davyd@fugro-fsi.com.au>

        * src/window-props.c: display hostname in titlebar for remote X
          clients. Closes bug #322202.
2005-11-23 17:08:03 +00:00
Elijah Newren
35925d1cf1 post-release version bump to 2.13.5
2005-11-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.5
2005-11-22 16:12:54 +00:00
Elijah Newren
d74b0ce151 2.13.3 release
2005-11-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.3 release
2005-11-22 16:11:53 +00:00
Elijah Newren
ca2fe384bc Don't allow removing a window from maximized or fullscreened state to
2005-11-22  Elijah Newren  <newren@gmail.com>

	Don't allow removing a window from maximized or fullscreened state
	to place the titlebar under the top panel.  Fixes #322075.

	* src/display.c (handle_net_moveresize_window): fix up previous
	comments now that I know a little more, modify the code just
	slightly to clarify that this is NOT a manual user move/resize
	operation

	* src/window.c (meta_window_unmaximize,
	  meta_window_unmake_fullscreen,
	  meta_window_shove_titlebar_onscreen):
	don't claim that these are manual user move/resize operations
2005-11-22 15:48:30 +00:00
Elijah Newren
b03d82661f Relax the partially onscreen constraint to allow the titlebar to touch the
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (constrain_partially_onscreen): Relax the
	partially onscreen constraint to allow the titlebar to touch the
	bottom panel in order to make the new constraints code function
	the same as the old version.  Fixes #322071.
2005-11-22 00:22:41 +00:00
Elijah Newren
3426844ad5 When updating the xinerama due to placement, update which maximal/spanning
2005-11-21  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): When updating the
	xinerama due to placement, update which maximal/spanning rect set
	to use as well
2005-11-21 21:35:31 +00:00
Elijah Newren
0fdbdbd236 It took me a little while to figure out how struts & workareas are updated
2005-11-21  Elijah Newren  <newren@gmail.com>

	* doc/strut-and-related-updating.txt: It took me a little while to
	figure out how struts & workareas are updated and to learn what
	all the related functions were used for so I thought I'd clean up
	my notes and make them available.  This will probably be more
	useful now since regions and edges are also computed and stored at
	the some time as the workareas.
2005-11-21 18:16:52 +00:00
Elijah Newren
9641bc5ee7 compute the frame geometry due to maximization only after actually
2005-11-20  Elijah Newren  <newren@gmail.com>

	* src/constraints.c (place_window_if_needed): compute the frame
	geometry due to maximization only after actually maximizing.
	Fixes #321902.
2005-11-21 06:00:18 +00:00
Davyd Madeley
d1da3438d4 Use GPOINTER_TO_INT() macro instead of cast to allow compilation on 64-bit
2005-11-21  Davyd Madeley  <davyd@fugro-fsi.com.au>

        * src/edge-resistance.c (meta_display_compute_resistance_and_snap):
          Use GPOINTER_TO_INT() macro instead of cast to allow compilation on
          64-bit architectures without warning.
2005-11-21 02:58:36 +00:00
Elijah Newren
075d6d34db differentiate between movement towards an edge and movement away from one.
2005-11-19  Elijah Newren  <newren@gmail.com>

	* src/edge-resistance.c (apply_edge_resistance): differentiate
	between movement towards an edge and movement away from one.  Pick
	smaller constants for movement away from an edge.
2005-11-20 04:02:46 +00:00
Elijah Newren
466ce4a936 Add another fixed bug to the ChangeLog and NEWS that I missed earlier 2005-11-19 21:53:12 +00:00
Elijah Newren
c78a98e066 post-release version bump to 2.13.3
2005-11-19  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.3
2005-11-19 16:54:03 +00:00
Elijah Newren
a5165ee24d 2.13.2 release
2005-11-19  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.2 release
2005-11-19 16:52:25 +00:00
Elijah Newren
a7201d27d1 Merge of all the changes on the constraints_experiments branch. This is
2005-11-18  Elijah Newren  <newren@gmail.com>

	Merge of all the changes on the constraints_experiments branch.
	This is just a summary, to get the full ChangeLog of those
	changes (approx. 2000 lines):
	  cvs -q -z3 update -Pd -r constraints_experiments
	  cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog

	Bugs fixed:
	  unfiled - constraints.c is overly complicated[1]
	  unfiled - constraints.c is not robust when all constraints
	            cannot simultaneously be met (constraints need to be
	            prioritized)
	  unfiled - keep-titlebar-onscreen constraint is decoration
	            unaware (since get_outermost_onscreen_positions()
	            forgets to include decorations)
	  unfiled - keyboard snap-moving and snap-resizing snap to hidden
	            edges
	   109553 - gravity w/ simultaneous move & resize doesn't work
	   113601 - maximize vertical and horizontal should toggle and be
	            constrained
	   122196 - windows show up under vertical panels
	   122670 - jerky/random resizing of window via keyboard[2]
	   124582 - keyboard and mouse snap-resizing and snap-moving
	            erroneously moves the window multidimensionally
	   136307 - don't allow apps to resize themselves off the screen
	            (*cough* filechooser *cough*)
	   142016, 143784 - windows should not span multiple xineramas
	            unless placed there by the user
	   143145 - clamp new windows to screensize and force them
	            onscreen, if they'll fit
	   144126 - Handle pathological strut lists sanely[3]
	   149867 - fixed aspect ratio windows are difficult to resize[4]
	   152898 - make screen edges consistent; allow easy slamming of
	            windows into the left, right, and bottom edges of the
	            screen too.
	   154706 - bouncing weirdness at screen edge with keyboard moving
	            or resizing
	   156699 - avoid struts when placing windows, if possible (nasty
	            a11y blocker)
	   302456 - dragging offscreen too restrictive
	   304857 - wireframe moving off the top of the screen is misleading
	   308521 - make uni-directional resizing easier with
	            alt-middle-drag and prevent the occasional super
	            annoying resize-the-wrong-side(s) behavior
	   312007 - snap-resize moves windows with a minimum size
	            constraint
	   312104 - resizing the top of a window can cause the bottom to
	            grow
	   319351 - don't instantly snap on mouse-move-snapping, remove
	            braindeadedness of having order of releasing shift and
	            releasing button press matter so much

	   [1] fixed in my opinion, anyway.
	   [2] Actually, it's not totally fixed--it's just annoying
	       instead of almost completely unusable.  Matthias had a
	       suggestion that may fix the remainder of the problems (see
	       http://tinyurl.com/bwzuu).
	   [3] This bug was originally about not-quite-so-pathological
	       cases but was left open for the worse cases. The code from
	       the branch handles the remainder of the cases mentioned in
	       this bug.
	   [4] Actually, although it's far better there's still some minor
	       issues left: a slight drift that's only noticeable after
	       lots of resizing, and potential problems with partially
	       onscreen constraints due to not clearing any
	       fixed_directions flags (aspect ratio windows get resized in
	       both directions and thus aren't fixed in one of them)

	New feature:
	    81704 - edge resistance for user move and resize operations;
	            in particular 3 different kinds of resistance are
	            implemented:
             	 Pixel-Distance: window movement is resisted when it
	     	   aligns with an edge unless the movement is greater than
	     	   a threshold number of pixels
             	 Timeout: window movement past an edge is prevented until
	     	   a certain amount of time has elapsed during the
	     	   operation since the first request to move it past that
	     	   edge
             	 Keyboard-Buildup: when moving or resizing with the
	     	   keyboard, once a window is aligned with a certain edge
	     	   it cannot move past until the correct direction has
	     	   been pressed enough times (e.g. 2 or 3 times)

	Major changes:
	  - constraints.c has been rewritten; very few lines of code from
	    the old version remain.  There is a comment near the top of
	    the function explaining the basics of how the new framework
	    works.  A more detailed explanation can be found in
	    doc/how-constraints-works.txt
	  - edge-resistance.[ch] are new files implementing edge-resistance.
	  - boxes.[ch] are new files containing low-level error-prone
	    functions used heavily in constraints.c and edge-resistance.c,
	    among various places throughout the code.  testboxes.c
	    contains a thorough testsuite for the boxes.[ch] functions
	    compiled into a program, testboxes.
	  - meta_window_move_resize_internal() *must* be told the gravity
	    of the associated operation (if it's just a move operation,
	    the gravity will be ignored, but for resize and move+resize
	    the correct value is needed)
	  - the craziness of different values that
	    meta_window_move_resize_internal() accepts has been documented
	    in a large comment at the beginning of the function.  It may
	    be possible to clean this up some, but until then things will
	    remain as they were before--caller beware.
	  - screen and xinerama usable areas (i.e. places not covered by
	    e.g. panels) are cached in the workspace now, as are the
	    screen and xinerama edges.  These get updated with the
	    workarea in src/workspace.c:ensure_work_areas_validated()
2005-11-19 14:58:50 +00:00
Elijah Newren
d0095e947f post-release version bump to 2.13.2
2005-11-14  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.2
2005-11-14 18:28:32 +00:00
Elijah Newren
ef486d855c 2.13.1 release
2005-11-14  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.1 release
2005-11-14 18:27:22 +00:00
Aidan Delaney
6677b55cd5 Changed the 'minimized' field of the MetaTabEntry struct to 'hidden'.
2005-11-11 Aidan Delaney <a.j.delaney@brighton.ac.uk>

       * src/tabpopup.h: (struct _MetaTabEntry):
       * src/tabpopup.c: (meta_ui_tab_popup_new):
       * src/screen.c: (meta_screen_ensure_tab_popup):
       Changed the 'minimized' field of the MetaTabEntry struct to
       'hidden'.  Fixes reopened bug #168455.
2005-11-12 00:34:32 +00:00
Kjartan Maraas
4752ef55c7 Merge fix for bug #320050 from stable.
2005-10-29  Kjartan Maraas  <kmaraas@gnome.org>

	* src/eventqueue.c: (meta_event_queue_new): Merge fix
	for bug #320050 from stable.
2005-10-29 07:37:45 +00:00
Erdal Ronahi
828d2ca01e Added Kurdish translation 2005-10-27 18:20:58 +00:00
Philip O'Brien
064303e98e add handling for META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more
2005-10-25  Philip O'Brien  <philip.obrien@dal.ca>

	* src/prefs.c (meta_preference_to_string): add handling for
	META_PREF_CURSOR_THEME and META_PREF_CURSOR_SIZE for more complete
	debug info
2005-10-25 16:43:01 +00:00
Elijah Newren
094449d097 post-release version bump to 2.13.1
2005-10-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.13.1
2005-10-24 22:40:49 +00:00
Elijah Newren
ddd1d6616d 2.13.0 release
2005-10-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.0 release
2005-10-24 22:39:15 +00:00
Elijah Newren
f2acdda740 Fix edge snapping for multi-screen (non-xinerama) setups. #319425
2005-10-23  Elijah Newren  <newren@gmail.com>

	Fix edge snapping for multi-screen (non-xinerama) setups.  #319425

	* src/place.c (get_windows_showing_on_same_screen,
	get_vertical_edges, get_horizontal_edges): rename
	get_windows_on_same_workspace() to
	get_windows_showing_on_same_screen()

	* src/place.c (get_windows_showing_on_same_screen): exclude windows
	in the list that are on a different screen
2005-10-23 21:19:22 +00:00
Elijah Newren
7c70749ae8 Clarify why METACITY_VERBOSE=1 is bad without META_USE_LOGFILE=1; point to
2005-10-20  Elijah Newren  <newren@gmail.com>

	* HACKING: Clarify why METACITY_VERBOSE=1 is bad without
	META_USE_LOGFILE=1; point to bug 305091 for details.
2005-10-21 00:22:38 +00:00
Muktha
62fb5e6eb4 Make the unfocussed Simple window border visible with high contrast
2005-10-13  Muktha  <muktha.narayan@wipro.com>

        * src/themes/Simple/metacity-theme-1.xml: Make the unfocussed
        Simple window border visible with high contrast inverse theme.
        Fixes #121361.
2005-10-13 05:51:24 +00:00
Elijah Newren
7ef871f73a Fix a crash that occurs when removing some virtual desktops and windows
2005-10-08  Elijah Newren  <newren@gmail.com>

	Fix a crash that occurs when removing some virtual desktops and
	windows happen to be on those desktops.  #318306.

	* src/workspace.c (meta_workspace_relocate_windows): Since windows
	cannot be on more than one workspace at a time, remove the window
	from the old workspace before adding it to the new one.
2005-10-08 23:18:05 +00:00
Elijah Newren
29e38a2f53 Add my copyright notice to a number of files on which it should already
2005-10-08  Elijah Newren  <newren@gmail.com>

	Add my copyright notice to a number of files on which it should
	already exist.
2005-10-08 19:38:54 +00:00
Elijah Newren
0a13bf3270 clarify the meaning of the auto_raise preference. Fixes one of the issues
2005-10-03  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: clarify the meaning of the auto_raise
	preference.  Fixes one of the issues in #312421.
2005-10-03 20:10:56 +00:00
Elijah Newren
4aaf6e3eb4 Patch from Ross Cohen to make alt-esc consistent with alt-tab by leaving
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc consistent with alt-tab by
	leaving stacking of unselected windows unchanged.  Fixes #314285.

	* src/keybindings.c (process_tab_grab): before raising and showing
	the next candidate, reset the stack positions to what they were
	at the beginning of the grab
2005-10-03 20:05:44 +00:00
Elijah Newren
12daca5cb1 Patch from Ross Cohen to make alt-esc (show windows instantly) actually
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Ross Cohen to make alt-esc (show windows instantly)
	actually show minimized windows too.  Fixes #107072.

	* src/keybindings.c (process_tab_grab): initialize tab_unminimized
	to FALSE for the target window when starting the grab, when
	advancing through the list check to find the previous window and
	re-minimize it if it was tab-unminimized, unminimize the new
	window we're alt-esc'ing to if it's minimized, (do_choose_window):
	raise and unminimize the initial window as well in alt-esc'ing

	* src/window.h (struct _MetaWindow): add a tab_unminimized field

	* src/window.c (meta_window_new_with_attrs): initialize
	tab_unminimized to false
2005-10-03 20:02:31 +00:00
Elijah Newren
1a8c2aa027 Branched for Gnome 2.13. :-)
2005-10-03  Elijah Newren  <newren@gmail.com>

	Branched for Gnome 2.13.  :-)

	* configure.in: bump version to 2.13.0.  Add UNSTABLE warning.
	* README: add 2.13.x to the list of unstable branches
2005-10-03 19:53:55 +00:00
Elijah Newren
26dbf9856b A combination of a couple memory leaks fixes, from Kjartan, Soeren, and I.
2005-10-03  Elijah Newren  <newren@gmail.com>

	A combination of a couple memory leaks fixes, from Kjartan,
	Soeren, and I.  Fixes #313030.

	* src/bell.c (meta_bell_flash_screen): call XFreeGC()

	* src/frames.c (invalidate_cache): free pixels

	* src/window.c (meta_window_show_menu): call
	meta_screen_free_workspace_layout()
2005-10-03 19:22:40 +00:00
Elijah Newren
ea4cd88285 Patch from Björn Lindqvist fix the workspace switcher tabpopup to display
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist fix the workspace switcher tabpopup to
	display the right windows and to fix the
	pick-a-new-window-to-focus algorithm in order to not select
	windows that aren't showing.  Fixes #170475.

	* src/tabpopup.c (meta_convert_meta_to_wnck,
	meta_select_workspace_expose_event): factor out conversion code
	from meta_select_workspace_expose_event() into the new
	meta_convert_meta_to_wnck() function

	* src/tabpopup.c (meta_select_workspace_expose_event):
	* src/workspace.c (focus_ancestor_or_mru_window):
	replace the buggy window->minimized logic with
	!meta_window_showing_on_its_workspace (window)
2005-10-03 19:06:17 +00:00
Elijah Newren
47f1a8634b Patch from Björn Lindqvist to have ancestors come along with the
2005-10-03  Elijah Newren  <newren@gmail.com>

	Patch from Björn Lindqvist to have ancestors come along with the
	transient when moving the window from one workspace to another.
	Fixes #314977.

	* src/window.c (meta_window_change_workspace): have all ancestors
	change workspaces too
2005-10-03 19:00:01 +00:00
Elijah Newren
c3624745ae post-release version bump to 2.12.2
2005-10-03  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.2
2005-10-03 18:35:55 +00:00
Elijah Newren
2aee817a56 2.12.1 release
2005-10-03  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.12.1 release
2005-10-03 18:34:18 +00:00
Elijah Newren
ef5299ee92 Truncate ridiculously long titles to avoid crashing or letting the pager
2005-10-03  Elijah Newren  <newren@gmail.com>

	Truncate ridiculously long titles to avoid crashing or letting the
	pager crash.  Based on patch from Ray, incorporating suggestions
	from Havoc and some extensions of my own.  Fixes #315070.

	* src/display.c (set_utf8_string_hint, meta_display_open):
	* src/xprops.[ch] (meta_prop_set_utf8_string_hint):
	Move set_utf8_string_hint() to props.[ch], namespace it
	("meta_prop_"), and make it public

	* src/tabpopup.c (utf8_strndup, meta_ui_tab_popup_new):
	* src/util.[ch] (meta_g_utf8_strndup):
	Move utf8_strndup() to util.[ch], namespace it ("meta_g_"), and
	make it public

	* src/display.c (meta_display_open):
	* src/display.h (struct _MetaDisplay):
	add net_wm_visible_name and net_wm_visible_icon_name atoms to the
	list of atoms we work with

	* src/window-props.c (set_window_title, set_icon_title): If title
	length is greater than 512, truncate it and set
	_NET_WM_VISIBLE_NAME or _NET_WM_VISIBLE_ICON_NAME accordingly
2005-10-03 18:13:45 +00:00
Elijah Newren
fcba59e685 Get the tabbing window outline to work with gtk+ 2.8.4 again. Fixes
2005-10-03  Elijah Newren  <newren@gmail.com>

	Get the tabbing window outline to work with gtk+ 2.8.4 again.
	Fixes #317528.

	* src/tabpopup.c (display_entry): gtk+ 2.8.4 needs to know the
	mapped state of its windows (see bug 316180), and since we
	manually map with gdk_window_show_unraised() we need to manually
	set the mapped state too
2005-10-03 17:11:49 +00:00
Elijah Newren
b4f123c332 post-release version bump to 2.12.1
2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.12.1
2005-09-05 23:29:24 +00:00
Elijah Newren
422ee61608 2.12.0 release
2005-09-05  Elijah Newren  <newren@gmail.com>

	* configure.in:
	* README:
	* NEWS:
	2.12.0 release
2005-09-05 23:28:16 +00:00
Danilo Šegan
06df0d64ad Added Armenian translation. 2005-09-04 16:19:12 +00:00
Elijah Newren
86bbde337c Add tips on how to more easily get the ids of windows, and how to shorten
2005-09-03  Elijah Newren  <newren@gmail.com>

	* HACKING: Add tips on how to more easily get the ids of windows,
	and how to shorten xprop output.
2005-09-03 23:33:27 +00:00
Brent Smith
6bb6566b86 Moved the call to meta_screen_get_natural_xinerama_list to earlier in
2005-09-02  Brent Smith  <gnome@nextreality.net>

        * src/place.c: (meta_window_place): Moved the call to
        meta_screen_get_natural_xinerama_list to earlier in
        function so that xineramas_list is allocated before
        find_first_fit is called.  Fixes #315000
2005-09-02 15:54:34 +00:00
Elijah Newren
fc6dbd84b9 post-release version bump to 2.11.5
2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.5
2005-08-22 19:05:18 +00:00
Elijah Newren
e16863f783 2.11.3 release
2005-08-22  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.3 release
2005-08-22 19:03:58 +00:00
Elijah Newren
96c238bbc6 Patch from Björn Lindqvist to check for the appropriate versions of glib
2005-08-22  Elijah Newren  <newren@gmail.com>

	* configure.in: Patch from Björn Lindqvist to check for the
	appropriate versions of glib and gtk.  Fixes #314116.
2005-08-22 18:40:07 +00:00
Elijah Newren
87f613fbbe Avoid obscuring centered-on-desktop windows which are denied focus. Fixes
2005-08-12  Elijah Newren  <newren@gmail.com>

        * src/place.c (meta_window_place): Avoid obscuring
        centered-on-desktop windows which are denied focus.  Fixes
        #313234.
2005-08-13 03:58:24 +00:00
Elijah Newren
893fadf7d6 post-release version bump to 2.11.3
2005-08-08  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.3
2005-08-08 21:49:50 +00:00
Elijah Newren
a182b353ce 2.11.2 release
2005-08-08  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.2 release
2005-08-08 21:48:08 +00:00
Elijah Newren
f335b0c381 Patch from Brent Smith to fix a duplicate string. Fixes #309774.
2005-08-08  Elijah Newren  <newren@gmail.com>

	Patch from Brent Smith to fix a duplicate string.  Fixes #309774.

	* src/theme-parser.c (parse_toplevel_element, parse_draw_op_element):

	Change "No \"%s\" attribute on element <%s>" string to "No \"%s\"
	attribute on <%s> element"
2005-08-08 21:31:31 +00:00
Ray Strode
2972ab6df6 Improve the behavior of keyboard move/resize and edge snapping. Still not
2005-08-03  Ray Strode  <rstrode@redhat.com>

	Improve the behavior of keyboard move/resize and edge
	snapping.  Still not perfect, bug 310888.

	* src/effects.c (draw_xor_rect): Make the outside of a
	wireframe rectangle line up with the outside edge of its
	window, instead of centering the wireframe edges on the
	window edges.

	* src/keybindings.c (process_keyboard_move_grab): allow
	edge snapping in wireframe mode.  Adjust code to take
	into account changed semantics of find_next_*_edge
	functions.
	(process_keyboard_resize_grab_op_change): new function
	to take some orthogonal logic out of
	process_keyboard_resize_grab_op.  Only allow keyboard
	resize cursor to go to flat edges, not corners.
	(process_keyboard_resize_grab):  allow edge snapping in
	wireframe mode.  Fix up snapping logic.

	* src/place.c (get_{vertical,horizontal}_edges): use
	GArray instead of int *, since the number of output
	edges isn't known until the middle of the function now.
	Use xor rect extents instead of window extends if in
	wireframe mode.
	(meta_window_find_next_{vertical,horizontal}_edge: add
	new source_edge_position parameter to specify which edge
	on the active window to start from when looking for next
	edge on the screen. Return the coordinate of the edge
	found and not the coordinate of where the window should be
	moved to snap to where the edge was found.

	* src/window.c (update_move): all the user to specify
	an edge to resize with mouse in keyboard resize mode.
	window
2005-08-03 02:22:00 +00:00
Elijah Newren
c50c8e6f7d Change default theme from "Simple" to "Clearlooks".
2005-08-01  Elijah Newren  <newren@gmail.com>

	* src/metacity.schemas.in: Change default theme from "Simple" to
	"Clearlooks".
2005-08-01 14:56:24 +00:00
Elijah Newren
1b2e5e56a8 use only the expected_focus_window instead of both the focused_window and
2005-07-31  Elijah Newren  <newren@gmail.com>

	* src/stack.c (is_focused_foreach, get_standalone_layer): use only
	the expected_focus_window instead of both the focused_window and
	the expected_focus_window.  Removes an infinite flicker loop in
	sloppy and mouse focus, and an ugly one time flicker in click to
	focus.  Fixes #311400.
2005-08-01 04:58:58 +00:00
Elijah Newren
d5705ef576 Patch from Jaap Haitsma to make sure that Metacity dialogs have icons.
2005-07-30  Elijah Newren  <newren@gmail.com>

        Patch from Jaap Haitsma to make sure that Metacity dialogs have
        icons.  Fixes #309876.

        * src/metacity-dialog.c (kill_window_question,
        warn_about_no_sm_support, error_about_command): call
        gtk_window_set_icon_name() to set the dialog icon
2005-07-30 15:18:01 +00:00
Elijah Newren
20b7ee18ef remove some unneeded debug spew that was causing crashes. Fixes #311819.
2005-07-28  Elijah Newren  <newren@gmail.com>

	* src/place.c (avoid_being_obscured_as_second_modal_dialog):
	remove some unneeded debug spew that was causing crashes.  Fixes
	#311819.
2005-07-28 19:05:28 +00:00
Elijah Newren
7f1fd68952 post-release version bump to 2.11.2
2005-07-24  Elijah Newren  <newren@gmail.com>

	* configure.in: post-release version bump to 2.11.2
2005-07-25 03:36:53 +00:00
Elijah Newren
9c97fd2b9b 2.11.1 release
2005-07-24  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.11.1 release
2005-07-25 03:32:50 +00:00