From b3121ab67080fef7f8b6efe789262689084079f5 Mon Sep 17 00:00:00 2001 From: ia_oi Date: Fri, 27 Dec 2024 10:01:26 +0800 Subject: [PATCH 1/3] fix cursor location compute Signed-off-by: ia_oi --- libcef/browser/osr/render_widget_host_view_osr.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index f2ad3933c..2445372b7 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -1581,6 +1581,11 @@ void CefRenderWidgetHostViewOSR::SelectionChanged(const std::u16string& text, } #endif // defined(OHOS_INPUT_EVENTS) } +#if defined(OHOS_INPUT_EVENTS) + else { + is_select_text_ = false; + } +#endif // defined(OHOS_INPUT_EVENTS) handler->OnTextSelectionChanged(browser_impl_.get(), selected_text, cef_range); @@ -3565,6 +3570,7 @@ void CefRenderWidgetHostViewOSR::SelectionBoundsChanged( CefRefPtr handler = browser_impl_->GetClient()->GetRenderHandler(); CHECK(handler); + UpdateEditBounds(); if (!is_select_text_) { handler->OnCursorUpdate(browser_impl_->GetBrowser(), @@ -3573,7 +3579,6 @@ void CefRenderWidgetHostViewOSR::SelectionBoundsChanged( return; } - UpdateEditBounds(); auto processedOffset = HandleCursorOffset(); handler->OnCursorUpdate(browser_impl_->GetBrowser(), CefRect(processedOffset.first, processedOffset.second, -- Gitee From f388fd41ef1ae3099c204456eff88361b03f37a8 Mon Sep 17 00:00:00 2001 From: ia_oi Date: Mon, 30 Dec 2024 15:14:24 +0800 Subject: [PATCH 2/3] fix cursor location compute Signed-off-by: ia_oi --- libcef/browser/osr/render_widget_host_view_osr.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index 2445372b7..50fddaffa 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -1579,13 +1579,12 @@ void CefRenderWidgetHostViewOSR::SelectionChanged(const std::u16string& text, if (n > 0) { handler->StartVibraFeedback("longPress.light"); } -#endif // defined(OHOS_INPUT_EVENTS) - } -#if defined(OHOS_INPUT_EVENTS) - else { + } else { is_select_text_ = false; } -#endif // defined(OHOS_INPUT_EVENTS) +#else + } +#endif // defined(OHOS_INPUT_EVENTS) handler->OnTextSelectionChanged(browser_impl_.get(), selected_text, cef_range); -- Gitee From 80c269ea1c4d7f7445dbce3cc4b3bb3f090df8f1 Mon Sep 17 00:00:00 2001 From: ia_oi Date: Mon, 30 Dec 2024 15:28:38 +0800 Subject: [PATCH 3/3] fix cursor location compute Signed-off-by: ia_oi --- libcef/browser/osr/render_widget_host_view_osr.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libcef/browser/osr/render_widget_host_view_osr.cc b/libcef/browser/osr/render_widget_host_view_osr.cc index 50fddaffa..ffab039af 100644 --- a/libcef/browser/osr/render_widget_host_view_osr.cc +++ b/libcef/browser/osr/render_widget_host_view_osr.cc @@ -1581,10 +1581,8 @@ void CefRenderWidgetHostViewOSR::SelectionChanged(const std::u16string& text, } } else { is_select_text_ = false; - } -#else - } #endif // defined(OHOS_INPUT_EVENTS) + } handler->OnTextSelectionChanged(browser_impl_.get(), selected_text, cef_range); -- Gitee