diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index f2716054f..e671278b8 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -2273,6 +2273,23 @@ gui_buffer_remove_hotlist_max_level_nicks (struct t_gui_buffer *buffer, } } +/* + * Sets buffer input. + */ + +void +gui_buffer_set_input (struct t_gui_buffer *buffer, const char *input) +{ + if (!buffer || (string_strcmp (buffer->input_buffer, input) == 0)) + return; + + gui_buffer_undo_snap (buffer); + gui_input_replace_input (buffer, input); + gui_input_text_changed_modifier_and_signal (buffer, + 1, /* save undo */ + 1); /* stop completion */ +} + /* * Sets flag "input_get_any_user_data" for a buffer. */ @@ -2677,11 +2694,7 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property, } else if (strcmp (property, "input") == 0) { - gui_buffer_undo_snap (buffer); - gui_input_replace_input (buffer, value); - gui_input_text_changed_modifier_and_signal (buffer, - 1, /* save undo */ - 1); /* stop completion */ + gui_buffer_set_input (buffer, value); } else if (strcmp (property, "input_pos") == 0) { diff --git a/tests/unit/gui/test-gui-buffer.cpp b/tests/unit/gui/test-gui-buffer.cpp index 4e8116bac..a03b95dd8 100644 --- a/tests/unit/gui/test-gui-buffer.cpp +++ b/tests/unit/gui/test-gui-buffer.cpp @@ -1207,6 +1207,16 @@ TEST(GuiBuffer, RemoveHotlistMaxLevelNicks) /* TODO: write tests */ } +/* + * Tests functions: + * gui_buffer_set_input + */ + +TEST(GuiBuffer, SetInput) +{ + /* TODO: write tests */ +} + /* * Tests functions: * gui_buffer_set_input_get_any_user_data