diff options
Diffstat (limited to 'libX11')
-rw-r--r-- | libX11/specs/libX11/CH01.xml | 2 | ||||
-rw-r--r-- | libX11/specs/libX11/CH14.xml | 2 | ||||
-rw-r--r-- | libX11/src/Iconify.c | 26 | ||||
-rw-r--r-- | libX11/src/ReconfWM.c | 37 | ||||
-rw-r--r-- | libX11/src/Withdraw.c | 22 | ||||
-rw-r--r-- | libX11/src/xkb/XKB.c | 11 | ||||
-rw-r--r-- | libX11/src/xkb/XKBMAlloc.c | 2 |
7 files changed, 54 insertions, 48 deletions
diff --git a/libX11/specs/libX11/CH01.xml b/libX11/specs/libX11/CH01.xml index 67744cfa2..26009f2fa 100644 --- a/libX11/specs/libX11/CH01.xml +++ b/libX11/specs/libX11/CH01.xml @@ -678,7 +678,7 @@ store. </listitem> <listitem> <para> -The user should have control of his screen real estate. +The user should have control of their screen real estate. Therefore, you should write your applications to react to window management rather than presume control of the entire screen. What you do inside of your top-level window, however, diff --git a/libX11/specs/libX11/CH14.xml b/libX11/specs/libX11/CH14.xml index 678f979c4..c1a2704e9 100644 --- a/libX11/specs/libX11/CH14.xml +++ b/libX11/specs/libX11/CH14.xml @@ -2094,7 +2094,7 @@ The definitions for the initial_state flag are: <literallayout class="monospaced"> #define WithdrawnState 0 #define NormalState 1 /* most applications start this way */ -#define IconicState 2 /* application wants to start as an icon */ +#define IconicState 3 /* application wants to start as an icon */ </literallayout> <para> diff --git a/libX11/src/Iconify.c b/libX11/src/Iconify.c index 3a969d741..9da416596 100644 --- a/libX11/src/Iconify.c +++ b/libX11/src/Iconify.c @@ -67,19 +67,23 @@ Status XIconifyWindow ( Window w, int screen) { - XClientMessageEvent ev; - Window root = RootWindow (dpy, screen); Atom prop; prop = XInternAtom (dpy, "WM_CHANGE_STATE", False); - if (prop == None) return False; + if (prop == None) + return False; + else { + XClientMessageEvent ev = { + .type = ClientMessage, + .window = w, + .message_type = prop, + .format = 32, + .data.l[0] = IconicState + }; + Window root = RootWindow (dpy, screen); - ev.type = ClientMessage; - ev.window = w; - ev.message_type = prop; - ev.format = 32; - ev.data.l[0] = IconicState; - return (XSendEvent (dpy, root, False, - SubstructureRedirectMask|SubstructureNotifyMask, - (XEvent *)&ev)); + return (XSendEvent (dpy, root, False, + SubstructureRedirectMask|SubstructureNotifyMask, + (XEvent *)&ev)); + } } diff --git a/libX11/src/ReconfWM.c b/libX11/src/ReconfWM.c index 1776f2e15..8dc3534e0 100644 --- a/libX11/src/ReconfWM.c +++ b/libX11/src/ReconfWM.c @@ -41,7 +41,6 @@ Status XReconfigureWMWindow ( unsigned int mask, XWindowChanges *changes) { - XConfigureRequestEvent ev; Window root = RootWindow (dpy, screen); _XAsyncHandler async; _XAsyncErrorState async_state; @@ -120,20 +119,24 @@ Status XReconfigureWMWindow ( /* * If the request succeeded, then everything is okay; otherwise, send event */ - if (!async_state.error_count) return True; - - ev.type = ConfigureRequest; - ev.window = w; - ev.parent = root; - ev.value_mask = (mask & AllMaskBits); - ev.x = changes->x; - ev.y = changes->y; - ev.width = changes->width; - ev.height = changes->height; - ev.border_width = changes->border_width; - ev.above = changes->sibling; - ev.detail = changes->stack_mode; - return (XSendEvent (dpy, root, False, - SubstructureRedirectMask|SubstructureNotifyMask, - (XEvent *)&ev)); + if (!async_state.error_count) + return True; + else { + XConfigureRequestEvent ev = { + .type = ConfigureRequest, + .window = w, + .parent = root, + .value_mask = (mask & AllMaskBits), + .x = changes->x, + .y = changes->y, + .width = changes->width, + .height = changes->height, + .border_width = changes->border_width, + .above = changes->sibling, + .detail = changes->stack_mode, + }; + return (XSendEvent (dpy, root, False, + SubstructureRedirectMask|SubstructureNotifyMask, + (XEvent *)&ev)); + } } diff --git a/libX11/src/Withdraw.c b/libX11/src/Withdraw.c index ac15ddc92..1015f5b86 100644 --- a/libX11/src/Withdraw.c +++ b/libX11/src/Withdraw.c @@ -67,16 +67,18 @@ Status XWithdrawWindow ( Window w, int screen) { - XUnmapEvent ev; - Window root = RootWindow (dpy, screen); - XUnmapWindow (dpy, w); - ev.type = UnmapNotify; - ev.event = root; - ev.window = w; - ev.from_configure = False; - return (XSendEvent (dpy, root, False, - SubstructureRedirectMask|SubstructureNotifyMask, - (XEvent *)&ev)); + { + Window root = RootWindow (dpy, screen); + XUnmapEvent ev = { + .type = UnmapNotify, + .event = root, + .window = w, + .from_configure = False + }; + return (XSendEvent (dpy, root, False, + SubstructureRedirectMask|SubstructureNotifyMask, + (XEvent *)&ev)); + } } diff --git a/libX11/src/xkb/XKB.c b/libX11/src/xkb/XKB.c index 6413ba274..03a89d07d 100644 --- a/libX11/src/xkb/XKB.c +++ b/libX11/src/xkb/XKB.c @@ -696,9 +696,7 @@ XkbGetPerClientControls(Display *dpy, unsigned *ctrls) if ((dpy->flags & XlibDisplayNoXkb) || (!dpy->xkb_info && !XkbUseExtension(dpy, NULL, NULL)) || - (*ctrls & ~(XkbPCF_GrabsUseXKBStateMask | - XkbPCF_LookupStateWhenGrabbed | - XkbPCF_SendEventUsesXKBState))) + (ctrls == NULL)) return False; LockDisplay(dpy); xkbi = dpy->xkb_info; @@ -716,10 +714,9 @@ XkbGetPerClientControls(Display *dpy, unsigned *ctrls) } UnlockDisplay(dpy); SyncHandle(); - if (ctrls) - *ctrls = (rep.value & (XkbPCF_GrabsUseXKBStateMask | - XkbPCF_LookupStateWhenGrabbed | - XkbPCF_SendEventUsesXKBState)); + *ctrls = (rep.value & (XkbPCF_GrabsUseXKBStateMask | + XkbPCF_LookupStateWhenGrabbed | + XkbPCF_SendEventUsesXKBState)); return (True); } diff --git a/libX11/src/xkb/XKBMAlloc.c b/libX11/src/xkb/XKBMAlloc.c index 0b86aa1d5..2e39634a7 100644 --- a/libX11/src/xkb/XKBMAlloc.c +++ b/libX11/src/xkb/XKBMAlloc.c @@ -300,7 +300,7 @@ XkbAddKeyType(XkbDescPtr xkb, } } } - if ((!map) || (!map->types) || (!map->num_types < XkbNumRequiredTypes)) { + if ((!map) || (!map->types) || (map->num_types < XkbNumRequiredTypes)) { tmp = XkbNumRequiredTypes + 1; if (XkbAllocClientMap(xkb, XkbKeyTypesMask, tmp) != Success) return NULL; |