Commit Graph

688 Commits

Author SHA1 Message Date
Havoc Pennington
92c8ba0497 don't install .desktop file for properties dialog if we aren't
2003-01-10  Havoc Pennington  <hp@redhat.com>

	* src/Makefile.am (desktopfiles_DATA): don't install .desktop file
	for properties dialog if we aren't building/installing the
	properties dialog.
2003-01-10 20:43:47 +00:00
James M. Cape
198398ba88 Use a line for the titlebar text bg.
2003-01-09  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Use a line for the titlebar
	text bg.
2003-01-10 02:00:21 +00:00
Havoc Pennington
5d2f307735 argh, we were making all dialogs skip taskbar; when did that get added.
2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/window.c (recalc_window_features): argh, we were making all
	dialogs skip taskbar; when did that get added.  Fix to match
	libwnck, only skip taskbar when the dialog is transient for some
	other app window.
2003-01-09 23:28:01 +00:00
Havoc Pennington
70bd23278b change Windows+click back to Alt+click, Windows+click just surprised
2003-01-09  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: change Windows+click back to Alt+click,
	Windows+click just surprised everybody and didn't work half the
	time. Maya users can configure it, and GTK DND can change its
	default.
2003-01-09 22:48:07 +00:00
Havoc Pennington
8e14da1759 assign Alt+F12 to shade window, per #102658
2003-01-08  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: assign Alt+F12 to shade window,
	per #102658
2003-01-09 04:50:13 +00:00
Havoc Pennington
b619f9baa8 fix off-by-one, patch from readams@hmc.edu, #102806
2003-01-07  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (update_num_workspaces): fix off-by-one, patch from
	readams@hmc.edu, #102806
2003-01-08 04:23:18 +00:00
Arvind Samptur
e2155c8fee don't apply offscreen height difference. This would get the window under
2003-01-06  Arvind Samptur <arvind.samptur@wipro.com>
        * src/window.c: (constrain_position) don't apply
        offscreen height difference. This would get the
        window under the panel on a resize or a move.
        Fixes #102418
2003-01-06 04:40:11 +00:00
Havoc Pennington
036747fba5 invert vertical_workspaces cases (we want to go down each column if it's
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (meta_screen_calc_workspace_layout): invert
	vertical_workspaces cases (we want to go down each column if
	it's vertical, and across each row if horizontal). Patch
	from readams@hmc.edu
2003-01-06 02:59:19 +00:00
Havoc Pennington
aad72e575d put in the HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): put in the
	HAVE_GTK_MULTIHEAD conditionals so we build with GTK 2.0
2003-01-05 19:15:58 +00:00
Havoc Pennington
b799630ba5 focus new windows even in mouse focus mode, #89981, patch from
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_show): focus new windows even in
	mouse focus mode, #89981, patch from readams@hmc.edu
2003-01-05 18:39:55 +00:00
Havoc Pennington
90748385c2 redo using new calc_workspace_layout to fix #98302
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_neighbor): redo using new
	calc_workspace_layout to fix #98302

	* src/util.c (topic_name): shorten default prefix

	* src/screen.c (meta_screen_calc_workspace_layout): enhance this
	to handle all the funky layouts and calculate more information
	than before
2003-01-05 18:36:01 +00:00
Havoc Pennington
6cfcc01334 handle the client having a shape mask, fixes #101806
2003-01-05  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (meta_frames_apply_shapes): handle
	the client having a shape mask, fixes #101806

	* src/core.c (meta_core_get_client_xwindow): new function

	* src/frame.c, src/frame.h: keep a flag for whether we need to
	update the frame shape

	* src/window.c (meta_window_new): select for ShapeNotify

	* src/display.h, src/display.c: actually query the shape
	extension, instead of just using it all over the place.

	* src/prefs.c (update_application_based): don't let people turn on
	application_based, as it just causes funky bugs. We can reenable
	the pref when/if it ever does something useful.
2003-01-05 07:51:02 +00:00
Havoc Pennington
f8b2f6ca5c include the Xrandr header file
2003-01-03  Havoc Pennington  <hp@redhat.com>

	* src/display.c: include the Xrandr header file

	* src/window.c (meta_window_fill_horizontal)
	(meta_window_fill_vertical): maximize to work area, not entire
	screen. doh.
2003-01-03 19:06:53 +00:00
Havoc Pennington
1ece207400 Reverted visual bell patch, #99886
2002-12-19  Havoc Pennington  <hp@pobox.com>

	* Reverted visual bell patch, #99886
2002-12-19 20:20:59 +00:00
Havoc Pennington
91641c2cf3 select ColormapChangeMask on toplevel windows, maybe a partial fix for
2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask
	on toplevel windows, maybe a partial fix for #101478

2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_begin_grab_op): don't use "(null)"
	for null pointers, use "none", so I can distinguish
	glibc-generated (null) which is a bug.
	(key_event_description): ditto
	(meta_display_begin_grab_op): ditto

	* src/window.c (update_sm_hints): ditto

	* src/keybindings.c (reload_modmap): ditto
	(meta_display_process_key_event): ditto
