init and clear drw context

This commit is contained in:
Markus Teich 2015-04-06 23:06:36 +02:00
parent b37ef38335
commit 37a7ca9e2f

9
sent.c
View File

@ -12,8 +12,10 @@
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include <X11/Xft/Xft.h>
#include "arg.h" #include "arg.h"
#include "drw.h"
char *argv0; char *argv0;
@ -119,6 +121,7 @@ static int idx = 0;
static int slidecount = 0; static int slidecount = 0;
static XWindow xw; static XWindow xw;
static struct DC dc; static struct DC dc;
static Drw *d = NULL;
static int running = 1; static int running = 1;
static char *opt_font = NULL; static char *opt_font = NULL;
@ -410,6 +413,8 @@ void cleanup(struct DC *cur)
return; return;
} }
drw_free(d);
XDestroyWindow(xw.dpy, xw.win); XDestroyWindow(xw.dpy, xw.win);
XSync(xw.dpy, False); XSync(xw.dpy, False);
XCloseDisplay(xw.dpy); XCloseDisplay(xw.dpy);
@ -580,6 +585,9 @@ void xinit()
xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False);
XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1);
if(!(d = drw_create(xw.dpy, xw.scr, xw.win, xw.w, xw.h)))
eprintf("Can't create drawing context.");
xloadfonts(opt_font ? opt_font : font); xloadfonts(opt_font ? opt_font : font);
XStringListToTextProperty(&argv0, 1, &prop); XStringListToTextProperty(&argv0, 1, &prop);
@ -663,6 +671,7 @@ void kpress(XEvent *e)
void configure(XEvent *e) void configure(XEvent *e)
{ {
resize(e->xconfigure.width, e->xconfigure.height); resize(e->xconfigure.width, e->xconfigure.height);
drw_resize(d, e->xconfigure.width, e->xconfigure.height);
if (slides[idx].img) if (slides[idx].img)
slides[idx].img->state &= ~(DRAWN | SCALED); slides[idx].img->state &= ~(DRAWN | SCALED);
xdraw(); xdraw();