summaryrefslogtreecommitdiff
path: root/Xi/xibarriers.c
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2012-12-09 22:48:18 -0500
committerPeter Hutterer <peter.hutterer@who-t.net>2012-12-17 15:01:41 +1000
commit85a37ddcc2ff49adaec4075532b60e7d015f901c (patch)
tree45e4d5ce68d963e1df987d93fcbf1e6afd2df45f /Xi/xibarriers.c
parent97da74c80e8b8eb03f7c1e34180cf5cd343bd608 (diff)
barriers: Reindent the constrainment hook
This is to make future diffs much cleaner. Best viewed with -w. Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi/xibarriers.c')
-rw-r--r--Xi/xibarriers.c57
1 files changed, 29 insertions, 28 deletions
diff --git a/Xi/xibarriers.c b/Xi/xibarriers.c
index 21ad6c74f..0affde68d 100644
--- a/Xi/xibarriers.c
+++ b/Xi/xibarriers.c
@@ -311,43 +311,44 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
BarrierScreenPtr cs = GetBarrierScreen(screen);
int x = dest_x,
y = dest_y;
+ int dir;
+ int i;
+ struct PointerBarrier *nearest = NULL;
+ PointerBarrierClientPtr c;
+
+ if (xorg_list_is_empty(&cs->barriers) || IsFloating(dev))
+ goto out;
- if (!xorg_list_is_empty(&cs->barriers) && !IsFloating(dev)) {
- int dir;
- int i;
- struct PointerBarrier *nearest = NULL;
- PointerBarrierClientPtr c;
-
- /* How this works:
- * Given the origin and the movement vector, get the nearest barrier
- * to the origin that is blocking the movement.
- * Clamp to that barrier.
- * Then, check from the clamped intersection to the original
- * destination, again finding the nearest barrier and clamping.
- */
- dir = barrier_get_direction(current_x, current_y, x, y);
+ /* How this works:
+ * Given the origin and the movement vector, get the nearest barrier
+ * to the origin that is blocking the movement.
+ * Clamp to that barrier.
+ * Then, check from the clamped intersection to the original
+ * destination, again finding the nearest barrier and clamping.
+ */
+ dir = barrier_get_direction(current_x, current_y, x, y);
#define MAX_BARRIERS 2
- for (i = 0; i < MAX_BARRIERS; i++) {
- c = barrier_find_nearest(cs, dev, dir, current_x, current_y, x, y);
- if (!c)
- break;
+ for (i = 0; i < MAX_BARRIERS; i++) {
+ c = barrier_find_nearest(cs, dev, dir, current_x, current_y, x, y);
+ if (!c)
+ break;
- nearest = &c->barrier;
+ nearest = &c->barrier;
- barrier_clamp_to_barrier(nearest, dir, &x, &y);
+ barrier_clamp_to_barrier(nearest, dir, &x, &y);
- if (barrier_is_vertical(nearest)) {
- dir &= ~(BarrierNegativeX | BarrierPositiveX);
- current_x = x;
- }
- else if (barrier_is_horizontal(nearest)) {
- dir &= ~(BarrierNegativeY | BarrierPositiveY);
- current_y = y;
- }
+ if (barrier_is_vertical(nearest)) {
+ dir &= ~(BarrierNegativeX | BarrierPositiveX);
+ current_x = x;
+ }
+ else if (barrier_is_horizontal(nearest)) {
+ dir &= ~(BarrierNegativeY | BarrierPositiveY);
+ current_y = y;
}
}
+ out:
*out_x = x;
*out_y = y;
}