summaryrefslogtreecommitdiff
path: root/constraints-ideas.txt
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2005-09-27 08:23:31 +0000
committerElijah Newren <newren@src.gnome.org>2005-09-27 08:23:31 +0000
commitb5929c05ba0fbd2f04b7e93a68baf7a6cac65c75 (patch)
tree2b379837ecb1121aa8b4e1b0f06f533519d40d2a /constraints-ideas.txt
parent05d9edf71f835240b88654a4139fefc676799cc3 (diff)
downloadmetacity-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.txt16
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.