<?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>51812</bug_id>
          
          <creation_ts>2011-01-03 02:55:24 -0800</creation_ts>
          <short_desc>[GTK] Port buttons painting to GtkStyleContext</short_desc>
          <delta_ts>2011-01-07 10:59:51 -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>
          <dependson>51764</dependson>
          <blocked>50820</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>328503</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-03 02:55:24 -0800</bug_when>
    <thetext>This depends on bug #51764 since the patch for stock icons contains the initial GtkStyleContext port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328504</commentid>
    <comment_count>1</comment_count>
      <attachid>77800</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-03 03:00:23 -0800</bug_when>
    <thetext>Created attachment 77800
Paint buttons with GtkStyleContext API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329510</commentid>
    <comment_count>2</comment_count>
      <attachid>77988</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-05 04:43:20 -0800</bug_when>
    <thetext>Created attachment 77988
Update patch to current git master and fix some minor issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329727</commentid>
    <comment_count>3</comment_count>
      <attachid>77988</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-05 12:29:02 -0800</bug_when>
    <thetext>Comment on attachment 77988
Update patch to current git master and fix some minor issues

I think we should use adjustRepaintRect to paint exterior focus outside of the actual button rect. This will prevent a large exterior focus from shrinking the button rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330747</commentid>
    <comment_count>4</comment_count>
      <attachid>78227</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-07 06:30:38 -0800</bug_when>
    <thetext>Created attachment 78227
Updated patch using adjustRepaintRect()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330820</commentid>
    <comment_count>5</comment_count>
      <attachid>78227</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-07 09:45:21 -0800</bug_when>
    <thetext>Comment on attachment 78227
Updated patch using adjustRepaintRect()

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

Looks great! Please make the following minor adjustments before landing.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:115
&gt; +    GtkStyleContext* context;

Please initialize this to zero.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:135
&gt; +    adjustRectForFocus(context, rect);

Please ASSERT(context); here just for correctness sake.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:226
&gt; +    gboolean interiorFocus;
&gt; +    gtk_style_context_get_style(context, &quot;interior-focus&quot;, &amp;interiorFocus, NULL);

This is only used inside the if (isFocused(...)) block, so it makes sense to move it there.

&gt; WebCore/platform/gtk/RenderThemeGtk3.cpp:274
&gt; +            buttonRect.move(borderWidth.left + focusPad, borderWidth.top + focusPad);
&gt; +            buttonRect.setWidth(buttonRect.width() - (2 * focusPad + borderWidth.left + borderWidth.right));
&gt; +            buttonRect.setHeight(buttonRect.height() - (2 * focusPad + borderWidth.top + borderWidth.bottom));

Instead of setting this piecewise, I think it makes more sense to set it all at once:
buttonRect = IntRect(borderWidth.left + focusPad, borderWidth.top + focusPad.
                     buttonRect.width() - (2 * focusPad + borderWidth.left + borderWidth.right),
                     buttonRect.height() - (2 * focusPad + borderWidth.top + borderWidth.bottom));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330871</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-07 10:58:58 -0800</bug_when>
    <thetext>Committed r75255: &lt;http://trac.webkit.org/changeset/75255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77800</attachid>
            <date>2011-01-03 03:00:23 -0800</date>
            <delta_ts>2011-01-05 04:43:20 -0800</delta_ts>
            <desc>Paint buttons with GtkStyleContext API</desc>
            <filename>style-context-buttons.diff</filename>
            <type>text/plain</type>
            <size>6607</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWUxZWQ1OC4uNDdmNDRmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMS0wMyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUG9ydCBidXR0b25zIHBhaW50aW5nIHRvIEd0
