Projects
openEuler:24.03:SP1:Everything
xorg-x11-server
_service:tar_scm:0006-xwayland-Add-per-client-p...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:0006-xwayland-Add-per-client-private-data.patch of Package xorg-x11-server
From 80ca38c4428a499a795084dc696c390b707749b9 Mon Sep 17 00:00:00 2001 From: Hans de Goede <hdegoede@redhat.com> Date: Thu, 29 Aug 2019 22:45:12 +0200 Subject: [PATCH xserver 06/24] xwayland: Add per client private data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add per client private data, which for now is empty. This is a preparation patch for adding randr/vidmode resolution change emulation. Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> Acked-by: Michel Dänzer <mdaenzer@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> (cherry picked from commit 905cb8b9e27add5f49a45fe167a0005bf05218bc) --- hw/xwayland/xwayland.c | 14 ++++++++++++++ hw/xwayland/xwayland.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 3c50396f1..b0e37ceb9 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -135,11 +135,18 @@ ddxProcessArgument(int argc, char *argv[], int i) return 0; } +static DevPrivateKeyRec xwl_client_private_key; static DevPrivateKeyRec xwl_window_private_key; static DevPrivateKeyRec xwl_screen_private_key; static DevPrivateKeyRec xwl_pixmap_private_key; static DevPrivateKeyRec xwl_damage_private_key; +struct xwl_client * +xwl_client_get(ClientPtr client) +{ + return dixLookupPrivate(&client->devPrivates, &xwl_client_private_key); +} + static struct xwl_window * xwl_window_get(WindowPtr window) { @@ -1143,6 +1150,13 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) return FALSE; if (!dixRegisterPrivateKey(&xwl_damage_private_key, PRIVATE_WINDOW, 0)) return FALSE; + /* There are no easy to use new / delete client hooks, we could use a + * ClientStateCallback, but it is easier to let the dix code manage the + * memory for us. This will zero fill the initial xwl_client data. + */ + if (!dixRegisterPrivateKey(&xwl_client_private_key, PRIVATE_CLIENT, + sizeof(struct xwl_client))) + return FALSE; dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen); xwl_screen->screen = pScreen; diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h index c66997f00..593e92b64 100644 --- a/hw/xwayland/xwayland.h +++ b/hw/xwayland/xwayland.h @@ -379,8 +379,13 @@ struct xwl_output { Bool xdg_output_done; }; +struct xwl_client { +}; + void xwl_window_create_frame_callback(struct xwl_window *xwl_window); +struct xwl_client *xwl_client_get(ClientPtr client); + void xwl_sync_events (struct xwl_screen *xwl_screen); void xwl_surface_damage(struct xwl_screen *xwl_screen, struct wl_surface *surface, -- 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