clone 470882 retitle -1 pdmenu should check the value returned by Gpm_GetEvent() reassign -1 pdmenu thanks
Reading the documentation of Gpm_GetEvent: « It returns 1 on success, -1 on failure, and 0 after closing the connection. » pdmenu doesn't properly check that. It should. Patch attached. Samuel
--- src/mouse.c.orig 2008-11-13 01:37:55.000000000 +0100 +++ src/mouse.c 2008-11-13 01:38:10.000000000 +0100 @@ -45,8 +45,11 @@ retval = select(gpm_fd+1, &rfds, NULL, NULL, &tv); if (retval) { /* data available */ - if ((FD_ISSET(gpm_fd, &rfds)) && /* data is for mice */ - (Gpm_GetEvent(&event))) { /* can read something */ + if (FD_ISSET(gpm_fd, &rfds)) { + /* data is for mice */ + switch (Gpm_GetEvent(&event)) { + case 1: + /* can read something */ if ((event.type & GPM_DOWN) && (event.buttons & GPM_B_LEFT)) return(MOUSE_BUTTON_LEFT); if ((event.type & GPM_DOWN) && (event.buttons & GPM_B_RIGHT)) @@ -55,6 +58,15 @@ return(MOUSE_DOWN); if (event.dy < 0) return(MOUSE_UP); + break; + case -1: + /* can read nothing */ + break; + case 0: + /* disconnected */ + gpm_ok = 0; + return(MOUSE_NOTHING); + } /* switch */ } else { /* data is for keyboard */ return(MOUSE_NOTHING); } /* else */