herdsman pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f6acd6f9e4de945f1eee7fe6cd7cd55cff570eb9

commit f6acd6f9e4de945f1eee7fe6cd7cd55cff570eb9
Author: Youngbok Shin <youngb.s...@samsung.com>
Date:   Mon Jul 2 16:17:33 2018 +0300

    Evas Textblock: Don't convert <br/> to <ps/> after changing text
    
    Summary:
    It was only happened when legacy newline is enabled. By default,
    legacy newline is enabled. As I know, legacy newline option has
    to change textblock's internal behavior. But, it shouldn't change
    the given original text. It fixes T3399.
    
    Test Plan: A Test case is included in Evas test suite.
    
    Reviewers: Jaehyun_Cho, z-wony, tasn, woohyun, herdsman, Blackmole, 
devilhorns
    
    Subscribers: #committers, zmike, raster, cedric, jpeg
    
    Tags: #efl
    
    Maniphest Tasks: T3399
    
    Differential Revision: https://phab.enlightenment.org/D3874
---
 src/lib/evas/canvas/evas_object_textblock.c |  2 +-
 src/tests/evas/evas_test_textblock.c        | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index b9712a2243..652ac3e631 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -10836,7 +10836,7 @@ 
_evas_textblock_cursor_format_append(Efl_Text_Cursor_Cursor *cur,
         Eina_Unicode insert_char;
         /* Insert a visual representation according to the type of the
            format */
-        if (_IS_PARAGRAPH_SEPARATOR(o, format))
+        if (_IS_PARAGRAPH_SEPARATOR_SIMPLE(format))
            insert_char = _PARAGRAPH_SEPARATOR;
         else if (_IS_LINE_SEPARATOR(format))
            insert_char = _NEWLINE;
diff --git a/src/tests/evas/evas_test_textblock.c 
b/src/tests/evas/evas_test_textblock.c
index 715ec1fd33..1f6cb139b2 100644
--- a/src/tests/evas/evas_test_textblock.c
+++ b/src/tests/evas/evas_test_textblock.c
@@ -2977,6 +2977,21 @@ EFL_START_TEST(evas_textblock_editing)
    evas_textblock_cursor_paragraph_first(cur);
    fail_if(evas_textblock_cursor_paragraph_next(cur));
 
+   /* Test cursor range delete with <br/> tags when legacy newline is enabled.
+    * After deleting first <br/> tag, the second <br/> tag shouldn't be 
changed to <ps/> */
+   evas_object_textblock_legacy_newline_set(tb, EINA_TRUE);
+   evas_object_textblock_text_markup_set(tb, "A<br/><br/>B");
+   evas_textblock_cursor_paragraph_first(cur);
+   evas_textblock_cursor_paragraph_first(main_cur);
+   evas_textblock_cursor_pos_set(main_cur, 2);
+   ck_assert_str_eq(evas_textblock_cursor_range_text_get(cur, main_cur, 
EVAS_TEXTBLOCK_TEXT_MARKUP), "A<br/>");
+
+   evas_textblock_cursor_range_delete(cur, main_cur);
+   ck_assert_str_eq(evas_object_textblock_text_markup_get(tb), "<br/>B");
+
+   /* Restore legacy newline disabled setting */
+   evas_object_textblock_legacy_newline_set(tb, EINA_FALSE);
+
      {
         /* Limit to 1000 iterations so we'll never get into an infinite loop,
          * even if broken */

-- 


Reply via email to