From: Fernando Tarlá Cardoso Lemos Date: Sat, 22 Jan 2011 18:09:11 +0000 (-0200) Subject: Round up as well if needed (thanks Merovius). X-Git-Tag: 3.e-bf3~19 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ceff1487da208a141f8416b6b314cc38a5a860b6;p=i3%2Fi3 Round up as well if needed (thanks Merovius). --- diff --git a/src/layout.c b/src/layout.c index 9af1ffd9..c8a21bff 100644 --- a/src/layout.c +++ b/src/layout.c @@ -713,9 +713,10 @@ void render_workspace(xcb_connection_t *conn, Output *output, Workspace *r_ws) { /* Correct rounding errors */ int error = r_ws->rect.width - total_col_width, error_index = r_ws->cols - 1; + int signal = error < 0 ? 1 : -1; while (error) { - ++col_width[error_index]; - --error; + col_width[error_index] -= signal; + error += signal; error_index = error_index == 0 ? r_ws->cols - 1 : error_index - 1; } @@ -732,9 +733,10 @@ void render_workspace(xcb_connection_t *conn, Output *output, Workspace *r_ws) { /* Correct rounding errors */ error = workspace_height(r_ws) - total_row_height; error_index = r_ws->rows - 1; + signal = error < 0 ? 1 : -1; while (error) { - ++row_height[error_index]; - --error; + row_height[error_index] -= signal; + error += signal; error_index = error_index == 0 ? r_ws->rows - 1 : error_index - 1; }