Hi Darin,
On Jan 23, 2009, at 10:44 AM, Darin Adler wrote:
On Jan 23, 2009, at 10:36 AM, Kevin Ollivier wrote:
Thanks, do you have any examples of how e.g. the logic in
selectionHasStyle could be tripped up by (or be insufficient for)
block styles like this? Is it a matter of having it not query the
alignment for non-block elements when traversing nodes (because it
might return an invalid value?), or something else?
I'm not sure if there are any real problems. It's not an area I've
considered deeply.
One thing worth considering is that the style might be set on
elements where it has no effect. For example, you could have the
style set on a span within a block, and it wouldn't do anything.
<p style="align: left">a <span style="align: right">b</span> c</p>
Someone might argue that an Align Left menu item should be checked
here, not "half-checked".
As with all editing and style, styles that are applied by CSS style
sheet rules might create tricky cases.
Your question about skipping non-block elements when traversing
nodes is more of a question about how to implement. We'd want to be
careful about doing something like that, because CSS can change an
element that's normally not a block into a block. I am not sure any
of these cases are important. It also seems to me that for block
styles we could be more efficient if we didn't ask every single
element what its computed style is. But it seems smart to start
simply.
If I was working on this, I'd start by making an implementation that
uses stateStyle and then try to construct interesting test cases to
see if there are problems in practice.
Sounds about right to me. :-) Once we have a clear idea about how
things behave in various scenarios using stateStyle, we should have a
better idea of how to proceed and perhaps also of how we want
getCommandState to handle cases like nested alignment tags.
Thanks for the detailed explanation!
Kevin
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev