X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=driver%2Fxscreensaver.h;h=1ede883662a8c0ead0253750f9d4c2a2764559c9;hb=e4fa2ac140f7bc56571373a7b7eb585fa4500e38;hp=3ab14eaaab69e29863c5448c78cd6ed18e1f47cf;hpb=8eb2873d7054e705c4e83f22d18c40946a9e2529;p=xscreensaver diff --git a/driver/xscreensaver.h b/driver/xscreensaver.h index 3ab14eaa..1ede8836 100644 --- a/driver/xscreensaver.h +++ b/driver/xscreensaver.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1993-2001 Jamie Zawinski +/* xscreensaver, Copyright (c) 1993-2003 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -20,6 +20,10 @@ #include #include +#ifdef HAVE_SIGACTION +# include /* for sigset_t */ +#endif + #include "prefs.h" extern char *progname; @@ -62,6 +66,7 @@ struct saver_info { server extension info ======================================================================= */ + Bool xinerama_p; /* Whether Xinerama is in use. */ Bool using_xidle_extension; /* which extension is being used. */ Bool using_mit_saver_extension; /* Note that `p->use_*' is the *request*, */ Bool using_sgi_saver_extension; /* and `si->using_*' is the *reality*. */ @@ -184,8 +189,19 @@ struct saver_info { struct saver_screen_info { saver_info *global; - int number; - Screen *screen; + int number; /* The internal ordinal of this screen, + counting Xinerama rectangles as separate + screens. */ + int real_screen_number; /* The number of the underlying X screen on + which this rectangle lies. */ + Screen *screen; /* The X screen in question. */ + + int x, y, width, height; /* The size and position of this rectangle + on its underlying X screen. */ + + Bool real_screen_p; /* This will be true of exactly one ssi per + X screen. */ + Widget toplevel_shell; /* ======================================================================= @@ -270,7 +286,7 @@ struct saver_screen_info { server extensions and virtual roots ======================================================================= */ -extern void restore_real_vroot (saver_info *si); +extern Bool restore_real_vroot (saver_info *si); extern void disable_builtin_screensaver (saver_info *, Bool unblank_screen_p); extern Bool ensure_no_screensaver_running (Display *, Screen *); @@ -373,7 +389,12 @@ extern void maybe_reload_init_file (saver_info *); subprocs ======================================================================= */ -extern void block_sigchld (void); +extern void handle_signals (saver_info *si); +#ifdef HAVE_SIGACTION + extern sigset_t block_sigchld (void); +#else /* !HAVE_SIGACTION */ + extern int block_sigchld (void); +#endif /* !HAVE_SIGACTION */ extern void unblock_sigchld (void); extern void hack_environment (saver_info *si); extern void hack_subproc_environment (saver_screen_info *ssi); @@ -386,6 +407,8 @@ extern void emergency_kill_subproc (saver_info *si); extern Bool select_visual (saver_screen_info *ssi, const char *visual_name); extern void store_saver_status (saver_info *si); extern const char *signal_name (int signal); +extern void exec_command (const char *shell, const char *command, + int nice_level); /* ======================================================================= subprocs diagnostics @@ -414,8 +437,9 @@ extern Bool window_exists_p (Display *dpy, Window window); extern char *timestring (void); extern Bool display_is_on_console_p (saver_info *si); extern Visual *get_best_gl_visual (saver_screen_info *ssi); +extern void check_for_leaks (const char *where); -extern Atom XA_VROOT, XA_XSETROOT_ID; +extern Atom XA_VROOT, XA_XSETROOT_ID, XA_ESETROOT_PMAP_ID, XA_XROOTPMAP_ID; extern Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_ID; extern Atom XA_SCREENSAVER_STATUS, XA_LOCK, XA_BLANK; extern Atom XA_DEMO, XA_PREFS;