From: Dana Jansens Date: Thu, 17 Apr 2003 07:20:08 +0000 (+0000) Subject: fix grip workspace cycling X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=827e7baf20c3d0bb8251f5d024d304d0f9bebbe6;p=chaz%2Fopenbox fix grip workspace cycling --- diff --git a/openbox/action.c b/openbox/action.c index 1740d1b1..ea6202e6 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -524,32 +524,48 @@ static guint translate_row_col(guint r, guint c) case Orientation_Horz: switch (screen_desktop_layout.start_corner) { case Corner_TopLeft: - return r * screen_desktop_layout.columns + c; + return r % screen_desktop_layout.rows * + screen_desktop_layout.columns + + c % screen_desktop_layout.columns; case Corner_BottomLeft: - return (screen_desktop_layout.rows - 1 - r) * - screen_desktop_layout.columns + c; + return (screen_desktop_layout.rows - 1 - + r % screen_desktop_layout.rows) * + screen_desktop_layout.columns + + c % screen_desktop_layout.columns; case Corner_TopRight: - return r * screen_desktop_layout.columns + - (screen_desktop_layout.columns - 1 - c); + return r % screen_desktop_layout.rows * + screen_desktop_layout.columns + + (screen_desktop_layout.columns - 1 - + c % screen_desktop_layout.columns); case Corner_BottomRight: - return (screen_desktop_layout.rows - 1 - r) * + return (screen_desktop_layout.rows - 1 - + r % screen_desktop_layout.rows) * screen_desktop_layout.columns + - (screen_desktop_layout.columns - 1 - c); + (screen_desktop_layout.columns - 1 - + c % screen_desktop_layout.columns); } case Orientation_Vert: switch (screen_desktop_layout.start_corner) { case Corner_TopLeft: - return c * screen_desktop_layout.rows + r; + return c % screen_desktop_layout.columns * + screen_desktop_layout.rows + + r % screen_desktop_layout.rows; case Corner_BottomLeft: - return c * screen_desktop_layout.rows + - (screen_desktop_layout.rows - 1 - r); + return c % screen_desktop_layout.columns * + screen_desktop_layout.rows + + (screen_desktop_layout.rows - 1 - + r % screen_desktop_layout.rows); case Corner_TopRight: - return (screen_desktop_layout.columns - 1 - c) * - screen_desktop_layout.rows + r; + return (screen_desktop_layout.columns - 1 - + c % screen_desktop_layout.columns) * + screen_desktop_layout.rows + + r % screen_desktop_layout.rows; case Corner_BottomRight: - return (screen_desktop_layout.columns - 1 - c) * + return (screen_desktop_layout.columns - 1 - + c % screen_desktop_layout.columns) * screen_desktop_layout.rows + - (screen_desktop_layout.rows - 1 - r); + (screen_desktop_layout.rows - 1 - + r % screen_desktop_layout.rows); } } g_assert_not_reached();