2002-12-19 20:18:54 +00:00
Havoc Pennington
89c31c43ca select ColormapChangeMask on toplevel windows, maybe a partial fix for
2002-12-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_new): select ColormapChangeMask
	on toplevel windows, maybe a partial fix for #101478
2002-12-18 22:16:58 +00:00
Hidetoshi Tajima
f6b4f11ebe added support for border only windows. #100984.
* src/themes/AgingGorilla/metacity-theme-1.xml: added support for
	border only windows. #100984.
2002-12-18 01:51:35 +00:00
Havoc Pennington
908198c25d s/focussed/focused/
2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: s/focussed/focused/
2002-12-17 18:36:24 +00:00
Havoc Pennington
f4cb740aac add a comma to message #101401
2002-12-17  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): add a comma to message #101401
2002-12-17 18:26:08 +00:00
Bill Haneman
e7e47a8b85 Added visual bell feature, fix for 99886. 2002-12-17 01:08:29 +00:00
Havoc Pennington
ea45e43082 argh, screwed that up. get WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (init_wm_name): argh, screwed that up. get
	WM_NAME as VALUE_TEXT_PROPERTY #101383
2002-12-16 22:09:05 +00:00
Havoc Pennington
1ad94dec1c use META_PROP_VALUE_STRING_AS_UTF8 so we convert old Latin-1 WM_NAME to
2002-12-16  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c: use META_PROP_VALUE_STRING_AS_UTF8 so
	we convert old Latin-1 WM_NAME to UTF-8

	* src/xprops.h (enum): add META_PROP_VALUE_STRING_AS_UTF8 to get a
	latin1 string then convert.
2002-12-16 22:01:15 +00:00
Havoc Pennington
8a9a4aba77 get window name before anything else.
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): get window name before anything
	else.

	* src/xprops.c (validate_or_free_results): instead of suggesting
	how to get window title etc. with xprop, just print out the
	window title. much better.
2002-12-15 21:59:38 +00:00
Havoc Pennington
4ad2d1a048 make the warning about strange property contents blame the application and
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (validate_or_free_results): make the warning about
	strange property contents blame the application and explain how to
	use xprop to diagnose which app is causing the problem.
2002-12-15 18:55:08 +00:00
Havoc Pennington
07296490b4 don't pass NULL string to gconf_client_set_string #101237
2002-12-15  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_change_workspace_name): don't pass NULL
	string to gconf_client_set_string #101237
2002-12-15 18:51:29 +00:00
Havoc Pennington
fd8c3514d6 only install .desktop file for metacity-properties if we actually install
2002-12-13  Havoc Pennington  <hp@redhat.com>

	* src/tools/Makefile.am (Desktop_in_files): only install .desktop
	file for metacity-properties if we actually install
	metacity-properties

	* src/display.c (event_callback): not focusing on button 2 click
	was crack, revert that change.
2002-12-13 22:20:31 +00:00
Havoc Pennington
967777b965 add myself here, bug #100789
2002-12-09  Havoc Pennington  <hp@pobox.com>

	* AUTHORS: add myself here, bug #100789

	* src/display.c (meta_display_set_grab_op_cursor): drop
	PointerMotionHintMask

	* src/window.c (meta_window_handle_mouse_grab_op_event): don't use
	XQueryPointer, as we aren't using PointerMotionHint now

	* src/display.c (event_callback): rearrange a bit of code
	for slight speedup and clarity

	* src/window.c (update_resize)
	(meta_window_handle_mouse_grab_op_event): implement
	usage of the _METACITY_UPDATE_COUNTER
	(meta_window_handle_mouse_grab_op_event): fix code that
	used event->xbutton with a motion event

	* src/display.c (meta_display_open): add new atoms, and
	initialize Xsync if we have it
	(grab_op_is_resizing): new function
	(meta_display_begin_grab_op): create an alarm monitoring
	window's _METACITY_UPDATE_COUNTER
	(meta_spew_event): conditionalize this on WITH_VERBOSE_MODE
	and print alarm events.

	* src/window.c (meta_window_new): fetch _METACITY_UPDATE_COUNTER

	* configure.in (HAVE_XSYNC): check for Xsync extension
