Commit Graph

1191 Commits

Author SHA1 Message Date
Rob Adams
971f3f1207 Update constraints code to support the new _NET_WM_STRUT_PARTIAL EWMH
2003-06-10  Rob Adams  <robadams@ucla.edu>

	Update constraints code to support the new _NET_WM_STRUT_PARTIAL
	EWMH draft specification.  See #86682.  Also, fix a bug involving
	work area invalidation on metacity startup.  Fix for #108497.
	Finally, some minor fixes for full screen windows.

	* src/window.h: Add new MetaStruts structure to store strut rects
	for a window.  Remove has_struts and do_not_cover flag, and
	support new MetaStruts instead of the four ints.

	* src/window.c (meta_window_new): change initialization to work
	with new struts.  Also, move meta_window_update_struts call to
	after the workspaces are initialized to fix #108497.  Remove
	do_not_cover and related code.
	(process_property_notify): add strut_partial
	(update_struts): change function name to meta_window_update_struts
	and expose in external MetaWindow API.  Support partial width
	struts and the new strut rects.

	* src/workspace.h: add new GSLists containing pointers to all
	relevant struts for this workspace.

	* src/workspace.c (meta_workspace_new): initialize the list of
	strut rects for this workspace.
	(meta_workspace_free): free the strut rect lists
	(ensure_work_areas_validated): support new struts and new strut
	rect lists.  Unleash the per-xinerama work areas.

	* src/constraints.c (get_outermost_onscreen_positions): Use the
	current window position along with the new per-workspace strut
	rects to compute the constraints that apply to a particular
	window.
	(constraint_hint_applies_func): don't do hints constraints on
	fullscreen windows
	(update_position_limits): for maximized windows use the work areas
	to set the position limits; for other windows rely on the struts
	constraints to be computed later in
	get_outermost_onscreen_positions
	(meta_window_constrain): don't apply aspect ratio hints to full
	screen windows

	* src/display.c (meta_display_open): add _NET_WM_STRUT_PARTIAL atom
	(meta_rectangle_equal): new helper function for MetaRectangles
	(event_queue_callback): #ifndef out if USE_GDK_DISPLAY not set to
	avoid compiler warning

	* src/display.h: add atom_net_wm_strut_partial, and add
	meta_rectangle_equal.

	* src/screen.c (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.
	(meta_screen_resize_func): update struts on windows with struts
	since struts are relative to the screen size, and this function is
	called when the screen size updates.

	* src/screen.h (meta_screen_rect_intersects_xinerama): change
	_window_intersects_ to _rect_intersects_ which is more useful now.

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hook for strut_partial

	* src/tools/metacity-window-demo.c: Support partial-width struts
	on the dock window tests for metacity testing purposes.
2003-06-26 03:09:38 +00:00
Vincent van Adrighem
3a39036dcb Dutch translation updated by Kees van den Broek.
2003-06-23  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>

	* nl.po: Dutch translation updated by Kees van den Broek.
2003-06-22 23:02:40 +00:00
Samúel Jón Gunnarsson
3428ed1adf Added Icelandic translation
2003-06-22  Samúel Jón Gunnarsson  <sammi@techattack.nu>

	* is.po: Added Icelandic translation
2003-06-22 15:21:40 +00:00
Christophe Merlet
81e4cb44aa Updated French translation. 2003-06-20 22:49:49 +00:00
Ivan Stojmirov
acb625ddeb added Macedonian translation 2003-06-19 10:33:44 +00:00
Pauli Virtanen
44508380dc Updated Finnish translation.
2003-06-17  Pauli Virtanen  <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2003-06-17 18:34:50 +00:00
Rob Adams
4d8414acfd Focus on mouse click in sloppy/mouse to fix keynav. Fix for #115072.
2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/display.c (event_callback): Focus on mouse click in
	sloppy/mouse to fix keynav.  Fix for #115072.
2003-06-13 05:47:51 +00:00
Pablo Gonzalo del Campo
70d0446190 Updated Spanish translation.
2003-06-12  Pablo Gonzalo del Campo <pablodc@bigfoot.com>

	* es.po: Updated Spanish translation.
2003-06-12 21:55:08 +00:00
Rob Adams
793a630e2f honor --disable-schemas-install. Fix for #106123 from Julio Merino
2003-06-12  Rob Adams  <robadams@ucla.edu>

	* src/Makefile.am: honor --disable-schemas-install.  Fix for
	#106123 from Julio Merino
2003-06-12 17:41:38 +00:00
Rob Adams
2936391fc8 Update ChangeLog 2003-06-12 07:22:44 +00:00
Rob Adams
85826d0d9a Remove legacy support for Gnome 1 hints, since we deem it unlikely that
2003-06-12  Rob Adams  <robadams@ucla.edu>

	Remove legacy support for Gnome 1 hints, since we deem it unlikely
	that anyone is running a current metacity with Gnome 1.  The
	removed hints are _WIN_WORKSPACE, _WIN_LAYER, _WIN_PROTOCOLS,
	_WIN_SUPPORTING_WM_CHECK, and _WIN_HINTS.

	* display.c (meta_display_open): remove hints

	* display.h: remove atoms for hints

	* screen.c (set_wm_check_hint): don't set legacy hint
	(set_supported_hint): don't set legacy hint

	* window-props.c (init_win_workspace): removed
	(reload_win_workspace): removed
	(meta_display_init_window_prop_hooks): remove hints

	* window.h: remove do_not_cover flag

	* window.c: remove GnomeWinHints enum
	(recalc_do_not_cover_struts): removed
	(meta_window_new): don't initialize removed flags or compute
	legacy struts
	(move_resize_cmp): removed
	(idle_move_resize): Don't bother sorting the idle queue
	(meta_window_client_message): don't set legacy hint
	(process_property_notify): remove hints
	(update_net_wm_type): don't fall back to WIN_LAYER hint
	(update_struts): remove legacy struts
2003-06-12 07:03:04 +00:00
Havoc Pennington
0a20419628 make raise-on-click explicitly only happen in click to focus mode.
2003-06-12  Havoc Pennington  <hp@pobox.com>

	* src/display.c (event_callback): make raise-on-click explicitly
	only happen in click to focus mode.

	* src/window.c (update_move): apply patch from Jurg Billeter to
	allow you to "shake loose" maximized windows and move them between
	Xinerama heads. #93586

	* src/display.c: delete event_queue_callback

	* src/display.h (struct _MetaDisplay): get rid of
	grab_current_window_pos and grab_current_root_[xy] as I could find
	absolutely no code using them for anything. They were just sort of
	randomly assigned to for no apparent reason.

	* src/display.c (event_callback): double-click timeout is per
	screen, so get the screen and pass screen->ui to
	meta_ui_get_double_click_timeout()

	* src/ui.c (meta_ui_get_double_click_timeout): take a MetaUI
	argument so we get the right settings for each screen
	(meta_ui_get_drag_threshold): new function
2003-06-12 05:55:06 +00:00
Bill Haneman
2d4503ee59 Fix for 114940. 2003-06-11 17:55:28 +00:00
Rob Adams
010e620a34 Revamp placement policy for windows that are maximized when they are
2003-06-09  Rob Adams  <robadams@ucla.edu>

	Revamp placement policy for windows that are maximized when they
	are mapped, including windows that set a hint to be maximized or
	windows that are auto-maximized using our heuristic.  See #111902.

	* src/window.h: add new flag maximize_after_placement and new
	function meta_window_maximize_internal.

	* src/window.c (meta_window_new): initialize
	maximize_after_placement to FALSE and remove the automaximize
	heuristic.
	(meta_window_maximize_internal): new function accepts a saved_rect
	argument to be used as the new saved_rect for the window, and does
	not queue a move_resize.
	(meta_window_maximize): re-implement using
	meta_window_maximize_internal.
	(update_net_wm_state): If a window has a maximize hint set on
	startup set maximize_after_placement to TRUE

	* src/constraints.c (meta_window_constrain): Update the xinerama
	information in the ConstraintInfo after placing the window, and
	maximize the window after placement if
	window->maximize_after_placement

	* src/place.c (find_first_fit): take a natural xinerama list as an
	argument instead of generating it here
	(constrain_placement): remove function, since it is no longer
	needed
	(meta_window_place): generate the natural xinerama list here and
	pass it into find_first_fit.  If find_first_fit fails, use the
	list to find empty xineramas where we can place windows that may
	be maximized later.  This makes maximized windows follow the
	correct placement policy.  Move the automaximize heuristic here.
2003-06-09 23:49:02 +00:00
Rob Adams
3f6bad087d install an alarm to timeout the no-sm-dialog after 4 minutes of
2003-06-09  Rob Adams  <robadams@ucla.edu>

	* src/metacity-dialog.c (warn_about_no_sm_support): install an
	alarm to timeout the no-sm-dialog after 4 minutes of inactivity.
	Patch from Ximian.  See #114789.
2003-06-09 18:58:53 +00:00
Garrett LeSage
c523d2827c Applying a fix for the "X" (close button) from Joe A. <joefefifo@yahoo.com> 2003-06-09 18:56:28 +00:00
Christophe Merlet
a53fea96ab Updated French translation. 2003-06-08 19:32:32 +00:00
Rob Adams
0bb8538e2f call meta_group_compute_group after setting window->desc to avoid SIGSEGV
2003-06-07  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): call meta_group_compute_group
	after setting window->desc to avoid SIGSEGV when verbose mode is
	enabled.
