summaryrefslogtreecommitdiff
path: root/src/events.c
diff options
context:
space:
mode:
authorsabetts <sabetts>2001-09-09 02:59:23 +0000
committersabetts <sabetts>2001-09-09 02:59:23 +0000
commit1bd2211aa5c392d9873c74ffc998bea744007a29 (patch)
treeb695cac6f169042430a4d7c1a9cc0ac9bda63304 /src/events.c
parent52cd2d7d10d543fe989e3cde617faf7453dcc494 (diff)
downloadratpoison-1bd2211aa5c392d9873c74ffc998bea744007a29.zip
* src/list.h (update_window_position): new prototype
(window_name): new prototype (get_window_list): update prototype * src/events.c (grab_rat): Don't wrap in an #ifdef (ungrab_rat): likewise (handle_key): record if the rat is grabbed and only ungrab it at the end if it was first grabbed. * src/actions.h (cmd_pos): new prototype (cmd_defwinpos): new prototype (cmd_deftranspos): new prototype (cmd_defmaxsizepos): new prototype (cmd_defbartimeout): new prototype (cmd_defbarloc): new prototype (cmd_deffont): new prototype (cmd_defpadding): new prototype (cmd_defborder): new prototype (cmd_definputwidth): new prototype (cmd_defwaitcursor): new prototype (cmd_defwinfmt): new prototype (cmd_defwinname): new prototype * src/messages.h (MESSAGE_FRAME_STRING): new message * src/manage.c (get_wmname): renamed from get_window_name (get_class_hints): new function (get_res_name): likewise (get_res_class): likewise (update_window_name): update the window's wm_name, res_name, and res_class fields. (update_window_name): calls functions get_wmname, get_res_name, get_res_class. (update_window_name): Don't crop the window name. (update_window_information): call update_window_position. (move_window): new function (maximize_transient): only set the window's width and height fields. (maximize_normal): likewise (maximize): call move_window (force_maximize): likewise (force_maximize): if the window has resize hints, resize it 1 resize unit. * src/main.c: new global variable, defaults. remove static variable, font, and move to defaults. Dependant code updated. (init_defaults): new function (main): call init_defaults. (init_screen): initialize the screen's fg_color to black and bg_color to white. * src/list.c (free_window): free the fields user_name, res_name, res_class, and wm_name. (update_window_position): new function (window_name): new function. Code accessing a window's name uses this function. All code updated. (add_to_window_list): call update_window_position (add_to_window_list): initialize wm_name, res_name, and res_class for the new window. (format_window_name): new function (get_window_list): Add parameter fmt. All callers updated. (get_window_list): call format_window_name. * src/conf.h: move Configuration variables to the global variable, defaults. Dependant code updated. * src/data.h (TOP_LEFT): new 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): new fields user_name, wm_name, res_name, res_class, position. (struct rp_window): remove field name. Replaced with user_name. Dependant code updated. (struct screen_info): remove field font. dependant code updated. (struct screen_info): new fields fg_color, bg_color. (struct rp_defaults): new struct (defaults): new global * src/actions.c (parse_winpos): new function (cmd_pos): likewise (cmd_defwinpos): likewise (cmd_deftranspos): likewise (cmd_defmaxsizepos): likewise (cmd_defbartimeout): likewise (cmd_defbarloc): likewise (cmd_deffont): likewise (cmd_defpadding): likewise (cmd_defborder): likewise (cmd_definputwidth): likewise (cmd_defwaitcursor): likewise (cmd_defwinfmt): likewise (cmd_defwinname): likewise (user_commands): New commands defbarloc, defbartimeout, defborder, deffont, defintputwidth, defmaxsizepos, defpadding, deftranspos, defwaitcursor, defwinfmt, defwinname, defwinpos.
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/events.c b/src/events.c
index 98ffa11..bcf1631 100644
--- a/src/events.c
+++ b/src/events.c
@@ -112,11 +112,11 @@ unmap_notify (XEvent *ev)
switch (win->state)
{
case IconicState:
- PRINT_DEBUG ("Withdrawing iconized window '%s'\n", win->name);
+ PRINT_DEBUG ("Withdrawing iconized window '%s'\n", window_name (win));
if (ev->xunmap.send_event) withdraw_window (win);
break;
case NormalState:
- PRINT_DEBUG ("Withdrawing normal window '%s'\n", win->name);
+ PRINT_DEBUG ("Withdrawing normal window '%s'\n", window_name (win));
/* If the window was inside a frame, fill the frame with another
window. */
frame = find_windows_frame (win);
@@ -182,10 +182,10 @@ map_request (XEvent *ev)
{
if (win->transient)
marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT,
- win->number, win->name);
+ win->number, window_name (win));
else
marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW,
- win->number, win->name);
+ win->number, window_name (win));
}
}
break;
@@ -223,7 +223,7 @@ configure_notify (XConfigureEvent *e)
win = find_window (e->window);
if (win)
{
- PRINT_DEBUG ("'%s' window notify: %d %d %d %d %d\n", win->name,
+ PRINT_DEBUG ("'%s' window notify: %d %d %d %d %d\n", window_name (win),
e->x, e->y, e->width, e->height, e->border_width);
}
}
@@ -269,10 +269,10 @@ configure_request (XConfigureRequestEvent *e)
{
if (win->transient)
marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT,
- win->number, win->name);
+ win->number, window_name (win));
else
marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW,
- win->number, win->name);
+ win->number, window_name (win));
}
}
else
@@ -285,7 +285,7 @@ configure_request (XConfigureRequestEvent *e)
PRINT_DEBUG("request CWStackMode %d\n", e->detail);
}
- PRINT_DEBUG ("'%s' window size: %d %d %d %d %d\n", win->name,
+ PRINT_DEBUG ("'%s' window size: %d %d %d %d %d\n", window_name (win),
win->x, win->y, win->width, win->height, win->border);
if (e->value_mask & CWBorderWidth)
@@ -368,7 +368,6 @@ client_msg (XClientMessageEvent *ev)
}
}
-#ifdef USE_WAITFORKEY_CURSOR
static void
grab_rat ()
{
@@ -376,15 +375,12 @@ grab_rat ()
GrabModeAsync, GrabModeAsync,
None, current_screen()->rat, CurrentTime);
}
-#endif
-#ifdef USE_WAITFORKEY_CURSOR
static void
ungrab_rat ()
{
XUngrabPointer (dpy, CurrentTime);
}
-#endif
static void
handle_key (screen_info *s)
@@ -395,11 +391,12 @@ handle_key (screen_info *s)
Window fwin; /* Window currently in focus */
KeySym keysym; /* Key pressed */
unsigned int mod; /* Modifiers */
+ int rat_grabbed = 0;
PRINT_DEBUG ("handling key...\n");
/* All functions hide the program bar and the frame indicator. */
- if (BAR_TIMEOUT > 0) hide_bar (s);
+ if (defaults.bar_timeout > 0) hide_bar (s);
hide_frame_indicator();
/* Disable any alarm that was going to go off. */
@@ -411,9 +408,11 @@ handle_key (screen_info *s)
/* Change the mouse icon to indicate to the user we are waiting for
more keystrokes */
-#ifdef USE_WAITFORKEY_CURSOR
- grab_rat();
-#endif
+ if (defaults.wait_for_key_cursor)
+ {
+ grab_rat();
+ rat_grabbed = 1;
+ }
read_key (&keysym, &mod, NULL, 0);
@@ -437,9 +436,8 @@ handle_key (screen_info *s)
free (keysym_name);
}
-#ifdef USE_WAITFORKEY_CURSOR
- ungrab_rat();
-#endif
+ if (rat_grabbed)
+ ungrab_rat();
}
static void