diff options
| author | Abhinav Prasai <72694427+uint23@users.noreply.github.com> | 2025-06-25 12:53:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-25 12:53:02 +0100 |
| commit | 6d44150eae1e1c66c46f72998d547a010e359ed9 (patch) | |
| tree | f2c06a45fbf2cc243f1a78eb535535ef22d67f3a /src | |
| parent | 0b0a508650dbc4e731830451bcd34bfefdbaac64 (diff) | |
| parent | 9c2ed0550d02711b073544351a531148be88e96f (diff) | |
Merge pull request #107 from elbachir-one/main
Add window validity checks to swallow and unswallow functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/sxwm.c | 37 |
1 files changed, 21 insertions, 16 deletions
@@ -1,17 +1,17 @@ /* - * See LICENSE for more info + * See LICENSE for more info * - * simple xorg window manager - * sxwm is a user-friendly, easily configurable yet powerful - * tiling window manager inspired by window managers such as - * DWM and i3. + * simple xorg window manager + * sxwm is a user-friendly, easily configurable yet powerful + * tiling window manager inspired by window managers such as + * DWM and i3. * - * The userconfig is designed to be as user-friendly as - * possible, and I hope it is easy to configure even without - * knowledge of C or programming, although most people who - * will use this will probably be programmers :) + * The userconfig is designed to be as user-friendly as + * possible, and I hope it is easy to configure even without + * knowledge of C or programming, although most people who + * will use this will probably be programmers :) * - * (C) Abhinav Prasai 2025 + * (C) Abhinav Prasai 2025 */ #include <X11/X.h> @@ -1036,7 +1036,10 @@ void swallow_window(Client *swallower, Client *swallowed) swallowed->y = swallower->y; swallowed->w = swallower->w; swallowed->h = swallower->h; - XMoveResizeWindow(dpy, swallowed->win, swallowed->x, swallowed->y, swallowed->w, swallowed->h); + + if (swallowed->win) { + XMoveResizeWindow(dpy, swallowed->win, swallowed->x, swallowed->y, swallowed->w, swallowed->h); + } } tile(); @@ -2571,12 +2574,14 @@ void unswallow_window(Client *c) swallower->swallowed = NULL; c->swallower = NULL; - XMapWindow(dpy, swallower->win); - swallower->mapped = True; + if (swallower->win) { + XMapWindow(dpy, swallower->win); + swallower->mapped = True; - focused = swallower; - XSetInputFocus(dpy, swallower->win, RevertToPointerRoot, CurrentTime); - XRaiseWindow(dpy, swallower->win); + focused = swallower; + XSetInputFocus(dpy, swallower->win, RevertToPointerRoot, CurrentTime); + XRaiseWindow(dpy, swallower->win); + } tile(); update_borders(); |
