aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2019-12-28 20:04:33 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2020-01-06 00:50:30 +0100
commit203891d11875e0096248ad509ddd74a62096663f (patch)
tree084c29c6047e7f075f13a31805b7311d75b2c8f1
parenta6335cf3d8b3f281944347d12a93fa38c70e8ada (diff)
downloadnx-libs-203891d11875e0096248ad509ddd74a62096663f.tar.gz
nx-libs-203891d11875e0096248ad509ddd74a62096663f.tar.bz2
nx-libs-203891d11875e0096248ad509ddd74a62096663f.zip
Screen.c: code simplification/scope
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c451
1 files changed, 185 insertions, 266 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index bc998569f..4b9b37a7a 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -2192,19 +2192,17 @@ Bool nxagentCloseScreen(ScreenPtr pScreen)
static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable)
{
WindowPtr pWin = pScreen->root;
- WindowPtr pChild;
Bool WasViewable = (Bool)(pWin->viewable);
Bool anyMarked = FALSE;
- RegionPtr pOldClip = NULL, bsExposed;
+ RegionPtr pOldClip = NULL;
#ifdef DO_SAVE_UNDERS
Bool dosave = FALSE;
#endif
WindowPtr pLayerWin;
- BoxRec box;
if (WasViewable)
{
- for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib)
+ for (WindowPtr pChild = pWin->firstChild; pChild; pChild = pChild->nextSib)
{
(void) (*pScreen->MarkOverlappedWindows)(pChild,
pChild,
@@ -2216,9 +2214,7 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable)
{
if (HasBorder (pWin))
{
- RegionPtr borderVisible;
-
- borderVisible = RegionCreate(NullBox, 1);
+ RegionPtr borderVisible = RegionCreate(NullBox, 1);
RegionSubtract(borderVisible,
&pWin->borderClip, &pWin->winSize);
pWin->valdata->before.borderVisible = borderVisible;
@@ -2229,15 +2225,12 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable)
/*
* Use REGION_BREAK to avoid optimizations in ValidateTree
- * that assume the root borderClip can't change well, normally
+ * that assume the root borderClip can't change. Well, normally
* it doesn't...)
*/
if (enable)
{
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = pScreen->width;
- box.y2 = pScreen->height;
+ BoxRec box = {.x1 = 0, .y1 = 0, .x2 = pScreen->width, .y2 = pScreen->height};
RegionInit(&pWin->winSize, &box, 1);
RegionInit(&pWin->borderSize, &box, 1);
if (WasViewable)
@@ -2290,14 +2283,14 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable)
{
if (!WasViewable)
pOldClip = &pWin->clipList; /* a convenient empty region */
- bsExposed = (*pScreen->TranslateBackingStore)
+ RegionPtr bsExposed = (*pScreen->TranslateBackingStore)
(pWin, 0, 0, pOldClip,
pWin->drawable.x, pWin->drawable.y);
if (WasViewable)
RegionDestroy(pOldClip);
if (bsExposed)
{
- RegionPtr valExposed = NullRegion;
+ RegionPtr valExposed = NullRegion;
if (pWin->valdata)
valExposed = &pWin->valdata->after.exposed;
@@ -2326,15 +2319,6 @@ static void nxagentSetRootClip (ScreenPtr pScreen, Bool enable)
Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height,
int mmWidth, int mmHeight)
{
- BoxRec box;
- PixmapPtr pPixmap;
- char *fbBits;
-
- int oldWidth;
- int oldHeight;
- int oldMmWidth;
- int oldMmHeight;
-
#ifdef TEST
nxagentPrintAgentGeometry("Before Resize Screen", "nxagentResizeScreen:");
#endif
@@ -2343,10 +2327,10 @@ Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height,
* Change screen properties.
*/
- oldWidth = pScreen -> width;
- oldHeight = pScreen -> height;
- oldMmWidth = pScreen -> mmWidth;
- oldMmHeight = pScreen -> mmHeight;
+ int oldWidth = pScreen -> width;
+ int oldHeight = pScreen -> height;
+ int oldMmWidth = pScreen -> mmWidth;
+ int oldMmHeight = pScreen -> mmHeight;
pScreen -> width = width;
pScreen -> height = height;
@@ -2396,10 +2380,11 @@ Bool nxagentResizeScreen(ScreenPtr pScreen, int width, int height,
pScreen -> mmWidth = mmWidth;
pScreen -> mmHeight = mmHeight;
- pPixmap = fbGetScreenPixmap(pScreen);
+ PixmapPtr pPixmap = fbGetScreenPixmap(pScreen);
- if ((fbBits = realloc(pPixmap -> devPrivate.ptr, PixmapBytePad(width, pScreen->rootDepth) *
- height * BitsPerPixel(pScreen->rootDepth) / 8)) == NULL)
+ char *fbBits = realloc(pPixmap -> devPrivate.ptr, PixmapBytePad(width, pScreen->rootDepth) *
+ height * BitsPerPixel(pScreen->rootDepth) / 8);
+ if (fbBits == NULL)
{
pScreen -> width = oldWidth;
pScreen -> height = oldHeight;
@@ -2466,10 +2451,7 @@ FIXME: We should try to restore the previously
* Set properties for the agent root window.
*/
- box.x1 = 0;
- box.y1 = 0;
- box.x2 = width;
- box.y2 = height;
+ BoxRec box = {.x1 = 0, .y1 = 0, .x2 = width, .y2 = height};
pScreen->root -> drawable.width = width;
pScreen->root -> drawable.height = height;
@@ -2511,9 +2493,6 @@ nxagentResizeScreenError:
void nxagentShadowSetRatio(float floatXRatio, float floatYRatio)
{
- int intXRatio;
- int intYRatio;
-
if (floatXRatio == 0)
{
floatXRatio = 1.0;
@@ -2524,8 +2503,8 @@ void nxagentShadowSetRatio(float floatXRatio, float floatYRatio)
floatYRatio = 1.0;
}
- intXRatio = floatXRatio * (1 << PRECISION);
- intYRatio = floatYRatio * (1 << PRECISION);
+ int intXRatio = floatXRatio * (1 << PRECISION);
+ int intYRatio = floatYRatio * (1 << PRECISION);
nxagentChangeOption(FloatXRatio, floatXRatio);
nxagentChangeOption(FloatYRatio, floatYRatio);
@@ -2563,8 +2542,6 @@ void nxagentShadowSetWindowOptions(void)
int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin)
{
char *layout = NULL;
- XlibGC gc;
- XGCValues value;
#ifdef TEST
fprintf(stderr, "Info: Init shadow session. nxagentDisplayName [%s] "
@@ -2677,36 +2654,12 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin)
switch (DefaultVisualOfScreen(DefaultScreenOfDisplay(nxagentShadowDisplay)) -> class)
{
- case StaticGray:
- {
- className = "StaticGray";
- break;
- }
- case StaticColor:
- {
- className = "StaticColor";
- break;
- }
- case PseudoColor:
- {
- className = "PseudoColor";
- break;
- }
- case DirectColor:
- {
- className = "DirectColor";
- break;
- }
- case GrayScale:
- {
- className = "GrayScale";
- break;
- }
- default:
- {
- className = "";
- break;
- }
+ case StaticGray: { className = "StaticGray"; break; }
+ case StaticColor: { className = "StaticColor"; break; }
+ case PseudoColor: { className = "PseudoColor"; break; }
+ case DirectColor: { className = "DirectColor"; break; }
+ case GrayScale: { className = "GrayScale"; break; }
+ default: { className = ""; break; }
}
fprintf(stderr, "nxagentShadowInit: PANIC! Cannot shadow the display. "
@@ -2844,13 +2797,15 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin)
* Clean up the main window.
*/
- value.foreground = 0x00000000;
- value.background = 0x00000000;
- value.plane_mask = 0xffffffff;
- value.fill_style = FillSolid;
+ XGCValues value = {
+ .foreground = 0x00000000,
+ .background = 0x00000000,
+ .plane_mask = 0xffffffff,
+ .fill_style = FillSolid,
+ };
- gc = XCreateGC(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), GCBackground |
- GCForeground | GCFillStyle | GCPlaneMask, &value);
+ XlibGC gc = XCreateGC(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), GCBackground |
+ GCForeground | GCFillStyle | GCPlaneMask, &value);
XFillRectangle(nxagentDisplay, nxagentPixmap(nxagentShadowPixmapPtr), gc, 0, 0,
nxagentShadowWidth, nxagentShadowHeight);
@@ -2864,12 +2819,6 @@ int nxagentShadowInit(ScreenPtr pScreen, WindowPtr pWin)
int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width, int height)
{
- XWindowChanges changes;
- Mask mask,maskb;
- XID values[4], *vlist;
- int error;
- XID xid;
-
nxagentShadowWidth = width;
nxagentShadowHeight = height;
@@ -2915,9 +2864,9 @@ int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width,
XFreePixmap(nxagentDisplay, nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr)));
- xid = XCreatePixmap(nxagentDisplay, nxagentDefaultWindows[0],
- nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)),
- nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)), nxagentShadowDepth);
+ XID xid = XCreatePixmap(nxagentDisplay, nxagentDefaultWindows[0],
+ nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)),
+ nxagentScale(nxagentShadowHeight, nxagentOption(YRatio)), nxagentShadowDepth);
nxagentPixmap(nxagentVirtualPixmap(nxagentShadowPixmapPtr)) = xid;
@@ -2946,24 +2895,27 @@ int nxagentShadowCreateMainWindow(ScreenPtr pScreen, WindowPtr pWin, int width,
#endif
}
- mask = CWBackPixmap | CWEventMask | CWCursor;
+ Mask mask = CWBackPixmap | CWEventMask | CWCursor;
+ Mask maskb = nxagentGetDefaultEventMask() | ResizeRedirectMask | ExposureMask;
- maskb = nxagentGetDefaultEventMask();
- maskb |= ResizeRedirectMask | ExposureMask;
-
- vlist = values;
+ XID values[4];
+ XID *vlist = values;
*vlist++ = (XID)nxagentShadowPixmapPtr -> drawable.id;
*vlist++ = (XID)maskb;
*vlist = (XID)None;
+ int error;
+
nxagentShadowWindowPtr = CreateWindow(accessWindowID, pWin, 0, 0, nxagentShadowWidth,
nxagentShadowHeight, 0, InputOutput, mask, (XID *)values,
nxagentShadowDepth, serverClient, CopyFromParent, &error);
mask = CWWidth | CWHeight;
- changes.width = nxagentScale(nxagentShadowWidth, nxagentOption(XRatio));
- changes.height = nxagentScale(nxagentShadowHeight, nxagentOption(YRatio));
+ XWindowChanges changes = {
+ .width = nxagentScale(nxagentShadowWidth, nxagentOption(XRatio)),
+ .height = nxagentScale(nxagentShadowHeight, nxagentOption(YRatio))
+ };
XConfigureWindow(nxagentDisplay, nxagentWindow(nxagentShadowWindowPtr), mask, &changes);
@@ -3027,21 +2979,10 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
unsigned char nxagentShadowDepth, int nxagentShadowWidth,
int nxagentShadowHeight, char *nxagentShadowBuffer, int *changed, int *suspended)
{
- int x, y, y2, n, c, line;
- int result;
- long numRects;
- unsigned int width, height, length;
- char *tBuffer = NULL;
- char *iBuffer, *ptBox;
- BoxRec *pBox;
RegionRec updateRegion;
RegionRec tempRegion;
- BoxRec box;
- int overlap;
-
RegionNull(&updateRegion);
-
RegionNull(&tempRegion);
#ifdef __CYGWIN32__
@@ -3056,22 +2997,27 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
#endif
- result = NXShadowHasChanged(nxagentUserInput, NULL, suspended);
+ int result = NXShadowHasChanged(nxagentUserInput, NULL, suspended);
*changed = result;
if (result == 1)
{
+ char *tBuffer = NULL;
+ char *iBuffer, *ptBox;
+
nxagentRemoveSplashWindow();
+ long numRects;
NXShadowExportChanges(&numRects, &ptBox);
- pBox = (BoxRec *)ptBox;
+
+ BoxRec *pBox = (BoxRec *)ptBox;
#ifdef TEST
fprintf(stderr, "nxagentShadowPoll: nRects[%ld], pBox[%p] depth[%d].\n", numRects, (void *) pBox, nxagentShadowDepth);
#endif
- for (n = 0; n < numRects; n++)
+ for (int n = 0; n < numRects; n++)
{
/*
* The BoxRec struct defined in the Xserver has a different
@@ -3079,11 +3025,11 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
* the second and third field are inverted.
*/
- x = pBox[n].x1;
- y = pBox[n].x2;
- y2 = pBox[n].y2;
- width = pBox[n].y1 - pBox[n].x1;/* y1 = x2 */
- height = y2 - pBox[n].x2; /* x2 = y1 */
+ int x = pBox[n].x1;
+ int y = pBox[n].x2;
+ int y2 = pBox[n].y2;
+ unsigned int width = pBox[n].y1 - pBox[n].x1;/* y1 = x2 */
+ unsigned int height = y2 - pBox[n].x2; /* x2 = y1 */
if((x + width) > nxagentShadowWidth || (y + height) > nxagentShadowHeight)
{
@@ -3094,13 +3040,13 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
continue;
}
- line = PixmapBytePad(width, nxagentMasterDepth);
+ int line = PixmapBytePad(width, nxagentMasterDepth);
#ifdef DEBUG
fprintf(stderr, "nxagentShadowPoll: Rectangle Number[%d] - x[%d]y[%d]W[%u]H[%u].\n", n+1, x, y, width, height);
#endif
- length = nxagentImageLength(width, height, ZPixmap, 0, nxagentMasterDepth);
+ unsigned int length = nxagentImageLength(width, height, ZPixmap, 0, nxagentMasterDepth);
SAFE_free(tBuffer);
@@ -3117,7 +3063,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
iBuffer = tBuffer;
- for (c = 0; c + y < y2; c++)
+ for (int c = 0; c + y < y2; c++)
{
memcpy(tBuffer, nxagentShadowBuffer + x * nxagentBppMaster +
(y + c) * nxagentShadowWidth * nxagentBppMaster, line);
@@ -3143,10 +3089,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
fbPutImage(nxagentVirtualDrawable((DrawablePtr)nxagentShadowPixmapPtr), nxagentShadowGCPtr,
nxagentShadowDepth, x, y, width, height, 0, ZPixmap, tBuffer);
- box.x1 = x;
- box.x2 = x + width;
- box.y1 = y;
- box.y2 = y + height;
+ BoxRec box = {.x1 = x, .x2 = x + width, .y1 = y, .y2 = y + height};
RegionInit(&tempRegion, &box, 1);
@@ -3154,6 +3097,7 @@ int nxagentShadowPoll(PixmapPtr nxagentShadowPixmapPtr, GCPtr nxagentShadowGCPtr
RegionUninit(&tempRegion);
+ int overlap;
RegionValidate(&updateRegion, &overlap);
RegionUnion(&nxagentShadowUpdateRegion, &nxagentShadowUpdateRegion, &updateRegion);
@@ -3387,43 +3331,40 @@ unsigned char fromHexNibble(char c)
void nxagentPropagateArtsdProperties(ScreenPtr pScreen, char *port)
{
- Window rootWin;
- XlibAtom atomReturnType;
- XlibAtom propAtom;
- int iReturnFormat;
- unsigned long ulReturnItems;
- unsigned long ulReturnBytesLeft;
- unsigned char *pszReturnData = NULL;
- int iReturn;
char tchar[] = " ";
/*
FIXME: The port information is not used at the moment and produces a
warning on recent gcc versions. Do we need such information
- to run the audio forawrding?
+ to run the audio forwarding?
char *chport;
char hex[] = "0123456789abcdef";
*/
- rootWin = DefaultRootWindow(nxagentDisplay);
- propAtom = nxagentAtoms[4]; /* MCOPGLOBALS */
+ Window rootWin = DefaultRootWindow(nxagentDisplay);
+ XlibAtom propAtom = nxagentAtoms[4]; /* MCOPGLOBALS */
+ XlibAtom atomReturnType;
+ int iReturnFormat;
+ unsigned long ulReturnItems;
+ unsigned long ulReturnBytesLeft;
+ unsigned char *pszReturnData = NULL;
/*
* Get at most 64KB of data.
*/
- iReturn = XGetWindowProperty(nxagentDisplay,
- rootWin,
- propAtom,
- 0,
- 65536 / 4,
- False,
- XA_STRING,
- &atomReturnType,
- &iReturnFormat,
- &ulReturnItems,
- &ulReturnBytesLeft,
- &pszReturnData);
+ int iReturn = XGetWindowProperty(nxagentDisplay,
+ rootWin,
+ propAtom,
+ 0,
+ 65536 / 4,
+ False,
+ XA_STRING,
+ &atomReturnType,
+ &iReturnFormat,
+ &ulReturnItems,
+ &ulReturnBytesLeft,
+ &pszReturnData);
if (iReturn == Success && atomReturnType != None &&
ulReturnItems > 0 && pszReturnData != NULL)
@@ -3451,72 +3392,69 @@ FIXME: The port information is not used at the moment and produces a
int i, in;
for (i = 0, in = 0; pszReturnData[i] != '\0'; i++)
{
- local_buf[in]=pszReturnData[i];
+ local_buf[in] = pszReturnData[i];
- if(pszReturnData[i]==':')
+ if(pszReturnData[i] == ':')
{
i++;
- while(pszReturnData[i]!='\n')
+ while(pszReturnData[i] != '\n')
{
- unsigned char h;
- unsigned char l;
-
- h = fromHexNibble(pszReturnData[i]);
+ unsigned char h = fromHexNibble(pszReturnData[i]);
i++;
- if(pszReturnData[i]=='\0') continue;
- l = fromHexNibble(pszReturnData[i]);
+ if (pszReturnData[i] == '\0')
+ continue;
+ unsigned char l = fromHexNibble(pszReturnData[i]);
i++;
if(h >= 16 || l >= 16) continue;
/*
- * FIXME: The array tchar[] was used uninitialized.
- * It's not clear to me the original purpose of the
- * piece of code using it. To be removed in future
- * versions.
+ * FIXME: The array tchar[] was used uninitialized. It's
+ * not clear to me the original purpose of the piece of
+ * code using it. To be removed in future versions.
*/
- tchar[0]=tchar[1];
- tchar[1]=tchar[2];
- tchar[2]=tchar[3];
+ tchar[0] = tchar[1];
+ tchar[1] = tchar[2];
+ tchar[2] = tchar[3];
tchar[3] = (h << 4) + l;
- tchar[4]='\0';
+ tchar[4] ='\0';
if (strncmp(tchar, "tcp:", 4) == 0)
{
- local_buf[in-7]='1';
- local_buf[in-6]=strlen(port)+47;
+ local_buf[in - 7] = '1';
+ local_buf[in - 6] = strlen(port) + 47;
in++;
- local_buf[in]=pszReturnData[i-2];
+ local_buf[in] = pszReturnData[i - 2];
in++;
- local_buf[in]=pszReturnData[i-1];
+ local_buf[in] = pszReturnData[i - 1];
/* "localhost:" */
strcat(local_buf,"6c6f63616c686f73743a");
- in+=20;
+ in += 20;
/*
FIXME: The port information is not used at the moment and produces a
warning on recent gcc versions. Do we need such information
to run the audio forawrding?
- chport=&port[0];
+ chport = &port[0];
- while(*chport!='\0')
+ while(*chport != '\0')
{
in++;
- local_buf[in]=hex[(*chport >> 4) & 0xf];
+ local_buf[in] = hex[(*chport >> 4) & 0xf];
in++;
- local_buf[in]=hex[*chport & 0xf];
+ local_buf[in] = hex[*chport & 0xf];
*chport++;
}
*/
strcat(local_buf,"00");
- in+=2;
+ in += 2;
- while(pszReturnData[i]!='\n')
+ while(pszReturnData[i] != '\n')
{
i++;
}
@@ -3524,20 +3462,20 @@ FIXME: The port information is not used at the moment and produces a
else
{
in++;
- local_buf[in]=pszReturnData[i-2];
+ local_buf[in] = pszReturnData[i - 2];
in++;
- local_buf[in]=pszReturnData[i-1];
+ local_buf[in] = pszReturnData[i - 1];
}
}
in++;
- local_buf[in]=pszReturnData[i];
+ local_buf[in] = pszReturnData[i];
}
in++;
}
- local_buf[in]=0;
+ local_buf[in] = 0;
if (strlen(local_buf))
{
@@ -3612,9 +3550,6 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah,
int bx1, int by1, unsigned int bw, unsigned int bh,
int *x, int *y, unsigned int *w, unsigned int *h)
{
- int tx1, ty1, tx2, ty2, ix, iy;
- unsigned int iw, ih;
-
int ax2 = ax1 + aw;
int ay2 = ay1 + ah;
int bx2 = bx1 + bw;
@@ -3632,15 +3567,15 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah,
return FALSE;
}
- tx1 = max(ax1, bx1);
- ty1 = max(ay1, by1);
- tx2 = min(ax2, bx2);
- ty2 = min(ay2, by2);
+ int tx1 = max(ax1, bx1);
+ int ty1 = max(ay1, by1);
+ int tx2 = min(ax2, bx2);
+ int ty2 = min(ay2, by2);
- ix = tx1 - ax1;
- iy = ty1 - ay1;
- iw = tx2 - tx1;
- ih = ty2 - ty1;
+ int ix = tx1 - ax1;
+ int iy = ty1 - ay1;
+ unsigned int iw = tx2 - tx1;
+ unsigned int ih = ty2 - ty1;
/* check if the resulting rectangle is feasible */
if (iw <= 0 || ih <= 0) {
@@ -3680,34 +3615,31 @@ Bool intersect_bb(int ax1, int ay1, unsigned int aw, unsigned int ah,
Bool result = intersect(ax1, ay1, aw, ah, bx1, by1, bw, bh, x, y, w, h);
- if (result == TRUE) {
-
+ if (result == TRUE)
+ {
/*
* ###### The X-Coordinate ######
*/
/* check if outside-left of bounding box */
- if (bx1 == bbx1 && ax1 < bbx1) {
-
+ if (bx1 == bbx1 && ax1 < bbx1)
+ {
*w += bbx1 - ax1;
*x = 0;
#ifdef DEBUG
fprintf(stderr, "intersect_bb: session box is outside-left of the bounding box - width gets adapted to [%d]\n", *w);
#endif
-
-
}
/* check if outside-right of bounding box */
- if (bx1 + bw == bbx2 && ax1 + aw > bbx2) {
-
+ if (bx1 + bw == bbx2 && ax1 + aw > bbx2)
+ {
*w += ax1 + aw - bbx2;
#ifdef DEBUG
fprintf(stderr, "intersect_bb: session box is outside-right of the bounding box - width gets adapted to [%d]\n", *w);
#endif
-
}
/*
@@ -3715,34 +3647,31 @@ Bool intersect_bb(int ax1, int ay1, unsigned int aw, unsigned int ah,
*/
/* check if outside-above of bounding box */
- if (by1 == bby1 && ay1 < bby1) {
-
+ if (by1 == bby1 && ay1 < bby1)
+ {
*h += bby1 - ay1;
*y = 0;
#ifdef DEBUG
fprintf(stderr, "intersect_bb: session box is outside-above of the bounding box - height gets adapted to [%d]\n", *h);
#endif
-
}
/* check if outside-below of bounding box */
- if (by1 + bh == bby2 && ay1 + ah > bby2) {
-
+ if (by1 + bh == bby2 && ay1 + ah > bby2)
+ {
*h += ay1 + ah - bby2;
#ifdef DEBUG
fprintf(stderr, "intersect_bb: session box is outside-below of the bounding box - height gets adapted to [%d]\n", *h);
#endif
-
}
-
}
return result;
}
#endif
-RRModePtr nxagentRRCustomMode = NULL;
+RRModePtr nxagentRRCustomMode = NULL;
/*
This is basically the code that was used on screen resize before
@@ -3752,38 +3681,36 @@ RRModePtr nxagentRRCustomMode = NULL;
void nxagentAdjustCustomMode(ScreenPtr pScreen)
{
rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen);
- RROutputPtr output;
if (pScrPriv)
{
- output = RRFirstOutput(pScreen);
+ RROutputPtr output = RRFirstOutput(pScreen);
if (output && output -> crtc)
{
- RRCrtcPtr crtc;
- char name[100];
- xRRModeInfo modeInfo;
const int refresh = 60;
int width = nxagentOption(Width);
int height = nxagentOption(Height);
- crtc = output -> crtc;
+ RRCrtcPtr crtc = output -> crtc;
for (int c = 0; c < pScrPriv -> numCrtcs; c++)
{
RRCrtcSet(pScrPriv -> crtcs[c], NULL, 0, 0, RR_Rotate_0, 0, NULL);
}
- memset(&modeInfo, '\0', sizeof(modeInfo));
+ char name[100];
sprintf(name, "%dx%d", width, height);
- modeInfo.width = width;
- modeInfo.height = height;
- modeInfo.hTotal = width;
- modeInfo.vTotal = height;
- modeInfo.dotClock = ((CARD32) width * (CARD32) height *
- (CARD32) refresh);
- modeInfo.nameLength = strlen(name);
+ xRRModeInfo modeInfo = {
+ .width = width,
+ .height = height,
+ .hTotal = width,
+ .vTotal = height,
+ .dotClock = ((CARD32) width * (CARD32) height *
+ (CARD32) refresh),
+ .nameLength = strlen(name)
+ };
if (nxagentRRCustomMode != NULL)
{
@@ -3925,19 +3852,13 @@ void nxagentDropOutput(RROutputPtr o)
int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
{
- rrScrPrivPtr pScrPriv;
- RROutputPtr output;
- xRRModeInfo modeInfo;
- char name[100];
- int refresh = 60;
- int width = nxagentOption(Width);
- int height = nxagentOption(Height);
+ int width = nxagentOption(Width);
+ int height = nxagentOption(Height);
- pScrPriv = rrGetScrPriv(pScreen);
+ rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen);
if (pScrPriv)
{
- int i;
int number = 0;
XineramaScreenInfo *screeninfo = XineramaQueryScreens(nxagentDisplay, &number);
@@ -3946,7 +3867,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
{
#ifdef DEBUG
fprintf(stderr, "nxagentAdjustRandRXinerama: XineramaQueryScreens() returned [%d] screens:\n", number);
- for (int i=0; i < number; i++) {
+ for (int i = 0; i < number; i++) {
fprintf(stderr, "nxagentAdjustRandRXinerama: screen_number [%d] x_org [%d] y_org [%d] width [%d] height [%d]\n", screeninfo[i].screen_number, screeninfo[i].x_org, screeninfo[i].y_org, screeninfo[i].width, screeninfo[i].height);
}
#endif
@@ -3991,15 +3912,13 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
#ifdef DEBUG
fprintf(stderr, "nxagentAdjustRandRXinerama: numCrtcs [%d], numOutputs [%d]\n", pScrPriv->numCrtcs, pScrPriv->numOutputs);
{
- Bool rrgetinfo;
-
/*
* Convert old RANDR 1.0 data (if any) to current structure. This
* is needed once at the first run of this function. If we don't
* do this here it will be done implicitly later and add mode(s) to
* our crtc(s)!
*/
- rrgetinfo = RRGetInfo(pScreen, FALSE);
+ Bool rrgetinfo = RRGetInfo(pScreen, FALSE);
fprintf(stderr, "nxagentAdjustRandRXinerama: RRGetInfo returned [%d]\n", rrgetinfo);
}
@@ -4014,7 +3933,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
bbx2 = bby2 = 0;
bbx1 = bby1 = INT_MAX;
- for (i = 0; i < number; i++)
+ for (int i = 0; i < number; i++)
{
bbx2 = max(bbx2, screeninfo[i].x_org + screeninfo[i].width);
bby2 = max(bby2, screeninfo[i].y_org + screeninfo[i].height);
@@ -4059,7 +3978,7 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
/* set gamma. Currently the only reason for doing this is
preventing the xrandr command from complaining about missing
gamma. */
- for (i = 0; i < pScrPriv->numCrtcs; i++)
+ for (int i = 0; i < pScrPriv->numCrtcs; i++)
{
if (pScrPriv->crtcs[i]->gammaSize == 0)
{
@@ -4071,19 +3990,22 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
}
/* delete superfluous non-NX outputs */
- for (i = pScrPriv->numOutputs - 1; i >= 0; i--)
+ for (int i = pScrPriv->numOutputs - 1; i >= 0; i--)
if (strncmp(pScrPriv->outputs[i]->name, "NX", 2))
nxagentDropOutput(pScrPriv->outputs[i]);
/* at this stage only NX outputs are left - we delete the superfluous ones */
- for (i = pScrPriv->numOutputs - 1; i >= number; i--)
+ for (int i = pScrPriv->numOutputs - 1; i >= number; i--)
nxagentDropOutput(pScrPriv->outputs[i]);
/* add and init outputs */
- for (i = 0; i < number; i++)
+ for (int i = 0; i < number; i++)
{
+ RROutputPtr output;
+
if (i >= pScrPriv->numOutputs)
{
+ char name[100];
sprintf(name, "NX%d", i+1);
output = RROutputCreate(pScreen, name, strlen(name), NULL);
/* will be done later
@@ -4109,10 +4031,8 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
RROutputSetPhysicalSize(output, 0, 0);
}
- for (i = 0; i < pScrPriv->numOutputs; i++)
+ for (int i = 0; i < pScrPriv->numOutputs; i++)
{
- Bool disable_output = FALSE;
- RRModePtr mymode = NULL, prevmode = NULL;
int new_x = 0;
int new_y = 0;
unsigned int new_w = 0;
@@ -4120,22 +4040,22 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
/* if there's no intersection disconnect the output */
#ifdef NXAGENT_RANDR_XINERAMA_CLIPPING
- disable_output = !intersect(nxagentOption(X), nxagentOption(Y),
- width, height,
- screeninfo[i].x_org, screeninfo[i].y_org,
- screeninfo[i].width, screeninfo[i].height,
- &new_x, &new_y, &new_w, &new_h);
+ Bool disable_output = !intersect(nxagentOption(X), nxagentOption(Y),
+ width, height,
+ screeninfo[i].x_org, screeninfo[i].y_org,
+ screeninfo[i].width, screeninfo[i].height,
+ &new_x, &new_y, &new_w, &new_h);
#else
- disable_output = !intersect_bb(nxagentOption(X), nxagentOption(Y),
- width, height,
- screeninfo[i].x_org, screeninfo[i].y_org,
- screeninfo[i].width, screeninfo[i].height,
- bbx1, bby1, bbx2, bby2,
- &new_x, &new_y, &new_w, &new_h);
+ Bool disable_output = !intersect_bb(nxagentOption(X), nxagentOption(Y),
+ width, height,
+ screeninfo[i].x_org, screeninfo[i].y_org,
+ screeninfo[i].width, screeninfo[i].height,
+ bbx1, bby1, bbx2, bby2,
+ &new_x, &new_y, &new_w, &new_h);
#endif
/* save previous mode */
- prevmode = pScrPriv->crtcs[i]->mode;
+ RRModePtr prevmode = pScrPriv->crtcs[i]->mode;
#ifdef DEBUG
if (prevmode)
{
@@ -4186,22 +4106,25 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
RROutputSetConnection(pScrPriv->outputs[i], RR_Connected);
- memset(&modeInfo, '\0', sizeof(modeInfo));
-
/* avoid collisions with pre-existing default modes by using a
separate namespace. If we'd simply use XxY we could not
distinguish between pre-existing modes which should stay
and our own modes that should be removed after use. */
+ char name[100];
sprintf(name, "%s%dx%d", QUOTE(NXAGENT_RANDR_MODE_PREFIX), new_w, new_h);
- modeInfo.width = new_w;
- modeInfo.height = new_h;
- modeInfo.hTotal = new_w;
- modeInfo.vTotal = new_h;
- modeInfo.dotClock = ((CARD32) new_w * (CARD32) new_h * (CARD32) refresh);
- modeInfo.nameLength = strlen(name);
+ const int refresh = 60;
+
+ xRRModeInfo modeInfo = {
+ .width = new_w,
+ .height = new_h,
+ .hTotal = new_w,
+ .vTotal = new_h,
+ .dotClock = ((CARD32) new_w * (CARD32) new_h * (CARD32) refresh),
+ .nameLength = strlen(name)
+ };
- mymode = RRModeGet(&modeInfo, name);
+ RRModePtr mymode = RRModeGet(&modeInfo, name);
#ifdef DEBUG
if (mymode)
@@ -4299,8 +4222,6 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen)
void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg, WindowPtr pWin)
{
- XGCValues values = {0};
-
miBSWindowPtr pBackingStore = (miBSWindowPtr) pWin -> backStorage;
PixmapPtr pVirtualPixmap = nxagentVirtualPixmap(pPixmap);
@@ -4312,7 +4233,7 @@ void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg,
fbCopyWindowProc(&pWin -> drawable, &pVirtualPixmap -> drawable, 0, RegionRects(prgnSave),
RegionNumRects(prgnSave), xorg, yorg, FALSE, FALSE, 0, 0);
- values.subwindow_mode = IncludeInferiors;
+ XGCValues values = {.subwindow_mode = IncludeInferiors};
XlibGC gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values);
@@ -4406,8 +4327,6 @@ void nxagentSaveAreas(PixmapPtr pPixmap, RegionPtr prgnSave, int xorg, int yorg,
void nxagentRestoreAreas(PixmapPtr pPixmap, RegionPtr prgnRestore, int xorg,
int yorg, WindowPtr pWin)
{
- XGCValues values = {0};
-
/*
* Limit the area to restore to the
* root window size.
@@ -4423,7 +4342,7 @@ void nxagentRestoreAreas(PixmapPtr pPixmap, RegionPtr prgnRestore, int xorg,
fbCopyWindowProc(&pVirtualPixmap -> drawable, &pWin -> drawable, 0, RegionRects(prgnRestore),
RegionNumRects(prgnRestore), -xorg, -yorg, FALSE, FALSE, 0, 0);
- values.subwindow_mode = ClipByChildren;
+ XGCValues values = {.subwindow_mode = ClipByChildren};
XlibGC gc = XCreateGC(nxagentDisplay, nxagentWindow(screenInfo.screens[0]->root), GCSubwindowMode, &values);
@@ -4586,9 +4505,9 @@ void nxagentSetWMNormalHints(int screen, int width, int height)
*/
void nxagentSetWMNormalHintsMaxsize(ScreenPtr pScreen, int maxwidth, int maxheight)
{
- XSizeHints* sizeHints;
+ XSizeHints* sizeHints = XAllocSizeHints();
- if ((sizeHints = XAllocSizeHints()))
+ if (sizeHints)
{
sizeHints->flags = PMaxSize;
sizeHints->max_width = maxwidth;