aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/dwm
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-06-08 14:58:18 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-06-08 14:58:18 -0700
commitac78d59c80b627a5332ac64a7d4359389c4251fa (patch)
treeeb7a1c77a688a703442d4bcf604e97aba1566105 /sys/cmd/dwm
parent75eece6dd52aa49705bf59a6f5b6197b7a14f5db (diff)
small fixes
Diffstat (limited to 'sys/cmd/dwm')
-rw-r--r--sys/cmd/dwm/client.c31
-rw-r--r--sys/cmd/dwm/drw.c2
-rw-r--r--sys/cmd/dwm/dwm.c42
-rw-r--r--sys/cmd/dwm/dwm.h1
4 files changed, 48 insertions, 28 deletions
diff --git a/sys/cmd/dwm/client.c b/sys/cmd/dwm/client.c
index 106082c..783190a 100644
--- a/sys/cmd/dwm/client.c
+++ b/sys/cmd/dwm/client.c
@@ -362,26 +362,37 @@ setfocus(Client *c)
void
setfullscreen(Client *c, int fullscreen)
{
+
if (fullscreen && !c->isfullscreen) {
+ // ulong rect[4] = { 0, 0, c->w, c->h };
XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
PropModeReplace, (uchar*)&netatom[NetWMFullscreen], 1);
+
+ static ulong opacity = 0xFFFFFFFFul;
+ XChangeProperty(dpy, c->win, netatom[NetWMWindowOpacity], XA_CARDINAL, 32, PropModeReplace, (uchar *)&opacity, 1L);
+ // XChangeProperty(dpy, c->win, netatom[NetWMOpaqueRegion], XA_CARDINAL, 32,
+ // PropModeReplace, (uchar*)&rect, arrlen(rect));
+
c->isfullscreen = 1;
- c->oldstate = c->isfloating;
- c->oldbw = c->bw;
- c->bw = 0;
- c->isfloating = 1;
+ c->oldstate = c->isfloating;
+ c->oldbw = c->bw;
+ c->bw = 0;
+ c->isfloating = 1;
resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh);
+
XRaiseWindow(dpy, c->win);
} else if (!fullscreen && c->isfullscreen){
XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32,
- PropModeReplace, (uchar*)0, 0);
+ PropModeReplace, (uchar*)nil, 0);
+ XDeleteProperty(dpy, c->win, netatom[NetWMWindowOpacity]);
+
c->isfullscreen = 0;
- c->isfloating = c->oldstate;
+ c->isfloating = c->oldstate;
c->bw = c->oldbw;
- c->x = c->oldx;
- c->y = c->oldy;
- c->w = c->oldw;
- c->h = c->oldh;
+ c->x = c->oldx;
+ c->y = c->oldy;
+ c->w = c->oldw;
+ c->h = c->oldh;
resizeclient(c, c->x, c->y, c->w, c->h);
arrange(c->mon);
}
diff --git a/sys/cmd/dwm/drw.c b/sys/cmd/dwm/drw.c
index b4c993a..825e2f4 100644
--- a/sys/cmd/dwm/drw.c
+++ b/sys/cmd/dwm/drw.c
@@ -12,7 +12,7 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
drw->w = w;
drw->h = h;
drw->drawable = XCreatePixmap(dpy, root, w, h, DefaultDepth(dpy, screen));
- drw->gc = XCreateGC(dpy, root, 0, NULL);
+ drw->gc = XCreateGC(dpy, root, 0, NULL);
XSetLineAttributes(dpy, drw->gc, 1, LineSolid, CapButt, JoinMiter);
return drw;
diff --git a/sys/cmd/dwm/dwm.c b/sys/cmd/dwm/dwm.c
index a943ed7..7033d65 100644
--- a/sys/cmd/dwm/dwm.c
+++ b/sys/cmd/dwm/dwm.c
@@ -763,46 +763,54 @@ setup(void)
drw = drw_create(dpy, screen, root, sw, sh);
if (!drw_fontset_create(drw, fonts, arrlen(fonts)))
fatal("no fonts could be loaded.");
+
lrpad = drw->fonts->h;
- bh = drw->fonts->h + 2;
+ bh = drw->fonts->h + 2;
updategeom();
+
/* init atoms */
- utf8string = XInternAtom(dpy, "UTF8_STRING", False);
+ utf8string = XInternAtom(dpy, "UTF8_STRING", False);
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
- wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
- wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
+ wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
+ wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False);
- netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
- netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
- netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
- netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
- netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
- netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
- netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
+
+ netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
+ netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
+ netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
+ netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
+ netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
+ netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
+ netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
+ netatom[NetWMWindowOpacity] = XInternAtom(dpy, "_NET_WM_WINDOW_OPACITY", False);
netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
- netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False);
+ netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False);
+
/* init cursors */
cursor[MouseNormal] = drw_cur_create(drw, XC_left_ptr);
cursor[MouseResize] = drw_cur_create(drw, XC_sizing);
- cursor[MouseMove] = drw_cur_create(drw, XC_fleur);
+ cursor[MouseMove] = drw_cur_create(drw, XC_fleur);
+
/* init appearance */
scheme = ecalloc(arrlen(colors), sizeof(Clr *));
for (i = 0; i < arrlen(colors); i++)
scheme[i] = drw_scm_create(drw, colors[i], 3);
+
/* init bars */
updatebars();
updatestatus();
+
/* supporting window for NetWMCheck */
wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0);
XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32,
- PropModeReplace, (unsigned char *) &wmcheckwin, 1);
+ PropModeReplace, (uchar *) &wmcheckwin, 1);
XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8,
- PropModeReplace, (unsigned char *) "dwm", 3);
+ PropModeReplace, (uchar *) "dwm", 3);
XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32,
- PropModeReplace, (unsigned char *) &wmcheckwin, 1);
+ PropModeReplace, (uchar *) &wmcheckwin, 1);
/* EWMH support per view */
XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
- PropModeReplace, (unsigned char *) netatom, NetLast);
+ PropModeReplace, (uchar *) netatom, NetLast);
XDeleteProperty(dpy, root, netatom[NetClientList]);
/* select events */
wa.cursor = cursor[MouseNormal]->cursor;
diff --git a/sys/cmd/dwm/dwm.h b/sys/cmd/dwm/dwm.h
index 0061e74..3449ff8 100644
--- a/sys/cmd/dwm/dwm.h
+++ b/sys/cmd/dwm/dwm.h
@@ -64,6 +64,7 @@ enum
NetActiveWindow,
NetWMWindowType,
NetWMWindowTypeDialog,
+ NetWMWindowOpacity,
NetClientList,
NetLast
}; /* EWMH atoms */