summaryrefslogtreecommitdiff
path: root/xine_sxfe_frontend.c
diff options
context:
space:
mode:
Diffstat (limited to 'xine_sxfe_frontend.c')
-rw-r--r--xine_sxfe_frontend.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/xine_sxfe_frontend.c b/xine_sxfe_frontend.c
index 98f3434a..621fd582 100644
--- a/xine_sxfe_frontend.c
+++ b/xine_sxfe_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_sxfe_frontend.c,v 1.3 2006-06-04 11:40:58 phintuka Exp $
+ * $Id: xine_sxfe_frontend.c,v 1.4 2006-06-06 07:57:41 phintuka Exp $
*
*/
@@ -465,20 +465,21 @@ static int sxfe_run(frontend_t *this_gen)
struct pollfd pfd[2];
pfd[0].fd = ConnectionNumber(this->display);
pfd[0].events = POLLIN;
- if(poll(pfd, 1, 500) < 1 || !(pfd[0].revents & POLLIN)) {
+ if(poll(pfd, 1, 50) < 1 || !(pfd[0].revents & POLLIN)) {
return 1;
}
}
-
- XNextEvent (this->display, &event);
-
- switch (event.type) {
- case Expose:
- if (event.xexpose.count == 0)
- xine_gui_send_vo_data (this->stream, XINE_GUI_SEND_EXPOSE_EVENT, &event);
- break;
- case ConfigureNotify:
+ while(keep_going && XPending(this->display) > 0) {
+ XNextEvent (this->display, &event);
+
+ switch (event.type) {
+ case Expose:
+ if (event.xexpose.count == 0)
+ xine_gui_send_vo_data (this->stream, XINE_GUI_SEND_EXPOSE_EVENT, &event);
+ break;
+
+ case ConfigureNotify:
{
XConfigureEvent *cev = (XConfigureEvent *) &event;
Window tmp_win;
@@ -499,8 +500,8 @@ static int sxfe_run(frontend_t *this_gen)
break;
}
- case KeyPress:
- case KeyRelease:
+ case KeyPress:
+ case KeyRelease:
{
XKeyEvent *kevent = (XKeyEvent *) &event;
KeySym ks;
@@ -525,7 +526,7 @@ static int sxfe_run(frontend_t *this_gen)
}
break;
- case ClientMessage:
+ case ClientMessage:
{
XClientMessageEvent *cmessage = (XClientMessageEvent *) &event;
if ( cmessage->message_type == this->sxfe_interrupt )
@@ -535,11 +536,12 @@ static int sxfe_run(frontend_t *this_gen)
/* we got a window deletion message from out window manager.*/
keep_going=0;
}
+ }
+
+ if (event.type == this->completion_event)
+ xine_gui_send_vo_data (this->stream, XINE_GUI_SEND_COMPLETION_EVENT, &event);
}
- if (event.type == this->completion_event)
- xine_gui_send_vo_data (this->stream, XINE_GUI_SEND_COMPLETION_EVENT, &event);
-
return keep_going;
}