2003-06-07 17:15:33 +00:00
Christian Neumair
03b3e98a51 Updated German translation. 2003-06-07 14:19:40 +00:00
Havoc Pennington
e0963e6b66 drop the mouse button grabs for the focused window; we'll see if this
2003-06-07  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_notify_focus): drop the mouse button
	grabs for the focused window; we'll see if this breaks anything.
	It should fix #102209
2003-06-07 05:07:08 +00:00
Jonathan Blandford
6262db51a2 fix the location of the schemas file.
Fri Jun  6 19:27:53 2003  Jonathan Blandford  <jrb@gnome.org>

	* src/metacity.schemas.in: fix the location of the schemas file.
2003-06-06 23:31:24 +00:00
Jordi Mallach
58df4ee985 Updated Catalan translation. 2003-06-06 12:22:58 +00:00
Rob Adams
85abc9bfe7 don't be stupid and set window->group = NULL after calling
2003-06-04  Rob Adams  <robadams@ucla.edu>

	* src/window.c (meta_window_new): don't be stupid and set
	window->group = NULL after calling meta_window_compute_group.

	* src/group.c (meta_window_get_group): assert that window->group
	!= NULL in here instead of computing the group to ensure
	robustness.
2003-06-04 19:28:19 +00:00
Rob Adams
993c7075f3 Precompute groups to guarantee that meta_group_list_windows always returns
2003-06-04  Rob Adams  <robadams@ucla.edu>

	Precompute groups to guarantee that meta_group_list_windows always
	returns the correct list of windows.  See Bug #96973

	* src/window.h: change cached_group variable to group

	* src/window.c (meta_window_new): change cached_group to group and
	call meta_window_compute_group

	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
	(meta_window_group_leader_changed): call meta_window_compute_group
	instead of meta_window_get_group
