From b1be9ee92cb34e9b6ece51f34d0454f403e2c10d Mon Sep 17 00:00:00 2001 From: Sascha Kruse Date: Sun, 27 Nov 2011 03:38:47 +0100 Subject: [PATCH] delete clicked msg --- dunst.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/dunst.c b/dunst.c index 725e843..7335d42 100644 --- a/dunst.c +++ b/dunst.c @@ -65,6 +65,7 @@ void drawmsg(void); void dunst_printf(int level, const char *fmt, ...); char *fix_markup(char *str); void free_msgqueue_t(msg_queue_t *elem); +void handle_mouse_click(XEvent ev); void handleXEvents(void); void initmsg(msg_queue_t *msg); char *string_replace(const char *needle, const char *replacement, char *haystack); @@ -395,6 +396,22 @@ free_msgqueue_t(msg_queue_t *elem) { free(elem); } +void +handle_mouse_click(XEvent ev) { + msg_queue_t *cur_msg = msgqueue; + int i; + if(ev.xbutton.button == Button3) { + delete_all_msg(); + } else if(ev.xbutton.button == Button1) { + i = ev.xbutton.y / font_h; + printf("i: %d\n",i); + for(i = i; i > 0; i--) { + cur_msg = cur_msg->next; + } + delete_msg(cur_msg); + } +} + void handleXEvents(void) { XEvent ev; @@ -414,11 +431,7 @@ handleXEvents(void) { break; case ButtonPress: if(ev.xbutton.window == win) { - if(ev.xbutton.button == Button1) { - delete_msg(NULL); - } else if(ev.xbutton.button == Button3) { - delete_all_msg(); - } + handle_mouse_click(ev); } break; case KeyPress: