Bug 23053

Summary: LI element loses its bullet in multi-column mode
Product: WebKit Reporter: Doeke Zanstra <doekman>
Component: CSSAssignee: gur.trio
Status: NEW ---    
Severity: Normal CC: ap, commit-queue, craiga, darin, dbates, esprehn+autocc, glenn, gur.trio, hyatt, info, koivisto, kondapallykalyan, laszlo.gombos, mitz, simon.fraser, tabatkins, tonikitoo, webkit.org, yutak, zalan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Macintosh PowerPC   
OS: OS X 10.4   
URL: http://zanstra.com/x/webkit/li-colcount.html
Description Flags
Patch simon.fraser: review-, simon.fraser: commit-queue-

Description Doeke Zanstra 2008-12-31 00:42:18 PST
When setting the CSS property -webkit-column-count, the bullets of the LI-elements disappear. See test-case provided (URL). Also this script:

  <ul style="-webkit-column-count:2">
Comment 1 Oli Studholme 2010-06-12 22:02:35 PDT
also ordered list numerals, and according to Bug 38835 list-style-image images too https://bugs.webkit.org/show_bug.cgi?id=38835
Comment 2 Oli Studholme 2010-06-12 22:08:02 PDT
Workaround: list-style-position: inside; (Webkit default is presumably outside)
Comment 3 Alexey Proskuryakov 2011-02-23 21:28:08 PST
Still reproducible with r79080.
Comment 4 gur.trio 2014-02-05 05:13:24 PST
(In reply to comment #3)
> Still reproducible with r79080.

As per the code what is happening is that when we paint the markers it checks whether the marker position intersects with the paint area rect and it fails in that check and does not draw anything.
So one fix is when we query the marker property for position (inside or outside) we can return true if UL has columns. Please suggest?
Comment 5 gur.trio 2014-02-17 20:16:25 PST
*** Bug 38835 has been marked as a duplicate of this bug. ***
Comment 6 gur.trio 2014-02-17 22:01:06 PST
Created attachment 224470 [details]
Comment 7 gur.trio 2014-02-18 01:15:55 PST
(In reply to comment #6)
> Created an attachment (id=224470) [details]
> Patch

Please review. Thanks.
Comment 8 zalan 2014-02-26 08:53:51 PST
Comment on attachment 224470 [details]

and now even OUTSIDE is treated like INSIDE when <ul> has columns? Not sure if that's correct. It'd be great to figure out why the marker is mispositioned as opposed to force it to behave like INSIDE.
Comment 9 Simon Fraser (smfr) 2014-02-26 09:04:11 PST
Comment on attachment 224470 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=224470&action=review

> Source/WebCore/rendering/RenderListMarker.cpp:1741
> -    return m_listItem.notInList() || style().listStylePosition() == INSIDE;
> +    return m_listItem.notInList() || style().listStylePosition() == INSIDE || m_listItem.parent()->hasColumns();

This doesn't seem like the correct way to fix this.