2002-12-10 03:23:04 +00:00
Soeren Sandmann
ba18c630b7 Handle crossing events during resizing. (#93384).
Mon Dec  9 22:09:56 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* src/display.c, src/window.c: Handle crossing events during
	resizing. (#93384).
2002-12-09 21:07:27 +00:00
Havoc Pennington
9c337d0a8f updates
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* README: updates

	* src/window.c (MAX_RESIZES_PER_SECOND): change to 20 instead of
	30, just as an experiment.
	(MOVE_THRESHOLD): change 15 to 20
	(RESIZE_THRESHOLD): change 15 to 20

	* src/util.c (ensure_logfile): kill this function when verbose
	mode is disabled.
2002-12-09 02:53:16 +00:00
Havoc Pennington
e0c8b245ef new functions to resize to fill screen
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_fill_vertical)
	(meta_window_fill_horizontal): new functions to resize to
	fill screen

	* src/keybindings.c: add vert, horiz maximize

	* src/prefs.c: had vert, horiz maximize

	* src/metacity.schemas.in: shorten some overlong short
	descriptions that make the keybindings capplet look ugly.
	Add maximize_vertically, maximize_horizontally keys.
2002-12-08 21:09:05 +00:00
Havoc Pennington
8d314aead8 make this always return FALSE for now, to avoid bug reports.
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (meta_prefs_get_application_based): make this always
	return FALSE for now, to avoid bug reports.

	* src/util.c (ensure_logfile): put "opened log file" message on
	stderr so it will normally land in ~/.xsession-errors

	* configure.in: remove extra AC_ARG_PROGRAM

	* src/display.c (event_callback): handle the toggle-verbose message

	* src/tools/metacity-message.c: add a toggle-verbose message, been
	meaning to do this for a while.

	* src/util.c (meta_set_verbose): if verbose mode is enabled and we
	don't support it, then exit.

	* src/prefs.c: allow building without gconf (currently means some
	prefs are no-ops)

	* src/util.c, src/util.h: support defining macros to
	kill all verbose output entirely. (Removes the code and strings
	associated with it)

	* configure.in: don't get METACITY_PROPS_LIBS if not building the
	config dialog.
	(HAVE_GCONF): allow building sans gconf, if you are size-sensitive
	and not using gnome.
	(WITH_VERBOSE_MODE): add ability to disable all the verbose debug
	spew strings, to shrink the binary.
	(--disable-sm): allow SM support to be forced on or off
	(--disable-startup-notification): allow forcing this on or off
2002-12-08 19:17:17 +00:00
Havoc Pennington
15d28dfd97 also treat empty string as "unset" in this function.
2002-12-08  Havoc Pennington  <hp@pobox.com>

	* src/prefs.c (update_workspace_name): also treat empty string as
	"unset" in this function.
2002-12-08 14:59:14 +00:00
Hidetoshi Tajima
d78fab02eb never use a window with input = FALSE take_focus = FALSE in the normal and
* src/window.h (META_WINDOW_IN_NORMAL_TAB_CHAIN,
	META_WINDOW_IN_DOCK_TAB_CHAIN) : never use a window with input =
	FALSE take_focus = FALSE in the normal and doc tab chains #90409
2002-12-06 05:07:01 +00:00
Hidetoshi Tajima
d275e4bbc2 move a window to the current space on the MapRequest when it's not on the
* src/display.c (event_callback): move a window to the current
	space on the MapRequest when it's not on the space yet. #100390
2002-12-05 21:59:14 +00:00
Havoc Pennington
cef58f676d rearrange this function a bit, so that we return CONTROL_TITLE for
2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/frames.c (get_control): rearrange this function a bit, so
	that we return CONTROL_TITLE for anything above the bottom of the
	titlebar, in the fallback case where no other control was found.
	Also, don't return RESIZE_N for title rect above the top resize
	size, unless the window is resizable.
	(meta_frames_button_press_event): only start a move when clicking
	control TITLE, not control NONE. This way you don't start moving
	a nonresizable window if you click its edges.
2002-12-02 01:34:27 +00:00
Havoc Pennington
214bcceaea conditionalize building the config dialog
2002-12-01  Havoc Pennington  <hp@pobox.com>

	* src/tools/Makefile.am: conditionalize building the config dialog

	* configure.in (BUILD_CONFIG_DIALOG): add --enable-config-dialog
	option to turn on the "window focus" dialog. This is part of
	deprecating this dialog.
2002-12-01 20:48:10 +00:00
Havoc Pennington
5e1439f89e lengthen to 15 seconds
2002-11-30  Havoc Pennington  <hp@pobox.com>

	* src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds

	* src/util.c (utf8_fputs): hmm, return a value

	* src/screen.c (meta_screen_apply_startup_properties): new
	function to apply initial workspace based on startup sequence.

	* src/window.c (meta_window_new): load _NET_STARTUP_ID
	(meta_window_get_startup_id): new function

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	hooks for _NET_STARTUP_ID

	* src/display.c (event_callback): send property events to
	groups.

	* src/xprops.c (meta_prop_get_values): make a type of INVALID
	mean to ignore that property (don't fetch its value).

	* src/group.c (meta_group_property_notify): new function

	* src/screen.c (set_supported_hint): support _NET_STARTUP_ID

	* src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms
	we initialize

	* src/group-private.h: private header shared between
	group-props.c, group.c

	* src/group-props.h, src/group-props.c: new files to contain
	functions for retrieving group properties

	* src/window.c (meta_window_same_application): change this a bit
	to work with new definition of group

	* src/group.c (meta_window_get_group): always create a group for
	every window, using the window's own ID as group leader if
	required.

	* src/window.c (update_wm_hints): handle changes to group leader

	* src/group.c (meta_window_group_leader_changed): new function

	* src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH,
	not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen.

	* src/screen.c (startup_sequence_timeout): when timing out a
	startup sequence, send a remove message, don't just time it out
	locally.
2002-12-01 03:58:04 +00:00
Calum Benson
eb40c5c2cf Removed alpha layers from the pixmaps that don't need them.
Fixes #98389, results in 10-15% speedup on most machines.
2002-11-26 17:55:34 +00:00
Glynn Foster
ba3cf950ba and especially you. 2002-11-26 12:22:39 +00:00
Havoc Pennington
fd135d0869 patch from Hidetoshi Tajima to move a window's transients when moving the
2002-11-22  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_change_workspace): patch from
	Hidetoshi Tajima to move a window's transients when moving
	the window between workspaces. #98900

2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_open): init ret_to to
	RevertToPointerRoot out of sheer paranoia; don't want no
	RevertToNone in my code!
