[lfs-patches] r3352 - trunk/xorg-server

fernando at higgs.linuxfromscratch.org fernando at higgs.linuxfromscratch.org
Tue Feb 9 11:27:29 PST 2016


Author: fernando
Date: Tue Feb  9 11:27:29 2016
New Revision: 3352

Log:
:%s/
• Add xorg-server-1.18.1-wayland_190-1.patch.
• Update xorg-server add_prime_support patch version.

Added:
   trunk/xorg-server/xorg-server-1.18.1-add_prime_support-1.patch   (contents, props changed)
   trunk/xorg-server/xorg-server-1.18.1-wayland_190-1.patch

Added: trunk/xorg-server/xorg-server-1.18.1-add_prime_support-1.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/xorg-server/xorg-server-1.18.1-add_prime_support-1.patch	Tue Feb  9 11:27:29 2016	(r3352)
@@ -0,0 +1 @@
+link xorg-server-1.17.2-add_prime_support-1.patch
\ No newline at end of file

Added: trunk/xorg-server/xorg-server-1.18.1-wayland_190-1.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/xorg-server/xorg-server-1.18.1-wayland_190-1.patch	Tue Feb  9 11:27:29 2016	(r3352)
@@ -0,0 +1,163 @@
+Submitted By:            Fernando de Oliveira <famobr at yahoo dot com dot br>
+Date:                    2016-02-09
+Initial Package Version: 1.18.1
+Upstream Status:         submitted
+Origin:                  upstream
+URL1:                    https://patchwork.freedesktop.org/patch/72945/
+URL2:                    https://patchwork.freedesktop.org/patch/72951/
+Description:             1. Add hybrid full-size/empty-clip mode to SetRootClip
+                         2. xwayland: fix a crash on output removal
+================================================================================
+
+
+================================================================================
+diff --git a/dix/window.c b/dix/window.c
+index 25d29ec..9726ade 100644
+--- a/dix/window.c
++++ b/dix/window.c
+@@ -3647,7 +3647,7 @@ WindowParentHasDeviceCursor(WindowPtr pWin,
+  *	all of the windows
+  */
+ void
+-SetRootClip(ScreenPtr pScreen, Bool enable)
++SetRootClip(ScreenPtr pScreen, int enable)
+ {
+     WindowPtr pWin = pScreen->root;
+     WindowPtr pChild;
+@@ -3655,6 +3655,7 @@ SetRootClip(ScreenPtr pScreen, Bool enable)
+     Bool anyMarked = FALSE;
+     WindowPtr pLayerWin;
+     BoxRec box;
++    enum RootClipMode mode = enable;
+ 
+     if (!pWin)
+         return;
+@@ -3684,18 +3685,23 @@ SetRootClip(ScreenPtr pScreen, Bool enable)
+      * that assume the root borderClip can't change well, normally
+      * it doesn't...)
+      */
+-    if (enable) {
++    if (mode != ROOT_SIZE_NONE) {
++        pWin->drawable.width = pScreen->width;
++        pWin->drawable.height = pScreen->height;
++
+         box.x1 = 0;
+         box.y1 = 0;
+         box.x2 = pScreen->width;
+         box.y2 = pScreen->height;
++
+         RegionInit(&pWin->winSize, &box, 1);
+         RegionInit(&pWin->borderSize, &box, 1);
+-        if (WasViewable)
+-            RegionReset(&pWin->borderClip, &box);
+-        pWin->drawable.width = pScreen->width;
+-        pWin->drawable.height = pScreen->height;
+         RegionBreak(&pWin->clipList);
++
++	if (WasViewable && mode == ROOT_SIZE_SCREEN)
++            RegionReset(&pWin->borderClip, &box);
++	else
++            RegionEmpty(&pWin->borderClip);
+     }
+     else {
+         RegionEmpty(&pWin->borderClip);
+diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c
+index 7f6fb9a..5557818 100644
+--- a/hw/xwayland/xwayland-glamor.c
++++ b/hw/xwayland/xwayland-glamor.c
+@@ -236,7 +236,7 @@ xwl_glamor_create_screen_resources(ScreenPtr screen)
+     if (xwl_screen->rootless) {
+         screen->devPrivate =
+             fbCreatePixmap(screen, 0, 0, screen->rootDepth, 0);
+-        SetRootClip(screen, FALSE);
++        SetRootClip(screen, ROOT_SIZE_SCREEN_EMPTY);
+     }
+     else {
+         screen->devPrivate =
+diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
+index e9ec190..f5c7194 100644
+--- a/hw/xwayland/xwayland-output.c
++++ b/hw/xwayland/xwayland-output.c
+@@ -164,8 +164,7 @@ update_screen_size(struct xwl_output *xwl_output, int width, int height)
+     struct xwl_screen *xwl_screen = xwl_output->xwl_screen;
+     double mmpd;
+ 
+-    if (!xwl_screen->rootless)
+-        SetRootClip(xwl_screen->screen, FALSE);
++    SetRootClip(xwl_screen->screen, FALSE);
+ 
+     xwl_screen->width = width;
+     xwl_screen->height = height;
+@@ -181,6 +180,11 @@ update_screen_size(struct xwl_output *xwl_output, int width, int height)
+         xwl_screen->screen->mmHeight = height * mmpd;
+     }
+ 
++    if (xwl_screen->rootless)
++        SetRootClip(xwl_screen->screen, ROOT_SIZE_SCREEN_EMPTY);
++    else
++        SetRootClip(xwl_screen->screen, ROOT_SIZE_SCREEN);
++
+     if (xwl_screen->screen->root) {
+         xwl_screen->screen->root->drawable.width = width;
+         xwl_screen->screen->root->drawable.height = height;
+@@ -188,9 +192,6 @@ update_screen_size(struct xwl_output *xwl_output, int width, int height)
+     }
+ 
+     update_desktop_dimensions();
+-
+-    if (!xwl_screen->rootless)
+-        SetRootClip(xwl_screen->screen, TRUE);
+ }
+ 
+ static void
+diff --git a/hw/xwayland/xwayland-shm.c b/hw/xwayland/xwayland-shm.c
+index 7072be4..2fbe74d 100644
+--- a/hw/xwayland/xwayland-shm.c
++++ b/hw/xwayland/xwayland-shm.c
+@@ -282,7 +282,7 @@ xwl_shm_create_screen_resources(ScreenPtr screen)
+     if (xwl_screen->rootless) {
+         screen->devPrivate =
+             fbCreatePixmap(screen, 0, 0, screen->rootDepth, 0);
+-        SetRootClip(screen, FALSE);
++        SetRootClip(screen, ROOT_SIZE_SCREEN_EMPTY);
+     }
+     else
+         screen->devPrivate =
+diff --git a/include/window.h b/include/window.h
+index f13ed51..67c9f10 100644
+--- a/include/window.h
++++ b/include/window.h
+@@ -72,6 +72,12 @@ struct _Cursor;
+ typedef struct _BackingStore *BackingStorePtr;
+ typedef struct _Window *WindowPtr;
+ 
++enum RootClipMode {
++	ROOT_SIZE_NONE = 0, /**< resize the root window to 0x0 */
++	ROOT_SIZE_SCREEN = 1, /**< resize the root window to fit screen */
++	ROOT_SIZE_SCREEN_EMPTY = 2, /**< as above, but empty clip */
++};
++
+ typedef int (*VisitWindowProcPtr) (WindowPtr pWin,
+                                    void *data);
+ 
+@@ -221,7 +227,7 @@ extern _X_EXPORT RegionPtr CreateBoundingShape(WindowPtr /* pWin */ );
+ 
+ extern _X_EXPORT RegionPtr CreateClipShape(WindowPtr /* pWin */ );
+ 
+-extern _X_EXPORT void SetRootClip(ScreenPtr pScreen, Bool enable);
++extern _X_EXPORT void SetRootClip(ScreenPtr pScreen, int enable);
+ extern _X_EXPORT void PrintWindowTree(void);
+ extern _X_EXPORT void PrintPassiveGrabs(void);
+ 
+diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c
+index e9ec190..abb73ab 100644
+--- a/hw/xwayland/xwayland-output.c
++++ b/hw/xwayland/xwayland-output.c
+@@ -298,6 +298,7 @@ xwl_output_destroy(struct xwl_output *xwl_output)
+ 
+     wl_output_destroy(xwl_output->output);
+     xorg_list_del(&xwl_output->link);
++    RRCrtcDestroy(xwl_output->randr_crtc);
+     RROutputDestroy(xwl_output->randr_output);
+ 
+     xorg_list_for_each_entry(it, &xwl_screen->output_list, link)


More information about the patches mailing list