Age | Commit message (Collapse) | Author |
|
* if the user aborted we receive a NULL pointer; don't attempt to
dereference it, and treat this case as a failure.
Matches the behaviour of cmd_colon and cmd_select
|
|
* since X11/Xdefs.h may define it too. Found by -Wshadow.
Bonus: "last" carries more meaning.
|
|
* They are a c99 feature, which makes it impossible to build ratpoison
on some platforms. GCC supports zero-sized arrays, more conservative
approaches say to use foo[1], but as brlink says a compiler with
aggressive optimization turned on might play nasty tricks.
Just use a traditional struct.
|
|
* forgot a break statement when moving things around
* braino in comment: '1' is RET_SUCCESS, '0' is RET_FAILURE
|
|
* in cmd_select(), consistently set the return value for all cases we deal
with
* in cmd_unmanage(), don't attempt to use a NULL pointer if the unmanaged
windows list is empty; just report success
* in cmd_kill, only report failure if XKillClient() actually failed
* in command(), remove a useless test: cmd can't be NULL
* in cmd_gravity, don't call current_window() twice
|
|
* properly define the way the wm may give feedback to ratpoison -c;
see communications.c:receive_command_result()
* follow this protocol in events.c:receive_command()
* modify receive_command_result() to return an int (which is the
mirror of the struct cmdret "success" member used on the wm side)
* pass that error status back to main.c; exit with an error status if
any of the commands we sent failed
|
|
|
|
* only print the "Command key: ..." bits if we're dealing with
the root kmap
* don't read (and print) uninitialized data
(foomap->actions[foomap->actions_last] shouldn't be accessed)
It seems like keymap actions and other things like aliases
use arrays because they were implemented before linkedlist.[ch]
were introduced. Perhaps should we just switch them to more
fool-proof linked lists?
|
|
otherwise ratpoison -c no longer works
|
|
* (globals.[ch]): remove rp_text_width "font" arg, since its value
is always the global variable defaults.font (non-Xft case).
remove one #ifdef while here
* update rp_text_width() calls to match new signature
|
|
* (manage.c) in get_wmname(), try to get the (UTF-8 encoded)
_NET_WM_NAME property. Fallback to GetWMName() if unavailable.
Add some debugging bits to see which TEXT encoding clients use
for WM_NAME.
* (globals.c) use Xft*Utf8 functions to compute text width and
draw strings. No regressions with or without Xft, UTF-8 locale
or not.
* assume we can use Xft*Utf8 functions whenever we have Xft,
to reduce the #ifdef dance
Original patch from Bernhard R. Link
|
|
* (events.c) extract xa_compound_text from selection_request(),
make it a global
* introduce xa_string (same as XA_STRING) and rename
utf8_string to xa_utf8_string, for consistency
|
|
* use nl_langinfo() to detect if locale codeset is UTF-8
|
|
for waitpid(SIGCHLD, SIG_IGN) behaves wildly differently across OSes. Fixes
tmpwm hanging after child wm exits on OpenBSD.
|
|
* AC_CHECK_FUNCS: +setenv +unsetenv -putenv
(the check for putenv() wasn't used anyway)
* prefer setenv() to putenv() in cmd_setenv()
* prefer unsetenv() to putenv() in cmd_unsetenv()
- putenv("FOO") isn't legit everywhere
- putenv("FOO=") will only work on MinGW
* make the getenv command return an empty output if the variable wasn't found
* while here, split and sort AC_CHECK_FUNCS
|cos| on #ratpoison reported that environment variables weren't
properly removed, and proposed a different fix. thanks!
|
|
Without this change, cmd_info displays "No Window" if called
with the current window not in the current group (for example
directly after a gselect).
This change makes it also look in other groups. In that case
it might show a number not the one to switch back to it without
switching the group first, but I guess that is less confusing
than just claiming there is no window.
|
|
XDisplayString does not append ".screen number" to return value after
http://gitorious.org/omcfadde/libx11/commit/f92e754297ec5fdb81068b56a4435026666224fa
Fix by appending .screen_num to the end of s->display_string in such case
|
|
In events.c's key_press, the screen the local pointer variable s
points to is accessed if HIDE_MOUSE is defined when hiding the cursor.
Directly after that there is a "if (!s) return;", which is obviously
too late.
By default HIDE_MOUSE is not defined in src/conf.h, so this is not
a problem unless this feature was enabled at compile time.
Found by cppcheck.
|
|
|
|
When an alias is executed without arguments, for example aliasing
"reload" to "source .ratpoisonrc" and then running "reload" by itself
results in "source: .ratpoisonrc : No such file or directory" implying
it was trying to load ".ratpoisonrc " (note the extra space).
|
|
|
|
|
|
|
|
exchange_with_frame now always selects the second frame given,
simplifying the code (getting rid of segfaults when both were
on different screens). This changes the behaviour of cmd_swap
to always focus the first argument when two arguments are given.
This patch also removes the screen argument of exchange_with_frame,
which is now no longer needed (and cmd_swap was giving the wrong
screen anyway in the case of multiple arguments given).
|
|
|
|
As reported by "Gentooer" in the #ratpoison IRC channel, there is a bug in
:cother and :iother. If are no windows and you issue either :cother, or
:iother ratpoison segfaults. This patch resolves the issue.
|
|
|
|
|
|
|
|
|
|
prefetch function
|
|
|
|
|
|
Now the inverted rectangle is drawn first and the text overtop in the bg color.
|
|
|
|
xft_font and xft_color.
|
|
If historysize is 0, do not create .ratpoison_history at exit
and do keep no entries in history. (Previously ratpoison would
always at least store the last entry).
|
|
* fixes a bug that hangs rp: in resize mode, click firefox and rp hangs
|
|
relative to current frame when there's no window
* update docs
|
|
there's no window
* update documentation
|
|
|
|
|
|
|
|
making sure _NET atoms are reset after tmpwm and deleted when exiting.
|
|
|
|
|
|
work after tmpwm
the race condition is fixed by spinning in a loop with a special error
handler until it is confirmed that the root event selections were
successfully.
Existing windows don't get their top level keys grabbed, so after the
windows are synced up, grab the top level keys on all windows.
|
|
|
|
|
|
expansion
|