herbe

[fork] notifications
Log | Files | Refs | README | LICENSE

commit db1e571082a915e3c724015e8d0a9ec0c8378a0d
parent b8e91b6164007f305727034ae20722d078c21dba
Author: Samuel Dudik <samuel.dudik@gmail.com>
Date:   Thu, 30 Jul 2020 14:41:01 +0200

Add timeout functionality

Diffstat:
Mmain.c | 40+++++++++++++++++++++++++++++-----------
1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/main.c b/main.c @@ -2,13 +2,28 @@ #include <X11/Xft/Xft.h> #include <stdio.h> #include <stdlib.h> +#include <signal.h> +#include <unistd.h> #include "config.h" -int main(int argc, char *argv[]) +Display *display; +Window window; + +void expire() { - Display *display = XOpenDisplay(NULL); XEvent event; + event.type = ButtonPress; + XSendEvent(display, window, 0, 0, &event); + XFlush(display); +} + +int main(int argc, char *argv[]) +{ + signal(SIGALRM, expire); + alarm(duration); + + display = XOpenDisplay(NULL); if (display == NULL) { @@ -36,17 +51,18 @@ int main(int argc, char *argv[]) unsigned short x = pos_x; unsigned short y = pos_y; int height = font->ascent - font->descent + text_padding * 2; - switch (corner) { - case down_right: - y = window_height - height - border_size * 2 - pos_y; - case top_right: - x = window_width - width - border_size * 2 - pos_x; - break; - case down_left: - y = window_height - height - border_size * 2 - pos_y; + switch (corner) + { + case down_right: + y = window_height - height - border_size * 2 - pos_y; + case top_right: + x = window_width - width - border_size * 2 - pos_x; + break; + case down_left: + y = window_height - height - border_size * 2 - pos_y; } - Window window = XCreateWindow( + window = XCreateWindow( display, root, x, y, width, height, border_size, DefaultDepth(display, screen), CopyFromParent, @@ -62,6 +78,8 @@ int main(int argc, char *argv[]) // TODO free xftcolor + XEvent event; + while (1) { XNextEvent(display, &event);