diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/communications.c | 16 | ||||
-rw-r--r-- | src/communications.h | 2 | ||||
-rw-r--r-- | src/main.c | 6 |
3 files changed, 19 insertions, 5 deletions
diff --git a/src/communications.c b/src/communications.c index 7705c85..d5e96d0 100644 --- a/src/communications.c +++ b/src/communications.c @@ -81,13 +81,23 @@ recieve_command_result (Window w) } int -send_command (unsigned char *cmd) +send_command (unsigned char *cmd, int screen_num) { Window w; int done = 0; - w = XCreateSimpleWindow (dpy, DefaultRootWindow (dpy), - 0, 0, 1, 1, 0, 0, 0); + /* If the user specified a specific screen, then send the event to + that screen. */ + if (screen_num >= 0) + { + w = XCreateSimpleWindow (dpy, RootWindow (dpy, screen_num), + 0, 0, 1, 1, 0, 0, 0); + } + else + { + w = XCreateSimpleWindow (dpy, DefaultRootWindow (dpy), + 0, 0, 1, 1, 0, 0, 0); + } /* Select first to avoid race condition */ XSelectInput (dpy, w, PropertyChangeMask); diff --git a/src/communications.h b/src/communications.h index 0fd7937..6ece873 100644 --- a/src/communications.h +++ b/src/communications.h @@ -22,6 +22,6 @@ #ifndef _RATPOISON_COMMUNICATIONS_H #define _RATPOISON_COMMUNICATIONS_H 1 -int send_command (unsigned char *cmd); +int send_command (unsigned char *cmd, int screen_num); #endif /* ! _RATPOISON_COMMUNICATIONS_H */ @@ -568,7 +568,11 @@ main (int argc, char *argv[]) for (i=0; i<cmd_count; i++) { - send_command (command[i]); + if (screen_arg) + send_command (command[i], screen_num); + else + send_command (command[i], -1); + free (command[i]); } |