Projects
Mega:24.03
xorg-x11-server
_service:tar_scm:0017-xwayland-Make-window_get_...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:0017-xwayland-Make-window_get_none_wm_owner-return-a-Wind.patch of Package xorg-x11-server
From 939a78925a1d591e6aaf291a6609b9c6e54ee6ce Mon Sep 17 00:00:00 2001 From: Roman Gilg <subdiff@gmail.com> Date: Wed, 15 Jan 2020 10:07:58 +0100 Subject: [PATCH xserver 17/24] xwayland: Make window_get_none_wm_owner return a Window instead of a Client Make window_get_none_wm_owner return the first non-wm-window instead of the owner (client) of the first non-wm-window and rename it to window_get_client_toplevel to match its new behavior. This is a preparation patch for switching to using the drawable coordinates in xwl_window_should_enable_viewport() Changes by Hans de Goede: - Split this change out into a separate patch for easier reviewing - Rename window_get_none_wm_owner to window_get_client_toplevel to match its new behavior Signed-off-by: Roman Gilg <subdiff@gmail.com> Acked-by: Olivier Fourdan <ofourdan@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 060f10062eb1761515b762b46cba56c7a53db72c) --- hw/xwayland/xwayland.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index f42b80b90..d70d729ae 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -579,10 +579,10 @@ window_is_wm_window(WindowPtr window) return CLIENT_ID(window->drawable.id) == xwl_screen->wm_client_id; } -static ClientPtr -window_get_none_wm_owner(WindowPtr window) +static WindowPtr +window_get_client_toplevel(WindowPtr window) { - ClientPtr client = wClient(window); + assert(window); /* If the toplevel window is owned by the window-manager, then the * actual client toplevel window has been reparented to some window-manager @@ -591,12 +591,12 @@ window_get_none_wm_owner(WindowPtr window) */ if (window_is_wm_window(window)) { if (window->firstChild && window->firstChild == window->lastChild) - return window_get_none_wm_owner(window->firstChild); + return window_get_client_toplevel(window->firstChild); else return NULL; /* Should never happen, skip resolution emulation */ } - return client; + return window; } static Bool @@ -608,14 +608,17 @@ xwl_window_should_enable_viewport(struct xwl_window *xwl_window, struct xwl_emulated_mode *emulated_mode; struct xwl_output *xwl_output; ClientPtr owner; + WindowPtr window; if (!xwl_screen_has_resolution_change_emulation(xwl_screen)) return FALSE; - owner = window_get_none_wm_owner(xwl_window->window); - if (!owner) + window = window_get_client_toplevel(xwl_window->window); + if (!window) return FALSE; + owner = wClient(window); + /* 1. Test if the window matches the emulated mode on one of the outputs * This path gets hit by most games / libs (e.g. SDL, SFML, OGRE) */ -- 2.25.2
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2