--- README.md | 12 ++++++------ config.def.h | 1 + sent.c | 21 ++++++++++++++++++--- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c1e9385..4e93d26 100644 --- a/README.md +++ b/README.md _AT_@ -20,7 +20,7 @@ To get a little demo, just type make && ./sent example -You can navigate with the arrow keys and quit with `q`. +You can navigate with the arrow keys, toggle fullscreen with `f`, and quit with `q`. Usage _AT_@ -33,21 +33,21 @@ with `#` will be ignored. A `\` at the beginning of the line escapes `_AT_` and `#`. A presentation file could look like this: sent - + _AT_nyan.png - + depends on - Xlib - Xft - farbfeld - + sent FILENAME one slide per paragraph # This is a comment and will not be part of the presentation \# This and the next line start with backslashes - + \_AT_FILE.png - + thanks / questions? diff --git a/config.def.h b/config.def.h index 60eb376..5dc7d2b 100644 --- a/config.def.h +++ b/config.def.h _AT_@ -46,6 +46,7 @@ static Shortcut shortcuts[] = { { XK_Prior, advance, {.i = -1} }, { XK_n, advance, {.i = +1} }, { XK_p, advance, {.i = -1} }, + { XK_f, fullscr_togg, {0} }, { XK_r, reload, {0} }, }; diff --git a/sent.c b/sent.c index c50a572..5b0b6cc 100644 --- a/sent.c +++ b/sent.c _AT_@ -97,13 +97,14 @@ static void cleanup(int slidesonly); static void reload(const Arg *arg); static void load(FILE *fp); static void advance(const Arg *arg); +static void fullscr_togg(); static void quit(const Arg *arg); static void resize(int width, int height); static void run(); static void usage(); static void xdraw(); static void xhints(); -static void xinit(); +static void xinit(Bool fs); static void xloadfonts(); static void bpress(XEvent *); _AT_@ -475,6 +476,16 @@ advance(const Arg *arg) } } +void +fullscr_togg() +{ + static Bool toggle; + toggle = !toggle; + XDestroyWindow(xw.dpy, xw.win); + XSync(xw.dpy, False); + xinit(toggle); +} + void quit(const Arg *arg) { _AT_@ -560,7 +571,7 @@ xhints() } void -xinit() +xinit(Bool fs) { XTextProperty prop; unsigned int i; _AT_@ -580,6 +591,10 @@ xinit() InputOutput, xw.vis, CWBitGravity | CWEventMask, &xw.attrs); + Atom wm_state = XInternAtom(xw.dpy, "_NET_WM_STATE", True ); + Atom wm_fullscreen = XInternAtom(xw.dpy, "_NET_WM_STATE_FULLSCREEN", True ); + XChangeProperty(xw.dpy, xw.win, wm_state, XA_ATOM, 32, PropModeReplace, (unsigned char *)&wm_fullscreen, fs); + xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); _AT_@ -698,7 +713,7 @@ main(int argc, char *argv[]) load(fp); fclose(fp); - xinit(); + xinit(False); run(); cleanup(0); -- 2.16.2Received on Sun Mar 18 2018 - 13:08:54 CET
This archive was generated by hypermail 2.3.0 : Sun Mar 18 2018 - 13:12:23 CET