a1N0eWxlQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE4MTIKKworICAgICAgICBVc2UgR3RrU3R5bGVDb250ZXh0IEFQSSB0byBwYWludCBi
dXR0b25zIHdoZW4gYnVpbGRpbmcgd2l0aCBHVEsrCisgICAgICAgIDMueC4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50QnV0dG9uKToKKwogMjAxMS0wMS0wMiAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNpbW9u
IEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
My5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IGU2
MzYyYmUuLjk4ZTMwMTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrMy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNw
cApAQCAtMTgxLDQ4ICsxODEsODYgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRSYWRpbyhS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb24KICAgICByZXR1
cm4gcGFpbnRSZW5kZXJPYmplY3QoTU9aX0dUS19SQURJT0JVVFRPTiwgb2JqZWN0LCBpbmZvLmNv
bnRleHQsIHJlY3QsIGlzQ2hlY2tlZChvYmplY3QpKTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUd0
azo6cGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgaW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKK2Jvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50QnV0dG9u
KFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoaW5mby5jb250ZXh0LT5wYWludGluZ0Rp
c2FibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBHdGtTdHlsZUNvbnRleHQqIGNv
bnRleHQgPSBnZXRTdHlsZUNvbnRleHQoR1RLX1RZUEVfQlVUVE9OKTsKKyAgICBndGtfc3R5bGVf
Y29udGV4dF9zYXZlKGNvbnRleHQpOwogCi0gICAgR3RrV2lkZ2V0KiB3aWRnZXQgPSBndGtCdXR0
b24oKTsKLSAgICBJbnRSZWN0IGJ1dHRvblJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpOwot
ICAgIEludFJlY3QgZm9jdXNSZWN0KGJ1dHRvblJlY3QpOworICAgIGd0a19zdHlsZV9jb250ZXh0
X3NldF9kaXJlY3Rpb24oY29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3Rr
VGV4dERpcmVjdGlvbihyZW5kZXJPYmplY3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSkpOworICAg
IGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfQlVU
VE9OKTsKIAotICAgIEd0a1N0YXRlVHlwZSBzdGF0ZSA9IGdldEd0a1N0YXRlVHlwZShvYmplY3Qp
OwotICAgIGd0a193aWRnZXRfc2V0X3N0YXRlKHdpZGdldCwgc3RhdGUpOwotICAgIGd0a193aWRn
ZXRfc2V0X2RpcmVjdGlvbih3aWRnZXQsIGd0a1RleHREaXJlY3Rpb24ob2JqZWN0LT5zdHlsZSgp
LT5kaXJlY3Rpb24oKSkpOworICAgIEludFJlY3QgYnV0dG9uUmVjdCA9IHJlY3Q7CisKKyAgICBn
Ym9vbGVhbiBpbnRlcmlvckZvY3VzOworICAgIGdpbnQgZm9jdXNXaWR0aCwgZm9jdXNQYWQ7Cisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJmb2N1cy1saW5lLXdpZHRoIiwgJmZvY3VzV2lkdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJmb2N1cy1wYWRkaW5nIiwgJmZvY3VzUGFkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJpb3ItZm9jdXMiLCAmaW50ZXJpb3JG
b2N1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisKKyAgICBpZiAoaXNE
ZWZhdWx0KHJlbmRlck9iamVjdCkpIHsKKyAgICAgICAgR3RrQm9yZGVyKiBib3JkZXJQdHIgPSAw
OworICAgICAgICBHdGtCb3JkZXIgYm9yZGVyID0geyAxLCAxLCAxLCAxIH07CisKKyAgICAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQsICJkZWZhdWx0LWJvcmRlciIsICZi
b3JkZXJQdHIsIDApOworICAgICAgICBpZiAoYm9yZGVyUHRyKSB7CisgICAgICAgICAgICBib3Jk
ZXIgPSAqYm9yZGVyUHRyOworICAgICAgICAgICAgZ3RrX2JvcmRlcl9mcmVlKGJvcmRlclB0cik7
CisgICAgICAgIH0KKworICAgICAgICBidXR0b25SZWN0Lm1vdmUoYm9yZGVyLmxlZnQsIGJvcmRl
ci50b3ApOworICAgICAgICBidXR0b25SZWN0LnNldFdpZHRoKGJ1dHRvblJlY3Qud2lkdGgoKSAt
IChib3JkZXIubGVmdCArIGJvcmRlci5yaWdodCkpOworICAgICAgICBidXR0b25SZWN0LnNldEhl
aWdodChidXR0b25SZWN0LmhlaWdodCgpIC0gKGJvcmRlci50b3AgKyBib3JkZXIuYm90dG9tKSk7
CisKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlM
RV9DTEFTU19ERUZBVUxUKTsKKyAgICB9CisKKyAgICBpZiAoIWludGVyaW9yRm9jdXMgJiYgaXNG
b2N1c2VkKHJlbmRlck9iamVjdCkpCisgICAgICAgIGJ1dHRvblJlY3QuaW5mbGF0ZSgtKGZvY3Vz
V2lkdGggKyBmb2N1c1BhZCkpOworCisgICAgZ3VpbnQgZmxhZ3MgPSAwOworICAgIGlmICghaXNF
bmFibGVkKHJlbmRlck9iamVjdCkgfHwgaXNSZWFkT25seUNvbnRyb2wocmVuZGVyT2JqZWN0KSkK
KyAgICAgICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfSU5TRU5TSVRJVkU7CisgICAgZWxzZSBp
ZiAoaXNQcmVzc2VkKHJlbmRlck9iamVjdCkpCisgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9G
TEFHX0FDVElWRTsKKyAgICBlbHNlIGlmIChpc0hvdmVyZWQocmVuZGVyT2JqZWN0KSkKKyAgICAg
ICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgZ3RrX3N0eWxlX2NvbnRl
eHRfc2V0X3N0YXRlKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7
CisKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoY29udGV4dCwgcGFpbnRJbmZvLmNvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLCBidXR0b25SZWN0LngoKSwgYnV0dG9uUmVjdC55KCksIGJ1dHRv
blJlY3Qud2lkdGgoKSwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRlcl9mcmFt
ZShjb250ZXh0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIGJ1dHRvblJl
Y3QueCgpLCBidXR0b25SZWN0LnkoKSwgYnV0dG9uUmVjdC53aWR0aCgpLCBidXR0b25SZWN0Lmhl
aWdodCgpKTsKKworICAgIGlmIChpc0ZvY3VzZWQocmVuZGVyT2JqZWN0KSkgeworICAgICAgICBn
Ym9vbGVhbiBkaXNwbGFjZUZvY3VzID0gRkFMU0U7CisKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRl
eHRfZ2V0X3N0eWxlKGNvbnRleHQsICJkaXNwbGFjZS1mb2N1cyIsICZkaXNwbGFjZUZvY3VzLCAw
KTsKIAotICAgIGlmIChpc0ZvY3VzZWQob2JqZWN0KSkgewotICAgICAgICBpZiAoaXNFbmFibGVk
KG9iamVjdCkpCi0gICAgICAgICAgICBnX29iamVjdF9zZXQod2lkZ2V0LCAiaGFzLWZvY3VzIiwg
VFJVRSwgTlVMTCk7Ci0KLSAgICAgICAgZ2Jvb2xlYW4gaW50ZXJpb3JGb2N1cyA9IDAsIGZvY3Vz
V2lkdGggPSAwLCBmb2N1c1BhZGRpbmcgPSAwOwotICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dl
dCh3aWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmlvci1mb2N1cyIs
ICZpbnRlcmlvckZvY3VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMtbGlu
ZS13aWR0aCIsICZmb2N1c1dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9j
dXMtcGFkZGluZyIsICZmb2N1c1BhZGRpbmcsIE5VTEwpOwotICAgICAgICAvLyBJZiB3ZSBhcmUg
dXNpbmcgZXh0ZXJpb3IgZm9jdXMsIHdlIHNocmluayB0aGUgYnV0dG9uIHJlY3QgZG93biBiZWZv
cmUKLSAgICAgICAgLy8gZHJhd2luZy4gSWYgd2UgYXJlIHVzaW5nIGludGVyaW9yIGZvY3VzIHdl
IHNocmluayB0aGUgZm9jdXMgcmVjdC4gVGhpcwotICAgICAgICAvLyBhcHByb2FjaCBvcmlnaW5h
dGVzIGZyb20gdGhlIE1vemlsbGEgdGhlbWUgZHJhd2luZyBjb2RlIChndGsyZHJhd2luZy5jKS4K
ICAgICAgICAgaWYgKGludGVyaW9yRm9jdXMpIHsKLSAgICAgICAgICAgIEd0a1N0eWxlKiBzdHls
ZSA9IGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7Ci0gICAgICAgICAgICBmb2N1c1JlY3Qu
aW5mbGF0ZVgoLXN0eWxlLT54dGhpY2tuZXNzIC0gZm9jdXNQYWRkaW5nKTsKLSAgICAgICAgICAg
IGZvY3VzUmVjdC5pbmZsYXRlWSgtc3R5bGUtPnl0aGlja25lc3MgLSBmb2N1c1BhZGRpbmcpOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYnV0dG9uUmVjdC5pbmZsYXRlWCgtZm9jdXNX
aWR0aCAtIGZvY3VzUGFkZGluZyk7Ci0gICAgICAgICAgICBidXR0b25SZWN0LmluZmxhdGVZKC1m
b2N1c1BhZGRpbmcgLSBmb2N1c1BhZGRpbmcpOworICAgICAgICAgICAgR3RrQm9yZGVyIGJvcmRl
cldpZHRoOworICAgICAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JvcmRlcihjb250ZXh0
LCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncyksICZib3JkZXJXaWR0aCk7CisKKyAg
ICAgICAgICAgIGJ1dHRvblJlY3QubW92ZShib3JkZXJXaWR0aC5sZWZ0ICsgZm9jdXNQYWQsIGJv
cmRlcldpZHRoLnRvcCArIGZvY3VzUGFkKTsKKyAgICAgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lk
dGgoYnV0dG9uUmVjdC53aWR0aCgpIC0gKDIgKiBmb2N1c1BhZCArIGJvcmRlcldpZHRoLmxlZnQg
KyBib3JkZXJXaWR0aC5yaWdodCkpOworICAgICAgICAgICAgYnV0dG9uUmVjdC5zZXRIZWlnaHQo
YnV0dG9uUmVjdC5oZWlnaHQoKSAtICgyICogZm9jdXNQYWQgKyBib3JkZXJXaWR0aC50b3AgKyBi
b3JkZXJXaWR0aC5ib3R0b20pKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidXR0b25S
ZWN0LmluZmxhdGUoZm9jdXNXaWR0aCArIGZvY3VzUGFkKTsKKworICAgICAgICBpZiAoZGlzcGxh
Y2VGb2N1cyAmJiBpc1ByZXNzZWQocmVuZGVyT2JqZWN0KSkgeworICAgICAgICAgICAgZ2ludCBj
aGlsZERpc3BsYWNlbWVudFg7CisgICAgICAgICAgICBnaW50IGNoaWxkRGlzcGxhY2VtZW50WTsK
KyAgICAgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZC1kaXNwbGFjZW1lbnQteCIs
ICZjaGlsZERpc3BsYWNlbWVudFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNoaWxkLWRpc3BsYWNlbWVudC15IiwgJmNoaWxkRGlzcGxhY2VtZW50WSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAgICAgIGJ1dHRv
blJlY3QubW92ZShjaGlsZERpc3BsYWNlbWVudFgsIGNoaWxkRGlzcGxhY2VtZW50WSk7CiAgICAg
ICAgIH0KKworICAgICAgICBndGtfcmVuZGVyX2ZvY3VzKGNvbnRleHQsIHBhaW50SW5mby5jb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgYnV0dG9uUmVjdC54KCksIGJ1dHRvblJlY3QueSgpLCBi
dXR0b25SZWN0LndpZHRoKCksIGJ1dHRvblJlY3QuaGVpZ2h0KCkpOwogICAgIH0KIAotICAgIFdp
ZGdldFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChpbmZvLmNvbnRleHQsIHJlY3QpOwot
ICAgIEd0a1NoYWRvd1R5cGUgc2hhZG93VHlwZSA9IHN0YXRlID09IEdUS19TVEFURV9BQ1RJVkUg
PyBHVEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQ7Ci0gICAgd2lkZ2V0Q29udGV4dC5ndGtQ
YWludEJveChidXR0b25SZWN0LCB3aWRnZXQsIHN0YXRlLCBzaGFkb3dUeXBlLCAiYnV0dG9uIik7
Ci0gICAgaWYgKGlzRm9jdXNlZChvYmplY3QpKQotICAgICAgICB3aWRnZXRDb250ZXh0Lmd0a1Bh
aW50Rm9jdXMoZm9jdXNSZWN0LCB3aWRnZXQsIHN0YXRlLCAiYnV0dG9uIik7CisgICAgZ3RrX3N0
eWxlX2NvbnRleHRfcmVzdG9yZShjb250ZXh0KTsKIAotICAgIGdfb2JqZWN0X3NldCh3aWRnZXQs
ICJoYXMtZm9jdXMiLCBGQUxTRSwgTlVMTCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77988</attachid>
            <date>2011-01-05 04:43:20 -0800</date>
            <delta_ts>2011-01-07 06:30:38 -0800</delta_ts>
            <desc>Update patch to current git master and fix some minor issues</desc>
            <filename>style-context-buttons2.diff</filename>
            <type>text/plain</type>
            <size>6660</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDI3M2Q2Mi4uNWRmOWIzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxMS0wMS0wNSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUG9ydCBidXR0b25zIHBhaW50aW5nIHRvIEd0
