Be more paranoid about managing windows.
#define MODKEY Mod1Mask
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
#define MODKEY Mod1Mask
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
int (*xerrorxlib)(Display *, XErrorEvent *);
int other_wm;
int screen;
int (*xerrorxlib)(Display *, XErrorEvent *);
int other_wm;
int screen;
/* terminal + args */
char *spawn_term[] = { "xterm", NULL };
char *spawn_menu[] = { "dmenu_run", NULL };
/* terminal + args */
char *spawn_term[] = { "xterm", NULL };
char *spawn_menu[] = { "dmenu_run", NULL };
-char *spawn_scrotwm[] = { "scrotwm", NULL };
/* layout manager data */
struct swm_geometry {
/* layout manager data */
struct swm_geometry {
void
restart(union arg *args)
{
void
restart(union arg *args)
{
+ DNPRINTF(SWM_D_MISC, "restart: %s\n", start_argv[0]);
+
- execvp(args->argv[0], args->argv);
+ execvp(start_argv[0], start_argv);
fprintf(stderr, "execvp failed\n");
perror(" failed");
quit(NULL);
fprintf(stderr, "execvp failed\n");
perror(" failed");
quit(NULL);
{ MODKEY | ShiftMask, XK_Return, spawn, {.argv = spawn_term} },
{ MODKEY, XK_p, spawn, {.argv = spawn_menu} },
{ MODKEY | ShiftMask, XK_q, quit, {0} },
{ MODKEY | ShiftMask, XK_Return, spawn, {.argv = spawn_term} },
{ MODKEY, XK_p, spawn, {.argv = spawn_menu} },
{ MODKEY | ShiftMask, XK_q, quit, {0} },
- { MODKEY, XK_q, restart, {.argv = spawn_scrotwm } },
+ { MODKEY, XK_q, restart, {0} },
{ MODKEY, XK_m, focus, {.id = SWM_ARG_ID_FOCUSMAIN} },
{ MODKEY, XK_1, switchws, {.id = 0} },
{ MODKEY, XK_2, switchws, {.id = 1} },
{ MODKEY, XK_m, focus, {.id = SWM_ARG_ID_FOCUSMAIN} },
{ MODKEY, XK_1, switchws, {.id = 0} },
{ MODKEY, XK_2, switchws, {.id = 1} },
void
maprequest(XEvent *e)
{
void
maprequest(XEvent *e)
{
+ XMapRequestEvent *ev = &e->xmaprequest;
+ XWindowAttributes wa;
+
DNPRINTF(SWM_D_EVENT, "maprequest: window: %lu\n",
e->xmaprequest.window);
DNPRINTF(SWM_D_EVENT, "maprequest: window: %lu\n",
e->xmaprequest.window);
+ if(!XGetWindowAttributes(display, ev->window, &wa))
+ return;
+ if(wa.override_redirect)
+ return;
manage_window(e->xmaprequest.window);
stack();
}
manage_window(e->xmaprequest.window);
stack();
}
Window d1, d2, *wins = NULL;
XWindowAttributes wa;
Window d1, d2, *wins = NULL;
XWindowAttributes wa;
fprintf(stderr, "Welcome to scrotwm V%s\n", SWM_VERSION);
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
warnx("no locale support");
fprintf(stderr, "Welcome to scrotwm V%s\n", SWM_VERSION);
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
warnx("no locale support");