From 33fb61429337fc71292628e9dac1ddf599938304 Mon Sep 17 00:00:00 2001 From: sabetts Date: Wed, 6 Sep 2000 02:08:40 +0000 Subject: added a rename window key. --- manage.c | 56 +++++++++++++++++++++++++++----------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) (limited to 'manage.c') diff --git a/manage.c b/manage.c index 6c4881d..592e391 100644 --- a/manage.c +++ b/manage.c @@ -32,35 +32,6 @@ extern Atom wm_state; -void -grab_keys (screen_info *s) -{ - int i; - - for (i='0'; i<='9'; i++) - XGrabKey(dpy, XKeysymToKeycode (dpy, i ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_XTERM ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_EMACS ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_PREVWINDOW ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_NEXTWINDOW ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_TOGGLEBAR ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_LASTWINDOW ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_DELETE ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_PREFIX ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, XKeysymToKeycode (dpy, KEY_WINBYNAME ), AnyModifier, s->key_window, True, - GrabModeAsync, GrabModeAsync); -} - static void grab_prefix_key (Window w) { @@ -77,6 +48,9 @@ update_window_name (rp_window *win) int list_len; int i; + /* Don't overwrite the window name if the user specified one. */ + if (win->named) return 0; + if (!XGetWMName (dpy, win->w, &text)) { fprintf (stderr, "ratpoison:manage.c: I can't get the WMName.\n"); @@ -121,6 +95,30 @@ update_window_name (rp_window *win) return 1; } +void +rename_current_window () +{ + char winname[100]; + + if (rp_current_window == NULL) return; + + get_input (rp_current_window->scr, "Name: ", winname, 100); + printf ("user entered: %s\n", winname); + + free (rp_current_window->name); + rp_current_window->name = malloc (sizeof (char) * strlen (winname) + 1); + if (rp_current_window->name == NULL) + { + fprintf (stderr, "ratpoison:rename_window(): Out of memory\n"); + exit (EXIT_FAILURE); + } + strcpy (rp_current_window->name, winname); + rp_current_window->named = 1; + + /* Update the program bar. */ + update_window_names (rp_current_window->scr); +} + void manage (rp_window *win, screen_info *s) { -- cgit v1.2.3