a1N0eWxlQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE4MTIKKworICAgICAgICBVc2UgR3RrU3R5bGVDb250ZXh0IEFQSSB0byBwYWludCBi
dXR0b25zIHdoZW4gYnVpbGRpbmcgd2l0aCBHVEsrCisgICAgICAgIDMueC4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVHdGs6OnBhaW50QnV0dG9uKToKKworMjAxMS0wMS0wNSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFydGluIFJvYmluc29uLgogCiAgICAgICAgIFtHVEtdIFVzZSBHdGtTdHlsZUNvbnRleHQgdG8g
Z2V0IHBsYXRmb3JtIGNvbG9ycwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHdGszLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5j
cHAKaW5kZXggYTM3YWJjNy4uZjI5NDUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHdGszLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJU
aGVtZUd0azMuY3BwCkBAIC0xODAsNDggKzE4MCw4NSBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpw
YWludFJhZGlvKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIGluZm8sIGNv
bgogICAgIHJldHVybiBwYWludFJlbmRlck9iamVjdChNT1pfR1RLX1JBRElPQlVUVE9OLCBvYmpl
Y3QsIGluZm8uY29udGV4dCwgcmVjdCwgaXNDaGVja2VkKG9iamVjdCkpOwogfQogCi1ib29sIFJl
bmRlclRoZW1lR3RrOjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIGlmIChpbmZvLmNvbnRleHQt
PnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEd0a1N0eWxl
Q29udGV4dCogY29udGV4dCA9IGdldFN0eWxlQ29udGV4dChHVEtfVFlQRV9CVVRUT04pOworICAg
IGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dCk7CiAKLSAgICBHdGtXaWRnZXQqIHdpZGdl
dCA9IGd0a0J1dHRvbigpOwotICAgIEludFJlY3QgYnV0dG9uUmVjdChJbnRQb2ludCgpLCByZWN0
LnNpemUoKSk7Ci0gICAgSW50UmVjdCBmb2N1c1JlY3QoYnV0dG9uUmVjdCk7CisgICAgZ3RrX3N0
eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0LCBzdGF0aWNfY2FzdDxHdGtUZXh0RGly
ZWN0aW9uPihndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkpKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlM
RV9DTEFTU19CVVRUT04pOwogCi0gICAgR3RrU3RhdGVUeXBlIHN0YXRlID0gZ2V0R3RrU3RhdGVU
eXBlKG9iamVjdCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfc3RhdGUod2lkZ2V0LCBzdGF0ZSk7Ci0g
ICAgZ3RrX3dpZGdldF9zZXRfZGlyZWN0aW9uKHdpZGdldCwgZ3RrVGV4dERpcmVjdGlvbihvYmpl
Y3QtPnN0eWxlKCktPmRpcmVjdGlvbigpKSk7CisgICAgZ2Jvb2xlYW4gaW50ZXJpb3JGb2N1czsK
KyAgICBnaW50IGZvY3VzV2lkdGgsIGZvY3VzUGFkOworICAgIGd0a19zdHlsZV9jb250ZXh0X2dl
dF9zdHlsZShjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMt
bGluZS13aWR0aCIsICZmb2N1c1dpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZm9jdXMtcGFkZGluZyIsICZmb2N1c1BhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImludGVyaW9yLWZvY3VzIiwgJmludGVyaW9yRm9jdXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDApOworCisgICAgSW50UmVjdCBidXR0b25SZWN0ID0gcmVjdDsKKwor
ICAgIGlmIChpc0RlZmF1bHQocmVuZGVyT2JqZWN0KSkgeworICAgICAgICBHdGtCb3JkZXIqIGJv
cmRlclB0ciA9IDA7CisgICAgICAgIEd0a0JvcmRlciBib3JkZXIgPSB7IDEsIDEsIDEsIDEgfTsK
KworICAgICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoY29udGV4dCwgImRlZmF1bHQt
Ym9yZGVyIiwgJmJvcmRlclB0ciwgMCk7CisgICAgICAgIGlmIChib3JkZXJQdHIpIHsKKyAgICAg
ICAgICAgIGJvcmRlciA9ICpib3JkZXJQdHI7CisgICAgICAgICAgICBndGtfYm9yZGVyX2ZyZWUo
Ym9yZGVyUHRyKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1dHRvblJlY3QubW92ZShib3JkZXIu
bGVmdCwgYm9yZGVyLnRvcCk7CisgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0dG9uUmVj
dC53aWR0aCgpIC0gKGJvcmRlci5sZWZ0ICsgYm9yZGVyLnJpZ2h0KSk7CisgICAgICAgIGJ1dHRv
blJlY3Quc2V0SGVpZ2h0KGJ1dHRvblJlY3QuaGVpZ2h0KCkgLSAoYm9yZGVyLnRvcCArIGJvcmRl
ci5ib3R0b20pKTsKKworICAgICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4
dCwgR1RLX1NUWUxFX0NMQVNTX0RFRkFVTFQpOworICAgIH0KKworICAgIGlmICghaW50ZXJpb3JG
b2N1cyAmJiBpc0ZvY3VzZWQocmVuZGVyT2JqZWN0KSkKKyAgICAgICAgYnV0dG9uUmVjdC5pbmZs
YXRlKC0oZm9jdXNXaWR0aCArIGZvY3VzUGFkKSk7CisKKyAgICBndWludCBmbGFncyA9IDA7Cisg
ICAgaWYgKCFpc0VuYWJsZWQocmVuZGVyT2JqZWN0KSB8fCBpc1JlYWRPbmx5Q29udHJvbChyZW5k
ZXJPYmplY3QpKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19JTlNFTlNJVElWRTsK
KyAgICBlbHNlIGlmIChpc0hvdmVyZWQocmVuZGVyT2JqZWN0KSkKKyAgICAgICAgZmxhZ3MgfD0g
R1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgaWYgKGlzUHJlc3NlZChyZW5kZXJPYmplY3Qp
KQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19BQ1RJVkU7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfc2V0X3N0YXRlKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZs
YWdzKSk7CisKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoY29udGV4dCwgcGFpbnRJbmZvLmNv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBidXR0b25SZWN0LngoKSwgYnV0dG9uUmVjdC55KCks
IGJ1dHRvblJlY3Qud2lkdGgoKSwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3JlbmRl
cl9mcmFtZShjb250ZXh0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIGJ1
dHRvblJlY3QueCgpLCBidXR0b25SZWN0LnkoKSwgYnV0dG9uUmVjdC53aWR0aCgpLCBidXR0b25S
ZWN0LmhlaWdodCgpKTsKKworICAgIGlmIChpc0ZvY3VzZWQocmVuZGVyT2JqZWN0KSkgeworICAg
ICAgICBnYm9vbGVhbiBkaXNwbGFjZUZvY3VzOworICAgICAgICBndGtfc3R5bGVfY29udGV4dF9n
ZXRfc3R5bGUoY29udGV4dCwgImRpc3BsYWNlLWZvY3VzIiwgJmRpc3BsYWNlRm9jdXMsIDApOwog
Ci0gICAgaWYgKGlzRm9jdXNlZChvYmplY3QpKSB7Ci0gICAgICAgIGlmIChpc0VuYWJsZWQob2Jq
ZWN0KSkKLSAgICAgICAgICAgIGdfb2JqZWN0X3NldCh3aWRnZXQsICJoYXMtZm9jdXMiLCBUUlVF
LCBOVUxMKTsKLQotICAgICAgICBnYm9vbGVhbiBpbnRlcmlvckZvY3VzID0gMCwgZm9jdXNXaWR0
aCA9IDAsIGZvY3VzUGFkZGluZyA9IDA7Ci0gICAgICAgIGd0a193aWRnZXRfc3R5bGVfZ2V0KHdp
ZGdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVyaW9yLWZvY3VzIiwgJmlu
dGVyaW9yRm9jdXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2N1cy1saW5lLXdp
ZHRoIiwgJmZvY3VzV2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2N1cy1w
YWRkaW5nIiwgJmZvY3VzUGFkZGluZywgTlVMTCk7Ci0gICAgICAgIC8vIElmIHdlIGFyZSB1c2lu
ZyBleHRlcmlvciBmb2N1cywgd2Ugc2hyaW5rIHRoZSBidXR0b24gcmVjdCBkb3duIGJlZm9yZQot
ICAgICAgICAvLyBkcmF3aW5nLiBJZiB3ZSBhcmUgdXNpbmcgaW50ZXJpb3IgZm9jdXMgd2Ugc2hy
aW5rIHRoZSBmb2N1cyByZWN0LiBUaGlzCi0gICAgICAgIC8vIGFwcHJvYWNoIG9yaWdpbmF0ZXMg
ZnJvbSB0aGUgTW96aWxsYSB0aGVtZSBkcmF3aW5nIGNvZGUgKGd0azJkcmF3aW5nLmMpLgogICAg
ICAgICBpZiAoaW50ZXJpb3JGb2N1cykgewotICAgICAgICAgICAgR3RrU3R5bGUqIHN0eWxlID0g
Z3RrX3dpZGdldF9nZXRfc3R5bGUod2lkZ2V0KTsKLSAgICAgICAgICAgIGZvY3VzUmVjdC5pbmZs
YXRlWCgtc3R5bGUtPnh0aGlja25lc3MgLSBmb2N1c1BhZGRpbmcpOwotICAgICAgICAgICAgZm9j
dXNSZWN0LmluZmxhdGVZKC1zdHlsZS0+eXRoaWNrbmVzcyAtIGZvY3VzUGFkZGluZyk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBidXR0b25SZWN0LmluZmxhdGVYKC1mb2N1c1dpZHRo
IC0gZm9jdXNQYWRkaW5nKTsKLSAgICAgICAgICAgIGJ1dHRvblJlY3QuaW5mbGF0ZVkoLWZvY3Vz
UGFkZGluZyAtIGZvY3VzUGFkZGluZyk7CisgICAgICAgICAgICBHdGtCb3JkZXIgYm9yZGVyV2lk
dGg7CisgICAgICAgICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfYm9yZGVyKGNvbnRleHQsIHN0
YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSwgJmJvcmRlcldpZHRoKTsKKworICAgICAg
ICAgICAgYnV0dG9uUmVjdC5tb3ZlKGJvcmRlcldpZHRoLmxlZnQgKyBmb2N1c1BhZCwgYm9yZGVy
V2lkdGgudG9wICsgZm9jdXNQYWQpOworICAgICAgICAgICAgYnV0dG9uUmVjdC5zZXRXaWR0aChi
dXR0b25SZWN0LndpZHRoKCkgLSAoMiAqIGZvY3VzUGFkICsgYm9yZGVyV2lkdGgubGVmdCArIGJv
cmRlcldpZHRoLnJpZ2h0KSk7CisgICAgICAgICAgICBidXR0b25SZWN0LnNldEhlaWdodChidXR0
b25SZWN0LmhlaWdodCgpIC0gKDIgKiBmb2N1c1BhZCArIGJvcmRlcldpZHRoLnRvcCArIGJvcmRl
cldpZHRoLmJvdHRvbSkpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJ1dHRvblJlY3Qu
aW5mbGF0ZShmb2N1c1dpZHRoICsgZm9jdXNQYWQpOworCisgICAgICAgIGlmIChkaXNwbGFjZUZv
Y3VzICYmIGlzUHJlc3NlZChyZW5kZXJPYmplY3QpKSB7CisgICAgICAgICAgICBnaW50IGNoaWxk
RGlzcGxhY2VtZW50WDsKKyAgICAgICAgICAgIGdpbnQgY2hpbGREaXNwbGFjZW1lbnRZOworICAg
ICAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoaWxkLWRpc3BsYWNlbWVudC14IiwgJmNo
aWxkRGlzcGxhY2VtZW50WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY2hpbGQtZGlzcGxhY2VtZW50LXkiLCAmY2hpbGREaXNwbGFjZW1lbnRZLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworICAgICAgICAgICAgYnV0dG9uUmVj
dC5tb3ZlKGNoaWxkRGlzcGxhY2VtZW50WCwgY2hpbGREaXNwbGFjZW1lbnRZKTsKICAgICAgICAg
fQorCisgICAgICAgIGd0a19yZW5kZXJfZm9jdXMoY29udGV4dCwgcGFpbnRJbmZvLmNvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLCBidXR0b25SZWN0LngoKSwgYnV0dG9uUmVjdC55KCksIGJ1dHRv
blJlY3Qud2lkdGgoKSwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7CiAgICAgfQogCi0gICAgV2lkZ2V0
UmVuZGVyaW5nQ29udGV4dCB3aWRnZXRDb250ZXh0KGluZm8uY29udGV4dCwgcmVjdCk7Ci0gICAg
R3RrU2hhZG93VHlwZSBzaGFkb3dUeXBlID0gc3RhdGUgPT0gR1RLX1NUQVRFX0FDVElWRSA/IEdU
S19TSEFET1dfSU4gOiBHVEtfU0hBRE9XX09VVDsKLSAgICB3aWRnZXRDb250ZXh0Lmd0a1BhaW50
Qm94KGJ1dHRvblJlY3QsIHdpZGdldCwgc3RhdGUsIHNoYWRvd1R5cGUsICJidXR0b24iKTsKLSAg
ICBpZiAoaXNGb2N1c2VkKG9iamVjdCkpCi0gICAgICAgIHdpZGdldENvbnRleHQuZ3RrUGFpbnRG
b2N1cyhmb2N1c1JlY3QsIHdpZGdldCwgc3RhdGUsICJidXR0b24iKTsKKyAgICBndGtfc3R5bGVf
Y29udGV4dF9yZXN0b3JlKGNvbnRleHQpOwogCi0gICAgZ19vYmplY3Rfc2V0KHdpZGdldCwgImhh
cy1mb2N1cyIsIEZBTFNFLCBOVUxMKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
</data>
<flag name="review"
          id="69231"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78227</attachid>
            <date>2011-01-07 06:30:38 -0800</date>
            <delta_ts>2011-01-07 10:59:51 -0800</delta_ts>
            <desc>Updated patch using adjustRepaintRect()</desc>
            <filename>style-context-buttons3.diff</filename>
            <type>text/plain</type>
            <size>8371</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmQ5ZmM3Yi4uM2ExZjFmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMS0wNyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUG9ydCBidXR0b25zIHBhaW50aW5nIHRvIEd0