2002-11-22 06:00:18 +00:00
Havoc Pennington
5452a0ecac delete (meta_window_new): add getting initial workspace to the batch
2002-11-21  Havoc Pennington  <hp@pobox.com>

	* src/window.c (update_initial_workspace): delete
	(meta_window_new): add getting initial workspace to the batch
	property get call

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	net_wm_desktop and win_workspace support
2002-11-21 05:02:38 +00:00
Havoc Pennington
6557627d8f remove unused variable
2002-11-20  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (set_icon_title): remove unused variable

	* src/screen.c (meta_screen_new): read an existing
	_NET_CURRENT_DESKTOP and restore it if set. Makes a restart even
	less visible.

	* src/workspace.c (set_active_space_hint): don't set the hint
	during the process of unmanaging a screen
2002-11-21 04:48:53 +00:00
Havoc Pennington
b8788e9c0d Should really fix #98303
2002-11-19  Havoc Pennington  <hp@pobox.com>

	Should really fix #98303

	* src/prefs.c (meta_prefs_change_workspace_name): add
	bad hack to treat empty string the same as null

	* src/menu.c (get_workspace_name_with_accel): allocate one more
	than the length of "name" so we have room for a nul byte (and
	don't malloc(0) on empty strings). Also some formatting cleanups.
2002-11-20 04:54:01 +00:00
Havoc Pennington
60293ee189 do a recalc_window_features after setting new wm_state in order to update
2002-11-19  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): do a
	recalc_window_features after setting new wm_state in order
	to update skip_pager in addition to wm_state_skip_pager
	(set_net_wm_state): base _NET_WM_STATE on skip_pager not
	wm_state_skip_pager, ditto for skip_taskbar
2002-11-20 04:37:55 +00:00
Havoc Pennington
2541da1d83 Fix #98303 and assorted cleanup
2002-11-19  Havoc Pennington  <hp@pobox.com>

        Fix #98303 and assorted cleanup

	* src/prefs.c (meta_preference_to_string): handle
	META_PREF_WORKSPACE_NAMES

	* src/menu.c (get_workspace_name_with_accel): assert that the
	workspace has a name

	* src/screen.c (meta_screen_ensure_workspace_popup): assert that
	we got a workspace name
	(meta_screen_ensure_workspace_popup): assert that we got a
	workspace name

	* src/prefs.c (update_workspace_name): fix screwiness (strcmp with
	a freed string, assorted bad logic)
	(init_workspace_names): assert that we filled in a default
	workspace name
	(meta_prefs_get_workspace_name): assert non-NULL workspace name
