<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>24358</bug_id>
          
          <creation_ts>2009-03-04 10:06:11 -0800</creation_ts>
          <short_desc>[GTK] Scrollbars not clipped correctly</short_desc>
          <delta_ts>2009-03-07 04:32:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>112215</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-04 10:06:11 -0800</bug_when>
    <thetext>The expose handler in WebKitWebView has two branches. One coalesces all the damage regions in one big area and sends that to frame()-&gt;view()-&gt;paint(), and other sends each region individually. In both cases the clip area is passed as an IntRect in the second parameter of paint(), but there&apos;s a problem: our Scrollbar ::paint method ignores that and always uses the bounding box of all the regions in the Expose event as the clip rectangle. This works ok when we also merge the regions ourselves, but does not work when we send each one separatedly: in that case we&apos;ll use as clip rectangle a much bigger area than what we actually have to paint, and will risk painting the scrollbars outside of the visible area.

The simple fix is to change the Widget::paint method to use the clip rectangle parameter always. Unfortunately this introduces another problem: the floatingdiv.html manual test stops working, the scrollbar there is invisible again. I must say that I&apos;m not 100% sure why, but my theory is that since we are now using the correct clip rectangle, we only send an expose event with the minimum area, instead of a much larger one, and thus we uncover a new bug: we are not applying the needed coordinate translation for our Scrollbar widgets in the ::paint method.

The first patch fixes these two problems.

The second one moves the ::paint method to ScrollbarGtk, since it&apos;s now scrollbar specific and this is the only actual widget we have anyway.

The third one changes the frameRectsChanged method to only take into account non ScrollView scrollbars, since our ScrollView scrollbars are native and won&apos;t go through this codepath (the same is done in the ::paint method).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112220</commentid>
    <comment_count>1</comment_count>
      <attachid>28268</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-04 10:25:50 -0800</bug_when>
    <thetext>Created attachment 28268
cliprect.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112221</commentid>
    <comment_count>2</comment_count>
      <attachid>28269</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-04 10:26:14 -0800</bug_when>
    <thetext>Created attachment 28269
movepaint.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112222</commentid>
    <comment_count>3</comment_count>
      <attachid>28270</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-04 10:26:33 -0800</bug_when>
    <thetext>Created attachment 28270
onlyrenderscrollbar.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112581</commentid>
    <comment_count>4</comment_count>
      <attachid>28268</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-06 07:52:32 -0800</bug_when>
    <thetext>Comment on attachment 28268
cliprect.patch


&gt; --- a/WebCore/platform/gtk/WidgetGtk.cpp
&gt; +++ b/WebCore/platform/gtk/WidgetGtk.cpp
&gt; @@ -101,7 +101,7 @@ void Widget::hide()
&gt;   *  2.) We assume that GTK_NO_WINDOW is set and that frameRectsChanged positioned
&gt;   *      the widget correctly. ATM we do not honor the GraphicsContext translation.

maybe we can update the comment? I think this was meant with GraphicsContext...


