exit(0);
}
if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) {
- printf("tint2 version 0.7.svn\n");
+ printf("tint2 version 0.8\n");
exit(0);
}
if (!strcmp(argv[i], "-c")) {
}
-Taskbar *click_taskbar (Panel *panel, int x, int y)
-{
- Taskbar *tskbar;
- int i;
-
- if (panel_horizontal) {
- for (i=0; i < panel->nb_desktop ; i++) {
- tskbar = &panel->taskbar[i];
- if (tskbar->area.on_screen && x >= tskbar->area.posx && x <= (tskbar->area.posx + tskbar->area.width))
- return tskbar;
- }
- }
- else {
- for (i=0; i < panel->nb_desktop ; i++) {
- tskbar = &panel->taskbar[i];
- if (tskbar->area.on_screen && y >= tskbar->area.posy && y <= (tskbar->area.posy + tskbar->area.height))
- return tskbar;
- }
- }
- return NULL;
-}
-
-
-Task *click_task (Panel *panel, int x, int y)
-{
- GSList *l0;
- Taskbar *tskbar;
-
- if ( (tskbar = click_taskbar(panel, x, y)) ) {
- if (panel_horizontal) {
- Task *tsk;
- for (l0 = tskbar->area.list; l0 ; l0 = l0->next) {
- tsk = l0->data;
- if (tsk->area.on_screen && x >= tsk->area.posx && x <= (tsk->area.posx + tsk->area.width)) {
- return tsk;
- }
- }
- }
- else {
- Task *tsk;
- for (l0 = tskbar->area.list; l0 ; l0 = l0->next) {
- tsk = l0->data;
- if (tsk->area.on_screen && y >= tsk->area.posy && y <= (tsk->area.posy + tsk->area.height)) {
- return tsk;
- }
- }
- }
- }
- return NULL;
-}
-
-
-int click_padding(Panel *panel, int x, int y)
-{
- if (panel_horizontal) {
- if (x < panel->area.paddingxlr || x > panel->area.width-panel->area.paddingxlr)
- return 1;
- }
- else {
- if (y < panel->area.paddingxlr || y > panel->area.height-panel->area.paddingxlr)
- return 1;
- }
- return 0;
-}
-
-
-int click_clock(Panel *panel, int x, int y)
-{
- Clock clk = panel->clock;
- if (panel_horizontal) {
- if (clk.area.on_screen && x >= clk.area.posx && x <= (clk.area.posx + clk.area.width))
- return TRUE;
- } else {
- if (clk.area.on_screen && y >= clk.area.posy && y <= (clk.area.posy + clk.area.height))
- return TRUE;
- }
- return FALSE;
-}
-
-
void window_action (Task *tsk, int action)
{
if (!tsk) return;
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);
+ }
}
}
else
return;
}
+ else
+ return;
}
}
//printf("atom root_win = %s, %s\n", XGetAtomName(server.dsp, at), tsk->title);
// 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);
case MotionNotify: {
if (!g_tooltip.enabled) break;
Panel* panel = get_panel(e.xmotion.window);
- Task* task = click_task(panel, e.xmotion.x, e.xmotion.y);
- if (task)
- tooltip_trigger_show(task, e.xmotion.x_root, e.xmotion.y_root);
+ Area* area = click_area(panel, e.xmotion.x, e.xmotion.y);
+ if (area->_get_tooltip_text)
+ tooltip_trigger_show(area, panel, e.xmotion.x_root, e.xmotion.y_root);
else
tooltip_trigger_hide();
break;
tooltip_update();
break;
-
case PropertyNotify:
event_property_notify(&e);
break;
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) {