summaryrefslogtreecommitdiff
path: root/src/events.c
diff options
context:
space:
mode:
authorsabetts <sabetts>2001-09-21 09:47:23 +0000
committersabetts <sabetts>2001-09-21 09:47:23 +0000
commit227c0da67ae7e8d1531d8091fa6a8c2046f61a52 (patch)
tree36f682e047fabb07a0e6b20e1ac4963d00291341 /src/events.c
parentb953c9d532846ce07cbe1d065c9c30cf40d8903b (diff)
downloadratpoison-227c0da67ae7e8d1531d8091fa6a8c2046f61a52.zip
* src/split.h (find_frame_up): new prototype
(find_frame_down): likewise (find_frame_left): likewise (find_frame_right): likewise * src/split.c (find_frame_up): new function (find_frame_down): likewise (find_frame_left): likewise (find_frame_right): likewise * src/manage.c (move_window): use x11 gravity constants to denote gravity. * src/main.c (ratpoison_longopts): remove --kill and --restart. Dependant code updated. (init_defaults): use x11 gravity constants to denote gravity. (main): only display the startup message if defaults.startup_message is on. * src/list.c (update_window_gravity): rename from update_window_position. dependant code updated * src/events.c (client_msg): don't test for restart or kill client messages. (client_msg): properly handle iconify requests. (get_event): kill and restart the process here. * src/data.h (TOP_LEFT): remove define (TOP_CENTER): likewise (TOP_RIGHT): likewise (CENTER_LEFT): likewise (CENTER_CENTER): likewise (CENTER_RIGHT): likewise (BOTTOM_LEFT): likewise (BOTTOM_CENTER): likewise (BOTTOM_RIGHT): likewise (struct rp_window): rename field to position to gravity. (struct rp_defaults): rename win_pos to win_gravity, trans_pos to trans_gravity and maxsize_pos to maxsize_gravity. (rp_restart): remove global variable (rp_kill): likewise * src/communications.h (send_kill): remove prototype (send_restart): likewise * src/communications.c (send_restart): remove function. obsolete. (send_kill): likewise * src/bar.c (bar_x): Use X11 gravity constants to denote location. (bar_y): likewise * src/actions.h (cmd_focusup): new prototype (cmd_focusdown): likewise (cmd_focusleft): likewise (cmd_focusright): likewise (cmd_startup_message): likewise (cmd_restart): likewise * src/actions.c (cmd_quit): just set the kill_signalled variable. (parse_wingravity): use compass directions to describe the gravity (parse_wingravity): renamed from parse_winpos. dependant code updated. (cmd_gravity): renamed from cmd_pos. dependant code updated. (cmd_defwingravity): renamed from cmd_defwinpos. dependant code updated. (cmd_deftransgravity): renamed from cmd_deftranspos. dependant code updated. (cmd_defmaxsizegravity): renamed from cmd_defmaxsizepos. dependant code updated. (cmd_focusup): new function (cmd_focusdown): likewise (cmd_focusleft): likewise (cmd_focusright): likewise (cmd_restart): likewise (cmd_startup_message): likewise (user_commands): new commands "focusup" "focusdown" "focusright" "focusleft" "startup_message" "restart".
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/events.c b/src/events.c
index bcf1631..dfd4f0b 100644
--- a/src/events.c
+++ b/src/events.c
@@ -336,29 +336,29 @@ client_msg (XClientMessageEvent *ev)
{
PRINT_DEBUG ("Received client message.\n");
- if (ev->message_type == rp_restart)
- {
- PRINT_DEBUG ("Restarting\n");
- clean_up ();
- execvp(myargv[0], myargv);
- }
- else if (ev->message_type == rp_kill)
- {
- PRINT_DEBUG ("Exiting\n");
- clean_up ();
- exit (EXIT_SUCCESS);
- }
- else if (ev->message_type == wm_change_state)
+ if (ev->message_type == wm_change_state)
{
rp_window *win;
+ PRINT_DEBUG ("WM_CHANGE_STATE\n")
+
win = find_window (ev->window);
if (win == NULL) return;
if (ev->format == 32 && ev->data.l[0] == IconicState)
{
+ /* FIXME: This means clients can hide themselves without the
+ user's intervention. This is bad, but Emacs is the only
+ program I know of that iconifies itself and this is
+ generally from the user pressing C-z. */
+ PRINT_DEBUG ("Iconify Request.\n");
if (win->state == NormalState)
{
- /* TODO: Handle iconify events */
+ rp_window *w = find_window_other();
+
+ if (w)
+ set_active_window (w);
+ else
+ blank_frame (rp_current_frame);
}
}
else
@@ -811,15 +811,15 @@ get_event (XEvent *ev)
if (hup_signalled > 0)
{
- PRINT_DEBUG ("Restarting with a fresh plate.\n");
- send_restart ();
+ clean_up ();
+ execvp(myargv[0], myargv);
}
if (kill_signalled > 0)
{
- fprintf (stderr, "ratpoison: Agg! I've been SHOT!\n");
+ PRINT_DEBUG ("Exiting\n");
clean_up ();
- exit (EXIT_FAILURE);
+ exit (EXIT_SUCCESS);
}
/* Is there anything in the event qeue? */