summaryrefslogtreecommitdiff
path: root/src/communications.c
diff options
context:
space:
mode:
authorsabetts <sabetts>2001-02-10 22:56:13 +0000
committersabetts <sabetts>2001-02-10 22:56:13 +0000
commit292f4c8f9dd645563b79a44ee966245152f1b23a (patch)
tree009aec39a46cc924eb30700cb820a27c05741d13 /src/communications.c
parenta19de59482fa3e52b59fbe96a37feb7056117581 (diff)
downloadratpoison-292f4c8f9dd645563b79a44ee966245152f1b23a.zip
* communications.c (send_restart, send_kill): Added
* ratpoison.h: includes communications.h * main.c (send_restart, send_kill): Moved to communications.c * list.c (get_mouse_root_position): Added (add_to_window_list): Initialize new rp_window fields (save_mouse_position): Added (set_active_window): Added code to save and restore the position of the mouse * events.c (property_notify): Added code to listen for a WM_TRANSIENT_FOR property change. * data.h (struct rp_window): Added transient, transient_for, mouse_x, mouse_y. * actions.c (maximize_transient): Added (maximize): Added code to handle transient windows differently * Makefile.am (ratpoison_SOURCES): Added communications.h and communications.c
Diffstat (limited to 'src/communications.c')
-rw-r--r--src/communications.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/communications.c b/src/communications.c
new file mode 100644
index 0000000..83c2cc2
--- /dev/null
+++ b/src/communications.c
@@ -0,0 +1,66 @@
+/* communications.c -- Send commands to a running copy of ratpoison.
+ *
+ * Copyright (C) 2000 Shawn Betts
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA */
+
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+
+#include "ratpoison.h"
+
+void
+send_restart ()
+{
+ XEvent ev;
+ int status;
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.window = DefaultRootWindow (dpy);
+ ev.xclient.message_type = rp_restart;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = rp_restart;
+ ev.xclient.data.l[1] = CurrentTime;
+
+ status = XSendEvent (dpy, DefaultRootWindow (dpy), False, SubstructureRedirectMask, &ev);
+ if (status == 0)
+ {
+ PRINT_ERROR ("failed to send restart event\n");
+ }
+}
+
+void
+send_kill ()
+{
+ XEvent ev;
+ int status;
+
+ ev.xclient.type = ClientMessage;
+ ev.xclient.window = DefaultRootWindow (dpy);
+ ev.xclient.message_type = rp_kill;
+ ev.xclient.format = 32;
+ ev.xclient.data.l[0] = rp_kill;
+ ev.xclient.data.l[1] = CurrentTime;
+
+ status = XSendEvent (dpy, DefaultRootWindow (dpy), False, SubstructureRedirectMask, &ev);
+ if (status == 0)
+ {
+ PRINT_ERROR ("failed to send kill event\n");
+ }
+}