mirror of
https://github.com/weechat/weechat.git
synced 2026-07-03 08:13:14 +02:00
core: move /input buffer switch/zoom actions to command /buffer
Actions moved: * `/input switch_active_buffer` -> `/buffer switch` * `/input switch_active_buffer_previous` -> `/buffer switch -previous` * `/input zoom_merged_buffer` -> `/buffer zoom`
This commit is contained in:
@@ -95,8 +95,8 @@ gui_key_default_bindings (int context)
|
||||
BIND(/* ^D */ "ctrl-D", "/input delete_next_char");
|
||||
BIND(/* ^W */ "ctrl-W", "/input delete_previous_word_whitespace");
|
||||
BIND(/* m-<backspace> */ "meta-ctrl-?", "/input delete_previous_word");
|
||||
BIND(/* ^X */ "ctrl-X", "/input switch_active_buffer");
|
||||
BIND(/* m-x */ "meta-x", "/input zoom_merged_buffer");
|
||||
BIND(/* ^X */ "ctrl-X", "/buffer switch");
|
||||
BIND(/* m-x */ "meta-x", "/buffer zoom");
|
||||
BIND(/* m-d */ "meta-d", "/input delete_next_word");
|
||||
BIND(/* ^K */ "ctrl-K", "/input delete_end_of_line");
|
||||
BIND(/* m-r */ "meta-r", "/input delete_line");
|
||||
|
||||
@@ -3354,6 +3354,120 @@ gui_buffer_get_previous_active_buffer (struct t_gui_buffer *buffer,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Switches active buffer to next buffer (when many buffers are merged).
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_switch_active_buffer (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
struct t_gui_window *window;
|
||||
|
||||
ptr_buffer = gui_buffer_get_next_active_buffer (buffer, 0);
|
||||
if (ptr_buffer)
|
||||
{
|
||||
gui_buffer_set_active_buffer (ptr_buffer);
|
||||
window = gui_window_search_with_buffer (buffer);
|
||||
if (window)
|
||||
gui_window_switch_to_buffer (window, ptr_buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Switches active buffer to previous buffer (when many buffers are merged).
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_switch_active_buffer_previous (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
struct t_gui_window *window;
|
||||
|
||||
ptr_buffer = gui_buffer_get_previous_active_buffer (buffer, 0);
|
||||
if (ptr_buffer)
|
||||
{
|
||||
gui_buffer_set_active_buffer (ptr_buffer);
|
||||
window = gui_window_search_with_buffer (buffer);
|
||||
if (window)
|
||||
gui_window_switch_to_buffer (window, ptr_buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Zooms on current active merged buffer, or display all merged buffers if zoom
|
||||
* was active.
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_zoom (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_window *ptr_window;
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
int buffer_was_zoomed;
|
||||
|
||||
/* do nothing if current buffer is not merged with another buffer */
|
||||
if (gui_buffer_count_merged_buffers (buffer->number) < 2)
|
||||
return;
|
||||
|
||||
buffer_was_zoomed = (buffer->active == 2);
|
||||
|
||||
/* reset scroll in all windows displaying this buffer number */
|
||||
for (ptr_window = gui_windows; ptr_window;
|
||||
ptr_window = ptr_window->next_window)
|
||||
{
|
||||
if ((ptr_window->buffer->number == buffer->number)
|
||||
&& ptr_window->scroll && ptr_window->scroll->start_line)
|
||||
{
|
||||
gui_window_scroll_bottom (ptr_window);
|
||||
}
|
||||
}
|
||||
|
||||
/* first make buffer active if it is not */
|
||||
if (!buffer->active)
|
||||
{
|
||||
gui_buffer_set_active_buffer (buffer);
|
||||
ptr_window = gui_window_search_with_buffer (buffer);
|
||||
if (ptr_window)
|
||||
gui_window_switch_to_buffer (ptr_window, buffer, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* toggle active flag between 1 and 2
|
||||
* (1 = active with other merged buffers displayed, 2 = the only active)
|
||||
*/
|
||||
if (buffer->active == 1)
|
||||
{
|
||||
buffer->active = 2;
|
||||
buffer->lines = buffer->own_lines;
|
||||
}
|
||||
else if (buffer->active == 2)
|
||||
{
|
||||
buffer->active = 1;
|
||||
buffer->lines = buffer->mixed_lines;
|
||||
}
|
||||
|
||||
/* set "zoomed" in merged buffers */
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
{
|
||||
if (ptr_buffer->number > buffer->number)
|
||||
break;
|
||||
if (ptr_buffer->number == buffer->number)
|
||||
{
|
||||
ptr_buffer->zoomed = (buffer->active == 2) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
gui_buffer_compute_num_displayed ();
|
||||
|
||||
gui_buffer_ask_chat_refresh (buffer, 2);
|
||||
|
||||
(void) hook_signal_send ((buffer_was_zoomed) ?
|
||||
"buffer_unzoomed" : "buffer_zoomed",
|
||||
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
* Renumbers buffers with consecutive numbers between the range
|
||||
* number1 -> number2, sarting with new number "start_number".
|
||||
|
||||
@@ -361,6 +361,9 @@ extern struct t_gui_buffer *gui_buffer_get_next_active_buffer (struct t_gui_buff
|
||||
int allow_hidden_buffer);
|
||||
extern struct t_gui_buffer *gui_buffer_get_previous_active_buffer (struct t_gui_buffer *buffer,
|
||||
int allow_hidden_buffer);
|
||||
extern void gui_buffer_switch_active_buffer (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_switch_active_buffer_previous (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_zoom (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_renumber (int number1, int number2, int start_number);
|
||||
extern void gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number);
|
||||
extern void gui_buffer_swap (int number1, int number2);
|
||||
|
||||
@@ -1484,121 +1484,6 @@ gui_input_grab_mouse (struct t_gui_buffer *buffer, int area)
|
||||
gui_mouse_grab_init (area);
|
||||
}
|
||||
|
||||
/*
|
||||
* Switches active buffer to next buffer (when many buffers are merged) (default
|
||||
* key: ctrl-X).
|
||||
*/
|
||||
|
||||
void
|
||||
gui_input_switch_active_buffer (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
struct t_gui_window *window;
|
||||
|
||||
ptr_buffer = gui_buffer_get_next_active_buffer (buffer, 0);
|
||||
if (ptr_buffer)
|
||||
{
|
||||
gui_buffer_set_active_buffer (ptr_buffer);
|
||||
window = gui_window_search_with_buffer (buffer);
|
||||
if (window)
|
||||
gui_window_switch_to_buffer (window, ptr_buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Switches active buffer to previous buffer (when many buffers are merged).
|
||||
*/
|
||||
|
||||
void
|
||||
gui_input_switch_active_buffer_previous (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
struct t_gui_window *window;
|
||||
|
||||
ptr_buffer = gui_buffer_get_previous_active_buffer (buffer, 0);
|
||||
if (ptr_buffer)
|
||||
{
|
||||
gui_buffer_set_active_buffer (ptr_buffer);
|
||||
window = gui_window_search_with_buffer (buffer);
|
||||
if (window)
|
||||
gui_window_switch_to_buffer (window, ptr_buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Zooms on current active merged buffer, or display all merged buffers if zoom
|
||||
* was active (default key: alt-x).
|
||||
*/
|
||||
|
||||
void
|
||||
gui_input_zoom_merged_buffer (struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_gui_window *ptr_window;
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
int buffer_was_zoomed;
|
||||
|
||||
/* do nothing if current buffer is not merged with another buffer */
|
||||
if (gui_buffer_count_merged_buffers (buffer->number) < 2)
|
||||
return;
|
||||
|
||||
buffer_was_zoomed = (buffer->active == 2);
|
||||
|
||||
/* reset scroll in all windows displaying this buffer number */
|
||||
for (ptr_window = gui_windows; ptr_window;
|
||||
ptr_window = ptr_window->next_window)
|
||||
{
|
||||
if ((ptr_window->buffer->number == buffer->number)
|
||||
&& ptr_window->scroll && ptr_window->scroll->start_line)
|
||||
{
|
||||
gui_window_scroll_bottom (ptr_window);
|
||||
}
|
||||
}
|
||||
|
||||
/* first make buffer active if it is not */
|
||||
if (!buffer->active)
|
||||
{
|
||||
gui_buffer_set_active_buffer (buffer);
|
||||
ptr_window = gui_window_search_with_buffer (buffer);
|
||||
if (ptr_window)
|
||||
gui_window_switch_to_buffer (ptr_window, buffer, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* toggle active flag between 1 and 2
|
||||
* (1 = active with other merged buffers displayed, 2 = the only active)
|
||||
*/
|
||||
if (buffer->active == 1)
|
||||
{
|
||||
buffer->active = 2;
|
||||
buffer->lines = buffer->own_lines;
|
||||
}
|
||||
else if (buffer->active == 2)
|
||||
{
|
||||
buffer->active = 1;
|
||||
buffer->lines = buffer->mixed_lines;
|
||||
}
|
||||
|
||||
/* set "zoomed" in merged buffers */
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
{
|
||||
if (ptr_buffer->number > buffer->number)
|
||||
break;
|
||||
if (ptr_buffer->number == buffer->number)
|
||||
{
|
||||
ptr_buffer->zoomed = (buffer->active == 2) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
gui_buffer_compute_num_displayed ();
|
||||
|
||||
gui_buffer_ask_chat_refresh (buffer, 2);
|
||||
|
||||
(void) hook_signal_send ((buffer_was_zoomed) ?
|
||||
"buffer_unzoomed" : "buffer_zoomed",
|
||||
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
* Inserts a string in command line.
|
||||
*/
|
||||
|
||||
@@ -75,9 +75,6 @@ extern void gui_input_history_global_next (struct t_gui_buffer *buffer);
|
||||
extern void gui_input_grab_key (struct t_gui_buffer *buffer, int command,
|
||||
const char *delay);
|
||||
extern void gui_input_grab_mouse (struct t_gui_buffer *buffer, int area);
|
||||
extern void gui_input_switch_active_buffer (struct t_gui_buffer *buffer);
|
||||
extern void gui_input_switch_active_buffer_previous (struct t_gui_buffer *buffer);
|
||||
extern void gui_input_zoom_merged_buffer (struct t_gui_buffer *buffer);
|
||||
extern void gui_input_insert (struct t_gui_buffer *buffer, const char *args);
|
||||
extern void gui_input_undo (struct t_gui_buffer *buffer);
|
||||
extern void gui_input_redo (struct t_gui_buffer *buffer);
|
||||
|
||||
Reference in New Issue
Block a user