2003-06-04 19:15:46 +00:00
Rob Adams
4469a42a77 Roll back broken update 2003-06-04 16:54:04 +00:00
Rob Adams
bf965f8465 Precompute groups to guarantee that meta_group_list_windows always returns
2003-06-04  Rob Adams  <robadams@ucla.edu>

	Precompute groups to guarantee that meta_group_list_windows always
	returns the correct list of windows.  See Bug #96973

	* src/window.h: change cached_group variable to group

	* src/window.c (meta_window_new): change cached_group to group and
	call meta_window_compute_group

	* src/groups.c (meta_window_get_group): simply return
	window->group rather than computing it and returning
	window->cached_group
	(meta_window_compute_group): new function computes window->group.
	Designed to be called once from meta_window_new
	(remove_window_from_group): change cached_group to group
2003-06-04 16:45:47 +00:00
Dmitry Mastrukov
f87a8c212f be.po: Updated Belarusian translation from Belarusian team <i18n@mova.org>. 2003-06-04 04:29:20 +00:00
Dmitry Mastrukov
3663ba0259 ru.po: Updated Russian translation from Russian team <gnome-cyr@gnome.org>. 2003-06-04 04:25:56 +00:00
Dafydd Harries
b9900681e7 Updated Welsh translation. 2003-05-31 15:57:36 +00:00
Rob Adams
3edad8599c CVS2003-05-29 Rob Adams <robadams@ucla.edu>
CVS2003-05-29  Rob Adams  <robadams@ucla.edu>

	Use a new property _METACITY_SENTINEL to eliminate a race
	condition that causes focus to behave badly with sloppy/mouse
	focus when lots of windows are mapped/unmapped, such as with a
	workspace switch.  The EnterNotify events on a display are ignored
	until the PropertyNotify sent after all the window maps is
	received.  This is a fix for #110970.

	* src/display.[ch]: New _METACITY_SENTINEL atom.
	(event_callback): ignore EnterNotify if the sentinel isn't clear,
	and decrement the sentinel counter when the PropertyNotify is
	received.
	(meta_display_increment_focus_sentinel): new function.  Increments
	the sentinel counter and updates the property on a root window on
	this display.
	(meta_display_decrement_focus_sentinel): Decrement the sentinel
	counter.
	(meta_display_focus_sentinel_clear): returns whether the sentinel
	counter is zero.

	* src/window.c (idle_calc_showing): after showing windows, call
	meta_display_increment_focus_sentinel on each display for windows
	to be shown.

	* src/workspace.[ch] (meta_workspace_activate_with_focus): new
	function activates a workspace and focuses a particular window
	after the workspace is activated.
	(meta_workspace_activate): now just a wrapper for
	meta_workspace_activate_with_focus

	* src/keybindings.c: use new meta_workspace_activate_with_focus
	function to ensure that focus will follow the focused window
	through the workspace switch.

