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
This commit is contained in:
Havoc Pennington
2002-10-21 21:44:35 +00:00
committed by Havoc Pennington
parent 37a1e6f57b
commit c6b475b251
21 changed files with 391 additions and 229 deletions

View File

@ -124,7 +124,7 @@ meta_window_ensure_frame (MetaWindow *window)
window->rect.x,
window->rect.y);
/* FIXME handle this error */
meta_error_trap_pop (window->display);
meta_error_trap_pop (window->display, FALSE);
/* stick frame to the window */
window->frame = frame;
@ -180,7 +180,7 @@ meta_window_destroy_frame (MetaWindow *window)
/* FIXME where to put it back depends on the gravity */
window->frame->rect.x,
window->frame->rect.y);
meta_error_trap_pop (window->display);
meta_error_trap_pop (window->display, FALSE);
meta_display_unregister_x_window (window->display,
frame->xwindow);