2002-11-20 03:57:20 +00:00
Bill Haneman
b95dd0574c Makes Atlanta work better with inverse themes. Fix for 98745. 2002-11-17 11:54:10 +00:00
Havoc Pennington
02a8fb4a37 fix a multihead safety thing (use proper system colormap for the
2002-11-13  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (get_cmap): fix a multihead safety thing (use proper
	system colormap for the drawable's screen)
2002-11-15 04:10:54 +00:00
Jonathan Blandford
0970829146 include common.h.
Thu Nov 14 17:30:10 2002  Jonathan Blandford  <jrb@gnome.org>

        * src/Makefile.am (libmetacityinclude_HEADERS): include common.h.
2002-11-14 22:30:51 +00:00
Havoc Pennington
d1aaf6a9b1 don't read from op->data.image when the op is an icon
2002-11-12  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (draw_op_as_pixbuf): don't read from op->data.image
	when the op is an icon
2002-11-13 04:11:52 +00:00
Havoc Pennington
5590e8878b never use a window with input = FALSE take_focus = FALSE as the default
2002-11-12  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (meta_stack_get_default_focus_window): never use a
	window with input = FALSE take_focus = FALSE as the default focus
	window #95454 fix from Hidetoshi Tajima
2002-11-12 21:53:52 +00:00
James M. Cape
e64d1bf881 Major changes to look of theme. I'd also recommend
2002-11-10  James M. Cape  <jcape@ignore-your.tv>

	* src/themes/Esco/metacity-theme-1.xml: Major changes
	to look of theme. I'd also recommend "minimize,maximize:close"
	for the button_layout, it looks really slick :-).
2002-11-10 19:08:14 +00:00
Jonathan Blandford
0163c58ee1 include common.h with the installed files 2002-11-08 00:05:36 +00:00
Mark McLoughlin
bc3b64f922 impl for nice debugging. (meta_workspace_get_neighbor): fix broken logic
2002-11-08  Mark McLoughlin  <mark@skynet.ie>

        * src/workspace.c:
        (meta_motion_direction_to_string),
        (meta_screen_corner_to_string): impl for nice debugging.
        (meta_workspace_get_neighbor): fix broken logic and
        cleanup debugging.
2002-11-07 23:13:12 +00:00
Jonathan Blandford
765cb51df3 add a pc file for libmetacity-private
Thu Nov  7 17:07:21 2002  Jonathan Blandford  <jrb@redhat.com>

	* src/libmetacity-private.pc.in: add a pc file for
	libmetacity-private

	* src/Makefile.am: Install a few files as a shared library so that
	others can draw metacity themes.
2002-11-07 22:09:59 +00:00
Havoc Pennington
c613fed9ef push an error trap around the whole window-key-grab loop
2002-11-06  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (grab_keys): push an error trap around the
	whole window-key-grab loop
	(ungrab_all_keys): avoid requiring return value from the error
	trap, unless in debugging mode
	(regrab_window_bindings, regrab_screen_bindings): push traps
	around the loops, for efficiency

	* src/display.c (event_callback): fix from Padraig O'Briain to
	compress extra MappingNotify events to avoid extra work.
2002-11-06 16:00:56 +00:00
Calum Benson
6c18374142 Crux tweaks: adds a Restore button for maximized windows, and un-hard-codes
titlebar text colors. Fixes #97759.
2002-11-05 19:38:12 +00:00
Havoc Pennington
a64b868dbd apply patch from Nikos Mouat to fix this function
2002-11-05  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c (meta_workspace_get_neighbor): apply patch from
	Nikos Mouat to fix this function
2002-11-05 19:25:06 +00:00
Havoc Pennington
77349f6878 fix bug I introduced in case where scaling was done in both directions.
2002-11-04  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (scale_and_alpha_pixbuf): fix bug I introduced in
	case where scaling was done in both directions.
2002-11-04 20:34:25 +00:00
Havoc Pennington
5efd276a22 Patch from Brian Cameron to implement the vertical/horizontal striped
2002-11-04  Havoc Pennington  <hp@pobox.com>

        Patch from Brian Cameron to implement the vertical/horizontal
	striped image accelerated scaling from the gtk pixbuf engine.

	* src/theme.c (scale_and_alpha_pixbuf): if an image is
	vertical/horizontal stripes, use special extra-fast scaling
	routines.

	* src/theme-parser.c (parse_draw_op_element): when loading an
	image, mark it as vertically/horizontally striped when appropriate
2002-11-04 17:55:56 +00:00
Erwann Chenede -
373f6de13e changed __FUNCTION__ to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 Erwann Chenede - <erwann.chenede@sun.com>

  * src/xprops.c (meta_prop_get_values): changed __FUNCTION__
  to G_GNUC_FUNCTION as __FUNCTION__ is not portable.
2002-11-04 17:24:47 +00:00
Havoc Pennington
e0a4c2a1df remove XSync calls from here (meta_display_ungrab): remove XSync from
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_grab): remove XSync calls from here
	(meta_display_ungrab): remove XSync from here, but put in
	an XFlush to be sure we get the ungrab sent.

	* src/util.c (meta_topic): track sync count here

	* src/errors.c: move sync count out of here

        Throughout: error spew on all XSync() calls

	* src/run-metacity.sh: don't set METACITY_DEBUG
2002-11-04 00:56:12 +00:00
Havoc Pennington
9feebc05c7 add _NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window-props.c (meta_display_init_window_prop_hooks): add
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME support

	* src/window.c (meta_window_new): use window-props.h for
	_NET_WM_NAME, WM_NAME, _NET_WM_ICON_NAME, WM_ICON_NAME
2002-11-04 00:19:08 +00:00
Havoc Pennington
d7917c02fe use window-props.h stuff for a couple of properties (implement_showing):
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use window-props.h stuff for a
	couple of properties
	(implement_showing): fix printf string

	* src/xprops.c (meta_prop_free_values): new function

	* src/window-props.h, src/window-props.c: start moving code that
	handles loading window properties into this file.
