diff --git a/0001-xwayland-Port-to-new-damage-API.patch b/0001-xwayland-Port-to-new-damage-API.patch index 2f6e987..7397a6b 100644 --- a/0001-xwayland-Port-to-new-damage-API.patch +++ b/0001-xwayland-Port-to-new-damage-API.patch @@ -1,6 +1,6 @@ -From cef3bbdd16e12c344e40e10ede0e511044e3a8df Mon Sep 17 00:00:00 2001 +From 99bc1cf93e274c3f7620d757c5d4fbe40229e810 Mon Sep 17 00:00:00 2001 From: Adam Jackson -Date: Fri, 25 Oct 2013 12:33:38 -0400 +Date: Fri, 25 Oct 2013 14:35:36 -0400 Subject: [PATCH] xwayland: Port to new damage API Signed-off-by: Adam Jackson @@ -15,10 +15,11 @@ index c03855c..0cb4f28 100644 @@ -190,7 +190,6 @@ xwl_unrealize_window(WindowPtr window) xorg_list_del(&xwl_window->link); if (RegionNotEmpty(DamageRegion(xwl_window->damage))) - xorg_list_del(&xwl_window->link_damage); + xorg_list_del(&xwl_window->link_damage); - DamageUnregister(&window->drawable, xwl_window->damage); DamageDestroy(xwl_window->damage); free(xwl_window); dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL); --- +-- 1.8.3.1 + diff --git a/0031-XWayland-Don-t-commit-empty-surfaces.patch b/0031-XWayland-Don-t-commit-empty-surfaces.patch index 078cf39..39fd95b 100644 --- a/0031-XWayland-Don-t-commit-empty-surfaces.patch +++ b/0031-XWayland-Don-t-commit-empty-surfaces.patch @@ -21,11 +21,12 @@ index 20db80c..5045e65 100644 +++ b/hw/xfree86/xwayland/xwayland-window.c @@ -80,7 +80,6 @@ xwl_window_attach(struct xwl_window *xwl_window, PixmapPtr pixmap) wl_surface_damage(xwl_window->surface, 0, 0, - pixmap->drawable.width, - pixmap->drawable.height); + pixmap->drawable.width, + pixmap->drawable.height); - wl_surface_commit(xwl_window->surface); - + callback = wl_display_sync(xwl_screen->display); wl_callback_add_listener(callback, &free_pixmap_listener, pixmap); --- +-- 1.8.3.1 + diff --git a/0034-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch b/0034-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch index 838c50f..ef4cb33 100644 --- a/0034-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch +++ b/0034-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch @@ -16,17 +16,17 @@ index 5045e65..c03855c 100644 #include #include -#include - + #include #include -#include #include - + #include "xwayland.h" @@ -86,49 +84,6 @@ xwl_window_attach(struct xwl_window *xwl_window, PixmapPtr pixmap) pixmap->refcnt++; } - + -static Bool -xwl_create_window(WindowPtr window) -{ @@ -75,8 +75,8 @@ index 5045e65..c03855c 100644 { @@ -290,12 +245,6 @@ xwl_screen_init_window(struct xwl_screen *xwl_screen, ScreenPtr screen) if (!dixRegisterPrivateKey(&xwl_window_private_key, PRIVATE_WINDOW, 0)) - return BadAlloc; - + return BadAlloc; + - xwl_screen->CreateWindow = screen->CreateWindow; - screen->CreateWindow = xwl_create_window; - @@ -85,6 +85,7 @@ index 5045e65..c03855c 100644 - xwl_screen->RealizeWindow = screen->RealizeWindow; screen->RealizeWindow = xwl_realize_window; - --- + +-- 1.8.3.1 + diff --git a/0039-xwayland-Handle-keymap-changes.patch b/0039-xwayland-Handle-keymap-changes.patch index 32cf3af..50e0227 100644 --- a/0039-xwayland-Handle-keymap-changes.patch +++ b/0039-xwayland-Handle-keymap-changes.patch @@ -15,17 +15,17 @@ index d031b34..ebf1af1 100644 @@ -143,7 +143,10 @@ xwl_keyboard_proc(DeviceIntPtr device, int what) switch (what) { case DEVICE_INIT: - device->public.on = FALSE; + device->public.on = FALSE; - len = strnlen(xwl_seat->keymap, xwl_seat->keymap_size); + if (xwl_seat->keymap) + len = strnlen(xwl_seat->keymap, xwl_seat->keymap_size); + else + len = 0; if (!InitKeyboardDeviceStructFromString(device, xwl_seat->keymap, - len, - NULL, xwl_keyboard_control)) + len, + NULL, xwl_keyboard_control)) @@ -453,12 +456,42 @@ keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard, - uint32_t format, int fd, uint32_t size) + uint32_t format, int fd, uint32_t size) { struct xwl_seat *xwl_seat = data; + DeviceIntPtr master; @@ -34,7 +34,7 @@ index d031b34..ebf1af1 100644 + + if (xwl_seat->keymap) + munmap(xwl_seat->keymap, xwl_seat->keymap_size); - + xwl_seat->keymap_size = size; xwl_seat->keymap = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0); - if (xwl_seat->keymap == MAP_FAILED) @@ -64,23 +64,24 @@ index d031b34..ebf1af1 100644 + XkbDeviceApplyKeymap(master, xkb); + + XkbFreeKeyboard(xkb, XkbAllComponentsMask, TRUE); - + + out: close(fd); } - + diff --git a/include/input.h b/include/input.h index 6573a3a..1edcedc 100644 --- a/include/input.h +++ b/include/input.h @@ -508,7 +508,7 @@ extern int AttachDevice(ClientPtr client, DeviceIntPtr slave, DeviceIntPtr master); - + extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd); -extern DeviceIntPtr GetMaster(DeviceIntPtr dev, int type); +extern _X_EXPORT DeviceIntPtr GetMaster(DeviceIntPtr dev, int type); - + extern _X_EXPORT int AllocDevicePair(ClientPtr client, const char *name, --- +-- 1.8.3.1 +