exiting suntools

MIKE at cisco.nosc.mil MIKE at cisco.nosc.mil
Thu Jun 15 09:03:00 AEST 1989


I have what I hope is a simple question for some Sunview expert. I'm
trying to implement a button which will perform an 'Exit Suntools'
function.  I got the source from Suntools.c and tried to copy the code
fragment that it uses,

quit()
{
int windowfd;
int i;
struct   pixwin *pixwin;

/*    destroy all windows in demo and logout
      this stuff copied from suntools.c         */
      windowfd = window_get(base_frame0,WIN_FD); /* get current window fd */
      win_screenget(windowfd,&rootscreen); /* get root screen attributes */
      rootfd = open(rootscreen.scr_rootname); /* get root screen fd */
      win_screendestroy(rootfd); /* close all windows */
/*    lock screen before clear so the frame buffer is not clobbered while
      the cursor is moving	*/
      (void)pw_lock(pixwin,&rootscreen.scr_rect);
      /* Clear available plane groups */
      for (i = 0; i < PIX_MAX_PLANE_GROUPS; i++) {
          if (pixwin->pw_clipdata->pwcd_plane_groups_available[i]) {
              /* Write to all plane groups */
	      pr_set_planes(pixwin->pw_pixrect, i, PIX_ALL_PLANES);
	      /* Clear screen */
	      (void)pr_rop(pixwin->pw_pixrect,
	      rootscreen.scr_rect.r_left, rootscreen.scr_rect.r_top, 
	      rootscreen.scr_rect.r_width, rootscreen.scr_rect.r_height,
	      PIX_CLR, (Pixrect *)0, 0, 0);
	      /* Reset previous colormap */
	      (void)pr_putcolormap(pixwin->pw_pixrect, 0, 256,
	      red, green, blue);
	   }
       }
      (void)pw_unlock(pixwin);
      exit(0);

It kinda works, all processes in all the active windows seem to terminate,
but the screen does not clear, the windows in the top two-thirds or so of
the screen still display. If I log back in and clear the screen things
seem o.k. Any help appreciated.

						Mike Pawka
						NOSC San Diego, CA
						mike at cisco.nosc.mil



More information about the Comp.sys.sun mailing list