[Spice-devel] [PATCH] spicec-x11: Fix going into a never ending loop upon xrandr event (#628573)

Alexander Larsson alexl at redhat.com
Thu Sep 2 00:51:04 PDT 2010


On Wed, 2010-09-01 at 20:15 +0200, Hans de Goede wrote:
> ---
>  client/x11/platform.cpp |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/client/x11/platform.cpp b/client/x11/platform.cpp
> index 8292d44..1f25a7f 100644
> --- a/client/x11/platform.cpp
> +++ b/client/x11/platform.cpp
> @@ -778,6 +778,11 @@ DynamicScreen::DynamicScreen(Display* display, int screen, int& next_mon_id)
>      platform_win = XCreateSimpleWindow(display, RootWindow(display, screen), 0, 0, 1, 1, 0, 0, 0);
>      XSelectInput(display, platform_win, StructureNotifyMask);
>      XRRSelectInput(display, platform_win, RRScreenChangeNotifyMask);
> +
> +    Monitor::self_monitors_change++;
> +    process_monitor_configure_events(platform_win);
> +    Monitor::self_monitors_change--;
> +
>      XPlatform::set_win_proc(platform_win, root_win_proc);
>      intern_clipboard_atoms();
>      X_DEBUG_SYNC(display);

Does this really work? I guess the events come from the XRRSelectInput
call, but there is no guarantee that this has even been sent to the
xserver (XFlush), even less so gotten the reply into the client event
queue. Shouldn't we have some XSync thing here?





More information about the Spice-devel mailing list