From: Ji-hoon Lee Date: Wed, 4 Nov 2020 11:36:00 +0000 (+0900) Subject: Prevent unnecessary screen update for string substitution X-Git-Tag: accepted/tizen/6.0/unified/20201109.024723~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F55%2F246855%2F1;p=platform%2Fcore%2Fuifw%2Flibscl-ui.git Prevent unnecessary screen update for string substitution Change-Id: Ife67b8269dc5defad7b35e35067bd3fe507fd9f4 --- diff --git a/scl/sclresourcecache.cpp b/scl/sclresourcecache.cpp index 91ebe95..4904ba5 100644 --- a/scl/sclresourcecache.cpp +++ b/scl/sclresourcecache.cpp @@ -1803,12 +1803,16 @@ sclboolean CSCLResourceCache::get_button_geometry(const sclchar* custom_id, SclR return FALSE; } -void +sclboolean CSCLResourceCache::set_string_substitution(const sclchar *original, const sclchar *substitute) { if (original && substitute) { + if (mStringSubstitutor[std::string(original)].compare(substitute) == 0) { + return false; + } mStringSubstitutor[std::string(original)] = std::string(substitute); } + return true; } void diff --git a/scl/sclresourcecache.h b/scl/sclresourcecache.h index 94cf125..e11bd89 100644 --- a/scl/sclresourcecache.h +++ b/scl/sclresourcecache.h @@ -81,7 +81,7 @@ public: void enable_button(const sclchar* custom_id, sclboolean enabled); sclboolean get_button_geometry(const sclchar* custom_id, SclRectangle *rectangle); - void set_string_substitution(const sclchar *original, const sclchar *substitute); + sclboolean set_string_substitution(const sclchar *original, const sclchar *substitute); void unset_string_substitution(const sclchar *original); const sclchar* find_substituted_string(const sclchar *original); diff --git a/scl/sclui.cpp b/scl/sclui.cpp index a122648..19d054f 100644 --- a/scl/sclui.cpp +++ b/scl/sclui.cpp @@ -707,4 +707,4 @@ CSCLUI::get_button_geometry(const sclchar* custom_id, SclRectangle *rectangle) return m_impl->get_button_geometry(custom_id, rectangle); } return FALSE; -} \ No newline at end of file +} diff --git a/scl/scluiimpl.cpp b/scl/scluiimpl.cpp index aacd467..78772ff 100644 --- a/scl/scluiimpl.cpp +++ b/scl/scluiimpl.cpp @@ -1143,11 +1143,12 @@ CSCLUIImpl::set_custom_magnifier_label(scltouchdevice touch_id, sclint index, co void CSCLUIImpl::set_string_substitution(const sclchar *original, const sclchar *substitute) { + CSCLWindows *windows = CSCLWindows::get_instance(); + CSCLResourceCache *cache = CSCLResourceCache::get_instance(); + if (!cache || !windows) return; + if (m_initialized) { - CSCLWindows *windows = CSCLWindows::get_instance(); - CSCLResourceCache *cache = CSCLResourceCache::get_instance(); - if (cache && windows) { - cache->set_string_substitution(original, substitute); + if (cache->set_string_substitution(original, substitute)) { SclWindowContext *window_context = windows->get_window_context(windows->get_base_window()); if (window_context) { if (!(window_context->hidden)) {