1. 20 Jan, 2005 1 commit
  2. 18 Jan, 2005 1 commit
    • Vincent Noel's avatar
      In the tab task switcher popup, dim the window icon and put its name · 47221dcc
      Vincent Noel authored
      2005-01-18  Vincent Noel  <vnoel@cox.net>
      
      	* src/screen.c: (meta_screen_ensure_tab_popup),
      	(meta_screen_ensure_workspace_popup):
      	* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
      	(free_entry):
      	* src/tabpopup.h: In the tab task switcher popup, dim the window
      	icon and put its name between brackets when the window is
      	minimized. Fixes #136666.
      47221dcc
  3. 20 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Focus the desktop when showing it. Fixes #159257. · d8d77bd6
      Elijah Newren authored
      2004-12-19  Elijah Newren  <newren@gmail.com>
      
      	Focus the desktop when showing it.  Fixes #159257.
      
      	* src/display.c (event_callback): obtain a timestamp to pass to
      	meta_screen_show_desktop
      
      	* src/keybindings.c (handle_toggle_desktop): obtain a timestamp to
      	pass to meta_screen_show_desktop
      
      	* src/screen.c (meta_screen_show_desktop): add a timestamp
      	parameter, get the most recently used window of type DESKTOP (if
      	there is one) and focus it
      
      	* src/screen.h (meta_screen_show_desktop): add a timestamp
      	parameter
      d8d77bd6
  4. 22 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Update _NET_WM_STATE_HIDDEN so the pager on the panel will know whether to · 6d77251c
      Elijah Newren authored
      2004-10-22  Elijah Newren  <newren@math.utah.edu>
      
      	Update _NET_WM_STATE_HIDDEN so the pager on the panel will know
      	whether to display windows as visible or hidden (#105665)
      
      	* src/screen.c (queue_windows_showing): Revert the
      	queue_windows_showing portion of the patch committed on 2004-10-16
      	for #142198--it was an ill-advised optimization.
      
      	* src/window.c (window_showing_on_its_workspace,
      	window_should_be_showing): split the old window_should_be_showing
      	into these two functions, (set_net_wm_state): hidden state is more
      	complex; use window_showing_on_its_workspace to determine the
      	correct value
      6d77251c
  5. 17 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Make the "showing desktop" mode be per-workspace instead of per-screen. · e84778d1
      Elijah Newren authored
      2004-10-16  Elijah Newren  <newren@math.utah.edu>
      
      	Make the "showing desktop" mode be per-workspace instead of
      	per-screen. (fixes #142198)
      
      	* src/keybindings.c (handle_toggle_desktop): access
      	showing_desktop through the active workspace
      
      	* src/screen.c (meta_screen_new): remove initialization of
      	screen->showing_desktop,
      	(meta_screen_update_showing_desktop_hint): rename and make not
      	static and access showing_desktop through the active workspace,
      	(queue_windows_showing): replace meta_display_list_windows() with
      	screen->active_workspace->windows,
      	(meta_screen_minimize_all_on_active_workspace_except): renamed
      	from meta_screen_minimize_all_except since it now only works on
      	the active workspace, (meta_screen_show_desktop,
      	meta_screen_unshow_desktop): access showing_desktop through the
      	active workspace
      
      	* src/screen.h (struct _MetaScreen): remove showing_desktop field,
      	(meta_screen_minimize_all_on_active_workspace_except): rename from
      	meta_screen_minimize_all_except,
      	(meta_screen_update)_showing_desktop_hint): export this function too
      
      	* src/window.c (maybe_leave_show_desktop_mode): access
      	showing_desktop through the active workspace and use new name for
      	meta_screen_minimize_all_on_active_workspace_except,
      	(window_should_be_showing): access showing_desktop through the
      	active workspace
      
      	* src/workspace.c (meta_workspace_new): initialize
      	workspace->showing_desktop, (meta_workspace_activate_with_focus):
      	add note that old can be NULL, update showing_desktop_hint if
      	different on this workspace than the previous one
      
      	* src/workspace.h (struct _MetaWorkspace): add showing_desktop
      	field
      e84778d1
  6. 04 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Fix a variety of focus race conditions in all focus modes, or at least · 16b9aff4
      Elijah Newren authored
      2004-10-04  Elijah Newren  <newren@math.utah.edu>
      
      	Fix a variety of focus race conditions in all focus modes, or at
      	least make them harder to trigger (fixes #152000)
      
      	* src/core.[ch] (meta_core_user_lower_and_unfocus): add a
      	timestamp parameter; pass it along to
      	meta_workspace_focus_default_window
      
      	* src/display.[ch] (meta_display_get_current_time_roundtrip): new
      	function
      
      	* src/display.c (event_callback): pass a timestamp to the
      	meta_workspace_activate and meta_workspace_focus_default_window
      	function calls
      
      	* src/frames.c (meta_frames_button_press_event): pass a timestamp
      	to meta_core_user_lower_and_unfocus
      
      	* src/keybindings.c (handle_activate_workspace): pass a timestamp
      	to meta_workspace_activate, (process_workspace_switch_grab): pass
      	a timestamp to meta_workspace_focus_default_window and
      	meta_workspace_activate, (handle_toggle_desktop): pass a timestamp
      	to meta_workspace_focus_default_window,
      	(do_handle_move_to_workspace): pass a timestamp to
      	meta_workspace_activate_with_focus, (handle_workspace_switch):
      	meta_workspace_activate
      
      	* src/screen.c (meta_screen_new): pass a timestamp to
      	meta_workspace_activate
      
      	* src/window.c (meta_window_free): pass a timestamp to
      	meta_workspace_focus_default_window, (idle_calc_showing): don't
      	increment the focus sentinel here, (meta_window_minimize): pass a
      	timestamp to meta_workspace_focus_default_window,
      	(meta_window_client_message), pass a timestamp to
      	meta_workspace_focus_default_window
      
      	* src/workspace.h (meta_workspace_activate): add timestamp
      	parameter, (meta_workspace_activate_with_focus): add timestamp
      	parameter, (meta_workspace_focus_default_window): add timestamp
      	parameter
      
      	* src/workspace.c (meta_workspace_focus_mru_window): make this
      	function take a timestamp and use it for meta_window_focus or
      	XSetInputFocus, (meta_workspace_activate_with_focus): make this
      	function take a timestamp and pass it along to meta_window_focus
      	and meta_workspace_focus_default_window,
      	(meta_workspace_activate): make this function take a timestamp and
      	pass it to meta_workspace_activate_with_focus),
      	(meta_workspace_focus_default_window): make this function take a
      	timestamp, warn if its 0 but try to handle that case sanely, and
      	pass the timestamp on to meta_window_focus or
      	meta_workspace_focus_mru_window or XSetInputFocus
      16b9aff4
  7. 16 Sep, 2004 1 commit
    • Kjartan Maraas's avatar
      A load of fixes of issues reported by sparse. Closes bug #152849 · 43cc3b86
      Kjartan Maraas authored
      2004-09-17  Kjartan Maraas  <kmaraas@gnome.org>
      
      	* src/bell.c: (meta_bell_flash_screen):
      	* src/compositor.c:
      	* src/effects.c: (meta_effects_draw_box_animation):
      	* src/fixedtip.c: (meta_fixed_tip_show):
      	* src/frame.c: (find_argb_visual):
      	* src/frames.c: (unsigned_long_hash), (meta_frames_manage_window),
      	(meta_frames_apply_shapes):
      	* src/iconcache.c: (find_largest_sizes), (find_best_size):
      	* src/keybindings.c: (meta_spawn_command_line_async_on_screen):
      	* src/main.c: (main):
      	* src/menu.c: (meta_window_menu_new):
      	* src/prefs.c: (meta_prefs_get_visual_bell),
      	(meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type),
      	(meta_prefs_get_action_double_click_titlebar),
      	(meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay),
      	(meta_prefs_get_reduced_resources):
      	* src/screen.c: (meta_create_offscreen_window):
      	* src/tabpopup.c: (meta_ui_tab_popup_get_selected):
      	* src/theme-parser.c: (meta_theme_load):
      	* src/theme.c: (meta_gtk_widget_get_font_desc):
      	* src/tools/metacity-mag.c: (mouse_press), (begin_area_grab):
      	* src/util.c: (meta_unsigned_long_hash): A load of fixes of issues
      	reported by sparse. Closes bug #152849
      43cc3b86
  8. 15 Sep, 2004 1 commit
    • Elijah Newren's avatar
      Prevent focus inconsistencies by only providing one focus method (fixes · 101a097f
      Elijah Newren authored
      2004-09-15  Elijah Newren  <newren@math.utah.edu>
      
      	Prevent focus inconsistencies by only providing one focus method
      	(fixes #151990)
      
      	* src/screen.c (meta_screen_show_desktop): remove call to
      	meta_workspace_focus_top_window (it was merely focusing a window
      	that was going to be hidden anyway, and likely the one that
      	already had focus)
      
      	* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
      	meta_workspace_focus_top_window from workspace.h, make them static
      	functions in workspace.c
      101a097f
  9. 07 Aug, 2004 1 commit
  10. 31 Jul, 2004 1 commit
    • Rob Adams's avatar
      Fix some support for EWMH hints, and fix USER_TIME support to include the · e60da6c0
      Rob Adams authored
      2004-07-31  Rob Adams  <readams@readams.net>
      
      	Fix some support for EWMH hints, and fix USER_TIME support to
      	include the DEMANDS_ATTENTION hint.  Also includes some code for
      	implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but
      	this is disabled pending feature thaw.
      
      	* COMPLIANCE: update with new information
      
      	* src/display.c (meta_display_open): add new hints to list
      
      	* src/display.h (_MetaDisplay): Add new atoms to struct
      
      	* src/screen.c (set_supported_hint): update the list of support
      	hints.
      	(set_desktop_viewport_hint): new function sets the viewport hint
      	to (0,0) as required by the spec for WMs with no viewport support.
      	(set_desktop_geometry_hint): new function to set the desktop size
      	hint to the size of the display, since we don't implement large
      	desktop support, as required by the spec.
      	(meta_screen_resize): update the geometry hint on screen resize
      
      	* src/window.c (meta_window_new_with_attrs): Initial...
      e60da6c0
  11. 24 Jun, 2004 2 commits
    • Elijah Newren's avatar
      Make choice of focus window be consistent for each focus mode. Fixes · 9d1d8fa0
      Elijah Newren authored
      2004-06-24  Elijah Newren  <newren@math.utah.edu>
      
      	Make choice of focus window be consistent for each focus mode.
      	Fixes #135810.
      
      	* src/delete.c: (meta_window_delete): In some #if 0'ed code,
      	replace meta_workspace_focus_mru_window with
      	meta_workspace_focus_default_window (just in case the code becomes
      	un-#if 0'ed out).
      
      	* src/screen.c, src/screen.h: Change
      	meta_screen_focus_mouse_window to meta_screen_get_mouse_window,
      	and don't focus the window when found but rather return it.
      
      	* src/window.c: (meta_window_free, meta_window_minimize): replace
      	meta_workspace_focus_mru_window with
      	meta_workspace_focus_default_window.
      
      	* src/workspace.c: (meta_workspace_focus_default_window): Focus
      	appropriately for the given focus method:
      	   click-to-focus: focus MRU window (== toplevel window)
      	   sloppy focus:   focus the window under the pointer if there is
      	                   such a window, otherwise focus the mru window
      	   mouse focus:    focus the window under the pointer if there is
      	                   such a window, otherwise don't focus anything
      9d1d8fa0
    • 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
  12. 21 Jan, 2004 1 commit
  13. 10 Jan, 2004 1 commit
    • Thomas Fitzsimmons's avatar
      Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS. · a605da04
      Thomas Fitzsimmons authored
      2004-01-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
      
      	Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.
      
      	* src/display.c: include xprops.h
      	(process_request_frame_extents): new function
      	(meta_display_open): add _NET_FRAME_EXTENTS and
      	_NET_REQUEST_FRAME_EXTENTS atoms
      	(event_callback): handle frame extents message
      
      	* src/display.h (struct _MetaDisplay): add atom_net_frame_extents
      	and atom_net_request_frame_extents
      
      	* src/theme.c (meta_pango_font_desc_get_text_height): make font_desc
      	parameter const
      
      	* src/ui.c: include prefs.h
      	(meta_ui_theme_get_frame_borders): new function
      
      	* src/window.c (update_net_frame_extents): new function
      	(meta_window_move_resize_internal): update frame extents
      	property when frame geometry changes
      
      	* src/screen.c (set_supported_hint): add atom_net_frame_extents
      	and atom_net_request_frame_extents
      a605da04
  14. 26 Dec, 2003 2 commits
  15. 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
  16. 30 Nov, 2003 1 commit
  17. 24 Nov, 2003 2 commits
  18. 23 Nov, 2003 1 commit
  19. 21 Nov, 2003 1 commit
    • Havoc Pennington's avatar
      new function · d538690b
      Havoc Pennington authored
      2003-11-20  Havoc Pennington  <hp@redhat.com>
      
      	* src/window.c (meta_window_new_with_attrs): new function
      
      	* src/display.c, src/screen.c: create the compositor and feed
      	windows and events to it
      d538690b
  20. 17 Nov, 2003 1 commit
    • Rob Adams's avatar
      Create COMPLIANCE document describing metacity specification compliance. · 9378a4fb
      Rob Adams authored
      2003-11-16  Rob Adams  <readams@readams.net>
      
      	Create COMPLIANCE document describing metacity specification
      	compliance.  Right now gives detailed EWMH compliance; still need
      	to add ICCCM compliance information.  Also some minor fixes to
      	bring metacity into compliance on some points.
      
      	* COMPLIANCE: new file
      
      	* src/display.h, src/display.c (meta_display_open),
      	src/screen.c (set_supported_hint): add
      	atom_net_wm_action_fullscreen and atom_net_wm_action_minimize
      
      	* src/window.c (set_allowed_actions_hint): some fixes to which
      	hints to set and add fullscreen and minimize.
      9378a4fb
  21. 12 Oct, 2003 1 commit
    • Havoc Pennington's avatar
      Merge reduced_resources mode patch from the branch. Offers wireframe and · e98fad3e
      Havoc Pennington authored
      2003-10-12  Havoc Pennington  <hp@redhat.com>
      
              Merge reduced_resources mode patch from the branch. Offers
      	wireframe and no-animations.
      
      	* src/window.c (implement_showing): no animation if we are
      	in reduced resources mode
      
      	* src/prefs.c: add REDUCED_RESOURCES pref
      
      	* src/window.c (meta_window_update_keyboard_resize): fix to
      	modify grab_anchor_window_pos to grab_wireframe_rect if
      	appropriate instead of window->rect
      
      	* src/display.h (struct _MetaDisplay): add grab_start_serial used
      	to avoid responding to events that occurred prior to the grab
      	initialization.
      
      	Still broken in various ways, specifically EnterNotify that
      	occurred prior to XGrabPointer is processed as if it occurred
      	after.
      
      	* src/window.c (meta_window_update_keyboard_move): add this
      	instead of meta_window_warp_pointer() crack
      
      	* src/effects.c (meta_effects_update_wireframe): draw a kind of
      	grid for the wireframe, instead of just a rectangle, like twm
      
      	* src/screen.c (meta_screen_new): line width of 3 for the XOR gc
      
              "Reduced resources" mode based on wireframe patch from
      	Erwann Chenede. Still pretty buggy.
      
      	* src/keybindings.c (process_keyboard_move_grab)
      	(process_keyboard_resize_grab): add gruesome wireframe hacks
      
      	* src/display.c (meta_display_end_grab_op): end wireframe
      	(meta_display_begin_grab_op): begin wireframe
      
      	* src/effects.c (meta_effects_end_wireframe)
      	(meta_effects_update_wireframe, meta_effects_begin_wireframe):
      	routines to draw the wireframe stuff
      
      	* src/window.c (window_should_be_showing): hide window when
      	doing wireframe, commented out as it breaks grab
      	* src/window.c (meta_window_refresh_resize_popup): handle wireframe
      
      	* src/screen.c (meta_screen_new): create a screen->root_xor_gc
      	for use in drawing wireframes
      
      	* src/frames.c (meta_frames_push_delay_exposes): repaint
      	everything before we delay
      e98fad3e
  22. 15 Aug, 2003 1 commit
    • Ray Strode's avatar
      Changed MRU list to be per workspace instead of per display, so sticky · 2fc880db
      Ray Strode authored
      2003-08-15  Ray Strode  <halfline@hawaii.rr.com>
      
      	Changed MRU list to be per workspace instead of per display, so
      	sticky windows don't hijack the window focus after workspace
      	switching (Bug #97635).
      
      	* src/delete.c (meta_window_delete): Use
      	meta_workspace_focus_top_window instead of
      	meta_screen_focus_top_window.
      
      	* src/display.c (meta_display_open): Stop using display->mru_list.
      	(find_tab_forward):
      	(find_tab_backward):
      	(meta_display_get_tab_list): Use workspace->mru_list instead of
      	display->mru_list and remove unneeded calls to
      	meta_window_visible_on_workspace
      
      	* src/display.h: Remove mru_list from MetaDisplay
      
      	* src/keybindings.c (handle_toggle_desktop): Use
      	meta_workspace_focus_top_window instead of
      	meta_screen_focus_top_window.
      
      	* src/screen.c (meta_screen_focus_top_window):
      	(meta_screen_focus_default_window): Remove functions.
      	(meta_screen_show_desktop): Use meta_workspace_focus_top_window
      	instead of meta_screen_focus_top_window.
      
      	* src/screen.h: Remove meta_screen_focus_top_window and
      	meta_screen_focus_default_window declarations.
      
      	* src/window.c (meta_window_new): Stop using display->mru_list.
      	(meta_window_free): Use meta_workspace_focus_top_window
      	instead of meta_screen_focus_top_window and stop using
      	display->mru_list.
      	(meta_window_stick): Add sticky window to all workspace MRU lists.
      	(meta_window_unstick): Remove non-sticky window from the workspace
      	MRU lists it doesn't belong in.
      	(meta_window_notify_focus): Move newly focused window to the front
      	of active workspace's MRU list.
      
      	* src/workspace.c (meta_workspace_new): Initialize
      	workspace->mru_list to NULL.
      	(meta_workspace_add_window): Add window to workspace's MRU list.
      	(meta_workspace_remove_window): Remove window from workspace's MRU
      	list.
      	(meta_workspace_activate_with_focus): Use
      	meta_workspace_focus_default_window instead of
      	meta_screen_focus_default_window.
      	(meta_workspace_focus_default_window):
      	(meta_workspace_focus_mru_window):
      	(meta_workspace_focus_top_window): Add functions.
      
      	* src/workspace.h: Add mru_list to MetaWorkspace and add function
      	declarations for meta_workspace_focus_default_window,
      	meta_workspace_focus_mru_window, meta_workspace_focus_top_window.
      2fc880db
  23. 10 Aug, 2003 1 commit
  24. 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
  25. 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
  26. 16 May, 2003 1 commit
    • Havoc Pennington's avatar
      fill in window->desc sooner since we use it sooner now. · 4b02b0dd
      Havoc Pennington authored
      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
      4b02b0dd
  27. 06 Apr, 2003 1 commit
    • Rob Adams's avatar
      Update placement policy for screen with multiple xineramas. Windows will · 9bd17f4f
      Rob Adams authored
      2003-04-05  Rob Adams  <robadams@ucla.edu>
      
      	Update placement policy for screen with multiple xineramas.
      	Windows will be placed preferentially on the xinerama with the
      	pointer, and progressively further away as needed to find a place
      	where the window does not overlap other windows.
      
      	* src/place.c (rect_fits_in_work_area): function
      	fit_rect_in_xinerama greatly simplified to work with new placement
      	policy.
      	(find_first_fit): implement new first first placement scheme
      
      	* src/screen.c (meta_screen_get_xinerama_neighbor): look for an
      	xinerama in the xinerama list that is adjacent to the specified
      	xinerama.
      	(meta_screen_get_natural_xinerama_list): return a list of
      	xineramas in the order to be preferred by the placement algorithm
      	as determined by the current location of the pointer.
      
      	* src/screen.h: add function prototypes and an enum used by
      	meta_screen_get_xinerama_neighbor.
      9bd17f4f
  28. 15 Mar, 2003 1 commit
    • Rob Adams's avatar
      Make it so that the alt-tabbing won't try to go to a minimized window by · 67cbbeb6
      Rob Adams authored
      2003-03-13  Rob Adams <robadams@ucla.edu>
      
              Make it so that the alt-tabbing won't try to go to a minimized
      	window by default.  Fix for #107071.
      
      	* display.c (meta_display_get_tab_list): use a GList instead of a
      	GSList
      	(meta_display_get_tab_next): use meta_display_get_tab_list to
      	decide what the next/previous tab window should be.
      
      	* display.h (meta_display_get_tab_list): update function prototype
      	to return GList instead of GSList.
      
      	* screen.c (meta_screen_ensure_tab_popup): update function to deal
      	with GList returned by meta_display_get_tab_list instead of GSList.
      67cbbeb6
  29. 23 Feb, 2003 1 commit
    • Havoc Pennington's avatar
      Patch from Rob Adams addresses #95014 (placement issues), makes first fit · c27d8921
      Havoc Pennington authored
      2003-02-23  Havoc Pennington  <hp@pobox.com>
      
      	Patch from Rob Adams addresses #95014 (placement issues),
      	makes first fit algorithm "center tile", adds most code
      	for per-xinerama workspaces (#86682) but disables it for now.
      
      	* src/workspace.c (meta_workspace_get_work_area_for_xinerama)
      	(meta_workspace_get_work_area_all_xineramas): new xinerama
      	functions, maintain workspace->work_areas with a different
      	work area for each xinerama. However for now all the work
      	areas are the same, because haven't quite figured out how
      	_NET_WM_STRUT is supposed to work
      
      	* src/window.c: adapt to new meta_window_* xinerama APIs
      	(meta_window_get_work_area_current_xinerama): new xinerama
      	API
      	(meta_window_get_work_area_for_xinerama): new xinerama API
      	(constrain_position): be a bit more clever about which xinerama's
      	work area we choose to use.
      
      	* src/stack.c: adapt to new Xinerama API
      
      	* src/screen.c (reload_xinerama_infos): invalidate all work areas
      	(meta_screen_get_xinerama_for_rect): new function
      	(meta_screen_window_intersects_xinerama): new function
      
      	* src/place.c (find_first_fit): change to use
      	"center tiling" (center a screen full of tiled windows,
      	rather than aligning them top left). Adapt to new
      	xinerama functions.
      c27d8921
  30. 14 Feb, 2003 1 commit
  31. 28 Jan, 2003 1 commit
  32. 23 Jan, 2003 1 commit
  33. 22 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      Fix for the "mangles focus window when switching workspaces and using · 82bd2091
      Havoc Pennington authored
      2003-01-21  Havoc Pennington  <hp@pobox.com>
      
              Fix for the "mangles focus window when switching workspaces
      	and using mouse focus" bug
      
      	* src/stack.c (meta_stack_get_default_focus_window_at_point): new
      	function
      
      	* src/screen.c (meta_screen_focus_mouse_window): new function
      	(meta_screen_focus_default_window): new function
      
      	* src/workspace.c (meta_workspace_activate): use the
      	new meta_screen_focus_default_window()
      
      2003-01-17  Havoc Pennington  <hp@pobox.com>
      
      	* src/window.c (meta_window_handle_mouse_grab_op_event): fix event
      	compression code to use GDK algorithm suggested by Owen, should be
      	more efficient.
      82bd2091
  34. 08 Jan, 2003 1 commit
  35. 06 Jan, 2003 1 commit
  36. 05 Jan, 2003 1 commit
    • Havoc Pennington's avatar
      redo using new calc_workspace_layout to fix #98302 · 90748385
      Havoc Pennington authored
      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
      90748385