summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Betts <sabetts@gmail.com>2009-04-13 05:19:46 -0700
committerShawn Betts <sabetts@gmail.com>2009-04-13 05:19:46 -0700
commitbd7aa51699f49cf7a67c403ba7f2ba3738fcf644 (patch)
tree9cdfbed91a22a4bde2570ab3cf80b408bbc8c18d
parent300c05edf890fbe2de11070b9839359bef9916e1 (diff)
downloadratpoison-bd7aa51699f49cf7a67c403ba7f2ba3738fcf644.zip
fix segfault in banishrel and make it banish to the corner of the frame when there's no window
* update documentation
-rw-r--r--doc/ratpoison.12
-rw-r--r--doc/ratpoison.texi2
-rw-r--r--src/actions.c14
3 files changed, 9 insertions, 9 deletions
diff --git a/doc/ratpoison.1 b/doc/ratpoison.1
index ef2acc9..12c31e0 100644
--- a/doc/ratpoison.1
+++ b/doc/ratpoison.1
@@ -228,7 +228,7 @@ Banish the rat cursor to the lower right corner of the screen.
.cmd banishrel
Banish the rat cursor to the lower right corner of the curren window.
If there isn't a window in the current frame, it banishes the rat cursor
-to the lower right corner of the screen.
+to the lower right corner of the frame.
.cmd chdir [ directory ]
If the optional argument is given, change the current directory
of ratpoison to \fIdirectory\fP.
diff --git a/doc/ratpoison.texi b/doc/ratpoison.texi
index faf61c6..179b7e7 100644
--- a/doc/ratpoison.texi
+++ b/doc/ratpoison.texi
@@ -1467,7 +1467,7 @@ Banish the mouse to the lower right corner of the screen.
@deffn banishrel
Banish the rat cursor to the lower right corner of the curren window.
If there isn't a window in the current frame, it banishes the rat cursor
-to the lower right corner of the screen.
+to the lower right corner of the frame.
@end deffn
@deffn Command chdir
diff --git a/src/actions.c b/src/actions.c
index 7e587b7..3958938 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -3106,15 +3106,15 @@ cmd_banish (int interactive, struct cmdarg **args)
cmdret *
cmd_banishrel (int interactive, struct cmdarg **args)
{
- rp_screen *s;
- rp_window *w;
+ rp_screen *s = current_screen();
+ rp_window *w = current_window();
+ rp_frame *f = current_frame();
- s = current_screen();
- w = current_window();
- if (!w)
- cmd_banish (interactive, args);
+ if (w)
+ XWarpPointer (dpy, None, w->w, 0, 0, 0, 0, w->x + w->width - 2, w->y + w->height - 2);
+ else
+ XWarpPointer (dpy, None, s->root, 0, 0, 0, 0, f->x + f->width, f->y + f->height);
- XWarpPointer (dpy, None, w->w, 0, 0, 0, 0, w->x + w->width - 2, w->y + w->height - 2);
return cmdret_new (RET_SUCCESS, NULL);
}