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@kylinos.cn>
Signed-off-by: Morose <chenlinxiang@kylinos.cn>
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
This commit is contained in:
parent
cf30498fb8
commit
2ec7c1680a
|
@ -832,6 +832,8 @@ xwl_output_remove(struct xwl_output *xwl_output)
|
||||||
|
|
||||||
xorg_list_del(&xwl_output->link);
|
xorg_list_del(&xwl_output->link);
|
||||||
|
|
||||||
|
RROutputSetConnection(xwl_output->randr_output, RR_Disconnected);
|
||||||
|
|
||||||
xorg_list_for_each_entry(it, &xwl_screen->output_list, link)
|
xorg_list_for_each_entry(it, &xwl_screen->output_list, link)
|
||||||
output_get_new_size(it, &width, &height);
|
output_get_new_size(it, &width, &height);
|
||||||
update_screen_size(xwl_output, width, height);
|
update_screen_size(xwl_output, width, height);
|
||||||
|
|
Loading…
Reference in New Issue