1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 21:36:37 +02:00

Add new keys to move into last visited buffers (alt + "<", alt + ">"), come back to last visited buffer when closing a buffer

This commit is contained in:
Sebastien Helleu
2009-05-18 17:47:45 +02:00
parent 6d0e15e0d7
commit 4bfc005d9d
12 changed files with 406 additions and 52 deletions
+3 -1
View File
@@ -1,7 +1,7 @@
WeeChat ChangeLog
=================
FlashCode <flashcode@flashtux.org>
v0.3.0-dev, 2009-05-16
v0.3.0-dev, 2009-05-18
Version 0.3.0 (under dev!)
@@ -47,6 +47,8 @@ Version 0.3.0 (under dev!)
* gui: add tags for lines and custom filtering by tags or regex (task #7674)
* gui: add custom bars, with custom items
* gui: add key to zoom a window (task #7470)
* gui: add keys to move into last visited buffers: alt + "<" and alt + ">"
* gui: come back to last visited buffer when closing a buffer
* gui: add new option scroll_page_percent to choose percent of height to scroll
with page_up and page_down keys (task #8702)
* gui: add number of lines remaining after last line displayed in "-MORE-"
+22 -7
View File
@@ -245,6 +245,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Strg + K</entry>
<entry>
Lösche vom Cursor bis zum Ende der Kommandozeile
<!-- TRANSLATION NEEDED -->
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -277,12 +279,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Strg + U</entry>
<entry>
Lösche vom Cursor bis zum Aanfang der Kommandozeile
<!-- TRANSLATION NEEDED -->
(deleted string is copied to clipboard)
</entry>
</row>
<row>
<entry>Strg + W</entry>
<entry>
Lösche das vorhergehende Wort in der Kommandozeile
<!-- TRANSLATION NEEDED -->
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -422,6 +428,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Alt + D</entry>
<entry>
Lösche das nächste Wort in der Kommandozeile
<!-- TRANSLATION NEEDED -->
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -449,13 +457,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Schalte zum letzten Puffer
</entry>
</row>
<row>
<entry>Alt + J dann Alt + P</entry>
<entry>
<!-- TRANSLATION NEEDED -->
Switch to buffer previously displayed
</entry>
</row>
<row>
<entry>Alt + J dann Alt + R</entry>
<entry>
@@ -526,6 +527,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Zoom on current window
</entry>
</row>
<row>
<entry>Alt + &lt;</entry>
<entry>
<!-- TRANSLATION NEEDED -->
Switch to previous buffer in list of visited buffers
</entry>
</row>
<row>
<entry>Alt + &gt;</entry>
<entry>
<!-- TRANSLATION NEEDED -->
Switch to next buffer in list of visited buffers
</entry>
</row>
<row>
<entry>Alt + =</entry>
<entry>
+16 -6
View File
@@ -229,6 +229,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Ctrl + K</entry>
<entry>
Delete from cursor until end of command line
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -260,12 +261,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Ctrl + U</entry>
<entry>
Delete from cursor until beginning of command line
(deleted string is copied to clipboard)
</entry>
</row>
<row>
<entry>Ctrl + W</entry>
<entry>
Delete previous word of command line
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -404,6 +407,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Alt + D</entry>
<entry>
Delete next word in command line
(deleted string is copied to clipboard)
</entry>
</row>
<row>
@@ -425,12 +429,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Switch to last buffer
</entry>
</row>
<row>
<entry>Alt + J then Alt + P</entry>
<entry>
Switch to buffer previously displayed
</entry>
</row>
<row>
<entry>Alt + J then Alt + R</entry>
<entry>
@@ -498,6 +496,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Zoom on current window
</entry>
</row>
<row>
<entry>Alt + &lt;</entry>
<entry>
Switch to previous buffer in list of visited buffers
</entry>
</row>
<row>
<entry>Alt + &gt;</entry>
<entry>
Switch to next buffer in list of visited buffers
</entry>
</row>
<row>
<entry>Alt + =</entry>
<entry>
+16 -6
View File
@@ -248,6 +248,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Ctrl + K</entry>
<entry>
Effacer du curseur jusqu'à la fin de la ligne de commande
(la chaîne supprimée est copiée dans le presse-papiers)
</entry>
</row>
<row>
@@ -280,12 +281,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Ctrl + U</entry>
<entry>
Effacer du curseur jusqu'au début de la ligne de commande
(la chaîne supprimée est copiée dans le presse-papiers)
</entry>
</row>
<row>
<entry>Ctrl + W</entry>
<entry>
Effacer le mot précédent sur la ligne de commande
(la chaîne supprimée est copiée dans le presse-papiers)
</entry>
</row>
<row>
@@ -427,6 +430,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<entry>Alt + D</entry>
<entry>
Effacer le mot suivant
(la chaîne supprimée est copiée dans le presse-papiers)
</entry>
</row>
<row>
@@ -454,12 +458,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Sauter au dernier tampon
</entry>
</row>
<row>
<entry>Alt + J puis Alt + P</entry>
<entry>
Sauter au tampon affiché précédemment
</entry>
</row>
<row>
<entry>Alt + J puis Alt + R</entry>
<entry>
@@ -528,6 +526,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Zoom sur la fenêtre courante
</entry>
</row>
<row>
<entry>Alt + &lt;</entry>
<entry>
Sauter au tampon précédent dans la liste des tampons visités
</entry>
</row>
<row>
<entry>Alt + &gt;</entry>
<entry>
Sauter au tampon suivant dans la liste des tampons visités
</entry>
</row>
<row>
<entry>Alt + =</entry>
<entry>
+15 -10
View File
@@ -724,9 +724,10 @@ command_buffer (void *data, struct t_gui_buffer *buffer,
/* buffer is currently displayed ? then jump to previous buffer */
if ((number == gui_current_window->buffer->number)
&& (CONFIG_BOOLEAN(config_look_jump_current_to_previous_buffer))
&& gui_previous_buffer)
&& gui_buffers_visited)
{
number = gui_previous_buffer->number;
number = last_gui_buffer_visited->buffer->number;
gui_buffer_visited_remove (last_gui_buffer_visited);
}
if (number != gui_current_window->buffer->number)
{
@@ -1690,8 +1691,10 @@ command_input (void *data, struct t_gui_buffer *buffer,
gui_input_jump_smart ();
else if (string_strcasecmp (argv[1], "jump_last_buffer") == 0)
gui_input_jump_last_buffer ();
else if (string_strcasecmp (argv[1], "jump_previous_buffer") == 0)
gui_input_jump_previous_buffer ();
else if (string_strcasecmp (argv[1], "jump_previously_visited_buffer") == 0)
gui_input_jump_previously_visited_buffer ();
else if (string_strcasecmp (argv[1], "jump_next_visited_buffer") == 0)
gui_input_jump_next_visited_buffer ();
else if (string_strcasecmp (argv[1], "hotlist_clear") == 0)
gui_input_hotlist_clear ();
else if (string_strcasecmp (argv[1], "grab_key") == 0)
@@ -3826,9 +3829,11 @@ command_init ()
"move_previous_char | move_next_char | move_previous_word | "
"move_next_word | history_previous | history_next | "
"history_global_previous | history_global_next | "
"jump_smart | jump_last_buffer | jump_previous_buffer | "
"hotlist_clear | grab_key | scroll_unread | set_unread | "
"set_unread_current_buffer | insert [args]",
"jump_smart | jump_last_buffer | "
"jump_previously_visited_buffer | "
"jump_next_visited_buffer | hotlist_clear | grab_key | "
"scroll_unread | set_unread | set_unread_current_buffer | "
"insert [args]",
_("This command is used by key bindings or plugins."),
"return|complete_next|complete_previous|search_next|"
"delete_previous_char|delete_next_char|"
@@ -3839,9 +3844,9 @@ command_init ()
"move_previous_char|move_next_char|move_previous_word|"
"move_next_word|history_previous|history_next|"
"history_global_previous|history_global_next|"
"jump_smart|jump_last_buffer|jump_previous_buffer|"
"hotlist_clear|grab_key|scroll_unread|set_unread|"
"set_unread_current_buffer|insert",
"jump_smart|jump_last_buffer|jump_previously_visited_buffer|"
"jump_next_visited_buffer|hotlist_clear|grab_key|"
"scroll_unread|set_unread|set_unread_current_buffer|insert",
&command_input, NULL);
hook_command (NULL, "key",
N_("bind/unbind keys"),
+2
View File
@@ -174,6 +174,8 @@ gui_keyboard_default_bindings ()
gui_keyboard_default_bind (/* m-7 */ "meta-7", "/buffer *7");
gui_keyboard_default_bind (/* m-8 */ "meta-8", "/buffer *8");
gui_keyboard_default_bind (/* m-9 */ "meta-9", "/buffer *9");
gui_keyboard_default_bind (/* m-< */ "meta-<", "/input jump_previously_visited_buffer");
gui_keyboard_default_bind (/* m-> */ "meta->", "/input jump_next_visited_buffer");
/* bind meta-j + {01..99} to switch to buffers # > 10 */
for (i = 1; i < 100; i++)
+5 -1
View File
@@ -497,7 +497,11 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
{
window->start_line = NULL;
window->start_line_pos = 0;
gui_previous_buffer = window->buffer;
if (!gui_buffers_visited_frozen)
{
gui_buffer_visited_add (window->buffer);
gui_buffer_visited_add (buffer);
}
if (set_last_read)
{
if (window->buffer->num_displayed == 0)
+5 -1
View File
@@ -202,7 +202,11 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
{
window->start_line = NULL;
window->start_line_pos = 0;
gui_previous_buffer = window->buffer;
if (!gui_buffers_visited_frozen)
{
gui_buffer_visited_add (window->buffer);
gui_buffer_visited_add (buffer);
}
if (set_last_read)
{
if (window->buffer->num_displayed == 0)
+246 -11
View File
@@ -56,7 +56,13 @@
struct t_gui_buffer *gui_buffers = NULL; /* first buffer */
struct t_gui_buffer *last_gui_buffer = NULL; /* last buffer */
struct t_gui_buffer *gui_previous_buffer = NULL; /* previous buffer */
/* history of last visited buffers */
struct t_gui_buffer_visited *gui_buffers_visited = NULL;
struct t_gui_buffer_visited *last_gui_buffer_visited = NULL;
int gui_buffers_visited_index = -1; /* index of pointer in list */
int gui_buffers_visited_count = 0; /* number of visited buffers*/
int gui_buffers_visited_frozen = 0; /* 1 to forbid list updates */
char *gui_buffer_notify_string[GUI_BUFFER_NUM_NOTIFY] =
{ "none", "highlight", "message", "all" };
@@ -485,8 +491,12 @@ gui_buffer_new (struct t_weechat_plugin *plugin,
/* check if this buffer should be assigned to a window,
according to windows layout saved */
gui_layout_window_check_buffer (new_buffer);
if (!first_buffer_creation)
if (first_buffer_creation)
{
gui_buffer_visited_add (new_buffer);
}
else
{
hook_signal_send ("buffer_opened",
WEECHAT_HOOK_SIGNAL_POINTER, new_buffer);
@@ -1377,7 +1387,9 @@ gui_buffer_close (struct t_gui_buffer *buffer)
{
struct t_gui_window *ptr_window;
struct t_gui_buffer *ptr_buffer;
int index;
struct t_gui_buffer_visited *ptr_buffer_visited;
hook_signal_send ("buffer_closing",
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
@@ -1388,6 +1400,21 @@ gui_buffer_close (struct t_gui_buffer *buffer)
if (!weechat_quit)
{
/* find other buffer to display: previously visited buffer if current
window is displaying buffer, or buffer # - 1 */
ptr_buffer_visited = NULL;
if (gui_current_window->buffer == buffer)
{
index = gui_buffer_visited_get_index_previous ();
if (index >= 0)
{
ptr_buffer_visited = gui_buffer_visited_search_by_number (index);
if (ptr_buffer_visited->buffer == buffer)
ptr_buffer_visited = NULL;
}
}
/* switch to another buffer in each window that displays buffer */
for (ptr_window = gui_windows; ptr_window;
ptr_window = ptr_window->next_window)
{
@@ -1397,17 +1424,26 @@ gui_buffer_close (struct t_gui_buffer *buffer)
/* switch to previous buffer */
if (gui_buffers != last_gui_buffer)
{
if (ptr_window->buffer->prev_buffer)
if (ptr_buffer_visited)
{
gui_window_switch_to_buffer (ptr_window,
ptr_window->buffer->prev_buffer,
ptr_buffer_visited->buffer,
1);
}
else
{
gui_window_switch_to_buffer (ptr_window,
last_gui_buffer,
1);
if (ptr_window->buffer->prev_buffer)
{
gui_window_switch_to_buffer (ptr_window,
ptr_window->buffer->prev_buffer,
1);
}
else
{
gui_window_switch_to_buffer (ptr_window,
last_gui_buffer,
1);
}
}
}
}
@@ -1418,8 +1454,7 @@ gui_buffer_close (struct t_gui_buffer *buffer)
if (gui_hotlist_initial_buffer == buffer)
gui_hotlist_initial_buffer = NULL;
if (gui_previous_buffer == buffer)
gui_previous_buffer = NULL;
gui_buffer_visited_remove_by_buffer (buffer);
/* decrease buffer number for all next buffers */
for (ptr_buffer = buffer->next_buffer; ptr_buffer;
@@ -1599,6 +1634,192 @@ gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number)
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
}
/*
* gui_buffer_visited_search: search a visited buffer in list of visited buffers
*/
struct t_gui_buffer_visited *
gui_buffer_visited_search (struct t_gui_buffer *buffer)
{
struct t_gui_buffer_visited *ptr_buffer_visited;
if (!buffer)
return NULL;
for (ptr_buffer_visited = gui_buffers_visited; ptr_buffer_visited;
ptr_buffer_visited = ptr_buffer_visited->next_buffer)
{
if (ptr_buffer_visited->buffer == buffer)
return ptr_buffer_visited;
}
/* visited buffer not found */
return NULL;
}
/*
* gui_buffer_visited_search_by_number: search a visited buffer in list of
* visited buffers
*/
struct t_gui_buffer_visited *
gui_buffer_visited_search_by_number (int number)
{
struct t_gui_buffer_visited *ptr_buffer_visited;
int i;
if ((number < 0) || (number >= gui_buffers_visited_count))
return NULL;
i = 0;
for (ptr_buffer_visited = gui_buffers_visited; ptr_buffer_visited;
ptr_buffer_visited = ptr_buffer_visited->next_buffer)
{
if (i == number)
return ptr_buffer_visited;
i++;
}
/* visited buffer not found (should never be reached) */
return NULL;
}
/*
* gui_buffer_visited_remove: remove a visited buffer from list of visited buffers
*/
void
gui_buffer_visited_remove (struct t_gui_buffer_visited *buffer_visited)
{
if (!buffer_visited)
return;
/* remove visited buffer from list */
if (buffer_visited->prev_buffer)
(buffer_visited->prev_buffer)->next_buffer = buffer_visited->next_buffer;
if (buffer_visited->next_buffer)
(buffer_visited->next_buffer)->prev_buffer = buffer_visited->prev_buffer;
if (gui_buffers_visited == buffer_visited)
gui_buffers_visited = buffer_visited->next_buffer;
if (last_gui_buffer_visited == buffer_visited)
last_gui_buffer_visited = buffer_visited->prev_buffer;
free (buffer_visited);
if (gui_buffers_visited_count > 0)
gui_buffers_visited_count--;
if (gui_buffers_visited_index >= gui_buffers_visited_count)
gui_buffers_visited_index = -1;
}
/*
* gui_buffer_visited_remove_by_buffer: remove a visited buffer from list of
* visited buffers
*/
void
gui_buffer_visited_remove_by_buffer (struct t_gui_buffer *buffer)
{
struct t_gui_buffer_visited *buffer_visited;
if (!buffer)
return;
buffer_visited = gui_buffer_visited_search (buffer);
if (buffer_visited)
gui_buffer_visited_remove (buffer_visited);
}
/*
* gui_buffer_visited_remove_all: remove all visited buffers from list
*/
void
gui_buffer_visited_remove_all ()
{
while (gui_buffers_visited)
{
gui_buffer_visited_remove (gui_buffers_visited);
}
}
/*
* gui_buffer_visited_add: add a visited buffer to list of visited buffers
*/
struct t_gui_buffer_visited *
gui_buffer_visited_add (struct t_gui_buffer *buffer)
{
struct t_gui_buffer_visited *new_buffer_visited;
if (!buffer)
return NULL;
new_buffer_visited = gui_buffer_visited_search (buffer);
if (new_buffer_visited)
gui_buffer_visited_remove (new_buffer_visited);
/* remove old buffer(s) visited if list is too long */
while (gui_buffers_visited_count > GUI_BUFFERS_VISITED_MAX)
{
gui_buffer_visited_remove (gui_buffers_visited);
}
new_buffer_visited = malloc (sizeof (*new_buffer_visited));
if (new_buffer_visited)
{
new_buffer_visited->buffer = buffer;
new_buffer_visited->prev_buffer = last_gui_buffer_visited;
new_buffer_visited->next_buffer = NULL;
if (gui_buffers_visited)
last_gui_buffer_visited->next_buffer = new_buffer_visited;
else
gui_buffers_visited = new_buffer_visited;
last_gui_buffer_visited = new_buffer_visited;
gui_buffers_visited_count++;
gui_buffers_visited_index = -1;
}
return new_buffer_visited;
}
/*
* gui_buffer_visited_get_index_previous: get index for previously visited buffer
* return -1 if there's no previously buffer
* in history, starting from current index
*/
int
gui_buffer_visited_get_index_previous ()
{
if ((gui_buffers_visited_count < 2) || (gui_buffers_visited_index == 0))
return -1;
if (gui_buffers_visited_index < 0)
return gui_buffers_visited_count - 2;
else
return gui_buffers_visited_index - 1;
}
/*
* gui_buffer_visited_get_index_next: get index for next visited buffer
* return -1 if there's no next buffer
* in history, starting from current index
*/
int
gui_buffer_visited_get_index_next ()
{
if ((gui_buffers_visited_count < 2)
|| (gui_buffers_visited_index >= gui_buffers_visited_count - 1))
return -1;
return gui_buffers_visited_index + 1;
}
/*
* gui_buffer_add_to_infolist: add a buffer in an infolist
* return 1 if ok, 0 if error
@@ -1865,6 +2086,7 @@ gui_buffer_print_log ()
struct t_gui_buffer *ptr_buffer;
struct t_gui_buffer_local_var *ptr_local_var;
struct t_gui_line *ptr_line;
struct t_gui_buffer_visited *ptr_buffer_visited;
char *tags;
int num;
@@ -1998,4 +2220,17 @@ gui_buffer_print_log ()
gui_completion_print_log (ptr_buffer->completion);
}
}
log_printf ("");
log_printf ("[visited buffers]");
num = 1;
for (ptr_buffer_visited = gui_buffers_visited; ptr_buffer_visited;
ptr_buffer_visited = ptr_buffer_visited->next_buffer)
{
log_printf (" #%d:", num);
log_printf (" buffer . . . . . . . . : 0x%lx", ptr_buffer_visited->buffer);
log_printf (" prev_buffer. . . . . . : 0x%lx", ptr_buffer_visited->prev_buffer);
log_printf (" next_buffer. . . . . . : 0x%lx", ptr_buffer_visited->next_buffer);
num++;
}
}
+20 -1
View File
@@ -47,6 +47,8 @@ enum t_gui_buffer_notify
#define GUI_BUFFER_INPUT_BLOCK_SIZE 256
#define GUI_BUFFERS_VISITED_MAX 50
/* buffer structures */
struct t_gui_line
@@ -176,11 +178,22 @@ struct t_gui_buffer
struct t_gui_buffer *next_buffer; /* link to next buffer */
};
struct t_gui_buffer_visited
{
struct t_gui_buffer *buffer; /* pointer to buffer */
struct t_gui_buffer_visited *prev_buffer; /* link to previous variable */
struct t_gui_buffer_visited *next_buffer; /* link to next variable */
};
/* buffer variables */
extern struct t_gui_buffer *gui_buffers;
extern struct t_gui_buffer *last_gui_buffer;
extern struct t_gui_buffer *gui_previous_buffer;
extern struct t_gui_buffer_visited *gui_buffers_visited;
extern struct t_gui_buffer_visited *last_gui_buffer_visited;
extern int gui_buffers_visited_index;
extern int gui_buffers_visited_count;
extern int gui_buffers_visited_frozen;
extern char *gui_buffer_notify_string[];
/* buffer functions */
@@ -232,6 +245,12 @@ extern void gui_buffer_close (struct t_gui_buffer *buffer);
extern void gui_buffer_switch_by_number (struct t_gui_window *window,
int number);
extern void gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number);
extern struct t_gui_buffer_visited *gui_buffer_visited_search_by_number (int number);
extern void gui_buffer_visited_remove (struct t_gui_buffer_visited *buffer_visited);
extern void gui_buffer_visited_remove_by_buffer (struct t_gui_buffer *buffer);
extern struct t_gui_buffer_visited *gui_buffer_visited_add (struct t_gui_buffer *buffer);
extern int gui_buffer_visited_get_index_previous ();
extern int gui_buffer_visited_get_index_next ();
extern int gui_buffer_add_to_infolist (struct t_infolist *infolist,
struct t_gui_buffer *buffer);
extern int gui_buffer_line_add_to_infolist (struct t_infolist *infolist,
+54 -7
View File
@@ -30,6 +30,7 @@
#include "../core/wee-config.h"
#include "../core/wee-hook.h"
#include "../core/wee-input.h"
#include "../core/wee-log.h"
#include "../core/wee-string.h"
#include "../core/wee-utf8.h"
#include "../plugins/plugin.h"
@@ -1142,19 +1143,65 @@ gui_input_jump_last_buffer ()
}
/*
* gui_input_jump_previous_buffer: jump to previous buffer (the one displayed
* before current one)
* (default key: meta-j, meta-p)
* gui_input_jump_previously_visited_buffer: jump to previously visited buffer
* (buffer displayed before current one)
* (default key: meta-<)
*/
void
gui_input_jump_previous_buffer ()
gui_input_jump_previously_visited_buffer ()
{
int index;
struct t_gui_buffer_visited *ptr_buffer_visited;
if (gui_current_window->buffer->text_search == GUI_TEXT_SEARCH_DISABLED)
{
if (gui_previous_buffer)
gui_buffer_switch_by_number (gui_current_window,
gui_previous_buffer->number);
index = gui_buffer_visited_get_index_previous ();
if (index >= 0)
{
gui_buffers_visited_index = index;
log_printf ("prev: index = %d", index);
ptr_buffer_visited = gui_buffer_visited_search_by_number (gui_buffers_visited_index);
if (ptr_buffer_visited)
{
gui_buffers_visited_frozen = 1;
gui_buffer_switch_by_number (gui_current_window,
ptr_buffer_visited->buffer->number);
gui_buffers_visited_frozen = 0;
}
}
}
}
/*
* gui_input_jump_next_visited_buffer: jump to next visited buffer
* (buffer displayed after current one)
* (default key: meta->)
*/
void
gui_input_jump_next_visited_buffer ()
{
int index;
struct t_gui_buffer_visited *ptr_buffer_visited;
if (gui_current_window->buffer->text_search == GUI_TEXT_SEARCH_DISABLED)
{
index = gui_buffer_visited_get_index_next ();
if (index >= 0)
{
gui_buffers_visited_index = index;
ptr_buffer_visited = gui_buffer_visited_search_by_number (gui_buffers_visited_index);
if (ptr_buffer_visited)
{
gui_buffers_visited_frozen = 1;
gui_buffer_switch_by_number (gui_current_window,
ptr_buffer_visited->buffer->number);
gui_buffers_visited_frozen = 0;
}
}
}
}
+2 -1
View File
@@ -59,7 +59,8 @@ extern void gui_input_history_global_previous ();
extern void gui_input_history_global_next ();
extern void gui_input_jump_smart ();
extern void gui_input_jump_last_buffer ();
extern void gui_input_jump_previous_buffer ();
extern void gui_input_jump_previously_visited_buffer ();
extern void gui_input_jump_next_visited_buffer ();
extern void gui_input_hotlist_clear ();
extern void gui_input_grab_key ();
extern void gui_input_scroll_unread ();