[Bug 13831] New: Deleting a block should leave style tags nested inside


           Summary: Deleting a block should leave style tags nested inside
           Product: WebAppsWG
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: HTML Editing APIs
        AssignedTo: ayg@aryeh.name
        ReportedBy: ayg@aryeh.name
         QAContact: sideshowbarker+html-editing-api@gmail.com
                CC: mike@w3.org, public-webapps@w3.org

Based on WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=7360

Normally if we delete the full contents of a formatting tag like <b>, we delete
the tag itself for tidiness, since there's no way to focus the tag anyway. 
E.g., if you delete foo<b>[bar]</b>baz, it becomes foo[]baz, not
foo<b></b>[]baz or anything.  State/value overrides (typing style in WebKit
terms) ensure that if the user types again before moving the cursor, the text
has the right style.

However, this is bad when the tag is the only thing in a block.  Consider


The user selects all the text and bolds it:


Then deletes "bar".  Currently it becomes


so if the user moves away and back and types, the text in the middle is no
longer bold.  This isn't what the user wants: they made all three paragraphs
bold and want them to stay bold.

The solution is to insert a <br> if necessary *before* we strip wrappers.  Then
when we get to stripping wrappers, there will be a child, so we won't.  This
will produce


which should have the desired effect.

Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Received on Thursday, 18 August 2011 21:25:17 UTC