2002-11-03 23:42:21 +00:00
Havoc Pennington
1d0b5ef660 split into "see if we should be showing" and "actually show/hide"
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_calc_showing): split into "see if we
	should be showing" and "actually show/hide" functions
	(idle_calc_showing): rework to first unmap all newly-hidden
	windows from bottom to top then map all newly-showing windows from
	top to bottom resulting in fewer exposes, #95220
2002-11-03 20:30:45 +00:00
Havoc Pennington
ee84fbb81f fix from Garrett LeSage for which button backgrounds we draw when
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/theme.c (meta_frame_layout_calc_geometry): fix from Garrett
	LeSage for which button backgrounds we draw when
2002-11-03 19:55:38 +00:00
Havoc Pennington
6a1abc7482 new function, and remove workspace->name field, instead just get the name
2002-11-03  Havoc Pennington  <hp@pobox.com>

	* src/workspace.c (meta_workspace_get_name): new function,
	and remove workspace->name field, instead just get the
	name from prefs each time

	* src/screen.c (meta_screen_update_workspace_names): update the
	gconf key to persist workspace names here, instead of changing
	the names we use

	* src/util.c (topic_name): add META_DEBUG_PREFS

	* src/prefs.c: change NUM_COMMANDS to 32 to allow more custom
	commands, implement workspace names

	* src/metacity.schemas.in: add workspace_names/name_NN gconf keys.
2002-11-03 19:06:39 +00:00
Havoc Pennington
b3a1122b2a use meta_prop_get_size_hints
2002-10-28  Havoc Pennington  <hp@redhat.com>

	* src/window.c (update_size_hints): use meta_prop_get_size_hints

	* src/xprops.c: add support for getting XSizeHints
2002-10-28 20:22:22 +00:00
Havoc Pennington
effec94613 store the window menu on the display and blow it away when a window
2002-10-28  Havoc Pennington  <hp@pobox.com>

	* src/window.c, src/display.c: store the window menu on the
	display and blow it away when a window closes, so we don't
	get funny stuck menus. Patch from Martin Garton #87514
2002-10-28 05:35:30 +00:00
Havoc Pennington
81089c2d8c move meta_window_shutdown_group() much earlier in the destroy process. May
2002-10-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): move
	meta_window_shutdown_group() much earlier in the destroy process.
	May fix #96928 tracked down by Kjartan Maraas and Martin Garton.

	* src/group.c (meta_window_get_group): never add window to a group
	after we've started unmanaging the window
2002-10-27 14:45:29 +00:00
Havoc Pennington
04c9c3e058 include config.h
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/iconcache.c: include config.h

	* src/group.c: include config.h

	* src/frame.c: include config.h

	* src/core.c: include config.h so it doesn't crash all over the
	place due to #ifdef HAVE_STARTUP_NOTIFICATION

	* src/util.c (meta_print_backtrace): export from this file

	* src/main.c (log_handler): print backtrace here
2002-10-27 03:03:32 +00:00
Havoc Pennington
4d5cc9d0bb make windows randomly transient for each other
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/wm-tester/main.c (evil_timeout): make windows randomly
	transient for each other http://bugzilla.gnome.org/show_bug.cgi?id=96928
2002-10-26 21:56:50 +00:00
Havoc Pennington
0d88e93787 new function (meta_prop_get_wm_hints): new function
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/xprops.c (meta_prop_get_text_property): new function
	(meta_prop_get_wm_hints): new function
	(meta_prop_get_class_hint): new function
2002-10-26 16:40:50 +00:00
Havoc Pennington
5a8af8c2fb use multi-value-get on a couple of properties for testing
2002-10-26  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_new): use multi-value-get on a couple
	of properties for testing

	* src/xprops.c (meta_prop_get_values): implement multi-value-get

	* src/window.c (update_mwm_hints): XFree motif hints as we changed
	it to use Xmalloc

	* src/xprops.c: massively rework this to set up a
	get-multiple-properties-at-once API.

	* src/async-getprop.c (ag_Xmalloc): new function
2002-10-26 07:37:11 +00:00
Havoc Pennington
e8097a6f8f fix build 2002-10-26 01:49:03 +00:00
Havoc Pennington
cb27f0c4be Add "busy cursor on app startup" support, conditionally - works only if
2002-10-25  Havoc Pennington  <hp@pobox.com>

        Add "busy cursor on app startup" support, conditionally - works
	only if libstartup-notification is found, and in practice requires
	a GTK patch that's not in yet.

	* src/screen.c: monitor startup events and set busy cursor if
	appropriate

	* src/display.c (meta_display_open): create SnDisplay

	* configure.in: check for startup notification,
	and add the cute "configure summary" at the end
2002-10-25 23:35:50 +00:00
Havoc Pennington
c3a5c4c169 if only one right-corner button, use right_right_background not
2002-10-24  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): if only one
	right-corner button, use right_right_background not
	right_left_background
