summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/communications.c16
-rw-r--r--src/communications.h2
-rw-r--r--src/main.c6
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 */
diff --git a/src/main.c b/src/main.c
index 33a9597..8c3b98b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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]);
}