X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=ca8f4ffbf7dacdc4a35274d9d6152f181e25d478;hb=b4a0127130213dba32519e1b478257228aa4dc10;hp=05d50f67c14e085d3c4ec6117c8ab29b77045d07;hpb=2cccd91fa633d9bfefd46073981276cb29fda5e7;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 05d50f6..ca8f4ff 100644 --- a/src/tint.c +++ b/src/tint.c @@ -223,6 +223,20 @@ void window_action (Task *tsk, int action) windows_set_desktop(tsk->win, desk); if (desk == server.desktop) set_active(tsk->win); + break; + case NEXT_TASK: + if (task_active) { + Task *tsk1; + tsk1 = next_task(task_active); + set_active(tsk1->win); + } + break; + case PREV_TASK: + if (task_active) { + Task *tsk1; + tsk1 = prev_task(task_active); + set_active(tsk1->win); + } } } @@ -421,6 +435,8 @@ void event_property_notify (XEvent *e) else return; } + else + return; } } //printf("atom root_win = %s, %s\n", XGetAtomName(server.dsp, at), tsk->title); @@ -693,6 +709,19 @@ int main (int argc, char *argv[]) // Wait for X Event or a Timer if (pselect(max_fd+1, &fdset, 0, 0, 0, &empty_mask) > 0) { + // we need to iterate over the whole timer list, since fd_set can only be checked with the + // brute force method FD_ISSET for every possible timer + timer_iter = timer_list; + while (timer_iter) { + timer = timer_iter->data; + if (FD_ISSET(timer->id, &fdset)) { + uint64_t dummy; + if ( -1 != read(timer->id, &dummy, sizeof(uint64_t)) ) + timer->_callback(); + } + timer_iter = timer_iter->next; + } + while (XPending (server.dsp)) { XNextEvent(server.dsp, &e); @@ -770,19 +799,6 @@ int main (int argc, char *argv[]) break; } } - - // we need to iterate over the whole timer list, since fd_set can only be checked with the - // brute force method FD_ISSET for every possible timer - timer_iter = timer_list; - while (timer_iter) { - timer = timer_iter->data; - if (FD_ISSET(timer->id, &fdset)) { - uint64_t dummy; - read(timer->id, &dummy, sizeof(uint64_t)); - timer->_callback(); - } - timer_iter = timer_iter->next; - } } switch (signal_pending) {