2002-10-24 20:47:19 +00:00
Havoc Pennington
9702903343 make public
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_get_icon_geometry): make public

	* src/screen.c (meta_screen_ensure_tab_popup): put the alt+tab
	highlight-window indicator on the icon, not the window itself,
	if the window is minimized.
2002-10-24 05:21:51 +00:00
Havoc Pennington
15a05467bd put minimized windows at the end of Alt+Tab, #89416
2002-10-24  Havoc Pennington  <hp@pobox.com>

	* src/display.c (meta_display_get_tab_list): put minimized windows
	at the end of Alt+Tab, #89416
2002-10-24 05:15:28 +00:00
Havoc Pennington
0041f49d3f initialize the left button background rectangles.
2002-10-23  Havoc Pennington  <hp@redhat.com>

	* src/theme.c (meta_frame_layout_calc_geometry): initialize the
	left button background rectangles.
2002-10-23 19:46:44 +00:00
Havoc Pennington
c6b475b251 Optimizations for managing new windows (do not all take effect if
2002-10-21  Havoc Pennington  <hp@redhat.com>

	Optimizations for managing new windows (do not all take effect if
	METACITY_DEBUG=1). Bug #96404

	* src/keybindings.c (meta_change_keygrab): use error trap nesting
	and conditionalize on meta_is_verbose() to avoid a ton of XSync

	* src/display.c (meta_change_button_grab): ditto

	Throughout: move to new error trap setup to save on XSync calls,
	new setup is:

	* src/errors.c (meta_error_trap_push_with_return): new function,
	an error trap that needs to care about return value and thus
	sync even if an outer trap still exists
	(meta_error_trap_pop_with_return): new function
	(meta_error_trap_pop): add "last_request_was_roundtrip"
	argument allowing us to avoid XSync() if we just did
	a GetProperty or whatever.

	* src/util.c (meta_warning): flush the warning file descriptor

	* src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
2002-10-21 21:44:35 +00:00
Havoc Pennington
0c5cacf7cc put multihead stuff in HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/ui.c (meta_image_window_new): put multihead stuff in
	HAVE_GTK_MULTIHEAD, reported by John Palmieri
2002-10-20 17:17:16 +00:00
Havoc Pennington
95e5a13131 check above->mapped before deciding if it overlaps the window being
2002-10-20  Havoc Pennington  <hp@pobox.com>

	* src/keybindings.c (handle_raise_or_lower): check above->mapped
	before deciding if it overlaps the window being raiselowered,
	fix from Stephane Chauveau
2002-10-20 15:22:40 +00:00
Havoc Pennington
70b6a57003 call meta_image_window_new in multihead-safe way
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/effects.c (meta_effects_draw_box_animation): call
	meta_image_window_new in multihead-safe way

	* src/ui.c (meta_image_window_new): multihead safety
2002-10-18 22:46:37 +00:00
Havoc Pennington
915c2db3b9 only create the resize popup if width_inc or height_inc are > 1
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (meta_window_refresh_resize_popup): only create the
	resize popup if width_inc or height_inc are > 1

	* src/resizepopup.c: Clear out all the weird tickmark cruft,
	saves us about 2.5K of binary size, whee
	(meta_ui_resize_popup_new): take display/screen arguments and make
	multihead-safe #94349
2002-10-18 22:37:01 +00:00
Havoc Pennington
eb647577c3 don't start the cycle process if the binding for switching windows has no
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/keybindings.c (do_choose_window): don't start the cycle
	process if the binding for switching windows has no modifier bits,
	just focus the window immediately.

	* src/prefs.c, src/keybindings.c: add a keybinding to move between
	windows that goes in the opposite direction.  This is mostly
	useful if you want to bind unmodified keys to the switch windows
	functions, e.g. if you have "Forward" and "Back" keys on your
	keyboard. Patch from Shilad Sen <shilad sourcelight com>
2002-10-18 22:19:05 +00:00
Havoc Pennington
1094410ff8 add "what happens when you double click the titlebar" setting, patch from
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/prefs.c, src/frames.c: add "what happens when you double
	click the titlebar" setting, patch from Sean Middleditch bug
	#95625.  This is basically an "add Windows emulation mode" patch.
2002-10-18 21:22:27 +00:00
Havoc Pennington
6e90c238e8 move window-click to Super+click not Alt+click by default. Super should be
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/metacity.schemas.in: move window-click to Super+click not
	Alt+click by default. Super should be the Windows key on keyboards
	that have one and are so configured.  Prepare for the FAQ on this.
2002-10-18 19:07:42 +00:00
Havoc Pennington
44a63a9911 fix min aspect handling, patch from Martin Garton #94943
2002-10-18  Havoc Pennington  <hp@redhat.com>

	* src/window.c (constrain_size): fix min aspect handling,
	patch from Martin Garton #94943
2002-10-18 18:58:05 +00:00
Havoc Pennington
370982b812 replace the old apply_constraints with wacky new approach involving
2002-10-18  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (constrain_stacking): replace the old
	apply_constraints with wacky new approach involving graphing all
	the constraints then walking the graph.  Fixes #94876 and probably
	other stacking bugs as well, thanks to Arvind for tracking down
	the issue.

	(compute_layer): add FIXME and reference to bug #96140
2002-10-18 06:05:09 +00:00
Havoc Pennington
5ba2fa893f don't place transient-for-whole-group windows above _each other_, only
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): don't place
	transient-for-whole-group windows above _each other_, only
	above other windows in the group that aren't themselves
	transient-for-whole-group. Should help with part of #94876
