1. 12 Feb, 2006 1 commit
  2. 21 Nov, 2005 2 commits
  3. 19 Nov, 2005 1 commit
    • Elijah Newren's avatar
      Merge of all the changes on the constraints_experiments branch. This is · a7201d27
      Elijah Newren authored
      2005-11-18  Elijah Newren  <newren@gmail.com>
      	Merge of all the changes on the constraints_experiments branch.
      	This is just a summary, to get the full ChangeLog of those
      	changes (approx. 2000 lines):
      	  cvs -q -z3 update -Pd -r constraints_experiments
      	  cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog
      	Bugs fixed:
      	  unfiled - constraints.c is overly complicated[1]
      	  unfiled - constraints.c is not robust when all constraints
      	            cannot simultaneously be met (constraints need to be
      	  unfiled - keep-titlebar-onscreen constraint is decoration
      	            unaware (since get_outermost_onscreen_positions()
      	            forgets to include decorations)
      	  unfiled - keyboard snap-moving and snap-resizing snap to hidden
      	   109553 - gravity w/ simultaneous move & resize doesn't work
      	   113601 - maximize vertical and horizontal should toggle and be
      	   122196 - windows show up under vertical panels
      	   122670 - jerky/random resizing of window via keyboard[2]
      	   124582 - keyboard and mouse snap-resizing and snap-moving
      	            erroneously moves the window multidimensionally
      	   136307 - don't allow apps to resize themselves off the screen
      	            (*cough* filechooser *cough*)
      	   142016, 143784 - windows should not span multiple xineramas
      	            unless placed there by the user
      	   143145 - clamp new windows to screensize and force them
      	            onscreen, if they'll fit
      	   144126 - Handle pathological strut lists sanely[3]
      	   149867 - fixed aspect ratio windows are difficult to resize[4]
      	   152898 - make screen edges consistent; allow easy slamming of
      	            windows into the left, right, and bottom edges of the
      	            screen too.
      	   154706 - bouncing weirdness at screen edge with keyboard moving
      	            or resizing
      	   156699 - avoid struts when placing windows, if possible (nasty
      	            a11y blocker)
      	   302456 - dragging offscreen too restrictive
      	   304857 - wireframe moving off the top of the screen is misleading
      	   308521 - make uni-directional resizing easier with
      	            alt-middle-drag and prevent the occasional super
      	            annoying resize-the-wrong-side(s) behavior
      	   312007 - snap-resize moves windows with a minimum size
      	   312104 - resizing the top of a window can cause the bottom to
      	   319351 - don't instantly snap on mouse-move-snapping, remove
      	            braindeadedness of having order of releasing shift and
      	            releasing button press matter so much
      	   [1] fixed in my opinion, anyway.
      	   [2] Actually, it's not totally fixed--it's just annoying
      	       instead of almost completely unusable.  Matthias had a
      	       suggestion that may fix the remainder of the problems (see
      	   [3] This bug was originally about not-quite-so-pathological
      	       cases but was left open for the worse cases. The code from
      	       the branch handles the remainder of the cases mentioned in
      	       this bug.
      	   [4] Actually, although it's far better there's still some minor
      	       issues left: a slight drift that's only noticeable after
      	       lots of resizing, and potential problems with partially
      	       onscreen constraints due to not clearing any
      	       fixed_directions flags (aspect ratio windows get resized in
      	       both directions and thus aren't fixed in one of them)
      	New feature:
      	    81704 - edge resistance for user move and resize operations;
      	            in particular 3 different kinds of resistance are
                   	 Pixel-Distance: window movement is resisted when it
      	     	   aligns with an edge unless the movement is greater than
      	     	   a threshold number of pixels
                   	 Timeout: window movement past an edge is prevented until
      	     	   a certain amount of time has elapsed during the
      	     	   operation since the first request to move it past that
                   	 Keyboard-Buildup: when moving or resizing with the
      	     	   keyboard, once a window is aligned with a certain edge
      	     	   it cannot move past until the correct direction has
      	     	   been pressed enough times (e.g. 2 or 3 times)
      	Major changes:
      	  - constraints.c has been rewritten; very few lines of code from
      	    the old version remain.  There is a comment near the top of
      	    the function explaining the basics of how the new framework
      	    works.  A more detailed explanation can be found in
      	  - edge-resistance.[ch] are new files implementing edge-resistance.
      	  - boxes.[ch] are new files containing low-level error-prone
      	    functions used heavily in constraints.c and edge-resistance.c,
      	    among various places throughout the code.  testboxes.c
      	    contains a thorough testsuite for the boxes.[ch] functions
      	    compiled into a program, testboxes.
      	  - meta_window_move_resize_internal() *must* be told the gravity
      	    of the associated operation (if it's just a move operation,
      	    the gravity will be ignored, but for resize and move+resize
      	    the correct value is needed)
      	  - the craziness of different values that
      	    meta_window_move_resize_internal() accepts has been documented
      	    in a large comment at the beginning of the function.  It may
      	    be possible to clean this up some, but until then things will
      	    remain as they were before--caller beware.
      	  - screen and xinerama usable areas (i.e. places not covered by
      	    e.g. panels) are cached in the workspace now, as are the
      	    screen and xinerama edges.  These get updated with the
      	    workarea in src/workspace.c:ensure_work_areas_validated()
  4. 17 Mar, 2005 1 commit
  5. 22 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Handle keynav vs. mousenav in mouse and sloppy focus modes. Fixes #167545. · 61250726
      Elijah Newren authored
      2005-02-21  Elijah Newren  <newren@gmail.com>
      	Handle keynav vs. mousenav in mouse and sloppy focus modes.  Fixes
      	* doc/how-to-get-focus-right.txt: Update due to this new method
      	for handling keynav vs. mousenav, plus various other updates that
      	I previously forgot.
      	* src/display.h: (struct _MetaDisplay): add a mouse_mode boolean
      	* src/display.c: (meta_display_open): initialize mouse_mode to
      	true, (event_callback): have EnterNotify and LeaveNotify events
      	set mouse_mode to true when focusing a window
      	* src/keybindings.c: (process_tab_grab): set mouse_mode to false
      	when using alt-tab/alt-esc, (do_choose_window): likewise,
      	(do_handle_move_to_workspace): set mouse_mode to false on
      	move-window-to-workspace-<n> keybindings
      	* src/window.c (idle_calc_showing): if we're in keynav mode while
      	using sloppy or mouse focus, use metacity_sentinel to avoid
      	EnterNotify events being generated from events other than mouse
      	* src/workspace.c (meta_workspace_activate_with_focus): add a
      	FIXME in a potentially duplicate section of code,
      	(meta_workspace_focus_default_window): use the same focus choice
      	as click-to-focus if in keynav mode.
  6. 02 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Focus parents of dismissed transient windows in preference to the window · de5588c1
      Elijah Newren authored
      2005-02-02  Elijah Newren  <newren@gmail.com>
      	Focus parents of dismissed transient windows in preference to the
      	window that most recently had keyboard focus.  Fixes #157360.
      	* doc/how-to-get-focus-right.txt: Note the distinction between
      	"most recently used window" and "most recent to have keyboard
      	focus" that we are now making.
      	* src/workspace.c: (focus_ancestor_or_mru_window): rename from
      	meta_workspace_focus_mru_window, and first check whether we need
      	to focus an ancestor window before looking for the mru window,
      	(record_ancestor): helper function for
      	(meta_workspace_focus_default_window): update due to the function
      	rename from meta_workspace_focus_mru_window to
  7. 25 Jan, 2005 1 commit
    • Elijah Newren's avatar
      Add man pages for metacity-window-demo and metacity-theme-viewer. Man · ea4d4b7b
      Elijah Newren authored
      2005-01-25  Elijah Newren  <newren@gmail.com>
      	Add man pages for metacity-window-demo and metacity-theme-viewer.
      	Man pages from Jose Moya, auto-fu from Dave Ahlswede. (#143513)
      	* doc/man/metacity-theme-viewer.1:
      	* doc/man/metacity-window-demo.1:
      	New man pages
      	* doc/man/Makefile.am:
      	* doc/Makefile.am:
      	* configure.in:
      	Make sure to install the man pages
      	* doc/man/.cvsignore:
      	Silence cvs
  8. 09 Jan, 2005 1 commit
    • Elijah Newren's avatar
      Don't focus the panel on click. Fixes #160470 (and 100470 and removes the · be29c696
      Elijah Newren authored
      2005-01-09  Elijah Newren  <newren@gmail.com>
      	Don't focus the panel on click.  Fixes #160470 (and 100470 and
      	removes the need for the hack from 128200)
      	* doc/how-to-get-focus-right.txt: Update section on focusing
      	non-decorated windows (specifically, DOCKS and DESKTOPS)
      	* src/display.c (event_callback): don't focus dock windows on
  9. 02 Jan, 2005 1 commit
    • Elijah Newren's avatar
      Provide more documentation to make it easier for people to contribute to · 9382d581
      Elijah Newren authored
      2005-01-02  Elijah Newren  <newren@gmail.com>
      	Provide more documentation to make it easier for people to
      	contribute to Metacity
      	* HACKING: Add lots of information to extend this document: more
      	on relevant standards and X properties, lots of information on
      	debugging and testing, and add a list of some other important
      	things to read; also move some information to
      	src/code-overview.txt and organize this file into sections.
      	* src/code-overview.txt: New file including some small parts from
      	the old HACKING file and lots of new stuff.  This file gives a
      	brief overview of some of the bigger structures and files, with
      	guides for a variety of task categories providing places to start
      	looking in the code and things to look for.
  10. 15 Sep, 2004 1 commit
    • Elijah Newren's avatar
      Focus the no_focus_window if no suitable window is in the mru list (should · cffe7e95
      Elijah Newren authored
      2004-09-15  Elijah Newren  <newren@math.utah.edu>
      	Focus the no_focus_window if no suitable window is in the mru list
      	(should fix the almost contrived extra issue found in #147475)
      	* doc/how-to-get-focus-right.txt: We no longer need to lie about
      	only focusing panels upon explicit request.
      	* src/workspace.c: (meta_workspace_focus_top_window): removed this
      	function--it was more code than needed and was unreliable anyway,
      	(meta_workspace_focus_mru_window): if a suitable window isn't in
      	the mru list, focus the no_focus_window instead of calling
  11. 07 Sep, 2004 2 commits
  12. 17 Feb, 2003 1 commit
  13. 23 Dec, 2002 1 commit
  14. 26 Nov, 2002 1 commit
  15. 20 Nov, 2002 1 commit
    • Havoc Pennington's avatar
      add DTD for themes from Ross Burton · e9999aa9
      Havoc Pennington authored
      2002-11-20  Havoc Pennington  <hp@pobox.com>
      	* doc/metacity-theme.dtd: add DTD for themes from Ross Burton
      	* doc/Makefile.am: doc subdir
      	* doc/theme-format.txt: move to doc subdir