<?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>124671</bug_id>
          
          <creation_ts>2013-11-20 10:53:29 -0800</creation_ts>
          <short_desc>[GTK] Cannot scroll in option menu when it larger than the screen</short_desc>
          <delta_ts>2013-11-26 06:32:24 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>csaavedra</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>952680</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-20 10:53:29 -0800</bug_when>
    <thetext>The problem is that the popup menu is not resized to fit in the screen, so it doesn&apos;t scroll and some of the items are offscreen so they can&apos;t be selected either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952687</commentid>
    <comment_count>1</comment_count>
      <attachid>217458</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-20 10:58:57 -0800</bug_when>
    <thetext>Created attachment 217458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952691</commentid>
    <comment_count>2</comment_count>
      <attachid>217458</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-11-20 11:05:07 -0800</bug_when>
    <thetext>Comment on attachment 217458
Patch

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

&gt; Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95
&gt; +        for (i = 0, child = children.get(); i &lt; itemCount; i++, child = g_list_next(child)) {

I think that if you declare i and child here they will be scoped properly. For instance:

for (int i = 0, GList* child = children.get();...

&gt; Source/WebCore/platform/gtk/GtkPopupMenu.cpp:114
&gt; +    guint button = event &amp;&amp; event-&gt;type == GDK_BUTTON_PRESS ? event-&gt;button.button : 1;
&gt; +    guint32 activateTime = event ? gdk_event_get_time(event) : GDK_CURRENT_TIME;

Nice cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952692</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-20 11:13:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 217458 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217458&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95
&gt; &gt; +        for (i = 0, child = children.get(); i &lt; itemCount; i++, child = g_list_next(child)) {
&gt; 
&gt; I think that if you declare i and child here they will be scoped properly. For instance:
&gt; 
&gt; for (int i = 0, GList* child = children.get();...

Yes, that would be really great, but it doesn&apos;t work :-(

&gt; &gt; Source/WebCore/platform/gtk/GtkPopupMenu.cpp:114
&gt; &gt; +    guint button = event &amp;&amp; event-&gt;type == GDK_BUTTON_PRESS ? event-&gt;button.button : 1;
&gt; &gt; +    guint32 activateTime = event ? gdk_event_get_time(event) : GDK_CURRENT_TIME;
&gt; 
&gt; Nice cleanup.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952697</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-20 11:17:28 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 217458 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217458&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95
&gt; &gt; &gt; +        for (i = 0, child = children.get(); i &lt; itemCount; i++, child = g_list_next(child)) {
&gt; &gt; 
&gt; &gt; I think that if you declare i and child here they will be scoped properly. For instance:
&gt; &gt; 
&gt; &gt; for (int i = 0, GList* child = children.get();...
&gt; 
&gt; Yes, that would be really great, but it doesn&apos;t work :-(

I&apos;ve tried again to be sure, and this is what I got:

  CXX      Source/WebCore/platform/gtk/libPlatformGtk_la-GtkPopupMenu.lo
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp: In member function &apos;void WebCore::GtkPopupMenu::popUp(const WebCore::IntSize&amp;, const WebCore::IntPoint&amp;, int, int, const GdkEvent*)&apos;:
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:30: error: expected initializer before &apos;*&apos; token
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:30: error: expected &apos;;&apos; before &apos;*&apos; token
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:32: error: &apos;child&apos; was not declared in this scope
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:58: warning: for increment expression has no effect [-Wunused-value]
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:69: error: expected &apos;)&apos; before &apos;;&apos; token
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:71: error: &apos;i&apos; was not declared in this scope
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:76: error: &apos;child&apos; was not declared in this scope
../../Source/WebCore/platform/gtk/GtkPopupMenu.cpp:95:131: error: expected &apos;;&apos; before &apos;)&apos; token</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952976</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-21 00:50:24 -0800</bug_when>
    <thetext>Committed r159615: &lt;http://trac.webkit.org/changeset/159615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954248</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-26 06:32:24 -0800</bug_when>
    <thetext>*** Bug 97106 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217458</attachid>
            <date>2013-11-20 10:58:57 -0800</date>
            <delta_ts>2013-11-20 11:26:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-popup-menu.diff</filename>
            <type>text/plain</type>
            <size>3949</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmM2M4MzI1Li4xNDA5YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTEtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIENhbm5vdCBzY3JvbGwgaW4gb3B0aW9uIG1lbnUgd2hlbiBpdCBs
YXJnZXIgdGhhbiB0aGUgc2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjQ2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBwb3B1cCBtZW51IGlzIG5vdCBy
ZXNpemVkIHRvIGZpdCBpbiB0aGUKKyAgICAgICAgc2NyZWVuLCBzbyBpdCBkb2Vzbid0IHNjcm9s
bCBhbmQgc29tZSBvZiB0aGUgaXRlbXMgYXJlIG9mZnNjcmVlbgorICAgICAgICBzbyB0aGV5IGNh
bid0IGJlIHNlbGVjdGVkIGVpdGhlci4gR1RLKyBhdXRvbWF0aWNhbGx5IHJlc2l6ZXMgdGhlCisg
ICAgICAgIHBvcHVwIG1lbnVzIHRvIGZpdCBpbiB0aGUgd29yayBhcmVhLCBidXQgb25seSB3aGVu
IHRoZSBtZW51IGlzCisgICAgICAgIGFscmVhZHkgcG9zaXRpb25lZC4KKworICAgICAgICAqIHBs
YXRmb3JtL2d0ay9HdGtQb3B1cE1lbnUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3RrUG9wdXBN
ZW51Ojpwb3BVcCk6IFNjaGVkdWxlIGEgcmVzaXplIG9mIHRoZSBwb3B1cAorICAgICAgICBtZW51
IHJpZ2h0IGFmdGVyIHNob3dpbmcgaXQgb25jZSBpdCBoYXMgYSBwb3NpdGlvbi4KKwogMjAxMy0x
MS0yMCAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVn
aW9uc10gTW92ZSByZWdpb24gc3R5bGluZyBjb2RlIGludG8gUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQb3B1cE1lbnUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BvcHVwTWVudS5jcHAKaW5kZXgg
NmY1N2ExNy4uNDU4YWY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1BvcHVwTWVudS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1Bv
cHVwTWVudS5jcHAKQEAgLTg2LDE3ICs4NiwxNyBAQCB2b2lkIEd0a1BvcHVwTWVudTo6cG9wVXAo
Y29uc3QgSW50U2l6ZSYgbWVudVNpemUsIGNvbnN0IEludFBvaW50JiBtZW51UG9zaXRpb24sCiAj
ZWxzZQogICAgIGd0a193aWRnZXRfZ2V0X3ByZWZlcnJlZF9zaXplKG1fcG9wdXAuZ2V0KCksICZy
ZXF1aXNpdGlvbiwgMCk7CiAjZW5kaWYKLQogICAgIGd0a193aWRnZXRfc2V0X3NpemVfcmVxdWVz
dChtX3BvcHVwLmdldCgpLCBzdGQ6Om1heChtZW51U2l6ZS53aWR0aCgpLCByZXF1aXNpdGlvbi53
aWR0aCksIC0xKTsKIAotICAgIEdMaXN0KiBjaGlsZHJlbiA9IGd0a19jb250YWluZXJfZ2V0X2No
aWxkcmVuKEdUS19DT05UQUlORVIobV9wb3B1cC5nZXQoKSkpOwotICAgIEdMaXN0KiBwID0gY2hp
bGRyZW47CiAgICAgaWYgKGl0ZW1Db3VudCkgewotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8
IGl0ZW1Db3VudDsgaSsrKSB7CisgICAgICAgIEdPd25QdHI8R0xpc3Q+IGNoaWxkcmVuKGd0a19j
b250YWluZXJfZ2V0X2NoaWxkcmVuKEdUS19DT05UQUlORVIobV9wb3B1cC5nZXQoKSkpKTsKKyAg
ICAgICAgaW50IGk7CisgICAgICAgIEdMaXN0KiBjaGlsZDsKKyAgICAgICAgZm9yIChpID0gMCwg
Y2hpbGQgPSBjaGlsZHJlbi5nZXQoKTsgaSA8IGl0ZW1Db3VudDsgaSsrLCBjaGlsZCA9IGdfbGlz
dF9uZXh0KGNoaWxkKSkgewogICAgICAgICAgICAgaWYgKGkgPiBzZWxlY3RlZEl0ZW0pCiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIEd0a1dpZGdldCogaXRlbSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8R3RrV2lkZ2V0Kj4ocC0+ZGF0YSk7CisgICAgICAgICAgICBHdGtXaWRnZXQq
IGl0ZW0gPSBHVEtfV0lER0VUKGNoaWxkLT5kYXRhKTsKICAgICAgICAgICAgIEd0a1JlcXVpc2l0
aW9uIGl0ZW1SZXF1aXNpdGlvbjsKICNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgICAgICAg
ICAgZ3RrX3dpZGdldF9nZXRfY2hpbGRfcmVxdWlzaXRpb24oaXRlbSwgJml0ZW1SZXF1aXNpdGlv
bik7CkBAIC0xMDQsMzEgKzEwNCwyMyBAQCB2b2lkIEd0a1BvcHVwTWVudTo6cG9wVXAoY29uc3Qg
SW50U2l6ZSYgbWVudVNpemUsIGNvbnN0IEludFBvaW50JiBtZW51UG9zaXRpb24sCiAgICAgICAg
ICAgICBndGtfd2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZShpdGVtLCAmaXRlbVJlcXVpc2l0aW9u
LCAwKTsKICNlbmRpZgogICAgICAgICAgICAgbV9tZW51UG9zaXRpb24uc2V0WShtX21lbnVQb3Np
dGlvbi55KCkgLSBpdGVtUmVxdWlzaXRpb24uaGVpZ2h0KTsKLQotICAgICAgICAgICAgcCA9IGdf
bGlzdF9uZXh0KHApOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ2VudGVy
IHZlcnRpY2FsbHkgdGhlIGVtcHR5IHBvcHVwIGluIHRoZSBjb21ibyBib3ggYXJlYS4KICAgICAg
ICAgbV9tZW51UG9zaXRpb24uc2V0WShtX21lbnVQb3NpdGlvbi55KCkgLSBtZW51U2l6ZS5oZWln
aHQoKSAvIDIpOwogICAgIH0KLSAgICBnX2xpc3RfZnJlZShjaGlsZHJlbik7Ci0KLSAgICBndWlu
dCBidXR0b247Ci0gICAgZ3VpbnQzMiBhY3RpdmF0ZVRpbWU7Ci0gICAgaWYgKGV2ZW50KSB7Ci0g
ICAgICAgIGJ1dHRvbiA9IGV2ZW50LT50eXBlID09IEdES19CVVRUT05fUFJFU1MgPyBldmVudC0+
YnV0dG9uLmJ1dHRvbiA6IDE7Ci0gICAgICAgIGFjdGl2YXRlVGltZSA9IGdka19ldmVudF9nZXRf
dGltZShldmVudCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYnV0dG9uID0gMTsKLSAgICAgICAg
YWN0aXZhdGVUaW1lID0gR0RLX0NVUlJFTlRfVElNRTsKLSAgICB9CiAKKyAgICBndWludCBidXR0
b24gPSBldmVudCAmJiBldmVudC0+dHlwZSA9PSBHREtfQlVUVE9OX1BSRVNTID8gZXZlbnQtPmJ1
dHRvbi5idXR0b24gOiAxOworICAgIGd1aW50MzIgYWN0aXZhdGVUaW1lID0gZXZlbnQgPyBnZGtf
ZXZlbnRfZ2V0X3RpbWUoZXZlbnQpIDogR0RLX0NVUlJFTlRfVElNRTsKICNpZmRlZiBHVEtfQVBJ
X1ZFUlNJT05fMgogICAgIGd0a19tZW51X3BvcHVwKEdUS19NRU5VKG1fcG9wdXAuZ2V0KCkpLCAw
LCAwLCByZWludGVycHJldF9jYXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQb3NpdGlvbkZ1
bmN0aW9uKSwgdGhpcywgYnV0dG9uLCBhY3RpdmF0ZVRpbWUpOwogI2Vsc2UKICAgICBndGtfbWVu
dV9wb3B1cF9mb3JfZGV2aWNlKEdUS19NRU5VKG1fcG9wdXAuZ2V0KCkpLCBldmVudCA/IGdka19l
dmVudF9nZXRfZGV2aWNlKGV2ZW50KSA6IDAsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQb3NpdGlv
bkZ1bmN0aW9uKSwgdGhpcywgMCwgYnV0dG9uLCBhY3RpdmF0ZVRpbWUpOworICAgICAgICByZWlu
dGVycHJldF9jYXN0PEd0a01lbnVQb3NpdGlvbkZ1bmM+KG1lbnVQb3NpdGlvbkZ1bmN0aW9uKSwg
dGhpcywgMCwgYnV0dG9uLCBhY3RpdmF0ZVRpbWUpOwogI2VuZGlmCisKKyAgICAvLyBOb3cgdGhh
dCB0aGUgbWVudSBoYXMgYSBwb3NpdGlvbiwgc2NoZWR1bGUgYSByZXNpemUgdG8gbWFrZSBzdXJl
IGl0J3MgcmVzaXplZCB0byBmaXQgdmVydGljYWxseSBpbiB0aGUgd29yayBhcmVhLgorICAgIGd0
a193aWRnZXRfcXVldWVfcmVzaXplKG1fcG9wdXAuZ2V0KCkpOwogfQogCiB2b2lkIEd0a1BvcHVw
TWVudTo6cG9wRG93bigpCg==
</data>
<flag name="review"
          id="240586"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>