32#include <X11/Xmu/WinUtil.h>
37#include "ctwm_atoms.h"
135 (
unsigned char **)&
prop);
202 unsigned char *
prop, *
p;
226 l += strlen((
char *)
p) + 1;
227 p += strlen((
char *)
p) + 1;
237 l += strlen((
char *)
p) + 1;
238 p += strlen((
char *)
p) + 1;
280 len += strlen(*
cl++) + 1;
319 for(i = 0; i < 32; i++) {
344 if((
n < 0) || (
n > 31)) {
360 fprintf(
stderr,
"A captive ctwm with name %s is already running\n",
373 for(i = 0; i < 32; i++) {
379 fprintf(
stderr,
"Cannot find a suitable name for captive ctwm\n");
395 for(i = 0; i < count; i++) {
648 if(!
CLarg.is_captive) {
649 fprintf(
stderr,
"BUG: %s(): Shouldn't get called unless captive.\n",
660 Scr->crootw =
ev->xconfigure.width;
661 Scr->crooth =
ev->xconfigure.height;
663 fprintf(
stderr,
"%s(): cx = %d, cy = %d, cw = %d, ch = %d\n",
667 Scr->rootx =
Scr->crootx +
Scr->currentvs->x;
668 Scr->rooty =
Scr->crooty +
Scr->currentvs->y;
678 fprintf(
stderr,
"%s: You cannot change root window geometry "
679 "with virtual screens active,\n"
680 "from now on, the ctwm behaviour is unpredictable.\n",
692 unsigned long data [2];
713 child =
event.xbutton.subwindow;
void SetPropsIfCaptiveCtwm(TwmWindow *win)
static XrmOptionDescRec table[]
static void freeCaptivesList(char **clist)
static bool DontRedirect(Window window)
void RemoveFromCaptiveList(const char *cptname)
void ConfigureCaptiveRootWindow(XEvent *ev)
bool RedirectToCaptive(Window window)
void SetNoRedirect(Window window)
static char ** GetCaptivesList(int scrnum)
static void SetCaptivesList(int scrnum, char **clist)
static Window CaptiveCtwmRootWindow(Window window)
char * AddToCaptiveList(const char *cptname)
static Atom XA_WM_CTWM_ROOT_our_name
CaptiveCTWM GetCaptiveCTWMUnderPointer(void)
bool RestartPreviousState
void SimulateMapRequest(Window w)
Window frame
The X window for the overall frame.
Info and control for every X Window we take over.
Window w
The actual X Window handle.
void safe_strncpy(char *dest, const char *src, size_t size)