xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 30 14:31:58 UTC 2022


 hw/xwayland/xwayland-output.c |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 2ec7c1680a905cbf8ac3744415bc880d31f3f2fc
Author: zhoulei <zhoulei at kylinos.cn>
Date:   Mon Jan 25 19:41:16 2021 +0800

    xwayland: Change randr_output status when call xwl_output_remove()
    
    The function xwl_output_remove() is called when removing a monitor, but
    the actual status of the RandR output does not change.
    
    So, when RRTellChanged() is called from update_screen_size(), it won't
    have the output connection status up to date in the RandR event
    RROutputChangeNotifyEvent and X11 applications relying on that event
    like Qt will fail to emit their signal QGuiApplication::screenRemoved.
    
    To avoid that issue, make sure to mark the RandR output as disconnected
    prior to call xwl_output_remove().
    
    Fix commit 204f10c29 ("xwayland: Call RRTellChanged if the RandR configuration may have changed")
    
    Signed-off-by: zhoulei <zhoulei at kylinos.cn>
    Signed-off-by: Morose <chenlinxiang at kylinos.cn>
    Acked-by: Michel Dänzer <mdaenzer at redhat.com>
    Reviewed-by: Olivier Fourdan <ofourdan at redhat.com>

diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
index 58764b7c3..1dd5a5f89 100644
--- a/hw/xwayland/xwayland-output.c
+++ b/hw/xwayland/xwayland-output.c
@@ -832,6 +832,8 @@ xwl_output_remove(struct xwl_output *xwl_output)
 
     xorg_list_del(&xwl_output->link);
 
+    RROutputSetConnection(xwl_output->randr_output, RR_Disconnected);
+
     xorg_list_for_each_entry(it, &xwl_screen->output_list, link)
         output_get_new_size(it, &width, &height);
     update_screen_size(xwl_output, width, height);


More information about the xorg-commit mailing list