1. 23 Oct, 2008 1 commit
    • Thomas Thurman's avatar
      Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide · ab9bdf22
      Thomas Thurman authored
      2008-10-23  Thomas Thurman  <tthurman@gnome.org>
      
              Support _NET_WM_STATE_STICKY (i.e. allow third-party apps to decide
              whether a window is on all workspaces).  Bug found by Ka-Hing
              Cheung.  Closes #557536.
      
              * src/core/window.c (set_net_wm_state): report it
              * src/core/window.c (meta_window_client_message): set sticky
                if we receive it
              * src/core/window-props.c: set sticky if we find it
              * src/core/atomnames.h: add _NET_WM_STATE_STICKY
      
      
      svn path=/trunk/; revision=3991
      ab9bdf22
  2. 13 Jun, 2008 1 commit
    • Thomas Thurman's avatar
      Some commenting. · 7ab715fa
      Thomas Thurman authored
      2008-06-13  Thomas Thurman  <tthurman@gnome.org>
      
              * src/core/window-props.c: Some commenting.
      
              * src/core/prefs.c: Added unified handling of integer preferences.
                Re-ordered fields in existing preferences so that changing to
                a union-based system will be easier in the future.
      
      
      svn path=/trunk/; revision=3758
      7ab715fa
  3. 19 May, 2008 1 commit
    • Iain Holmes's avatar
      src/include/frame.h src/include/display.h src/include/xprops.h · f141692c
      Iain Holmes authored
      2008-05-19  Iain Holmes  <iain@gnome.org>
      
              * src/include/frame.h
              * src/include/display.h
              * src/include/xprops.h
              * src/include/compositor.h
              * src/include/types.h
              * src/include/window.h
              * src/include/errors.h
              * src/include/screen.h: New basic public API for compositor.
      
              * src/compositor/*: Separate the compositor out into its own 
      separate
              directory and set it up for backends. Initial XRender backend.
      
              * src/core/compositor.[ch]: Remove
      
              * src/core/frame.h
              * src/core/screen.h
              * src/core/display.h
              * src/core/window.h: Rename to -private.h so as not to clash 
      with the
              new files in include
      
              * src/core/delete.c
              * src/core/workspace.h
              * src/core/stack.[ch]
              * src/core/keybindings.[ch]
              * src/core/errors.c
              * src/core/effects.[ch]
              * src/core/core.c
              * src/core/group.h
              * src/core/edge-resistance.[ch]
              * src/core/window-props.[ch]
              * src/core/constraints.h
              * src/core/bell.[ch]
              * src/core/iconcache.h
              * src/core/session.[ch]
              * src/core/main.c
              * src/core/place.h
              * src/core/xprops.c
              * src/ui/tabpopup.c: Use the new -private headers
      
              * src/core/display.c
              * src/core/frame.c
              * src/core/window.c
              * src/core/screen.c: Add the API functions required by the 
      compositor
      
              * src/Makefile.am: Relocate the new files
      
      
      
      svn path=/trunk/; revision=3715
      f141692c
  4. 04 May, 2008 1 commit
    • Thomas Thurman's avatar
      Added curly brackets in two places to keep -pedantic happy. · f8ff76ef
      Thomas Thurman authored
      2008-05-04  Thomas Thurman  <tthurman@gnome.org>
      
              Added curly brackets in two places to keep -pedantic happy.
      
              * src/core/window-props.c (meta_display_init_window_prop_hooks)
              * src/core/group-props.c (meta_display_init_group_prop_hooks)
      
      
      svn path=/trunk/; revision=3704
      f8ff76ef
  5. 02 May, 2008 1 commit
    • Thomas Thurman's avatar
      All information should live in exactly one place. This means that the list · b455ac62
      Thomas Thurman authored
      2008-05-02  Thomas Thurman  <tthurman@gnome.org>
      
              All information should live in exactly one place.  This means
              that the list of atoms should not be replicated anywhere.
              Therefore, we include it via x-macros.  Closes #530843.
      
              * src/core/atomnames.h: added list of atom names
              * src/Makefile.am: added reference to new file
              * src/core/display.h
              * src/core/display.c (twice)
              * src/core/screen.c: #included atomnames.h instead of having
                an enormous list of atoms
              * src/core/group-props.c
              * src/core/window.c
              * src/core/compositor.c
              * src/core/window-props.c
              * src/core/delete.c
              * src/core/workspace.c
              * src/core/stack.c
              * src/core/keybindings.c
              * src/core/iconcache.c
              * src/core/group.c
              * src/core/xprops.c: changed to new, simpler identifiers
                for atoms
      
      
      svn path=/trunk/; revision=3702
      b455ac62
  6. 27 Feb, 2008 1 commit
  7. 19 Dec, 2007 1 commit
    • Havoc Pennington's avatar
      sort source files into these directories according to which part of the WM · 72b08c82
      Havoc Pennington authored
      2007-12-19  Havoc Pennington  <hp@redhat.com>
      
      	* src/ui, src/core, src/include: sort source files into these
      	directories according to which part of the WM they are supposed to
      	be in. In an eventual plan, we should also create
      	src/compositor/render, src/compositor/fallback and move some of
      	the compositor stuff into that.
      	
      	* autogen.sh: require a newer automake, so we don't have to use
      	a recursive build
      
      	* src/ui/tabpopup.c: put in a hack to make the build temporarily
      	work, want to commit the large rearrangement before fixing this
      	not to include workspace.h or frame.h
      
      	* src/core/iconcache.c (meta_read_icons): temporarily break this
      	to get the build to work, want to commit the large rearrangement
      	before fixing this file not to include theme.h
      
      
      svn path=/trunk/; revision=3491
      72b08c82
  8. 09 Nov, 2007 1 commit
  9. 18 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      return a boolean instead a void, to show whether startup properties were · e6083f64
      Thomas Thurman authored
      2007-06-17  Thomas Thurman  <thomas@thurman.org.uk>
      
              * src/screen.[ch] (meta_screen_apply_startup_properties): return a
              boolean instead a void, to show whether startup properties were
              applied. Also some commenting.
              * src/window-props.c: (reload_net_startup_id): Only activate the
              window if the startup_id was actually changed. Closes #400167.
      
      
      svn path=/trunk/; revision=3245
      e6083f64
  10. 11 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      Refactor thrice-duplicated queue code in window.c. Closes #376760. · 8f2b9cb4
      Thomas Thurman authored
      2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>
      
              Refactor thrice-duplicated queue code in window.c. Closes #376760.
      
              * src/window.c (meta_window_queue, meta_window_unqueue):
              New functions.
              * src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
              Removed functions.
              * src/window.c (meta_window_new_with_attrs, meta_window_free,
              meta_window_flush_calc_showing, queue_calc_showing_func,
              meta_window_minimize, meta_window_unminimize, meta_window_maximize,
              meta_window_make_fullscreen, meta_window_shade,
              meta_window_unshade, meta_window_move_resize_internal,
              window_stick_impl, window_unstick_impl,
              meta_window_client_message, process_property_notify): Modified to
              use new queueing functions.
              * src/window.c (idle_move_resize, idle_update_icon,
              idle_calc_showing): update to receive queue number from pointer.
              * src/window.h (MetaQueueType): new enum.
              * src/window.h (MetaWindow): *_queued replaced with is_in_queue
              bitfield.
              * src/core.c (meta_core_queue_frame_resize):
              * src/display.c (event_callback,
              meta_display_queue_retheme_all_windows): Using new queueing functions.
              * src/frame.c (meta_window_destroy_frame): Using new queueing functions.
              * src/screen.c (queue_resize, meta_screen_resize_func,
              queue_windows_showing): Using new queueing functions.
              * src/window-props.c (reload_mwm_hints, reload_wm_hints,
              reload_transient_for): Using new queueing functions.
              * src/workspace.c (meta_workspace_add_window,
              meta_workspace_remove_window, meta_workspace_queue_calc_showing,
              meta_workspace_invalidate_work_area): Using new queueing functions.
      
      
      svn path=/trunk/; revision=3236
      8f2b9cb4
  11. 04 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Fix lots of little issues with min/max constraints and size increment · 921661e9
      Elijah Newren authored
      2004-04-04  Elijah Newren  <newren gmail com>
      
      	Fix lots of little issues with min/max constraints and size
      	increment constraints.  Fixes #329152, #418395, and possibly
      	others.
      
      	* src/window-props.c (meta_set_normal_hints):
      	Do more checking to make sure application specified constraints
      	are self-consistent, modifying the size_hints as necessary to
      	achieve self-consistency.
      
      	* src/constraints.c (setup_constraint_info): remove ugly
      	copy-pasto, (constrain_size_increments): be careful that fixing
      	violation of the constraints doesn't cause a violation of the
      	minimum size constraints.
      
      	* src/window.c (ensure_size_hints_satisfied): new function,
      	(meta_window_unmaximize, meta_window_unmake_fullscreen): the
      	saved_rect may no longer be valid (as in the case of #329152) so
      	call ensure_size_hints_satisfied to fix it up.
      
      	* doc/how-to-get-focus-right.txt: Some minor spacing and wording
      	fixes completely unrelated to the rest of this commit
      
      svn path=/trunk/; revision=3155
      921661e9
  12. 31 Mar, 2007 1 commit
    • Elijah Newren's avatar
      Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on context · 6e007baa
      Elijah Newren authored
      2007-03-30  Elijah Newren  <newren gmail com>
      
      	Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on
      	context switches.
      
      	* src/display.c (meta_display_open):
      	* src/display.h (struct _MetaDisplay):
      	* src/screen.c (set_supported_hint):
      	new atom
      
      	* src/display.c (meta_display_open,
      	  meta_display_get_current_time_roundtrip):
      	* src/display.h (struct _MetaDisplay):
      	create a dedicated timestamp pinging window instead of reusing
      	display->leader_window
      
      	* src/display.c (event_callback):
      	* src/window-props.c (reload_net_wm_user_time_window):
      	* src/window.c (meta_window_new_with_attrs, meta_window_free,
      	  process_property_notify):
      	* src/window.h (struct _MetaWindow):
      	monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too
      	
      	* src/window-props.[ch]:
      	new meta_window_reload_propert(y|ies)_from_xwindow() functions
      
      	* src/window-props.[ch]
      	  (init_net_wm_user_time_window, reload_net_wm_user_time_window,
      	  meta_display_init_window_prop_hooks):
      	* src/window.c (meta_window_new_with_attrs):
      	new hooks to handle new atom
      
      svn path=/trunk/; revision=3134
      6e007baa
  13. 01 Oct, 2006 3 commits
    • Elijah Newren's avatar
      Stick an emacs comment directive at the beginning of all the code files so · 0201fcfc
      Elijah Newren authored
      2006-10-01  Elijah Newren  <newren gmail com>
      
      	* src/*.[ch]: Stick an emacs comment directive at the beginning of
      	all the code files so that people using emacs will be more likely
      	to get coding style correct in their patches.  We still need a
      	similar vi directive.  #358866
      0201fcfc
    • Elijah Newren's avatar
      Patch from Carlo Wood to ensure that maximized and minimized properties · 07e4cacf
      Elijah Newren authored
      2006-10-01  Elijah Newren  <newren gmail com>
      
      	Patch from Carlo Wood to ensure that maximized and minimized
      	properties are maintained across restarts.  #358042.
      
      	* src/constraints.c (place_window_if_needed): fix up partial
      	maximization handling and add minimize_after_placement handling.
      
      	* src/display.[ch] (struct MetaDisplay, meta_display_open): add a
      	new display->display_opening flag to allow handling startup
      	differently where needed.
      
      	* src/window-props.c (reload_net_wm_state): handle
      	_net_wm_state_hidden as well, setting
      	window->minimize_after_placement appropriately
      
      	* src/window.[ch] (struct MetaWindow, meta_window_new_with_attrs):
      	add a window->minimize_after_placement field
      
      	* src/window.c (meta_window_new_with_attrs): only unminimize the
      	window and its transients if the display isn't being opened,
      	(unmaximize_window_before_freeing): don't reset the state unless
      	the window is becoming withdrawn, if the screen is being closed be
      	sure to save the unmaximized state of the window so the next
      	window manager can restore it
      07e4cacf
    • Elijah Newren's avatar
      surround the XDeleteProperty() call with a · 79eb53bd
      Elijah Newren authored
      2006-10-01  Elijah Newren  <newren gmail com>
      
      	* src/window-props.c (set_title_text): surround the
      	XDeleteProperty() call with a
      	meta_error_trap_push/meta_error_trap_pop pair to prevent a crash
      	when closing a remote instance of gedit (and perhaps other apps).
      	#358514.
      79eb53bd
  14. 07 Sep, 2006 1 commit
  15. 07 Aug, 2006 1 commit
    • Elijah Newren's avatar
      Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes, as · adc46fc9
      Elijah Newren authored
      2006-08-07  Elijah Newren  <newren gmail com>
      
      	Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes,
      	as proposed for the new startup-notification/EWMH spec.  #347515
      
      	* src/window-props.c (reload_net_startup_id): be sure to act on
      	the new id instead of just recording it
      
      	* src/window.[ch] (window_activate, meta_window_activate,
      	  meta_window_activate_with_workspace, meta_window_client_message):
      	change window_activate() to take a workspace parameter instead of
      	hardcoding to the current workspace, add
      	meta_window_activate_with_workspace() function needed by
      	reload_net_startup_id().
      adc46fc9
  16. 05 May, 2006 1 commit
    • Elijah Newren's avatar
      Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no longer being · b62dd8d1
      Elijah Newren authored
      2006-04-25  Elijah Newren  <newren gmail com>
      
      	Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
      	longer being used.  Fixes #330671.
      
      	* src/window.[ch] (struct MetaWindow): new
      	using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
      	(meta_window_new_with_attrs): initialize these new bits to false
      
      	* src/window-props.c (set_title_text, set_window_title, set_icon_title):
      	if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
      	doesn't need to be this time, make sure to clear it
      b62dd8d1
  17. 19 Apr, 2006 1 commit
  18. 25 Mar, 2006 1 commit
    • Thomas Thurman's avatar
      deleted and moved into window-props.c (meta_window_new_with_attrs): added · 25923105
      Thomas Thurman authored
      2006-03-25  Thomas Thurman  <thomas@thurman.org.uk>
      
      	* src/window.c, src/window.h (update_net_wm_state,
      	update_mwm_hints, update_wm_class, update_transient_for):
      	deleted and moved into window-props.c
      	(meta_window_new_with_attrs): added constructing field
      	and four new initial properties (as above)
      	(meta_window_recalc_features,
      	meta_window_recalc_window_type): new functions
      
      	* src/window-props.c (init_net_wm_state, reload_net_wm_state
      	init_mwm_hints, reload_mwm_hints, init_wm_class,
      	reload_mwm_class, init_transient_for, reload_transient_for):
      	new functions, moved in from window.c
      
      	(meta_display_init_window_prop_hooks): initialise new properties
      25923105
  19. 12 Mar, 2006 1 commit
  20. 20 Jan, 2006 1 commit
    • Elijah Newren's avatar
      Patch from Kjartan Maraas to fix a lot of tiny issues (unused variable · 32d4bd6b
      Elijah Newren authored
      2006-01-20  Elijah Newren  <newren gmail com>
      
      	* src/async-getprop.c:
      	* src/common.h:
      	* src/display.c:
      	* src/eggaccelerators.c:
      	* src/frames.c:
      	* src/gradient.c:
      	* src/iconcache.c:
      	* src/keybindings.c:
      	* src/metaaccellabel.c:
      	* src/place.c:
      	* src/prefs.c:
      	* src/preview-widget.c:
      	* src/screen.c:
      	* src/session.c:
      	* src/stack.c:
      	* src/tabpopup.c:
      	* src/theme-viewer.c:
      	* src/theme.c:
      	* src/window-props.c:
      	* src/window.c:
      	* src/workspace.c:
      	* src/tools/metacity-window-demo.c:
      	* src/wm-tester/test-gravity.c:
      	* src/wm-tester/test-resizing.c:
      	* src/wm-tester/test-size-hints.c:
      	Patch from Kjartan Maraas to fix a lot of tiny issues (unused
      	variable removal, making unused variables used again, correction
      	of types passed/declared for printf arguments, removal of unneeded
      	breaks and returns, dead code removal, dead code revival, renaming
      	to prevent shadowed variables, declaring unexported functions as
      	static) spotted by the intel compiler.  #321439
      32d4bd6b
  21. 16 Jan, 2006 1 commit
  22. 23 Nov, 2005 1 commit
  23. 08 Oct, 2005 1 commit
  24. 03 Oct, 2005 1 commit
    • Elijah Newren's avatar
      Truncate ridiculously long titles to avoid crashing or letting the pager · ef5299ee
      Elijah Newren authored
      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
      ef5299ee
  25. 20 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Big patch to cover about 6 different issues in order to correct rare · 50312dd0
      Elijah Newren authored
      2005-02-20  Elijah Newren  <newren@gmail.com>
      
      	Big patch to cover about 6 different issues in order to correct
      	rare problems with timestamps (make sure window selected in
      	tasklist actually gets focus, sanity check timestamps to avoid
      	rogue apps hosing the system, correct the updating of
      	net_wm_user_time, correctly handle timestamps of 0 when comparing
      	xserver timestamps for those who have had their systems up for
      	over 25 days or so, add some debugging information to verbose
      	logs, some code cleanups).  Fixes all issues listed in #167358.
      
      	* src/display.h: (struct _MetaDisplay): clarify comment on
      	last_focus_time, introduce a new variable--last_user_time,
      	(XSERVER_TIME_IS_BEFORE macro): put this functionality into a
      	separate macro and then introduce a new macro with this name that
      	uses the old one but adds additional special-case checks for
      	timestamps that are 0, (comment to
      	meta_display_set_input_focus_window): add information about how
      	last_user_time should be used in this function
      
      	* src/display.c (santiy_check_timestamps): new function,
      	(meta_display_open): intialize display->last_user_time,
      	(meta_display_get_current_time_roundtrip): use the timestamp,
      	which is known to be good, in order to sanity_check_timestamps,
      	(event_callback): use the new meta_window_ste_user_time() function
      	in order to correct problems, use the timestamp of KeyPress and
      	ButtonPress events, which are known to be good, in order to
      	sanity_check_timestamps, (timestamp_too_old): new function for
      	common behavior of meta_display_focus_the_no_focus_window and
      	meta_display_set_input_focus_window, with added checking for
      	display->last_user_time in addition to display->last_focus_time,
      	(meta_display_set_input_focus_window): replace some of the code
      	with a call to timestamp_too_old(),
      	(meta_display_focus_the_no_focus_window): replace some of th ecode
      	with a call to timestamp_too_old()
      
      	* src/window.h: (meta_window_set_user_time): new function to
      	abstract the many things that need to be done when updating the
      	net_wm_user_time of any window
      
      	* src/window.c: (meta_window_activate): add debugging spew, make
      	sure the comparison is made with last_user_time NOT
      	last_focus_time, use meta_window_set_user_time() function in order
      	to correct problems, (meta_window_client_message): add a newline
      	to a debugging message to make them easier to read,
      	(meta_window_set_user_time): new function
      
      	* src/window-props.c (reload_net_wm_user_time): use the new
      	meta_window_ste_user_time() function in order to correct problems
      50312dd0
  26. 25 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Don't lower newly mapped windows when they're denied focus, if they are · 2a568991
      Elijah Newren authored
      2004-10-25  Elijah Newren  <newren@math.utah.edu>
      
      	Don't lower newly mapped windows when they're denied focus, if
      	they are transients of the focused window.  Instead, defocus the
      	currently focused window.  (fixes #151996).
      
      	(Also, reenable focus stealing prevention and do a small spacing
      	cleanup)
      
      	* src/window-props.c (init_net_startup_id): fix spacing
      
      	* src/window.c (window_takes_focus_on_map): re-enable focus
      	stealing prevention, (meta_window_show): if the new window is
      	denied focus and is a transient of the currently focused window,
      	defocus the currently focused window but keep the transient on
      	top; remove some old code about transients and focus; make sure
      	that EnterNotify events won't accidentally focus the new window.
      2a568991
  27. 24 Jun, 2004 1 commit
    • Elijah Newren's avatar
      Add support for _NET_WM_USER_TIME · 28a54c6b
      Elijah Newren authored
      2004-06-17  Elijah Newren  <newren@math.utah.edu>
      
      	Add support for _NET_WM_USER_TIME
      
      	* src/display.c:
      	(meta_display_open): Add _NET_WM_USER_TIME to atom_names[],
      	(event_callback): Manually set _NET_WM_USER_TIME upon KeyPress
      	(doesn't work since keyboard isn't grabbed) and ButtonPress (does
      	work), this is just a fallback for applications that don't update
      	this themselves.
      
      	* src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field
      
      	* src/screen.c: (meta_screen_apply_startup_properties): Check for
      	TIMESTAMP provided from startup sequence as well.
      
      	* src/stack.c:
      	s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/,
      	(meta_window_set_stack_position): New function which calls the
      	meta_window_set_stack_position_no_sync function followed immediately
      	by calling meta_stack_sync_to_server.
      
      	* src/window-props.c:
      	(init_net_wm_user_time), (reload_net_wm_user_time): new functions,
      	(reload_wm_hints): also load atom_net_wm_user_time
      
      	* src/window.c:
      	new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound),
      	(meta_window_new_with_attrs): add timestamp attributes,
      	(window_takes_focus_on_map): use TIMESTAMP from startup
      	notification and _NET_WM_USER_TIME to decide whether to focus new
      	windows,
      	(meta_window_show): if app doesn't take focus on map, place it
      	just below the focused window in the stack
      	(process_property_notify): check for changes to _NET_WM_USRE_TIME,
      	(meta_window_stack_just_below): new function
      
      	* src/window.h:
      	(_MetaWindow struct): new fields for initial_timestamp,
      	initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time,
      	(meta_window_stack_just_below): new function
      28a54c6b
  28. 19 Jun, 2004 1 commit
    • Soeren Sandmann's avatar
      Fix bug 143333, support for update counter spec, and 109362, schedule · 4cfb5152
      Soeren Sandmann authored
      Sat Jun 19 02:21:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
      
      	Fix bug 143333, support for update counter spec, and 109362,
      	schedule compensation events when events are ignored.
      
      	* src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and
      	_NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old
      	METACITY_SYNC_COUNTER stuff.
      	(meta_display_begin_op): Setup the sync counter
      
      	* src/xprops.c, src/xprops.h, src/window-props.c, src/display.h:
      	Add new atoms.
      
      	* src/window.c (send_sync_request): new function.
      	(meta_window_move_resize_internal): send a sync request before
      	resizing.
      	(check_move_resize_frequence): Rework logic to also check the SYNC
      	case. If an event is ignored return the remaining time.
      	(update_resize_timeout): Timeout that gets called when a
      	compensation event is scheduled.
      	(uddate_resize): schedule compensation events when an event is
      	ignored.
      	(meta_window_handle_mouse_grap_op_event): When an alarm is
      	received and sync was turned off, turn it back on.
      
      	* src/window.h (struct MetaWindow)  Add some variables
      4cfb5152
  29. 13 Dec, 2003 2 commits
    • Rob Adams's avatar
      Revert prior change · 9bde925d
      Rob Adams authored
      9bde925d
    • Rob Adams's avatar
      Add increased robustness for dealing with all workspaces windows and MRU · 7630d22b
      Rob Adams authored
      2003-12-13  Rob Adams  <readams@readams.net>
      
      	Add increased robustness for dealing with all workspaces windows
      	and MRU lists.
      	Also add very preliminary _NET_WM_USER_TIME
      	support, limited to simply listening for the property and keeping
      	an internal variable updated, and also treating some input events
      	as though they were user time updates.
      
      	* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
      	in all cases _before_ adding to the workspaces, so that windows
      	initially on all workspaces are added correctly to the MRU lists.
      	Fix for #120907.
      	(process_property_notify): add net_wm_user_time support.
      
      	* src/workspace.c (meta_workspace_add_window): handle sticky
      	windows so that we add to add mru lists if needed
      	(meta_workspace_remove_window): handle sticky windows so that they
      	are removed from all mru lists if needed.
      
      	* src/display.[ch] (meta_display_open): add net_wm_user_time support.
      	(event_callback): simulate user time update on key and button presses.
      
      	* src/screen.c (set_supported_hint): add net_wm_user_time support.
      
      	* src/window-props.c (init_net_wm_user_time): new function for
      	user_time support
      	(reload_net_wm_user_time): new function for user_time support
      	(meta_display_init_window_prop_hooks): add hook for user_time
      7630d22b
  30. 26 Jun, 2003 1 commit
    • Rob Adams's avatar
      Update constraints code to support the new _NET_WM_STRUT_PARTIAL EWMH · 971f3f12
      Rob Adams authored
      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.
      971f3f12
  31. 12 Jun, 2003 1 commit
    • Rob Adams's avatar
      Remove legacy support for Gnome 1 hints, since we deem it unlikely that · 85826d0d
      Rob Adams authored
      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
      85826d0d
  32. 26 Apr, 2003 1 commit
  33. 08 Mar, 2003 1 commit
  34. 28 Feb, 2003 1 commit
    • Havoc Pennington's avatar
      add more debug spew about conditional build stuff (main): panic to · fa3de817
      Havoc Pennington authored
      2003-02-27  Havoc Pennington  <hp@pobox.com>
      
      	* src/main.c (main): add more debug spew about conditional
      	build stuff
      	(main): panic to "Simple" theme
      
      	* src/window.c, src/window-props.c: move WM_NORMAL_HINTS and
      	WM_PROTOCOLS to new property system; don't queue move resize on
      	updating WM_PROTOCOLS; move WM_HINTS to new property system;
      	reload icon in an idle handler.
      
      	Changes made on plane from FOSDEM, syncing from laptop.
      fa3de817
  35. 16 Dec, 2002 2 commits
  36. 10 Dec, 2002 1 commit
    • Havoc Pennington's avatar
      add myself here, bug #100789 · 967777b9
      Havoc Pennington authored
      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
      
      	* confi...
      967777b9