1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

core: add function gui_buffer_jump_last_visible_number

This commit is contained in:
Sébastien Helleu
2022-12-25 17:57:59 +01:00
parent c9796a3141
commit 574a4c8834
4 changed files with 40 additions and 12 deletions
+2 -12
View File
@@ -1358,17 +1358,7 @@ COMMAND_CALLBACK(buffer)
{
if (strcmp (argv[1], "+") == 0)
{
/* search last non-hidden buffer */
for (ptr_buffer = last_gui_buffer; ptr_buffer;
ptr_buffer = ptr_buffer->prev_buffer)
{
if (!ptr_buffer->hidden)
break;
}
number = (ptr_buffer) ?
ptr_buffer->number : ((last_gui_buffer) ? last_gui_buffer->number : -1);
if (number > 0)
gui_buffer_switch_by_number (gui_current_window, number);
gui_buffer_jump_last_visible_number (gui_current_window);
}
else
{
@@ -3412,7 +3402,7 @@ COMMAND_CALLBACK(input)
gui_buffer_jump_smart (gui_current_window);
/* since WeeChat 1.0: "/buffer +" */
else if (string_strcasecmp (argv[1], "jump_last_buffer") == 0)
(void) input_data (buffer, "/buffer +", NULL);
gui_buffer_jump_last_visible_number (gui_current_window);
/* since WeeChat 3.8: "/buffer jump last_displayed" */
else if (string_strcasecmp (argv[1], "jump_last_buffer_displayed") == 0)
gui_buffer_jump_last_buffer_displayed (gui_current_window);
+27
View File
@@ -4493,6 +4493,33 @@ gui_buffer_jump_smart (struct t_gui_window *window)
}
}
/*
* Jumps to last buffer that is visible (not hidden).
*/
void
gui_buffer_jump_last_visible_number (struct t_gui_window *window)
{
struct t_gui_buffer *ptr_buffer;
int number;
if (!window)
return;
/* search last non-hidden buffer */
for (ptr_buffer = last_gui_buffer; ptr_buffer;
ptr_buffer = ptr_buffer->prev_buffer)
{
if (!ptr_buffer->hidden)
break;
}
number = (ptr_buffer) ?
ptr_buffer->number : ((last_gui_buffer) ? last_gui_buffer->number : -1);
if (number > 0)
gui_buffer_switch_by_number (gui_current_window, number);
}
/*
* Jumps to last buffer displayed (before last jump to a buffer).
*/
+1
View File
@@ -386,6 +386,7 @@ extern struct t_gui_buffer_visited *gui_buffer_visited_add (struct t_gui_buffer
extern int gui_buffer_visited_get_index_previous ();
extern int gui_buffer_visited_get_index_next ();
extern void gui_buffer_jump_smart (struct t_gui_window *window);
extern void gui_buffer_jump_last_visible_number (struct t_gui_window *window);
extern void gui_buffer_jump_last_buffer_displayed (struct t_gui_window *window);
extern void gui_buffer_jump_previously_visited_buffer (struct t_gui_window *window);
extern void gui_buffer_jump_next_visited_buffer (struct t_gui_window *window);
+10
View File
@@ -1397,6 +1397,16 @@ TEST(GuiBuffer, JumpSmart)
/* TODO: write tests */
}
/*
* Tests functions:
* gui_buffer_jump_last_visible_number
*/
TEST(GuiBuffer, JumpLastVisibleNumber)
{
/* TODO: write tests */
}
/*
* Tests functions:
* gui_buffer_jump_last_buffer_displayed