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:
+2
-12
@@ -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);
|
||||
|
||||
@@ -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).
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user