2002-10-17 16:36:50 +00:00
Havoc Pennington
4eb8a93c83 debug enhancements 2002-10-17 16:20:50 +00:00
Havoc Pennington
3da0b1c7d9 fix memory leak of group_windows, and don't use the variable name "tmp"
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/stack.c (apply_constraints): fix memory leak of
	group_windows, and don't use the variable name "tmp" twice. Shadow
	variables bad.
2002-10-17 16:07:50 +00:00
Havoc Pennington
aa62466091 add code to create big stacks of dialogs transient for each other, for
2002-10-17  Havoc Pennington  <hp@redhat.com>

	* src/tools/metacity-window-demo.c (dialog_cb): add code to create
	big stacks of dialogs transient for each other, for testing.
2002-10-17 16:04:53 +00:00
Havoc Pennington
337812d51d workspaces are all per-screen now, fix accordingly
2002-10-16  Havoc Pennington  <hp@redhat.com>

	* src/workspace.c: workspaces are all per-screen now, fix
	accordingly

	* src/core.c: fix multihead workspace stuff

	* src/keybindings.c: multihead-rama

	* src/screen.c (meta_screen_show_desktop): new functions to
	replace display equivalents

	* src/display.c (meta_display_get_workspace_by_screen_index): get
	rid of this
	(meta_display_get_workspace_by_index): get rid of this
	(event_callback): handle _NET_SHOWING_DESKTOP message per-screen

	* src/screen.c (meta_screen_get_workspace_by_index): new function

	* src/screen.h (struct _MetaScreen): move workspace list, and
	showing_desktop flag, to be per-screen

	* src/window.c (window_query_root_pointer): return whether pointer
	is on window's screen
	(meta_window_handle_mouse_grab_op_event): don't use coordinates
	from other screens when updating a window operation on the current
	screen. I can't believe no one has reported this...
2002-10-16 20:12:24 +00:00
Havoc Pennington
17ac646f70 update window layer when above/below state is changed. Fixed by Ross
2002-10-16  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_client_message): update window layer
	when above/below state is changed. Fixed by Ross Burton.
2002-10-16 14:53:19 +00:00
Federico Mena Quintero
8c2e8ddf5c Ignore EnterNotify events when the detail field is set to NotifyInferior.
2002-10-14  Federico Mena Quintero  <federico@ximian.com>

	* src/display.c (event_callback): Ignore EnterNotify events when
	the detail field is set to NotifyInferior.  Fixes #95747.
2002-10-15 14:46:12 +00:00
Havoc Pennington
ae577d7724 button layout key
2002-10-12  Havoc Pennington  <hp@pobox.com>

	* src/metacity.schemas.in: button layout key

	* src/prefs.c: Add button layout gconf key
	(change_notify): use some "else if" instead of "if" where we
	should have been
2002-10-12 17:44:55 +00:00
Havoc Pennington
82e5cb578c don't raise window on button 2 click, only on button 1 and button 3.
2002-10-11  Havoc Pennington  <hp@redhat.com>

	* src/display.c (event_callback): don't raise window on button 2
	click, only on button 1 and button 3.

	* src/frames.c (meta_frames_button_press_event): lower on button 2
	press on frame

	* src/core.c (meta_core_user_lower): new function
2002-10-11 18:42:40 +00:00
Havoc Pennington
0df65b9f9f make the checks here allow windows larger than the screen in addition to
2002-10-11  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (window_is_fullscreen_size): make the checks here
	allow windows larger than the screen in addition to
	exactly-screen-size

	* src/window.c (meta_window_configure_request): delete the "try to
	auto-enter-fullscreen-state" hack here, because it was broken, and
	the changes to the stacking code to move screen-size focused
	windows to the fullscreen layer should work better.
	(meta_window_new): remove auto-fullscreen hack from here too
2002-10-11 05:26:07 +00:00
Havoc Pennington
25ca0e21db also keep utility/menu/toolbar windows above their whole group.
2002-10-09  Havoc Pennington  <hp@pobox.com>

	* src/stack.c (apply_constraints): also keep utility/menu/toolbar
	windows above their whole group.

	(get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but
	only use META_LAYER_FULLSCREEN while the fullscreen window has
	focus.  Also, put screen-sized windows in the fullscreen layer,
	even if we didn't dare to actually put them in the fullscreen
	state.
2002-10-09 23:19:14 +00:00