# HG changeset patch # User Richard Laager # Date 1225397426 0 # Node ID ea7eb09389dc056b7b6cdf9e182b0e78708226dc # Parent 878ad37e5a18ea3b45f3ac02e4637d9589177c63# Parent ac967ea95b05e90bb970a66c05cf1b2e998b3195 propagate from branch 'im.pidgin.pidgin' (head 9ef0eaddbc0c1196f6ceefc842c249f918d2e131) to branch 'im.pidgin.pidgin.next.minor' (head c6c01e07ada3a8808dad3309e7c8a6af938c0b1d) diff -r ac967ea95b05 -r ea7eb09389dc .mtn-ignore --- a/.mtn-ignore Thu Oct 30 20:08:29 2008 +0000 +++ b/.mtn-ignore Thu Oct 30 20:10:26 2008 +0000 @@ -13,6 +13,7 @@ intltool-.* Doxyfile(\.mingw)?$ aclocal.m4 +autogen.args compile config.cache config.guess diff -r ac967ea95b05 -r ea7eb09389dc ChangeLog --- a/ChangeLog Thu Oct 30 20:08:29 2008 +0000 +++ b/ChangeLog Thu Oct 30 20:10:26 2008 +0000 @@ -18,6 +18,10 @@ of zero), add this to ~/.purple/gtkrc-2.0: gtk-enable-tooltips = 0 + Finch: + * Allow binding meta+arrow keys for actions. + + version 2.5.2 (10/19/2008): libpurple: * Fixed a crash on removing a custom buddy icon on a buddy. diff -r ac967ea95b05 -r ea7eb09389dc finch/libgnt/gntkeys.c --- a/finch/libgnt/gntkeys.c Thu Oct 30 20:08:29 2008 +0000 +++ b/finch/libgnt/gntkeys.c Thu Oct 30 20:10:26 2008 +0000 @@ -102,7 +102,12 @@ #define INSERT_COMB(k, code) do { \ snprintf(key, sizeof(key), "%s%s%s", controls[c], alts[a], k); \ INSERT_KEY(key, code); \ - } while (0); + } while (0) +#define INSERT_COMB_CODE(k, c1, c2) do { \ + char __[32]; \ + snprintf(__, sizeof(__), "%s%s", c1, c2); \ + INSERT_COMB(k, __); \ + } while (0) /* Lower-case alphabets */ for (a = 0, c = 0; controls[c]; c++, a = 0) { @@ -124,6 +129,10 @@ } if (c == 0) { INSERT_COMB("tab", "\033\t"); + INSERT_COMB_CODE("up", "\033", GNT_KEY_UP); + INSERT_COMB_CODE("down", "\033", GNT_KEY_DOWN); + INSERT_COMB_CODE("left", "\033", GNT_KEY_LEFT); + INSERT_COMB_CODE("right", "\033", GNT_KEY_RIGHT); } } } @@ -144,6 +153,8 @@ void gnt_keys_refine(char *text) { + while (*text == 27 && *(text + 1) == 27) + text++; if (*text == 27 && *(text + 1) == '[' && (*(text + 2) >= 'A' && *(text + 2) <= 'D')) { /* Apparently this is necessary for urxvt and screen and xterm */