浏览代码

LibLine: Properly update the main editor when clearing the search editor

This broke after the lazy update change :P
AnotherTest 4 年之前
父节点
当前提交
21cbcdd7da
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      Userland/Libraries/LibLine/InternalFunctions.cpp

+ 8 - 4
Userland/Libraries/LibLine/InternalFunctions.cpp

@@ -25,6 +25,7 @@
  */
 
 #include <AK/StringBuilder.h>
+#include <AK/TemporaryChange.h>
 #include <LibLine/Editor.h>
 #include <ctype.h>
 #include <stdio.h>
@@ -260,7 +261,7 @@ void Editor::enter_search()
 
             // Move the search prompt below ours and tell it to redraw itself.
             auto prompt_end_line = current_prompt_metrics().lines_with_addition(m_cached_buffer_metrics, m_num_columns);
-            search_editor.set_origin(prompt_end_line + 1, 1);
+            search_editor.set_origin(prompt_end_line + m_origin_row, 1);
             search_editor.m_refresh_needed = true;
         };
 
@@ -300,9 +301,12 @@ void Editor::enter_search()
             fprintf(stderr, "\033[3J\033[H\033[2J"); // Clear screen.
 
             // refresh our own prompt
-            set_origin(1, 1);
-            m_refresh_needed = true;
-            refresh_display();
+            {
+                TemporaryChange refresh_change { m_always_refresh, true };
+                set_origin(1, 1);
+                m_refresh_needed = true;
+                refresh_display();
+            }
 
             // move the search prompt below ours
             // and tell it to redraw itself