&gt;   */
&gt; -void Widget::paint(GraphicsContext* context, const IntRect&amp;)
&gt; +void Widget::paint(GraphicsContext* context, const IntRect&amp; rect)
&gt;  {
&gt;      if (!platformWidget())
&gt;          return;
&gt; @@ -114,7 +114,13 @@ void Widget::paint(GraphicsContext* context, const IntRect&amp;)
&gt;  
&gt;      GdkEvent* event = gdk_event_new(GDK_EXPOSE);
&gt;      event-&gt;expose = *context-&gt;gdkExposeEvent();
&gt; -    event-&gt;expose.region = gtk_widget_region_intersect(widget, event-&gt;expose.region);
&gt; +    event-&gt;expose.area = static_cast&lt;GdkRectangle&gt;(rect);

this is using the operator GtkRectangle()...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112584</commentid>
    <comment_count>5</comment_count>
      <attachid>28269</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-06 07:59:54 -0800</bug_when>
    <thetext>Comment on attachment 28269
movepaint.patch


&gt; +/*
&gt; + * Strategy to painting a Widget:
&gt; + *  1.) do not paint if there is no GtkWidget set
&gt; + *  2.) We assume that GTK_NO_WINDOW is set and that frameRectsChanged positioned
&gt; + *      the widget correctly. ATM we do not honor the GraphicsContext translation.

okay, if you update the comment in the previous patch then update this as well..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112588</commentid>
    <comment_count>6</comment_count>
      <attachid>28270</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-06 08:10:34 -0800</bug_when>
    <thetext>Comment on attachment 28270
onlyrenderscrollbar.patch

&gt; From a0e3df34a1bfd4fb3234e2459226cf485ce036f8 Mon Sep 17 00:00:00 2001
&gt; From: Xan Lopez &lt;xan@gnome.org&gt;
&gt; Date: Wed, 4 Mar 2009 20:23:06 +0200
&gt; Subject: [PATCH 3/3] 2009-03-04  Xan Lopez  &lt;xan@gnome.org&gt;
&gt; 
&gt;         Reviewed by NOBODY (OOPS!).
&gt; 
&gt;         https://bugs.webkit.org/show_bug.cgi?id=24358
&gt;         [GTK] Scrollbars not clipped correctly
&gt; 
&gt;         Do not take into account the case of being a ScrollView scrollbar,
&gt;         since those are native in our case.
&gt; 
&gt;         * platform/gtk/ScrollbarGtk.cpp:
&gt;         (ScrollbarGtk::frameRectsChanged):
&gt; ---
&gt;  WebCore/ChangeLog                     |   17 +++++++++++++++--
&gt;  WebCore/platform/gtk/ScrollbarGtk.cpp |   16 +++-------------
&gt;  2 files changed, 18 insertions(+), 15 deletions(-)
&gt; 
&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index c6352e7..cd3f559 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -5,8 +5,21 @@
&gt;          https://bugs.webkit.org/show_bug.cgi?id=24358
&gt;          [GTK] Scrollbars not clipped correctly
&gt;  
&gt; -	Move Widget::paint to ScrollbarGtk::paint, since it&apos;s scrollbar
&gt; -	specific and it&apos;s our only Widget anyway.
&gt; +        Do not take into account the case of being a ScrollView scrollbar,
&gt; +        since those are native in our case.

^^^ oh, tabs vs. space?

for the rest, let us try it :)



&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112627</commentid>
    <comment_count>7</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-06 11:07:37 -0800</bug_when>
    <thetext>Thanks, landed in r4149{0,1,2}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112657</commentid>
    <comment_count>8</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-06 14:20:24 -0800</bug_when>
    <thetext>Ok, remember what I said in the last patch about our scrollbars always being renderlayout because the other ones are native? Not true. Turns out there are scrollview scrollbars that are not native apparently. This happens in gmail for example. Seems I either didn&apos;t follow the code correctly or there&apos;s some bug somewhere, not sure. Anyway something like this fixes a new bug in gmail, where the scrollbars disappear when you scroll:

diff --git a/WebCore/platform/gtk/ScrollbarGtk.cpp b/WebCore/platform/gtk/ScrollbarGtk.cpp
index be4c1c4..0bd2dda 100644
--- a/WebCore/platform/gtk/ScrollbarGtk.cpp
+++ b/WebCore/platform/gtk/ScrollbarGtk.cpp
@@ -72,7 +72,12 @@ void ScrollbarGtk::frameRectsChanged()

     // Translate our coordinates, we are a RenderLayout scrollbar because our
     // ScrollView scrollbars are native.
-    IntPoint loc = parent()-&gt;contentsToWindow(frameRect().location());
+    IntPoint loc;
+
+    if (parent()-&gt;isScrollViewScrollbar(this))
+        loc = parent()-&gt;convertToContainingWindow(frameRect().location());
+    else
+        loc = parent()-&gt;contentsToWindow(frameRect().location());

     // Don&apos;t allow the allocation size to be negative
     IntSize sz = frameRect().size();
@@ -141,7 +146,13 @@ void ScrollbarGtk::paint(GraphicsContext* context, const IntRect&amp; rect)
     event-&gt;expose = *context-&gt;gdkExposeEvent();
     event-&gt;expose.area = static_cast&lt;GdkRectangle&gt;(rect);

-    IntPoint loc = parent()-&gt;contentsToWindow(rect.location());
+    IntPoint loc;
+
+    if (parent()-&gt;isScrollViewScrollbar(this))
+        loc = parent()-&gt;convertToContainingWindow(rect.location());
+    else
+        loc = parent()-&gt;contentsToWindow(rect.location());
+
     event-&gt;expose.area.x = loc.x();
     event-&gt;expose.area.y = loc.y();


I&apos;ll try to go through this again tomorrow though. Thoughts about it welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112659</commentid>
    <comment_count>9</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-06 14:22:10 -0800</bug_when>
    <thetext>Adding Holger in CC, see previous comment :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112707</commentid>
    <comment_count>10</comment_count>
      <attachid>28387</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-07 04:01:43 -0800</bug_when>
    <thetext>Created attachment 28387
subframescrollbars.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112708</commentid>
    <comment_count>11</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-07 04:04:00 -0800</bug_when>
    <thetext>Committed in r41509, reviewed on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112711</commentid>
    <comment_count>12</comment_count>
      <attachid>28387</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-07 04:32:35 -0800</bug_when>
    <thetext>Comment on attachment 28387
subframescrollbars.patch

just for the record.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28268</attachid>
            <date>2009-03-04 10:25:50 -0800</date>
            <delta_ts>2009-03-06 07:52:32 -0800</delta_ts>
            <desc>cliprect.patch</desc>
            <filename>cliprect.patch</filename>
            <type>text/plain</type>
            <size>3468</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSAxMTk1OWY3MDhmMGQ2NjY0ZWZjZDMxZGVkMTA2YjRmYjc5NDhkNzc5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFdlZCwg
NCBNYXIgMjAwOSAyMDoxNzowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSAyMDA5LTAzLTA0
ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0MzU4CiAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBub3QgY2xpcHBlZCBjb3JyZWN0bHkKCiAg
ICAgICAgVXNlIGNvcnJlY3QgY2xpcCByZWN0YW5nbGUgYW5kIGFwcGx5IGNvb3JkaW5hdGUgdHJh
bnNsYXRpb24gbmVlZGVkCiAgICAgICAgZm9yIG5vbi1TY3JvbGxWaWV3IHNjcm9sbGJhcnMuCgog
ICAgICAgIFdlIHdlcmUgaWdub3JpbmcgdGhlIGNsaXAgcmVjdGFuZ2xlIHBhc3NlZCBhcyBwYXJh
bWV0ZXIsIHdoaWNoIGlzCiAgICAgICAgd3JvbmcgaW4gdGhlIGNhc2Ugb2Ygbm9uIGNvYWxlc2Nl
ZCBleHBvc2UgZXZlbnRzLiBUaGlzLCBpbiB0dXJuLAogICAgICAgIHVuY292ZXJzIHRoZSBmYWN0
IHRoYXQgd2Ugd2VyZSBub3QgYXBwbHlpbmcgY29vcmRpbmF0ZSB0cmFuc2xhdGlvbgogICAgICAg
IHRvIG91ciBwb3NpdGlvbi4KCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcDoK
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpwYWludCk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9XaWRnZXRHdGsuY3BwIHwgICAxNCArKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFu
Z2VkLCAyNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjUxN2IwOS4uMzVjMmViOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAwOS0wMy0wNCAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzNTgKKyAgICAgICAgW0dUS10gU2Nyb2xs
YmFycyBub3QgY2xpcHBlZCBjb3JyZWN0bHkKKworICAgICAgICBVc2UgY29ycmVjdCBjbGlwIHJl
Y3RhbmdsZSBhbmQgYXBwbHkgY29vcmRpbmF0ZSB0cmFuc2xhdGlvbiBuZWVkZWQKKyAgICAgICAg
Zm9yIG5vbi1TY3JvbGxWaWV3IHNjcm9sbGJhcnMuCisKKyAgICAgICAgV2Ugd2VyZSBpZ25vcmlu
ZyB0aGUgY2xpcCByZWN0YW5nbGUgcGFzc2VkIGFzIHBhcmFtZXRlciwgd2hpY2ggaXMKKyAgICAg
ICAgd3JvbmcgaW4gdGhlIGNhc2Ugb2Ygbm9uIGNvYWxlc2NlZCBleHBvc2UgZXZlbnRzLiBUaGlz
LCBpbiB0dXJuLAorICAgICAgICB1bmNvdmVycyB0aGUgZmFjdCB0aGF0IHdlIHdlcmUgbm90IGFw
cGx5aW5nIGNvb3JkaW5hdGUgdHJhbnNsYXRpb24KKyAgICAgICAgdG8gb3VyIHBvc2l0aW9uLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXQ6OnBhaW50KToKKwogMjAwOS0wMy0wMyAgTWlrZSBCZWxzaGUgIDxtaWtlQGJlbHNo
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9XaWRnZXRHdGsuY3BwCmluZGV4IGI2MTdjMjEuLmViZDlkZWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvV2lkZ2V0R3RrLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgV2lkZ2V0OjpoaWRl
KCkKICAqICAyLikgV2UgYXNzdW1lIHRoYXQgR1RLX05PX1dJTkRPVyBpcyBzZXQgYW5kIHRoYXQg
ZnJhbWVSZWN0c0NoYW5nZWQgcG9zaXRpb25lZAogICogICAgICB0aGUgd2lkZ2V0IGNvcnJlY3Rs
eS4gQVRNIHdlIGRvIG5vdCBob25vciB0aGUgR3JhcGhpY3NDb250ZXh0IHRyYW5zbGF0aW9uLgog
ICovCi12b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJ
bnRSZWN0JikKK3ZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFwbGF0Zm9ybVdpZGdldCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMTQsNyArMTE0LDEzIEBAIHZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmKQogCiAgICAgR2RrRXZlbnQqIGV2ZW50
ID0gZ2RrX2V2ZW50X25ldyhHREtfRVhQT1NFKTsKICAgICBldmVudC0+ZXhwb3NlID0gKmNvbnRl
eHQtPmdka0V4cG9zZUV2ZW50KCk7Ci0gICAgZXZlbnQtPmV4cG9zZS5yZWdpb24gPSBndGtfd2lk
Z2V0X3JlZ2lvbl9pbnRlcnNlY3Qod2lkZ2V0LCBldmVudC0+ZXhwb3NlLnJlZ2lvbik7CisgICAg
ZXZlbnQtPmV4cG9zZS5hcmVhID0gc3RhdGljX2Nhc3Q8R2RrUmVjdGFuZ2xlPihyZWN0KTsKKwor
ICAgIEludFBvaW50IGxvYyA9IHBhcmVudCgpLT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRp
b24oKSk7CisgICAgZXZlbnQtPmV4cG9zZS5hcmVhLnggPSBsb2MueCgpOworICAgIGV2ZW50LT5l
eHBvc2UuYXJlYS55ID0gbG9jLnkoKTsKKworICAgIGV2ZW50LT5leHBvc2UucmVnaW9uID0gZ2Rr
X3JlZ2lvbl9yZWN0YW5nbGUoJmV2ZW50LT5leHBvc2UuYXJlYSk7CiAKICAgICAvKgogICAgICAq
IFRoaXMgd2lsbCBiZSB1bnJlZidlZCBieSBnZGtfZXZlbnRfZnJlZS4KQEAgLTEyNCwxMCArMTMw
LDggQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
SW50UmVjdCYpCiAgICAgLyoKICAgICAgKiBJZiB3ZSBhcmUgZ29pbmcgdG8gcGFpbnQgZG8gdGhl
IHRyYW5zbGF0aW9uIGFuZCBHdGtBbGxvY2F0aW9uIG1hbmlwdWxhdGlvbi4KICAgICAgKi8KLSAg
ICBpZiAoIWdka19yZWdpb25fZW1wdHkoZXZlbnQtPmV4cG9zZS5yZWdpb24pKSB7Ci0gICAgICAg
IGdka19yZWdpb25fZ2V0X2NsaXBib3goZXZlbnQtPmV4cG9zZS5yZWdpb24sICZldmVudC0+ZXhw
b3NlLmFyZWEpOworICAgIGlmICghZ2RrX3JlZ2lvbl9lbXB0eShldmVudC0+ZXhwb3NlLnJlZ2lv
bikpCiAgICAgICAgIGd0a193aWRnZXRfc2VuZF9leHBvc2Uod2lkZ2V0LCBldmVudCk7Ci0gICAg
fQogCiAgICAgZ2RrX2V2ZW50X2ZyZWUoZXZlbnQpOwogfQotLSAKMS42LjEuMwoK
</data>
<flag name="review"
          id="13825"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28269</attachid>
            <date>2009-03-04 10:26:14 -0800</date>
            <delta_ts>2009-03-06 07:59:54 -0800</delta_ts>
            <desc>movepaint.patch</desc>
            <filename>movepaint.patch</filename>
            <type>text/plain</type>
            <size>5445</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA5YzA1MTJhOTZlMjM3NTcyNjc1MmU0ODcwM2YzYzRmYWI1Mzg2MDkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFdlZCwg
NCBNYXIgMjAwOSAyMDoxOTozMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSAyMDA5LTAzLTA0
ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0MzU4CiAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBub3QgY2xpcHBlZCBjb3JyZWN0bHkKCglN
b3ZlIFdpZGdldDo6cGFpbnQgdG8gU2Nyb2xsYmFyR3RrOjpwYWludCwgc2luY2UgaXQncyBzY3Jv
bGxiYXIKCXNwZWNpZmljIGFuZCBpdCdzIG91ciBvbmx5IFdpZGdldCBhbnl3YXkuCgogICAgICAg
ICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHA6CiAgICAgICAgKFNjcm9sbGJhckd0azo6
cGFpbnQpOgogICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5oOgogICAgICAgICog
cGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHA6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysrKwogV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsYmFyR3RrLmNwcCB8ICAgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuaCAgIHwgICAgMSArCiBXZWJDb3Jl
L3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwICAgIHwgICAzNyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAzNyBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDM1YzJlYjguLmM2MzUyZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC01LDYgKzUsMjEgQEAKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzU4CiAgICAgICAgIFtHVEtdIFNj
cm9sbGJhcnMgbm90IGNsaXBwZWQgY29ycmVjdGx5CiAKKwlNb3ZlIFdpZGdldDo6cGFpbnQgdG8g
U2Nyb2xsYmFyR3RrOjpwYWludCwgc2luY2UgaXQncyBzY3JvbGxiYXIKKwlzcGVjaWZpYyBhbmQg
aXQncyBvdXIgb25seSBXaWRnZXQgYW55d2F5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhckd0ay5jcHA6CisgICAgICAgIChTY3JvbGxiYXJHdGs6OnBhaW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1dp
ZGdldEd0ay5jcHA6CisKKzIwMDktMDMtMDQgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzU4CisgICAgICAgIFtHVEtdIFNjcm9s
bGJhcnMgbm90IGNsaXBwZWQgY29ycmVjdGx5CisKICAgICAgICAgVXNlIGNvcnJlY3QgY2xpcCBy
ZWN0YW5nbGUgYW5kIGFwcGx5IGNvb3JkaW5hdGUgdHJhbnNsYXRpb24gbmVlZGVkCiAgICAgICAg
IGZvciBub24tU2Nyb2xsVmlldyBzY3JvbGxiYXJzLgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
YmFyR3RrLmNwcAppbmRleCA0MzEwNmJiLi4wNzMyNTBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nj
cm9sbGJhckd0ay5jcHAKQEAgLTEzMCw1ICsxMzAsNDMgQEAgdm9pZCBTY3JvbGxiYXJHdGs6OnNl
dEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCiAgICAgICAgIGd0a193aWRnZXRfc2V0X3NlbnNp
dGl2ZShwbGF0Zm9ybVdpZGdldCgpLCBzaG91bGRFbmFibGUpOwogfQogCisvKgorICogU3RyYXRl
Z3kgdG8gcGFpbnRpbmcgYSBXaWRnZXQ6CisgKiAgMS4pIGRvIG5vdCBwYWludCBpZiB0aGVyZSBp
cyBubyBHdGtXaWRnZXQgc2V0CisgKiAgMi4pIFdlIGFzc3VtZSB0aGF0IEdUS19OT19XSU5ET1cg
aXMgc2V0IGFuZCB0aGF0IGZyYW1lUmVjdHNDaGFuZ2VkIHBvc2l0aW9uZWQKKyAqICAgICAgdGhl
IHdpZGdldCBjb3JyZWN0bHkuIEFUTSB3ZSBkbyBub3QgaG9ub3IgdGhlIEdyYXBoaWNzQ29udGV4
dCB0cmFuc2xhdGlvbi4KKyAqLwordm9pZCBTY3JvbGxiYXJHdGs6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoIXBsYXRmb3Jt
V2lkZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghY29udGV4dC0+Z2RrRXhwb3Nl
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBwbGF0
Zm9ybVdpZGdldCgpOworICAgIEFTU0VSVChHVEtfV0lER0VUX05PX1dJTkRPVyh3aWRnZXQpKTsK
KworICAgIEdka0V2ZW50KiBldmVudCA9IGdka19ldmVudF9uZXcoR0RLX0VYUE9TRSk7CisgICAg
ZXZlbnQtPmV4cG9zZSA9ICpjb250ZXh0LT5nZGtFeHBvc2VFdmVudCgpOworICAgIGV2ZW50LT5l
eHBvc2UuYXJlYSA9IHN0YXRpY19jYXN0PEdka1JlY3RhbmdsZT4ocmVjdCk7CiAKKyAgICBJbnRQ
b2ludCBsb2MgPSBwYXJlbnQoKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOwor
ICAgIGV2ZW50LT5leHBvc2UuYXJlYS54ID0gbG9jLngoKTsKKyAgICBldmVudC0+ZXhwb3NlLmFy
ZWEueSA9IGxvYy55KCk7CiAKKyAgICBldmVudC0+ZXhwb3NlLnJlZ2lvbiA9IGdka19yZWdpb25f
cmVjdGFuZ2xlKCZldmVudC0+ZXhwb3NlLmFyZWEpOworCisgICAgLyoKKyAgICAgKiBUaGlzIHdp
bGwgYmUgdW5yZWYnZWQgYnkgZ2RrX2V2ZW50X2ZyZWUuCisgICAgICovCisgICAgZ19vYmplY3Rf
cmVmKGV2ZW50LT5leHBvc2Uud2luZG93KTsKKworICAgIC8qCisgICAgICogSWYgd2UgYXJlIGdv
aW5nIHRvIHBhaW50IGRvIHRoZSB0cmFuc2xhdGlvbiBhbmQgR3RrQWxsb2NhdGlvbiBtYW5pcHVs
YXRpb24uCisgICAgICovCisgICAgaWYgKCFnZGtfcmVnaW9uX2VtcHR5KGV2ZW50LT5leHBvc2Uu
cmVnaW9uKSkKKyAgICAgICAgZ3RrX3dpZGdldF9zZW5kX2V4cG9zZSh3aWRnZXQsIGV2ZW50KTsK
KworICAgIGdka19ldmVudF9mcmVlKGV2ZW50KTsKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFy
R3RrLmgKaW5kZXggYWRiMGM3OC4uYWEyNjY4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsYmFyR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFy
R3RrLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBTY3JvbGxi
YXI7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVN
b3VzZU91dEV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcAppbmRleCBlYmQ5ZGVhLi40ZjA5ZTc3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1dpZGdldEd0ay5jcHAKQEAgLTk1LDQ1ICs5NSw4IEBAIHZvaWQgV2lkZ2V0
OjpoaWRlKCkKICAgICBndGtfd2lkZ2V0X2hpZGUocGxhdGZvcm1XaWRnZXQoKSk7CiB9CiAKLS8q
Ci0gKiBTdHJhdGVneSB0byBwYWludGluZyBhIFdpZGdldDoKLSAqICAxLikgZG8gbm90IHBhaW50
IGlmIHRoZXJlIGlzIG5vIEd0a1dpZGdldCBzZXQKLSAqICAyLikgV2UgYXNzdW1lIHRoYXQgR1RL
X05PX1dJTkRPVyBpcyBzZXQgYW5kIHRoYXQgZnJhbWVSZWN0c0NoYW5nZWQgcG9zaXRpb25lZAot
ICogICAgICB0aGUgd2lkZ2V0IGNvcnJlY3RseS4gQVRNIHdlIGRvIG5vdCBob25vciB0aGUgR3Jh
cGhpY3NDb250ZXh0IHRyYW5zbGF0aW9uLgotICovCiB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIGlmICghcGxh
dGZvcm1XaWRnZXQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFjb250ZXh0LT5nZGtF
eHBvc2VFdmVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtXaWRnZXQqIHdpZGdldCA9
IHBsYXRmb3JtV2lkZ2V0KCk7Ci0gICAgQVNTRVJUKEdUS19XSURHRVRfTk9fV0lORE9XKHdpZGdl
dCkpOwotCi0gICAgR2RrRXZlbnQqIGV2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfRVhQT1NFKTsK
LSAgICBldmVudC0+ZXhwb3NlID0gKmNvbnRleHQtPmdka0V4cG9zZUV2ZW50KCk7Ci0gICAgZXZl
bnQtPmV4cG9zZS5hcmVhID0gc3RhdGljX2Nhc3Q8R2RrUmVjdGFuZ2xlPihyZWN0KTsKLQotICAg
IEludFBvaW50IGxvYyA9IHBhcmVudCgpLT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24o
KSk7Ci0gICAgZXZlbnQtPmV4cG9zZS5hcmVhLnggPSBsb2MueCgpOwotICAgIGV2ZW50LT5leHBv
c2UuYXJlYS55ID0gbG9jLnkoKTsKLQotICAgIGV2ZW50LT5leHBvc2UucmVnaW9uID0gZ2RrX3Jl
Z2lvbl9yZWN0YW5nbGUoJmV2ZW50LT5leHBvc2UuYXJlYSk7Ci0KLSAgICAvKgotICAgICAqIFRo
aXMgd2lsbCBiZSB1bnJlZidlZCBieSBnZGtfZXZlbnRfZnJlZS4KLSAgICAgKi8KLSAgICBnX29i
amVjdF9yZWYoZXZlbnQtPmV4cG9zZS53aW5kb3cpOwotCi0gICAgLyoKLSAgICAgKiBJZiB3ZSBh
cmUgZ29pbmcgdG8gcGFpbnQgZG8gdGhlIHRyYW5zbGF0aW9uIGFuZCBHdGtBbGxvY2F0aW9uIG1h
bmlwdWxhdGlvbi4KLSAgICAgKi8KLSAgICBpZiAoIWdka19yZWdpb25fZW1wdHkoZXZlbnQtPmV4
cG9zZS5yZWdpb24pKQotICAgICAgICBndGtfd2lkZ2V0X3NlbmRfZXhwb3NlKHdpZGdldCwgZXZl
bnQpOwotCi0gICAgZ2RrX2V2ZW50X2ZyZWUoZXZlbnQpOwogfQogCiB2b2lkIFdpZGdldDo6c2V0
SXNTZWxlY3RlZChib29sKQotLSAKMS42LjEuMwoK
</data>
<flag name="review"
          id="13826"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28270</attachid>
            <date>2009-03-04 10:26:33 -0800</date>
            <delta_ts>2009-03-06 08:10:34 -0800</delta_ts>
            <desc>onlyrenderscrollbar.patch</desc>
            <filename>onlyrenderscrollbar.patch</filename>
            <type>text/plain</type>
            <size>2875</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBhMGUzZGYzNGExYmZkNGZiMzIzNGUyNDU5MjI2Y2Y0ODVjZTAzNmY4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFdlZCwg
NCBNYXIgMjAwOSAyMDoyMzowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSAyMDA5LTAzLTA0
ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0MzU4CiAgICAgICAgW0dUS10gU2Nyb2xsYmFycyBub3QgY2xpcHBlZCBjb3JyZWN0bHkKCiAg
ICAgICAgRG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBjYXNlIG9mIGJlaW5nIGEgU2Nyb2xs
VmlldyBzY3JvbGxiYXIsCiAgICAgICAgc2luY2UgdGhvc2UgYXJlIG5hdGl2ZSBpbiBvdXIgY2Fz
ZS4KCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcDoKICAgICAgICAoU2Ny
b2xsYmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdlZCk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKysrKysrLS0KIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgfCAgIDE2ICsrKy0tLS0tLS0tLS0tLS0KIDIgZmlsZXMg
Y2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNjM1MmU3Li5jZDNm
NTU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtNSw4ICs1LDIxIEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDM1OAogICAgICAgICBbR1RLXSBTY3JvbGxiYXJzIG5vdCBjbGlwcGVkIGNv
cnJlY3RseQogCi0JTW92ZSBXaWRnZXQ6OnBhaW50IHRvIFNjcm9sbGJhckd0azo6cGFpbnQsIHNp
bmNlIGl0J3Mgc2Nyb2xsYmFyCi0Jc3BlY2lmaWMgYW5kIGl0J3Mgb3VyIG9ubHkgV2lkZ2V0IGFu
eXdheS4KKyAgICAgICAgRG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBjYXNlIG9mIGJlaW5n
IGEgU2Nyb2xsVmlldyBzY3JvbGxiYXIsCisgICAgICAgIHNpbmNlIHRob3NlIGFyZSBuYXRpdmUg
aW4gb3VyIGNhc2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcDoK
KyAgICAgICAgKFNjcm9sbGJhckd0azo6ZnJhbWVSZWN0c0NoYW5nZWQpOgorCisyMDA5LTAzLTA0
ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDM1OAorICAgICAgICBbR1RLXSBTY3JvbGxiYXJzIG5vdCBjbGlwcGVkIGNvcnJlY3Rs
eQorCisgICAgICAgIE1vdmUgV2lkZ2V0OjpwYWludCB0byBTY3JvbGxiYXJHdGs6OnBhaW50LCBz
aW5jZSBpdCdzIHNjcm9sbGJhcgorICAgICAgICBzcGVjaWZpYyBhbmQgaXQncyBvdXIgb25seSBX
aWRnZXQgYW55d2F5LgogCiAgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHA6
CiAgICAgICAgIChTY3JvbGxiYXJHdGs6OnBhaW50KToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJHdGsuY3BwCmluZGV4IDA3MzI1MGUuLmJlNGMxYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Ny
b2xsYmFyR3RrLmNwcApAQCAtNzAsMTkgKzcwLDkgQEAgdm9pZCBTY3JvbGxiYXJHdGs6OmZyYW1l
UmVjdHNDaGFuZ2VkKCkKICAgICBpZiAoIXBhcmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBJbnRQb2ludCBsb2M7Ci0KLSAgICAvKgotICAgICAqIFRoZSBzYW1lIHNjcm9sbGJhcnMgYXJl
IHVzZWQgZm9yIFNjcm9sbFZpZXdzIGFuZCAnZmxvYXRpbmcgZGl2cycvCi0gICAgICogUmVuZGVy
TGF5b3V0LiBXZSBuZWVkIHRvIHRha2UgdGhpcyBpbnRvIGFjY291bnQgdG8gZGVjaWRlIHdoaWNo
Ci0gICAgICogZnVuY3Rpb24gdG8gdXNlIHRvIHRyYW5zZm9ybSB0aGUgbG9jYXRpb24gY29vcmRp
bmF0ZXMuCi0gICAgICogVGhlIGJhc2ljIGRpZmZlcmVuY2UgaXMgdGhhdCBSZW5kZXJMYXlvdXQg
c2Nyb2xsYmFycyBuZWVkIHRvIGhhdmUKLSAgICAgKiBzdWJzdHJhY3RlZCB0aGUgc2Nyb2xsT2Zm
c2V0KCkgZnJvbSB0aGVpciBsb2NhdGlvbi4KLSAgICAgKi8KLSAgICBpZiAocGFyZW50KCktPmlz
U2Nyb2xsVmlld1Njcm9sbGJhcih0aGlzKSkKLSAgICAgICAgbG9jID0gcGFyZW50KCktPmNvbnZl
cnRUb0NvbnRhaW5pbmdXaW5kb3coZnJhbWVSZWN0KCkubG9jYXRpb24oKSk7Ci0gICAgZWxzZQot
ICAgICAgICBsb2MgPSBwYXJlbnQoKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKS5sb2Nh
dGlvbigpKTsKKyAgICAvLyBUcmFuc2xhdGUgb3VyIGNvb3JkaW5hdGVzLCB3ZSBhcmUgYSBSZW5k
ZXJMYXlvdXQgc2Nyb2xsYmFyIGJlY2F1c2Ugb3VyCisgICAgLy8gU2Nyb2xsVmlldyBzY3JvbGxi
YXJzIGFyZSBuYXRpdmUuCisgICAgSW50UG9pbnQgbG9jID0gcGFyZW50KCktPmNvbnRlbnRzVG9X
aW5kb3coZnJhbWVSZWN0KCkubG9jYXRpb24oKSk7CiAKICAgICAvLyBEb24ndCBhbGxvdyB0aGUg
YWxsb2NhdGlvbiBzaXplIHRvIGJlIG5lZ2F0aXZlCiAgICAgSW50U2l6ZSBzeiA9IGZyYW1lUmVj
dCgpLnNpemUoKTsKLS0gCjEuNi4xLjMKCg==
</data>
<flag name="review"
          id="13827"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28387</attachid>
            <date>2009-03-07 04:01:43 -0800</date>
            <delta_ts>2009-03-07 04:32:35 -0800</delta_ts>
            <desc>subframescrollbars.patch</desc>
            <filename>subframescrollbars.patch</filename>
            <type>text/plain</type>
            <size>3550</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSBmNzNmNzZhMWE3ZTQxOTg0OTZmNTc4OGY4YTAwMTY3ZmJhZmQ1ZWQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBnbm9tZS5vcmc+CkRhdGU6IFNhdCwg
NyBNYXIgMjAwOSAxMzo1OTowMyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMDktMDMtMDcgIFhh
biBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQz
NTgKICAgICAgICBbR1RLXSBTY3JvbGxiYXJzIG5vdCBjbGlwcGVkIGNvcnJlY3RseQoKICAgICAg
ICBTY3JvbGxWaWV3IHNjcm9sbGJhcnMgaW4gc3ViZnJhbWVzIGFyZSAqbm90KiBuYXRpdmUsIHNv
IHRha2UgdGhhdAogICAgICAgIGludG8gYWNjb3VudCBhZ2Fpbi4KCiAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2Nyb2xsYmFyR3RrLmNwcDoKICAgICAgICAoU2Nyb2xsYmFyR3RrOjpnZXRMb2NhdGlv
bkluUGFyZW50V2luZG93KToKICAgICAgICAoU2Nyb2xsYmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdl
ZCk6CiAgICAgICAgKFNjcm9sbGJhckd0azo6cGFpbnQpOgogICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Njcm9sbGJhckd0ay5oOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE2ICsrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJh
ckd0ay5jcHAgfCAgIDE5ICsrKysrKysrKysrKysrKy0tLS0KIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1Njcm9sbGJhckd0ay5oICAgfCAgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9u
cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBjNDEwOWEuLjhjN2JhODEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MDktMDMtMDcgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI0MzU4CisgICAgICAgIFtHVEtdIFNjcm9sbGJhcnMgbm90IGNsaXBwZWQg
Y29ycmVjdGx5CisKKyAgICAgICAgU2Nyb2xsVmlldyBzY3JvbGxiYXJzIGluIHN1YmZyYW1lcyBh
cmUgKm5vdCogbmF0aXZlLCBzbyB0YWtlIHRoYXQKKyAgICAgICAgaW50byBhY2NvdW50IGFnYWlu
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5jcHA6CisgICAgICAgIChT
Y3JvbGxiYXJHdGs6OmdldExvY2F0aW9uSW5QYXJlbnRXaW5kb3cpOgorICAgICAgICAoU2Nyb2xs
YmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdlZCk6CisgICAgICAgIChTY3JvbGxiYXJHdGs6OnBhaW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmg6CisKIDIwMDktMDMtMDYg
IFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9s
bGJhckd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJHdGsuY3BwCmluZGV4
IGJlNGMxYzQuLjc1NDNlMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9s
bGJhckd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmNwcApA
QCAtNjUsMTQgKzY1LDI0IEBAIFNjcm9sbGJhckd0azo6U2Nyb2xsYmFyR3RrKFNjcm9sbGJhckNs
aWVudCogY2xpZW50LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhCiAgICAgICAgICAgIFNj
cm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpLT5zY3JvbGxiYXJUaGlja25lc3MoKSk7CiB9CiAK
K0ludFBvaW50IFNjcm9sbGJhckd0azo6Z2V0TG9jYXRpb25JblBhcmVudFdpbmRvdyhjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIEludFBvaW50IGxvYzsKKworICAgIGlmIChwYXJlbnQoKS0+
aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKHRoaXMpKQorICAgICAgICBsb2MgPSBwYXJlbnQoKS0+Y29u
dmVydFRvQ29udGFpbmluZ1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOworICAgIGVsc2UKKyAgICAg
ICAgbG9jID0gcGFyZW50KCktPmNvbnRlbnRzVG9XaW5kb3cocmVjdC5sb2NhdGlvbigpKTsKKwor
ICAgIHJldHVybiBsb2M7Cit9CisKIHZvaWQgU2Nyb2xsYmFyR3RrOjpmcmFtZVJlY3RzQ2hhbmdl
ZCgpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVHJh
bnNsYXRlIG91ciBjb29yZGluYXRlcywgd2UgYXJlIGEgUmVuZGVyTGF5b3V0IHNjcm9sbGJhciBi
ZWNhdXNlIG91cgotICAgIC8vIFNjcm9sbFZpZXcgc2Nyb2xsYmFycyBhcmUgbmF0aXZlLgotICAg
IEludFBvaW50IGxvYyA9IHBhcmVudCgpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpLmxv
Y2F0aW9uKCkpOworICAgIEludFBvaW50IGxvYyA9IGdldExvY2F0aW9uSW5QYXJlbnRXaW5kb3co
ZnJhbWVSZWN0KCkpOwogCiAgICAgLy8gRG9uJ3QgYWxsb3cgdGhlIGFsbG9jYXRpb24gc2l6ZSB0
byBiZSBuZWdhdGl2ZQogICAgIEludFNpemUgc3ogPSBmcmFtZVJlY3QoKS5zaXplKCk7CkBAIC0x
NDEsNyArMTUxLDggQEAgdm9pZCBTY3JvbGxiYXJHdGs6OnBhaW50KEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBldmVudC0+ZXhwb3NlID0gKmNvbnRl
eHQtPmdka0V4cG9zZUV2ZW50KCk7CiAgICAgZXZlbnQtPmV4cG9zZS5hcmVhID0gc3RhdGljX2Nh
c3Q8R2RrUmVjdGFuZ2xlPihyZWN0KTsKIAotICAgIEludFBvaW50IGxvYyA9IHBhcmVudCgpLT5j
b250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7CisgICAgSW50UG9pbnQgbG9jID0gZ2V0
TG9jYXRpb25JblBhcmVudFdpbmRvdyhyZWN0KTsKKwogICAgIGV2ZW50LT5leHBvc2UuYXJlYS54
ID0gbG9jLngoKTsKICAgICBldmVudC0+ZXhwb3NlLmFyZWEueSA9IGxvYy55KCk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhckd0ay5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmgKaW5kZXggYWEyNjY4OC4uMWVmNGM0OSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyR3RrLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJvdGVjdGVkOgogICAg
IAogcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBndGtWYWx1ZUNoYW5nZWQoR3RrQWRqdXN0bWVu
dCosIFNjcm9sbGJhckd0ayopOworICAgIEludFBvaW50IGdldExvY2F0aW9uSW5QYXJlbnRXaW5k
b3coY29uc3QgSW50UmVjdCYpOwogICAgIEd0a0FkanVzdG1lbnQqIG1fYWRqdXN0bWVudDsKIH07
CiAKLS0gCjEuNi4xLjMKCg==
</data>
<flag name="review"
          id="13908"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>