bugfix, you can bring window up more than once now
This commit is contained in:
parent
2df401ad8c
commit
682a9649bd
4 changed files with 29 additions and 22 deletions
2
BUGS
2
BUGS
|
@ -1 +1 @@
|
|||
* Xorg error when trying to intiate promptwin second time in one session
|
||||
* Xorg error when trying to intiate promptwin second time in one session - somewhat fixed, but needs further inspection
|
||||
|
|
6
drw.c
6
drw.c
|
@ -88,9 +88,11 @@ void
|
|||
drw_free(Drw *drw) {
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < drw->fontcount; i++) {
|
||||
/* This was breaking the program when I tried to bring window up second time
|
||||
Too lazy to dig deeper right now,*\
|
||||
\*or (i = 0; i < drw->fontcount; i++) {
|
||||
drw_font_free(drw->fonts[i]);
|
||||
}
|
||||
}*/
|
||||
XFreePixmap(drw->dpy, drw->drawable);
|
||||
XFreeGC(drw->dpy, drw->gc);
|
||||
free(drw);
|
||||
|
|
35
spine.c
35
spine.c
|
@ -189,7 +189,7 @@ cleanup(void) {
|
|||
}
|
||||
|
||||
|
||||
int
|
||||
static int
|
||||
keypress(XKeyEvent *ev) {
|
||||
char buf[32];
|
||||
int len;
|
||||
|
@ -301,19 +301,6 @@ run(void) {
|
|||
|
||||
void
|
||||
promptwin(void) {
|
||||
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
|
||||
fputs("warning: no locale support\n", stderr);
|
||||
if(!(dpy = XOpenDisplay(pinentry->display))) /*NULL was here*/
|
||||
die("dmenu: cannot open display\n");
|
||||
screen = DefaultScreen(dpy);
|
||||
root = RootWindow(dpy, screen);
|
||||
sw = DisplayWidth(dpy, screen);
|
||||
sh = DisplayHeight(dpy, screen);
|
||||
drw = drw_create(dpy, screen, root, sw, sh);
|
||||
drw_load_fonts(drw, fonts, LENGTH(fonts));
|
||||
if(!drw->fontcount)
|
||||
die("No fonts could be loaded.\n");
|
||||
drw_setscheme(drw, &scheme[SchemeNorm]);
|
||||
grabkeyboard();
|
||||
setup();
|
||||
run();
|
||||
|
@ -346,12 +333,26 @@ confirm(void) {
|
|||
return confirmed;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
spinecmdhandler (pinentry_t recieved_pinentry) {
|
||||
pinentry = recieved_pinentry;
|
||||
|
||||
if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
|
||||
fputs("warning: no locale support\n", stderr);
|
||||
if(!(dpy = XOpenDisplay(pinentry->display))) /*NULL was here*/
|
||||
die("dmenu: cannot open display\n");
|
||||
screen = DefaultScreen(dpy);
|
||||
root = RootWindow(dpy, screen);
|
||||
sw = DisplayWidth(dpy, screen);
|
||||
sh = DisplayHeight(dpy, screen);
|
||||
drw = drw_create(dpy, screen, root, sw, sh);
|
||||
drw_load_fonts(drw, fonts, LENGTH(fonts));
|
||||
if(!drw->fontcount)
|
||||
die("No fonts could be loaded.\n");
|
||||
drw_setscheme(drw, &scheme[SchemeNorm]);
|
||||
|
||||
if (pinentry->timeout){
|
||||
struct sigaction sa;
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = catchsig;
|
||||
sigaction(SIGALRM, &sa, NULL);
|
||||
|
@ -361,7 +362,6 @@ spinecmdhandler (pinentry_t recieved_pinentry) {
|
|||
return password();
|
||||
else
|
||||
return confirm();
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -369,6 +369,7 @@ pinentry_cmd_handler_t pinentry_cmd_handler = spinecmdhandler;
|
|||
|
||||
int
|
||||
main(int argc, char *argv[]){
|
||||
|
||||
pinentry_init("spine");
|
||||
pinentry_parse_opts(argc, argv);
|
||||
if (pinentry_loop())
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/sh
|
||||
echo "GETPIN
|
||||
BYE" | ./spine
|
||||
echo "SETDESC testing spine, type whatever
|
||||
SETPROMPT whatever:
|
||||
GETPIN
|
||||
SETDESC testing confirmation
|
||||
confirm
|
||||
BYE" | ./spine
|
||||
|
|
Loading…
Reference in a new issue