a1N0eWxlQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTE4MTIKKworICAgICAgICBVc2UgR3RrU3R5bGVDb250ZXh0IEFQSSB0byBwYWludCBi
dXR0b25zIHdoZW4gYnVpbGRpbmcgd2l0aCBHVEsrCisgICAgICAgIDMueC4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIFRoaXMgc2hvdWxkIG5vdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWRqdXN0UmVjdEZvckZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3Rr
OjphZGp1c3RSZXBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6
cGFpbnRCdXR0b24pOgorCiAyMDExLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4gYW5kIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9S
ZW5kZXJUaGVtZUd0azMuY3BwCmluZGV4IGNmNTQ4YTguLjZlMTAyODQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcApAQCAtMTAxLDIyICsxMDEsMzggQEAgdm9pZCBS
ZW5kZXJUaGVtZUd0azo6aW5pdE1lZGlhQ29sb3JzKCkKICAgICBtX3NsaWRlclRodW1iQ29sb3Ig
PSBzdHlsZS0+YmdbR1RLX1NUQVRFX1NFTEVDVEVEXTsKIH0KIAorc3RhdGljIHZvaWQgYWRqdXN0
UmVjdEZvckZvY3VzKEd0a1N0eWxlQ29udGV4dCogY29udGV4dCwgSW50UmVjdCYgcmVjdCkKK3sK
KyAgICBnaW50IGZvY3VzV2lkdGgsIGZvY3VzUGFkOworICAgIGd0a19zdHlsZV9jb250ZXh0X2dl
dF9zdHlsZShjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMt
bGluZS13aWR0aCIsICZmb2N1c1dpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZm9jdXMtcGFkZGluZyIsICZmb2N1c1BhZCwgTlVMTCk7CisgICAgcmVjdC5pbmZsYXRlKGZv
Y3VzV2lkdGggKyBmb2N1c1BhZCk7Cit9CisKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFJl
cGFpbnRSZWN0KGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0LCBJbnRSZWN0JiByZWN0
KQogeworICAgIEd0a1N0eWxlQ29udGV4dCogY29udGV4dDsKICAgICBDb250cm9sUGFydCBwYXJ0
ID0gcmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5hcHBlYXJhbmNlKCk7CiAgICAgc3dpdGNoIChwYXJ0
KSB7CiAgICAgY2FzZSBTbGlkZXJWZXJ0aWNhbFBhcnQ6Ci0gICAgY2FzZSBTbGlkZXJIb3Jpem9u
dGFsUGFydDogewotICAgICAgICBHdGtTdHlsZUNvbnRleHQqIGNvbnRleHQgPSBnZXRTdHlsZUNv
bnRleHQocGFydCA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0ID8gIEdUS19UWVBFX0hTQ0FM
RSA6IEdUS19UWVBFX1ZTQ0FMRSk7Ci0gICAgICAgIGdpbnQgZm9jdXNXaWR0aCwgZm9jdXNQYWQ7
Ci0gICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvY3VzLWxpbmUtd2lkdGgiLCAmZm9jdXNXaWR0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2N1cy1wYWRkaW5nIiwg
JmZvY3VzUGFkLCBOVUxMKTsKLSAgICAgICAgcmVjdC5pbmZsYXRlKGZvY3VzV2lkdGggKyBmb2N1
c1BhZCk7Ci0gICAgfQotICAgIGRlZmF1bHQ6CisgICAgY2FzZSBTbGlkZXJIb3Jpem9udGFsUGFy
dDoKKyAgICAgICAgY29udGV4dCA9IGdldFN0eWxlQ29udGV4dChwYXJ0ID09IFNsaWRlclRodW1i
SG9yaXpvbnRhbFBhcnQgPyAgR1RLX1RZUEVfSFNDQUxFIDogR1RLX1RZUEVfVlNDQUxFKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCdXR0b25QYXJ0OgorICAgICAgICBjb250ZXh0ID0gZ2V0
U3R5bGVDb250ZXh0KEdUS19UWVBFX0JVVFRPTik7CisKKyAgICAgICAgZ2Jvb2xlYW4gaW50ZXJp
b3JGb2N1czsKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQsICJp
bnRlcmlvci1mb2N1cyIsICZpbnRlcmlvckZvY3VzLCBOVUxMKTsKKyAgICAgICAgaWYgKGludGVy
aW9yRm9jdXMpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGFkanVzdFJlY3RGb3JGb2N1cyhj
b250ZXh0LCByZWN0KTsKIH0KIAogR3RrU3RhdGVUeXBlIFJlbmRlclRoZW1lR3RrOjpnZXRHdGtT
dGF0ZVR5cGUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCkBAIC0xOTgsNDggKzIxNCw4MiBAQCBib29s
IFJlbmRlclRoZW1lR3RrOjpwYWludFJhZGlvKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIGluZm8sIGNvbgogICAgIHJldHVybiBwYWludFJlbmRlck9iamVjdChNT1pfR1RL
X1JBRElPQlVUVE9OLCBvYmplY3QsIGluZm8uY29udGV4dCwgcmVjdCwgaXNDaGVja2VkKG9iamVj
dCkpOwogfQogCi1ib29sIFJlbmRlclRoZW1lR3RrOjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQorYm9v
bCBSZW5kZXJUaGVtZUd0azo6cGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3Qs
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IGlmIChpbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIEd0a1N0eWxlQ29udGV4dCogY29udGV4dCA9IGdldFN0eWxlQ29udGV4dChHVEtf
VFlQRV9CVVRUT04pOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dCk7CisKKyAg
ICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0
a1RleHREaXJlY3Rpb24+KGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LT5zdHlsZSgpLT5k
aXJlY3Rpb24oKSkpKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dCwg
R1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisKKyAgICBnYm9vbGVhbiBpbnRlcmlvckZvY3VzOwor
ICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LCAiaW50ZXJpb3ItZm9jdXMi
LCAmaW50ZXJpb3JGb2N1cywgTlVMTCk7CisKKyAgICBJbnRSZWN0IGJ1dHRvblJlY3QocmVjdCk7
CisKKyAgICBpZiAoaXNEZWZhdWx0KHJlbmRlck9iamVjdCkpIHsKKyAgICAgICAgR3RrQm9yZGVy
KiBib3JkZXJQdHIgPSAwOworICAgICAgICBHdGtCb3JkZXIgYm9yZGVyID0geyAxLCAxLCAxLCAx
IH07CisKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQsICJkZWZh
dWx0LWJvcmRlciIsICZib3JkZXJQdHIsIE5VTEwpOworICAgICAgICBpZiAoYm9yZGVyUHRyKSB7
CisgICAgICAgICAgICBib3JkZXIgPSAqYm9yZGVyUHRyOworICAgICAgICAgICAgZ3RrX2JvcmRl
cl9mcmVlKGJvcmRlclB0cik7CisgICAgICAgIH0KKworICAgICAgICBidXR0b25SZWN0Lm1vdmUo
Ym9yZGVyLmxlZnQsIGJvcmRlci50b3ApOworICAgICAgICBidXR0b25SZWN0LnNldFdpZHRoKGJ1
dHRvblJlY3Qud2lkdGgoKSAtIChib3JkZXIubGVmdCArIGJvcmRlci5yaWdodCkpOworICAgICAg
ICBidXR0b25SZWN0LnNldEhlaWdodChidXR0b25SZWN0LmhlaWdodCgpIC0gKGJvcmRlci50b3Ag
KyBib3JkZXIuYm90dG9tKSk7CisKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNz
KGNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19ERUZBVUxUKTsKKyAgICB9CisKKyAgICBndWludCBm
bGFncyA9IDA7CisgICAgaWYgKCFpc0VuYWJsZWQocmVuZGVyT2JqZWN0KSB8fCBpc1JlYWRPbmx5
Q29udHJvbChyZW5kZXJPYmplY3QpKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19J
TlNFTlNJVElWRTsKKyAgICBlbHNlIGlmIChpc0hvdmVyZWQocmVuZGVyT2JqZWN0KSkKKyAgICAg
ICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CisgICAgaWYgKGlzUHJlc3NlZChy
ZW5kZXJPYmplY3QpKQorICAgICAgICBmbGFncyB8PSBHVEtfU1RBVEVfRkxBR19BQ1RJVkU7Cisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRlKGNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0
YXRlRmxhZ3M+KGZsYWdzKSk7CisKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoY29udGV4dCwg
cGFpbnRJbmZvLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBidXR0b25SZWN0LngoKSwgYnV0
dG9uUmVjdC55KCksIGJ1dHRvblJlY3Qud2lkdGgoKSwgYnV0dG9uUmVjdC5oZWlnaHQoKSk7Cisg
ICAgZ3RrX3JlbmRlcl9mcmFtZShjb250ZXh0LCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCksIGJ1dHRvblJlY3QueCgpLCBidXR0b25SZWN0LnkoKSwgYnV0dG9uUmVjdC53aWR0
aCgpLCBidXR0b25SZWN0LmhlaWdodCgpKTsKKworICAgIGlmIChpc0ZvY3VzZWQocmVuZGVyT2Jq
ZWN0KSkgeworICAgICAgICBnaW50IGZvY3VzV2lkdGgsIGZvY3VzUGFkOworICAgICAgICBnYm9v
bGVhbiBkaXNwbGFjZUZvY3VzOworICAgICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUo
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2N1cy1saW5l
LXdpZHRoIiwgJmZvY3VzV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZm9jdXMtcGFkZGluZyIsICZmb2N1c1BhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkaXNwbGFjZS1mb2N1cyIsICZkaXNwbGFjZUZvY3VzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKLSAgICBHdGtXaWRnZXQqIHdpZGdldCA9
IGd0a0J1dHRvbigpOwotICAgIEludFJlY3QgYnV0dG9uUmVjdChJbnRQb2ludCgpLCByZWN0LnNp
emUoKSk7Ci0gICAgSW50UmVjdCBmb2N1c1JlY3QoYnV0dG9uUmVjdCk7Ci0KLSAgICBHdGtTdGF0
ZVR5cGUgc3RhdGUgPSBnZXRHdGtTdGF0ZVR5cGUob2JqZWN0KTsKLSAgICBndGtfd2lkZ2V0X3Nl
dF9zdGF0ZSh3aWRnZXQsIHN0YXRlKTsKLSAgICBndGtfd2lkZ2V0X3NldF9kaXJlY3Rpb24od2lk
Z2V0LCBndGtUZXh0RGlyZWN0aW9uKG9iamVjdC0+c3R5bGUoKS0+ZGlyZWN0aW9uKCkpKTsKLQot
ICAgIGlmIChpc0ZvY3VzZWQob2JqZWN0KSkgewotICAgICAgICBpZiAoaXNFbmFibGVkKG9iamVj
dCkpCi0gICAgICAgICAgICBnX29iamVjdF9zZXQod2lkZ2V0LCAiaGFzLWZvY3VzIiwgVFJVRSwg
TlVMTCk7Ci0KLSAgICAgICAgZ2Jvb2xlYW4gaW50ZXJpb3JGb2N1cyA9IDAsIGZvY3VzV2lkdGgg
PSAwLCBmb2N1c1BhZGRpbmcgPSAwOwotICAgICAgICBndGtfd2lkZ2V0X3N0eWxlX2dldCh3aWRn
ZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmlvci1mb2N1cyIsICZpbnRl
cmlvckZvY3VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMtbGluZS13aWR0
aCIsICZmb2N1c1dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9jdXMtcGFk
ZGluZyIsICZmb2N1c1BhZGRpbmcsIE5VTEwpOwotICAgICAgICAvLyBJZiB3ZSBhcmUgdXNpbmcg
ZXh0ZXJpb3IgZm9jdXMsIHdlIHNocmluayB0aGUgYnV0dG9uIHJlY3QgZG93biBiZWZvcmUKLSAg
ICAgICAgLy8gZHJhd2luZy4gSWYgd2UgYXJlIHVzaW5nIGludGVyaW9yIGZvY3VzIHdlIHNocmlu
ayB0aGUgZm9jdXMgcmVjdC4gVGhpcwotICAgICAgICAvLyBhcHByb2FjaCBvcmlnaW5hdGVzIGZy
b20gdGhlIE1vemlsbGEgdGhlbWUgZHJhd2luZyBjb2RlIChndGsyZHJhd2luZy5jKS4KICAgICAg
ICAgaWYgKGludGVyaW9yRm9jdXMpIHsKLSAgICAgICAgICAgIEd0a1N0eWxlKiBzdHlsZSA9IGd0
a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCk7Ci0gICAgICAgICAgICBmb2N1c1JlY3QuaW5mbGF0
ZVgoLXN0eWxlLT54dGhpY2tuZXNzIC0gZm9jdXNQYWRkaW5nKTsKLSAgICAgICAgICAgIGZvY3Vz
UmVjdC5pbmZsYXRlWSgtc3R5bGUtPnl0aGlja25lc3MgLSBmb2N1c1BhZGRpbmcpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYnV0dG9uUmVjdC5pbmZsYXRlWCgtZm9jdXNXaWR0aCAt
IGZvY3VzUGFkZGluZyk7Ci0gICAgICAgICAgICBidXR0b25SZWN0LmluZmxhdGVZKC1mb2N1c1Bh
ZGRpbmcgLSBmb2N1c1BhZGRpbmcpOworICAgICAgICAgICAgR3RrQm9yZGVyIGJvcmRlcldpZHRo
OworICAgICAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JvcmRlcihjb250ZXh0LCBzdGF0
aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncyksICZib3JkZXJXaWR0aCk7CisKKyAgICAgICAg
ICAgIGJ1dHRvblJlY3QubW92ZShib3JkZXJXaWR0aC5sZWZ0ICsgZm9jdXNQYWQsIGJvcmRlcldp
ZHRoLnRvcCArIGZvY3VzUGFkKTsKKyAgICAgICAgICAgIGJ1dHRvblJlY3Quc2V0V2lkdGgoYnV0
dG9uUmVjdC53aWR0aCgpIC0gKDIgKiBmb2N1c1BhZCArIGJvcmRlcldpZHRoLmxlZnQgKyBib3Jk
ZXJXaWR0aC5yaWdodCkpOworICAgICAgICAgICAgYnV0dG9uUmVjdC5zZXRIZWlnaHQoYnV0dG9u
UmVjdC5oZWlnaHQoKSAtICgyICogZm9jdXNQYWQgKyBib3JkZXJXaWR0aC50b3AgKyBib3JkZXJX
aWR0aC5ib3R0b20pKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidXR0b25SZWN0Lmlu
ZmxhdGUoZm9jdXNXaWR0aCArIGZvY3VzUGFkKTsKKworICAgICAgICBpZiAoZGlzcGxhY2VGb2N1
cyAmJiBpc1ByZXNzZWQocmVuZGVyT2JqZWN0KSkgeworICAgICAgICAgICAgZ2ludCBjaGlsZERp
c3BsYWNlbWVudFg7CisgICAgICAgICAgICBnaW50IGNoaWxkRGlzcGxhY2VtZW50WTsKKyAgICAg
ICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZC1kaXNwbGFjZW1lbnQteCIsICZjaGls
ZERpc3BsYWNlbWVudFgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNoaWxkLWRpc3BsYWNlbWVudC15IiwgJmNoaWxkRGlzcGxhY2VtZW50WSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIGJ1dHRvblJl
Y3QubW92ZShjaGlsZERpc3BsYWNlbWVudFgsIGNoaWxkRGlzcGxhY2VtZW50WSk7CiAgICAgICAg
IH0KKworICAgICAgICBndGtfcmVuZGVyX2ZvY3VzKGNvbnRleHQsIHBhaW50SW5mby5jb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgYnV0dG9uUmVjdC54KCksIGJ1dHRvblJlY3QueSgpLCBidXR0
b25SZWN0LndpZHRoKCksIGJ1dHRvblJlY3QuaGVpZ2h0KCkpOwogICAgIH0KIAotICAgIFdpZGdl
dFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChpbmZvLmNvbnRleHQsIHJlY3QpOwotICAg
IEd0a1NoYWRvd1R5cGUgc2hhZG93VHlwZSA9IHN0YXRlID09IEdUS19TVEFURV9BQ1RJVkUgPyBH
VEtfU0hBRE9XX0lOIDogR1RLX1NIQURPV19PVVQ7Ci0gICAgd2lkZ2V0Q29udGV4dC5ndGtQYWlu
dEJveChidXR0b25SZWN0LCB3aWRnZXQsIHN0YXRlLCBzaGFkb3dUeXBlLCAiYnV0dG9uIik7Ci0g
ICAgaWYgKGlzRm9jdXNlZChvYmplY3QpKQotICAgICAgICB3aWRnZXRDb250ZXh0Lmd0a1BhaW50
Rm9jdXMoZm9jdXNSZWN0LCB3aWRnZXQsIHN0YXRlLCAiYnV0dG9uIik7CisgICAgZ3RrX3N0eWxl
X2NvbnRleHRfcmVzdG9yZShjb250ZXh0KTsKIAotICAgIGdfb2JqZWN0X3NldCh3aWRnZXQsICJo
YXMtZm9jdXMiLCBGQUxTRSwgTlVMTCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>