Bläddra i källkod

LibGUI: Disable EmojiInputDialog updates while re-displaying emoji

To prevent lag when the displayed code points are redrawn in support of
a search box, disable updates while re-adding the emoji buttons.
Timothy Flynn 2 år sedan
förälder
incheckning
a885406511
1 ändrade filer med 4 tillägg och 0 borttagningar
  1. 4 0
      Userland/Libraries/LibGUI/EmojiInputDialog.cpp

+ 4 - 0
Userland/Libraries/LibGUI/EmojiInputDialog.cpp

@@ -6,6 +6,7 @@
  */
 
 #include <AK/LexicalPath.h>
+#include <AK/ScopeGuard.h>
 #include <AK/StringBuilder.h>
 #include <AK/Utf32View.h>
 #include <LibCore/DirIterator.h>
@@ -89,6 +90,9 @@ auto EmojiInputDialog::supported_emoji() -> Vector<Emoji>
 
 void EmojiInputDialog::update_displayed_emoji()
 {
+    ScopeGuard guard { [&] { m_emojis_widget->set_updates_enabled(true); } };
+    m_emojis_widget->set_updates_enabled(false);
+
     constexpr size_t columns = 18;
     size_t rows = ceil_div(m_emojis.size(), columns);
     size_t index = 0;