1. 14 Feb, 2003 1 commit
  2. 28 Jan, 2003 1 commit
  3. 23 Jan, 2003 1 commit
  4. 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
  5. 08 Jan, 2003 1 commit
  6. 06 Jan, 2003 1 commit
  7. 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
  8. 19 Dec, 2002 1 commit
  9. 17 Dec, 2002 1 commit
  10. 01 Dec, 2002 1 commit
    • Havoc Pennington's avatar
      lengthen to 15 seconds · 5e1439f8
      Havoc Pennington authored
      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.
      5e1439f8
  11. 21 Nov, 2002 1 commit
    • Havoc Pennington's avatar
      remove unused variable · 6557627d
      Havoc Pennington authored
      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
      6557627d
  12. 20 Nov, 2002 1 commit
    • Havoc Pennington's avatar
      Fix #98303 and assorted cleanup · 2541da1d
      Havoc Pennington authored
      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
      2541da1d
  13. 03 Nov, 2002 1 commit
    • Havoc Pennington's avatar
      new function, and remove workspace->name field, instead just get the name · 6a1abc74
      Havoc Pennington authored
      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.
      6a1abc74
  14. 25 Oct, 2002 1 commit
    • Havoc Pennington's avatar
      Add "busy cursor on app startup" support, conditionally - works only if · cb27f0c4
      Havoc Pennington authored
      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
      cb27f0c4
  15. 24 Oct, 2002 1 commit
    • Havoc Pennington's avatar
      make public · 97029033
      Havoc Pennington authored
      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.
      97029033
  16. 21 Oct, 2002 1 commit
    • Havoc Pennington's avatar
      Optimizations for managing new windows (do not all take effect if · c6b475b2
      Havoc Pennington authored
      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
      c6b475b2
  17. 16 Oct, 2002 1 commit
    • Havoc Pennington's avatar
      workspaces are all per-screen now, fix accordingly · 337812d5
      Havoc Pennington authored
      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...
      337812d5
  18. 02 Oct, 2002 1 commit
    • Havoc Pennington's avatar
      make it static · 94b6dde6
      Havoc Pennington authored
      2002-10-01  Havoc Pennington  <hp@pobox.com>
      
      	* src/screen.c (meta_screen_resize_func): make it static
      
      	* src/stack.c (get_standalone_layer): put above/below windows
      	in an appropriate layer.
      
      	* src/screen.c (set_supported_hint): say we support above/below
      
      	* src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE,
      	_NET_WM_STATE_BELOW atoms
      
      	* src/window.c (meta_window_client_message): handle above/below
      	state messages
      	(set_net_wm_state): handler above/below state
      	(update_net_wm_state): handle above/below states
      94b6dde6
  19. 01 Oct, 2002 1 commit
  20. 30 Sep, 2002 1 commit
  21. 29 Sep, 2002 1 commit
    • Havoc Pennington's avatar
      Patch from Keith Packard to handle root window resizes. · 43a726ef
      Havoc Pennington authored
      2002-09-28  Havoc Pennington  <hp@pobox.com>
      
              Patch from Keith Packard to handle root window resizes.
      
      	* src/screen.c (reload_xinerama_infos): factor out Xinerama code
      	(meta_screen_resize): implement this, to be called from display.c
      	on screen resize
      
      	* src/display.c (event_callback): handle ConfigureNotify on root
      	windows
      43a726ef
  22. 28 Sep, 2002 1 commit
    • Havoc Pennington's avatar
      raise the focused window, since it may not be the window on top, given the · 6c325e90
      Havoc Pennington authored
      2002-09-27  Havoc Pennington  <hp@pobox.com>
      
      	* src/screen.c (meta_screen_focus_top_window): raise the focused
      	window, since it may not be the window on top, given the below
      	change.
      
      	* src/stack.c (meta_stack_get_default_focus_window): make this
      	more complex to prefer to focus the transient parent, followed by
      	other windows in group, followed by topmost non-dock, followed by
      	dock. Previously was just topmost non-dock followed by dock
      	ignoring groups and transiency.
      6c325e90
  23. 27 Sep, 2002 1 commit
    • Havoc Pennington's avatar
      Try to handle Solaris Xinerama, all coded blind, someone on Solaris will · 74b3bca9
      Havoc Pennington authored
      2002-09-27  Havoc Pennington  <hp@redhat.com>
      
              Try to handle Solaris Xinerama, all coded blind, someone
      	on Solaris will need to debug the typos.
      
      	* src/display.c: updates for Solaris Xinerama
      
      	* src/screen.c: updates for Solaris Xinerama
      
      	* configure.in: make Xinerama check more complicated to catch
      	Solaris Xinerama
      74b3bca9
  24. 24 Sep, 2002 1 commit
  25. 14 Aug, 2002 1 commit
  26. 10 Aug, 2002 1 commit
    • Havoc Pennington's avatar
      be sure window is mapped if we unmanage it and it's not withdrawn; bug · c540438b
      Havoc Pennington authored
      2002-08-10  Havoc Pennington  <hp@pobox.com>
      
      	* src/window.c (meta_window_free): be sure window is
      	mapped if we unmanage it and it's not withdrawn;
      	bug #90369
      
      	* src/screen.c (meta_screen_new): change string
      	s/override/replace/ bug #89077
      
      	* src/theme.c (scale_and_alpha_pixbuf): dump the
      	sometimes-use-NEAREST-instead-of-BILINEAR optimization,
      	bug #87489
      c540438b
  27. 06 Aug, 2002 1 commit
    • Havoc Pennington's avatar
      disable animation when shading windows, just doesn't really convey the · 00dcef82
      Havoc Pennington authored
      2002-07-28  Havoc Pennington  <hp@pobox.com>
      
      	* src/window.c (meta_window_shade): disable animation when shading
      	windows, just doesn't really convey the idea anyway.
      
      	* src/effects.c: Move to using a shaped window instead of
      	IncludeInferiors to do the animations, looks a lot better
      	because we don't have to grab the server.
      
      	* src/window.c (meta_window_change_workspace): remove bogus
      	assertion that was causing a crash
      	(meta_window_new): auto-fullscreen huge undecorated windows.
      
      	* src/keybindings.c (switch_to_workspace): use
      	meta_window_change_workspace() to avoid same bug in cut-and-paste
      	code from there
      00dcef82
  28. 04 Aug, 2002 1 commit
    • Mark McLoughlin's avatar
      set active_workspace to NULL. Also actually activate the first workspace · 8984fd35
      Mark McLoughlin authored
      2002-08-02  Mark McLoughlin  <mark@skynet.ie>
      
              * src/screen.c: (meta_screen_new): set active_workspace
              to NULL. Also actually activate the first workspace instead
              of just setting active_workspace. Fixes #87367.
              (meta_screen_ensure_workspace_popup): don't re-use our
              iterator for setting the entries list, stop iterating
              when we've gone beyond the last workspace (there may
              be empty spaces in the last row).
      
              * src/workspace.c: (meta_workspace_activate): if no workspace
              was previously activated, return.
      8984fd35
  29. 01 Aug, 2002 1 commit
    • Mark McLoughlin's avatar
      Implements support for _NET_WM_ALLOWED_ACTIONS. Fixes #84282. · 95e4c6ac
      Mark McLoughlin authored
      2002-08-01  Mark McLoughlin  <mark@skynet.ie>
      
              Implements support for _NET_WM_ALLOWED_ACTIONS.
              Fixes #84282.
      
              * src/display.[ch]: (meta_display_open): add
              _NET_WM_ALLOWED_ACTIONS atoms.
      
              * src/screen.c: (set_supported_hint): set them
              as being supported.
      
              * src/window.c:
              (set_allowed_actions_hint): impl setting
              _NET_WM_ALLOWED_ACTIONS.
              (recalc_window_features): use it here, but only
              if things have changed.
      95e4c6ac
  30. 10 Jul, 2002 1 commit
  31. 06 Jul, 2002 1 commit
    • Havoc Pennington's avatar
      Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspaces · a62b3c8b
      Havoc Pennington authored
      2002-07-06  Havoc Pennington  <hp@pobox.com>
      
              Apply blackc@speakeasy.net patch, bug #83940, to do
      	mini-workspaces similar to the pager, when switching
      	spaces.
      
      	* src/window.c (update_net_wm_state): actually fill in
      	wm_state_skip_taskbar, wm_state_skip_pager flags
      
      	* src/tabpopup.c: support drawing a mini-workspace similar to the
      	one the pager draws.
      
      	* src/stack.c (meta_stack_list_windows): new function to list
      	the windows in stacking order
      
      	* src/screen.c (meta_screen_ensure_workspace_popup): don't pass in
      	the ugly default app icon for workspaces
      
      	* src/display.c (event_callback): fix from blackc@speakeasy.net
      	to avoid dereferencing a NULL grab window.
      a62b3c8b
  32. 01 Jul, 2002 1 commit
    • Mark McLoughlin's avatar
      Fix broken workspace switching from my previous commit. · 086f3d80
      Mark McLoughlin authored
      2002-07-01  Mark McLoughlin  <mark@skynet.ie>
      
              Fix broken workspace switching from my previous commit.
      
              * src/display.c: (meta_display_begin_grab_op): don't
              leak a pointer grab if we fail to grab the keyboard.
      
              * src/keybindings.c: (meta_screen_grab_keys): check
              screen->all_keys_grabbed.
              (meta_screen_grab_all_keys): regrab our standard
              bindings if we fail.
              (handle_workspace_switch): revert to our previous
              behaviour of using the last focused window to do
              the grab upon. Only use the RootWindow if there
              isn't anything else to use.
      
              * src/screen.c: (meta_screen_new): initialise
              all_keys_grabbed.
      086f3d80
  33. 25 Jun, 2002 1 commit
    • Mark McLoughlin's avatar
      src/screen.c: (set_supported_hint), (set_work_area_hint): Its · d7b4eec7
      Mark McLoughlin authored
      2002-06-25  Mark McLoughlin  <mark@skynet.ie>
      
              * src/display.[ch]: (meta_display_open):
                src/screen.c: (set_supported_hint), (set_work_area_hint):
              Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-)
      
      2002-06-25  Mark McLoughlin  <mark@skynet.ie>
      
              * src/screen.[ch]:
              (update_num_workspaces), recalc workarea hint when
              new workspaces created. Fixes bug that workarea
              not calculated until first non-dock window is
              mapped.
              (set_work_area_hint), (set_work_area_idle_func),
              (meta_screen_queue_workarea_recalc): move all this
              stuff from workspace.c.
      
              * src/workspace.c: (meta_workspace_invalidate_work_area):
              use meta_screen_queue_workarea_recalc.
      d7b4eec7
  34. 22 Jun, 2002 2 commits
    • Havoc Pennington's avatar
      do nothing if screen is being unmanaged, we don't want to blow away state, · 8a8171eb
      Havoc Pennington authored
      2002-06-22  Havoc Pennington  <hp@pobox.com>
      
      	* src/workspace.c (set_number_of_spaces_hint): do nothing if
      	screen is being unmanaged, we don't want to blow away state,
      	we want to remember it for the next window manager.
      
      2002-06-22  Havoc Pennington  <hp@pobox.com>
      
      	* src/workspace.c (meta_screen_ensure_workspace_popup): rename
      	from meta_workspace_ensure_tab_popup, and use workspace->name
      	instead of a hardcoded name
      8a8171eb
    • Havoc Pennington's avatar
      new utility function · 0243071f
      Havoc Pennington authored
      2002-06-22  Havoc Pennington  <hp@pobox.com>
      
      	* src/xprops.c (meta_prop_get_utf8_list): new utility function
      
      	* src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom
      	(event_callback): update workspace names when the property changes
      
      	* src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES
      	(nothing to do really)
      0243071f
  35. 09 Jun, 2002 2 commits
    • Havoc Pennington's avatar
      Apply big patch from blackc@speakeasy.net adding a popup window to the · fb5a3a89
      Havoc Pennington authored
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	Apply big patch from blackc@speakeasy.net adding a popup window
      	to the Ctrl+Alt+arrows shortcuts. #83940
      
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	* src/screen.c (meta_screen_new): select key press/release on the
      	display->no_focus_window, another attempted fix for not getting
      	keybindings when no window is focused. Still doesn't seem to work
      	though. I don't get what's going wrong.
      	(meta_create_offscreen_window): new function, used instead of
      	XCreateSimpleWindow so we get override redirect offscreen windows.
      fb5a3a89
    • Havoc Pennington's avatar
      set net_supporting_wm_check in addition to win_supporting_wm_check, patch · 459d8f9c
      Havoc Pennington authored
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	* src/display.c (meta_display_open): set net_supporting_wm_check
      	in addition to win_supporting_wm_check, patch from
      	JeyaSudha for #83365
      
      	* src/screen.c (set_wm_check_hint): remove setting
      	win_supporting_wm_check on leader window here, done already in
      	display.c
      459d8f9c
  36. 08 Jun, 2002 3 commits
    • Havoc Pennington's avatar
      don't die on bad atom name · 31b21155
      Havoc Pennington authored
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	* src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom
      	name
      
      	* src/display.c (meta_display_close): don't unmanage windows here,
      	do it in screen_free and then closing the display unmanages
      	windows as a side effect of unmanaging the screen
      	(meta_display_unmanage_screen): new function
      	(process_selection_clear, process_selection_request): handle
      	selection stuff
      	(meta_spew_event): don't crash on client message containing
      	invalid atom
      	(meta_spew_event): don't crash on property notify with invalid
      	atom
      
      	* src/main.c (main): add --replace option to replace existing
      	window manager.
      
      	* src/screen.c: implement holding manager selection.
      
      	* src/display.c (meta_display_open): add new selection-related
      	atoms.
      31b21155
    • Havoc Pennington's avatar
      select keypress/keyrelease events on root window, this may fix the bug · 538a06fd
      Havoc Pennington authored
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	* src/screen.c (meta_screen_new): select keypress/keyrelease
      	events on root window, this may fix the bug where keybindings
      	didn't work if you didn't have a focused window.
      538a06fd
    • Havoc Pennington's avatar
      short-circuit the "only one xinerama" case, and use outer rect of window · 2b780e54
      Havoc Pennington authored
      2002-06-08  Havoc Pennington  <hp@pobox.com>
      
      	* src/screen.c (meta_screen_get_xinerama_for_window):
      	short-circuit the "only one xinerama" case, and use outer rect of
      	window instead of window->rect, so we get root window coords.
      
      	* src/theme.c (meta_frame_layout_get_borders): if fullscreen all
      	frame edges are zero-width.
      
      	* src/frame.c (meta_frame_get_flags): init fullscreen flag.
      
      	* src/common.h (enum): add META_FRAME_FULLSCREEN frame flag
      
      	* src/place.c: fix up calls to meta_window_get_work_area
      
      	* src/window.c (meta_window_get_work_area): add an arg for whether
      	the work area is for the screen or the xinerama subscreen.
      	(constrain_position): fix up calls to meta_window_get_work_area
      	(constrain_size): ditto
      
      	* src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA
      	environment variable which simulates xinerama on a single head.
      2b780e54