summaryrefslogtreecommitdiff
path: root/src/sxwm.c
diff options
context:
space:
mode:
authorAbhinav Prasai <72694427+uint23@users.noreply.github.com>2025-06-25 12:53:02 +0100
committerGitHub <noreply@github.com>2025-06-25 12:53:02 +0100
commit6d44150eae1e1c66c46f72998d547a010e359ed9 (patch)
treef2c06a45fbf2cc243f1a78eb535535ef22d67f3a /src/sxwm.c
parent0b0a508650dbc4e731830451bcd34bfefdbaac64 (diff)
parent9c2ed0550d02711b073544351a531148be88e96f (diff)
Merge pull request #107 from elbachir-one/main
Add window validity checks to swallow and unswallow functions
Diffstat (limited to 'src/sxwm.c')
-rw-r--r--src/sxwm.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/sxwm.c b/src/sxwm.c
index e7ae951..9d8aeeb 100644
--- a/src/sxwm.c
+++ b/src/sxwm.c
@@ -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();