fix grip workspace cycling
Dana Jansens danakj@orodu.net
1 files changed,
30 insertions(+),
14 deletions(-)
jump to
M
openbox/action.c
→
openbox/action.c
@@ -524,32 +524,48 @@ switch (screen_desktop_layout.orientation) {
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();