mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-02-04 17:40:31 +01:00
Check for X11 events before selecting (FDO bug #15293)
This commit is contained in:
parent
193ebb7083
commit
0bfc5e8d23
2 changed files with 21 additions and 6 deletions
|
|
@ -1,4 +1,11 @@
|
|||
2008-03-26 Colin Walters <walters@verbum.org>
|
||||
2008-03-31 Colin Walters <walters@verbum.org>
|
||||
|
||||
Patch from Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* tools/dbus-launch-x11.c: Check for X11 events before
|
||||
selecting (FDO bug #15293)
|
||||
|
||||
2008-03-31 Colin Walters <walters@verbum.org>
|
||||
|
||||
Patch from Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
|
|
|
|||
|
|
@ -458,6 +458,17 @@ kill_bus_when_session_ends (void)
|
|||
|
||||
while (TRUE)
|
||||
{
|
||||
#ifdef DBUS_BUILD_X11
|
||||
/* Dump events on the floor, and let
|
||||
* IO error handler run if we lose
|
||||
* the X connection. It's important to
|
||||
* run this before going into select() since
|
||||
* we might have queued outgoing messages or
|
||||
* events.
|
||||
*/
|
||||
x11_handle_event ();
|
||||
#endif
|
||||
|
||||
FD_ZERO (&read_set);
|
||||
FD_ZERO (&err_set);
|
||||
|
||||
|
|
@ -472,7 +483,7 @@ kill_bus_when_session_ends (void)
|
|||
FD_SET (x_fd, &read_set);
|
||||
FD_SET (x_fd, &err_set);
|
||||
}
|
||||
|
||||
|
||||
select (MAX (tty_fd, x_fd) + 1,
|
||||
&read_set, NULL, &err_set, NULL);
|
||||
|
||||
|
|
@ -483,15 +494,12 @@ kill_bus_when_session_ends (void)
|
|||
}
|
||||
|
||||
#ifdef DBUS_BUILD_X11
|
||||
/* Dump events on the floor, and let
|
||||
* IO error handler run if we lose
|
||||
* the X connection
|
||||
/* Events will be processed before we select again
|
||||
*/
|
||||
if (x_fd >= 0)
|
||||
verbose ("X fd condition reading = %d error = %d\n",
|
||||
FD_ISSET (x_fd, &read_set),
|
||||
FD_ISSET (x_fd, &err_set));
|
||||
x11_handle_event ();
|
||||
#endif
|
||||
|
||||
if (tty_fd >= 0)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue