Bugfix: Don’t change to workspaces on different screens when scrolling through them (Thanks Mirko)

This fixes ticket #19
This commit is contained in:
Michael Stapelberg 2009-04-11 11:54:30 +02:00
parent 0216e84327
commit e3516d72f5
1 changed files with 6 additions and 5 deletions

View File

@ -252,11 +252,12 @@ static bool button_press_bar(xcb_connection_t *conn, xcb_button_press_event_t *e
/* Check if the button was one of button4 or button5 (scroll up / scroll down) */
if (event->detail == XCB_BUTTON_INDEX_4 || event->detail == XCB_BUTTON_INDEX_5) {
int dest_workspace = (event->detail == XCB_BUTTON_INDEX_4 ?
c_ws->num - 1 :
c_ws->num + 1);
if ((dest_workspace >= 0) && (dest_workspace < 10))
show_workspace(conn, dest_workspace+1);
int add = (event->detail == XCB_BUTTON_INDEX_4 ? -1 : 1);
for (int i = c_ws->num + add; (i >= 0) && (i < 10); i += add)
if (workspaces[i].screen == screen) {
show_workspace(conn, i+1);
return true;
}
return true;
}
i3Font *font = load_font(conn, config.font);