diff --git a/widget.c b/widget.c index 9580194..dfa4c95 100644 --- a/widget.c +++ b/widget.c @@ -219,7 +219,7 @@ struct Selection { }; struct Widget { - int start; + bool start, isset; int redraw; /* X11 stuff */ @@ -1476,6 +1476,8 @@ cleanwidget(Widget *widget) struct Selection *sel; void *tmp; + if (!widget->isset) + return; thumb = widget->thumbhead; while (thumb != NULL) { tmp = thumb; @@ -3280,6 +3282,7 @@ widget_set(Widget *widget, const char *title, char **items[], size_t nitems, Scr { size_t i; + widget->isset = true; XUndefineCursor(widget->display, widget->window); cleanwidget(widget); widget->items = items; diff --git a/xfiles.c b/xfiles.c index 3b6d628..b7158c2 100644 --- a/xfiles.c +++ b/xfiles.c @@ -933,7 +933,7 @@ main(int argc, char *argv[]) path = *argv; initthumbnailer(&fm); if ((fm.widget = widget_create(APPCLASS, name, saveargc, saveargv, resources)) == NULL) - errx(EXIT_FAILURE, "could not initialize X widget"); + exit(EXIT_FAILURE); #if __OpenBSD__ if (pledge("stdio rpath proc exec", NULL) == RETURN_FAILURE) err(EXIT_FAILURE, "pledge");