diff options
author | Elijah Newren <newren@gmail.com> | 2005-09-27 08:23:31 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2005-09-27 08:23:31 +0000 |
commit | b5929c05ba0fbd2f04b7e93a68baf7a6cac65c75 (patch) | |
tree | 2b379837ecb1121aa8b4e1b0f06f533519d40d2a /constraints-ideas.txt | |
parent | 05d9edf71f835240b88654a4139fefc676799cc3 (diff) | |
download | metacity-b5929c05ba0fbd2f04b7e93a68baf7a6cac65c75.tar.gz |
Record that I think I can nuke work_area_screen somewhere so I don't lose
2005-09-27 Elijah Newren <newren@gmail.com>
* constraints-ideas.txt: Record that I think I can nuke
work_area_screen somewhere so I don't lose it; mark which
short-term TODO items I think I've finished
* src/boxes.[ch] (meta_rectangle_overlap,
meta_rectangle_get_minimal_spanning_set_for_region): new
functions, (meta_rectangle_clip_out_rect): remove this since it
was only used by constraints.c:get_outermost_screen_positions()
* src/boxes.c (compare_rect_areas): new static helper function for
meta_rectangle_get_minimal_spanning_set_for_region()
* src/constraints.c:
(enum ConstraintPriority, constrain_clamp_size,
meta_window_constrain): remove all the clamp_size stuff
(enum FixedDirections, struct ConstraintInfo): create a new enum
for tracking fixed directions
(struct ConstraintInfo): add, cleanup, clarify comments
(setup_constraint_info): add a HUGE comment about fixed_directions
(which I tried to implement a bunch of different ways and had all
kinds of different ideas that I was working on until I figured out
the current relatively simple way that I think will make it all
work) and initialize it appropriately
(get_outermost_onscreen_positions): remove this function
(do_screen_and_xinerama_relative_constraints): #ifdef it out, for
now
(get_all_workspace_struts, get_screen_rect_size): simple helper
functions
(constrain_fully_onscreen): make use of get_all_workspace_struts()
and get_screen_rect_size() to get the necessary data for
meta_rectangle_get_minimal_spanning_set_for_region() so that we
can make do_screen_and_xinerama_relative_constraints() do all the
work
Diffstat (limited to 'constraints-ideas.txt')
-rw-r--r-- | constraints-ideas.txt | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/constraints-ideas.txt b/constraints-ideas.txt index 4022340d..dcd45851 100644 --- a/constraints-ideas.txt +++ b/constraints-ideas.txt @@ -1,10 +1,12 @@ Short-term TODO list/reminders: + - It looks like I can nuke work_area_screen in ConstraintInfo + - Okay the on-single-xinerama/fully-onscreen/partially-onscreen constraints aren't as simple as I thought, the boxes.[ch] is still the wrong way to go about it and doesn't cover everything needed, and I need something else big. Ideas: - - Get minimal set of (maximally) covering rects: + X Get minimal set of (maximally) covering rects: - Start with relevant rect (screen/xinerama) - Foreach strut, divide each rect in the set into up to three rects (before-strut zone, overlap-strut zone, and after-strut zone) @@ -19,7 +21,7 @@ Short-term TODO list/reminders: overlap zone in this case). The left and right struts are similar in nature (vertical shrinkage for before and after, horizontal shrinkage for overlap) - - Be careful not to move/clip in the wrong direction + X Be careful not to move/clip in the wrong direction - For user move, one does not want to shove a rect vertically to force it fully onscreen if the user had only been moving the window horizontally--even if moving it vertically would result in @@ -59,12 +61,12 @@ Short-term TODO list/reminders: dimension of the window size should ever be increased. Extra notes: - - Write a get_elijah_region() function, returning a GList* - - elijah_region is defined as minimal set of possibly overlapping + X Write a get_elijah_region() function, returning a GList* + X elijah_region is defined as minimal set of possibly overlapping rectangles for a region with the property that a window is contained in the region iff it is contained in one of the rectangles - - function should take: basic_rect (screen or xinerama), struts, + X function should take: basic_rect (screen or xinerama), struts, extend_amount (0 for fully-onscreen or on-single-xinerama, but large relative-to-window amount for partially-onscreen constraints; extra amount might be 4x1 array for each of four @@ -87,7 +89,7 @@ Short-term TODO list/reminders: closest-in-area should ust always trump--except for some extra slop for keyboard resizing?. - - My attempts to do all contraints in terms of the outer window are + X My attempts to do all contraints in terms of the outer window are mislead--most are actually relative to the inner window. Comparisons: constraint window @@ -99,7 +101,7 @@ Short-term TODO list/reminders: aspect_ratio inner onscreen outer - - Change documentation in constraints.c to target future maintainers + X Change documentation in constraints.c to target future maintainers first, then explain the basic ideas behind the algorithm and how it compares to the old method and why. |