mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -05:00
resistance: prevent "snapping" when windows change direction near edges
This commit is contained in:
parent
e52ccfbcf3
commit
c01bf3f319
1 changed files with 4 additions and 4 deletions
|
|
@ -44,12 +44,12 @@ check_edge(int *next, struct edge current, struct edge target,
|
||||||
if (decreasing) {
|
if (decreasing) {
|
||||||
const int lo = clipped_sub(opp, abs(tolerance));
|
const int lo = clipped_sub(opp, abs(tolerance));
|
||||||
const int hi = clipped_sub(opp, MIN(tolerance, 0));
|
const int hi = clipped_sub(opp, MIN(tolerance, 0));
|
||||||
valid = tgt >= lo && tgt < hi;
|
valid = tgt >= lo && tgt < hi && cur >= opp;
|
||||||
} else {
|
} else {
|
||||||
/* Check for increasing movement across opposing edge */
|
/* Check for increasing movement across opposing edge */
|
||||||
const int lo = clipped_add(opp, MIN(tolerance, 0));
|
const int lo = clipped_add(opp, MIN(tolerance, 0));
|
||||||
const int hi = clipped_add(opp, abs(tolerance));
|
const int hi = clipped_add(opp, abs(tolerance));
|
||||||
valid = tgt > lo && tgt <= hi;
|
valid = tgt > lo && tgt <= hi && cur <= opp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valid && edges_traverse_edge(current, target, oppose)) {
|
if (valid && edges_traverse_edge(current, target, oppose)) {
|
||||||
|
|
@ -61,11 +61,11 @@ check_edge(int *next, struct edge current, struct edge target,
|
||||||
if (decreasing) {
|
if (decreasing) {
|
||||||
const int lo = clipped_sub(aln, abs(tolerance));
|
const int lo = clipped_sub(aln, abs(tolerance));
|
||||||
const int hi = clipped_sub(aln, MIN(tolerance, 0));
|
const int hi = clipped_sub(aln, MIN(tolerance, 0));
|
||||||
valid = tgt >= lo && tgt < hi;
|
valid = tgt >= lo && tgt < hi && cur >= aln;
|
||||||
} else {
|
} else {
|
||||||
const int lo = clipped_add(aln, MIN(tolerance, 0));
|
const int lo = clipped_add(aln, MIN(tolerance, 0));
|
||||||
const int hi = clipped_add(aln, abs(tolerance));
|
const int hi = clipped_add(aln, abs(tolerance));
|
||||||
valid = tgt > lo && tgt <= hi;
|
valid = tgt > lo && tgt <= hi && cur <= aln;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valid && edges_traverse_edge(current, target, align)) {
|
if (valid && edges_traverse_edge(current, target, align)) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue