OK, here's where I'm having some trouble. The issue with the native IE
scrollbars showing up only happens when the scrollbar in scrolledittext is
initially set to non-visible.

I'm looking at scrolledittext, and there is this init method

        <method name="init">
            super.init();
            this.ensurevscrollbar();
            setvscrollwidthfromvisibility(this['_vs'] ? this._vs.visible :
false);
            this.myDel = new lz.Delegate(this,
"setvscrollwidthfromvisibility", this['_vs'], "onvisible");
        </method>

Does this setvscrollwidthfromvisibility have something to do with whether
the
sprite's div is set to mask the native scrollbars?



On Wed, Jun 10, 2009 at 6:11 PM, P T Withington <[email protected]>wrote:

> On 2009-06-10, at 17:53EDT, Henry Minsky wrote:
>
>  On 6/10/09, P T Withington <[email protected]> wrote:
>>
>>>
>>> I'm _really_ concerned about tweaking the padding without understanding
>>> why.  In particular, you may end up clipping the text in other browsers
>>> where the clipping already works.
>>>
>>> Things I would investigate:
>>>
>>> 1) Did IE change the size of its scrollbars?  Is that why they are
>>> sticking
>>> out now?  (Currently the scrollbar width is browser-specific, because IE
>>> _used_ to have smaller ones than the other browsers.
>>>
>>
>> It didn't look  like the IE scrollbars were partially clipped, it looked
>> like they were not being
>> clipped at all. This is in contrast to the appearance in Firefox or
>> Safari,
>> where they
>> did not appear at all.
>>
>
> I was talking about "making its padding 2 pixels smaller".  That seems
> wrong because that padding is not browser-specific, but this is a
> browser-specific bug.
>
> Having the overflow:hidden makes sense, because the _click style is
> supposed to match the non-_click.
>
> There is another _click style in that same file that appears to also be
> missing the overflow:hidden
>
>  2) Why do the scrollbars _not_ stick out the same way when you are not
>>
>>> moused over?  There must be some additional difference between the _click
>>> and non-_click divs.
>>>
>>
>> Yeah the mystery is that it seems like if the container click-div didn't
>> have overflow=hidden set, that the native scrollbars
>> ought to be showing up in all  browsers. So I guess the question is not
>> 'why
>> did they appear in IE?" but "why didn't they appear in Firefox/Safari?"
>>
>
> I have to believe that is because the behavior of input text and click
> div's is different in IE from the other browsers.
>
> This code looks like a possibility:
>
>         if (this.quirks.fix_ie_clickable) {
>>            this.__LZinputclickdiv = document.createElement('img');
>>            this.__LZinputclickdiv.src = lz.embed.options.serverroot +
>> LzSprite.prototype.blankimage;
>>        } else {
>>            this.__LZinputclickdiv = document.createElement('div');
>>        }
>>
>
> Bingo!  It is REALLY BAD to use HTML elements in the kernel, because a)
> they do not have standard CSS attributes -- each browser can decide to give
> these tags random CSS styles by default.  But worse yet, in this case, <img>
> is not block element, it is an inline element, which means that it is
> treated as text with a baseline, descenders, character spacing, etc.
>
> If we _have_ to use this img hack for IE, we need to at least add `display:
> block` to all the clickdiv styles (should be a no-op in all other browsers,
> where the clickdiv is actually a div).  This will make the img element be
> laid out as a block element, which should make it behave.
>
> If that doesn't solve it, you'll have to dig deeper to see if there are
> other random styles implied by the img tag in IE (e.g., if it has default
> padding or something) and you'll have to override that.  If that is the
> case, you'll need to conditionalize those changes on the quirk.
>



-- 
Henry Minsky
Software Architect
[email protected]

Reply via email to