lets fix desktop flip stuff to not wrap beyodn the desktop area for linear

SVN revision: 14719
This commit is contained in:
Carsten Haitzler 2005-05-12 07:29:17 +00:00
parent 5eecbcdfff
commit 30e9bfe6c6
1 changed files with 6 additions and 2 deletions

View File

@ -577,6 +577,9 @@ e_zone_desk_linear_flip_by(E_Zone *zone, int dx)
{ {
dx = zone->desk_x_current + dx = zone->desk_x_current +
(zone->desk_y_current * zone->desk_x_count) + dx; (zone->desk_y_current * zone->desk_x_count) + dx;
dx = dx % (zone->desk_x_count * zone->desk_y_count);
while (dx < 0)
dx += (zone->desk_x_count * zone->desk_y_count);
e_zone_desk_linear_flip_to(zone, dx); e_zone_desk_linear_flip_to(zone, dx);
} }
@ -584,10 +587,11 @@ void
e_zone_desk_linear_flip_to(E_Zone *zone, int x) e_zone_desk_linear_flip_to(E_Zone *zone, int x)
{ {
int y; int y;
if (x < 0) return;
y = x / zone->desk_x_count; y = x / zone->desk_x_count;
x = x - (y * zone->desk_x_count); x = x - (y * zone->desk_x_count);
y = y % zone->desk_y_count; if (y >= zone->desk_y_count) return;
e_zone_desk_flip_to(zone, x, y); e_zone_desk_flip_to(zone, x, y);
} }