summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-08-30 03:05:38 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-08-30 03:05:38 +0200
commita1b90cb27d11c974523f39c8a11a9839851a3eed (patch)
treeb9a4a31cf88d663551be52f933e6d5d6d2b89f69
parentb54a969c469bb41ae82de343b1e85f376f48f9ec (diff)
capture close button to exit more gracefully
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
-rw-r--r--src/mtview.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mtview.c b/src/mtview.c
index 0ea4688..afa6e2a 100644
--- a/src/mtview.c
+++ b/src/mtview.c
@@ -36,7 +36,6 @@ static void clear_screen(struct windata *w)
36{ 36{
37 XSetForeground(w->dsp, w->gc, w->black); 37 XSetForeground(w->dsp, w->gc, w->black);
38 XFillRectangle(w->dsp, w->win, w->gc, 0, 0, w->width, w->height); 38 XFillRectangle(w->dsp, w->win, w->gc, 0, 0, w->width, w->height);
39 XFlush(w->dsp);
40} 39}
41 40
42static void output_touch(struct touch_dev *dev, struct windata *w, 41static void output_touch(struct touch_dev *dev, struct windata *w,
@@ -111,16 +110,17 @@ static void event_loop(struct touch_dev *dev, int fd, struct windata *w)
111 dev->priv = w; 110 dev->priv = w;
112 111
113 XSelectInput(w->dsp, w->win, 112 XSelectInput(w->dsp, w->win,
114 ButtonPressMask | ButtonReleaseMask | ExposureMask); 113 ButtonPressMask | ButtonReleaseMask |
114 ExposureMask | StructureNotifyMask);
115 115
116 clear_screen(w); 116 clear_screen(w);
117 while (1) { 117 while (1) {
118 while(!touch_dev_idle(dev, fd, 1000)) 118 XFlush(w->dsp);
119 while(!touch_dev_idle(dev, fd, 100))
119 touch_dev_pull(dev, fd); 120 touch_dev_pull(dev, fd);
120 if (XEventsQueued(w->dsp, QueuedAlready)) { 121 if (XEventsQueued(w->dsp, QueuedAlready)) {
121 XNextEvent(w->dsp, &ev); 122 XNextEvent(w->dsp, &ev);
122 if (ev.type == ButtonRelease) 123 break;
123 break;
124 } 124 }
125 } 125 }
126} 126}