: ----------------------------------------------------------------------
2003-05-30 20:24:00 +00:00
Paul Duffy
903f3d7e6e Updated Irish Translation
2003-05-30  Paul Duffy <dubhthach@frink.nuigalway.ie>
Updated Irish Translation
2003-05-30 19:01:18 +00:00
Havoc Pennington
051e404d09 s/int/gsize/ for g_file_get_contents() (found independently by
2003-05-29  Havoc Pennington  <hp@redhat.com>

	* src/theme-parser.c (meta_theme_load): s/int/gsize/ for
	g_file_get_contents() (found independently by
	marcus@freebsd.org on SPARC and James Laska on s390x;
	#113661

	* src/main.c (main): fix theme location mentioned in error message
2003-05-30 04:52:12 +00:00
Ray Strode
d1a853557b Get and use double-click speed from GtkSettings (Bug #103218).
2003-05-29  Ray Strode  <halfline@hawaii.rr.com>

	Get and use double-click speed from GtkSettings (Bug #103218).

	* src/ui.c, src/ui.h:
	add function meta_ui_get_double_click_timeout for looking up
	the global double-click speed.

	* src/display.c, src/display.h: remove double_click_time
	field from MetaDisplay and use meta_ui_get_double_click_timeout
	instead.
2003-05-30 02:53:42 +00:00
Kwok-Koon Cheung
f441033959 Updated traditional Chinese translation.
* zh_TW.po: Updated traditional Chinese translation.
2003-05-30 00:43:44 +00:00
Rob Adams
0fa4954c46 chdir to the user's home directory on startup. See #113755.
2003-05-29  Rob Adams  <robadams@ucla.edu>

	* src/main.c (main): chdir to the user's home directory on
	startup.  See #113755.

	* src/stack.c (get_standalone_layer): a window should be in the
	fullscreen layer if it or any of its transient descendants are
	focused or expecting the focus and it is either fullscreen or
	fullscreen sized.  Fix for #104369.

	* src/stack.c (is_focused_foreach): foreach used by
	get_standalone_layer to find focused transient descendants.
2003-05-29 17:16:22 +00:00
Duarte Loreto
59958b0f0a Updated Portuguese translation.
2003-05-26  Duarte Loreto <happyguy_pt@hotmail.com>

        * pt.po: Updated Portuguese translation.
2003-05-26 20:56:52 +00:00
Miloslav Trmac
4549e42480 Update Czech translation 2003-05-21 08:45:10 +00:00
Havoc Pennington
1620fd5408 the mask display->ignored_modifier_mask wasn't being bound, due to "<"
2003-05-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (meta_change_keygrab): the mask
	display->ignored_modifier_mask wasn't being bound,
	due to "<" instead of "<=" (most people didn't notice
	as display->ignored_modifier_mask included Scroll_Lock).
	Red Hat bugzilla #91301 reported by Youssef Makki

	* src/display.c (meta_change_button_grab): make corresponding
	change for button grabs.
2003-05-21 03:45:58 +00:00
Havoc Pennington
1d692936e0 2.5.2 2003-05-20 16:40:32 +00:00
Anders Carlsson
6153a17a64 Split up the strings to make life easier for translators.
2003-05-20  Anders Carlsson  <andersc@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Split up the strings to make life easier for translators.
2003-05-20 15:54:42 +00:00
Christian Rose
b77590ba7a Updated Swedish translation.
2003-05-20  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2003-05-20 15:33:21 +00:00
Anders Carlsson
c9df553d02 Fix the wording and HIGify the dialog.
2003-05-20  Anders Carlsson  <andersca@codefactory.se>

	* src/metacity-dialog.c: (kill_window_question):
	Fix the wording and HIGify the dialog.
2003-05-20 15:06:01 +00:00
Telsa Gwynne
967ac0f1d9 More Welsh updates from Daf. 2003-05-19 14:27:00 +00:00
Christophe Merlet
ebf2c77c50 Updated French translation. 2003-05-18 22:55:45 +00:00
Havoc Pennington
c370a3e503 revert broken change that assumed foreach_ancestor iterated over the
2003-05-18  Havoc Pennington  <hp@pobox.com>

	* src/window.c (unminimize_window_and_all_transient_parents):
	revert broken change that assumed foreach_ancestor iterated
	over the window itself. Andrew Sobala, Rob Adams,
	#113232
`
2003-05-18 17:16:03 +00:00
Rob Adams
9e2608524d update ChangeLog 2003-05-17 04:16:34 +00:00
Rob Adams
7fc6c99987 Flip the workspace when using up/down/left/right for move window to, but
2003-05-16  Rob Adams  <robadams@ucla.edu>

	Flip the workspace when using up/down/left/right for move window
	to, but not when specifying a workspace explicitly as in move to
	workspace 4.  Possible fix for #105492.

	* src/keybindings.c (do_handle_move_to_workspace): new function
	moves a window to a workspace with the option to flip to that
	workspace.
	(handle_move_to_workspace): Use new do_handle_move_to_workspace
	function without flipping (a keybinding)
	(handle_move_to_workspace_flip): Use new
	do_handle_move_to_workspace function with flipping (a keybinding)
2003-05-17 00:00:55 +00:00
Havoc Pennington
3ad5618596 fix for bug #104018 from David Santiago, change button state to normal
2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/frames.c (meta_frames_paint_to_drawable): fix for
	bug #104018 from David Santiago, change button state to
	normal while it's being pressed if you move the mouse
	outside it. Do this by tracking prelit_control for whether
	to draw a button as active, not just for whether to draw
	it as prelit.
	(meta_frames_motion_notify_event): also update prelit_control
	while clicking a button
2003-05-16 23:09:49 +00:00
Havoc Pennington
4b02b0ddf1 fill in window->desc sooner since we use it sooner now.
2003-05-16  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): fill in window->desc sooner
	since we use it sooner now.

	* src/display.c (meta_display_open): init
	display->grab_update_alarm

	* src/window.c (meta_window_new): initialize the always_sticky
	field
	(meta_window_new): initialize the update_icon_queued field

        Patch from Julien Olivier bug #92335 for converting "show desktop
	mode" to "all windows are minimized" when you open a new window,
	instead of just mapping all the windows again.

	* src/window.c (meta_window_activate): minimize all windows before
	coming out of show desktop mode.
	(meta_window_unminimize): don't toggle show desktop mode here

	* src/screen.c (meta_screen_minimize_all_except): new function
2003-05-16 21:59:08 +00:00
Telsa Gwynne
1ac3f938de Welsh translation from Dafydd Harries. 2003-05-16 15:38:29 +00:00