[brlcad-commits] SF.net SVN: brlcad:[37913] brlcad/trunk/src/libfb/if_tk.c
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <sta...@us...> - 2010-03-03 22:39:29
|
Revision: 37913 http://brlcad.svn.sourceforge.net/brlcad/?rev=37913&view=rev Author: starseeker Date: 2010-03-03 22:39:11 +0000 (Wed, 03 Mar 2010) Log Message: ----------- Remove earlier kill, teach the left mouse button to close the window. Modified Paths: -------------- brlcad/trunk/src/libfb/if_tk.c Modified: brlcad/trunk/src/libfb/if_tk.c =================================================================== --- brlcad/trunk/src/libfb/if_tk.c 2010-03-03 21:52:58 UTC (rev 37912) +++ brlcad/trunk/src/libfb/if_tk.c 2010-03-03 22:39:11 UTC (rev 37913) @@ -163,7 +163,8 @@ "pack .fb_tk_canvas -fill both -expand true"; const char place_image_cmd[255] = ".fb_tk_canvas create image 0 0 -image fb_tk_photo -anchor nw"; - const char *wmcmd = "wm protocol . WM_DELETE_WINDOW {set CloseWindow \"close\"}"; + const char *wmclosecmd = "wm protocol . WM_DELETE_WINDOW {set CloseWindow \"close\"}"; + const char *bindclosecmd = "bind . <Button-2> {set CloseWindow \"close\"}"; char *buffer; char *linebuffer; @@ -250,10 +251,13 @@ * a "lingering" tk window. */ Tcl_SetVar(fbinterp, "CloseWindow", "open", 0); - if (Tcl_Eval(fbinterp, wmcmd) != TCL_OK) { + if (Tcl_Eval(fbinterp, wmclosecmd) != TCL_OK) { fb_log("Error binding WM_DELETE_WINDOW."); } - + if (Tcl_Eval(fbinterp, bindclosecmd) != TCL_OK) { + fb_log("Error binding right mouse button."); + } + while (Tcl_DoOneEvent(TCL_ALL_EVENTS|TCL_DONT_WAIT)); /* FIXME: malloc() is necessary here because there are callers @@ -286,7 +290,6 @@ /* If the Tk window gets a close event, bail */ if (!strcmp(Tcl_GetVar(fbinterp, "CloseWindow", 0), "close")) { - kill(pid, SIGTERM); /* Stop the child process - we don't need it anymore */ free(buffer); free(linebuffer); free(tkwrite_buffer); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |