<?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>49376</bug_id>
          
          <creation_ts>2010-11-11 04:32:13 -0800</creation_ts>
          <short_desc>[GTK] Show default context menu for the currently focused element when activated with keyboard</short_desc>
          <delta_ts>2010-11-16 09:31:52 -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>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307828</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-11 04:32:13 -0800</bug_when>
    <thetext>When context menu is activated with keyboard only selections are handled, when nothing is selected the default context menu is shown on top-left corner. If there&apos;s a focused element, like a link, the context menu for such element should be used and should be correctly positioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307831</commentid>
    <comment_count>1</comment_count>
      <attachid>73599</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-11 04:35:17 -0800</bug_when>
    <thetext>Created attachment 73599
Patch to show context menu for focused items when using the keyboard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307971</commentid>
    <comment_count>2</comment_count>
      <attachid>73599</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-11-11 09:48:06 -0800</bug_when>
    <thetext>Comment on attachment 73599
Patch to show context menu for focused items when using the keyboard

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

&gt; WebKit/gtk/webkit/webkitwebview.cpp:347
&gt; +        || (frame-&gt;selection()-&gt;selection().isCaret() &amp;&amp; !frame-&gt;selection()-&gt;selection().isContentEditable())) {
&gt; +        // If there&apos;s a focused elment, use its location.
&gt; +        bool locationSet = false;
&gt; +        Document* doc = frame-&gt;document();
&gt; +        if (doc) {

I think maybe we should break out this block out into a helper function...perhaps everyting from the start of this block to the FIXME. getActiveNodeLocation or something similar? This will simplify things by allowing early returns (you can do away with the locationSet variable). You can also simplify this further by doing something like:

if (Document* doc = frame-&gt;document()) {
    if (Node* focusedNode = doc-&gt;focusedNode()) {
        ...
    }
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308417</commentid>
    <comment_count>3</comment_count>
      <attachid>73707</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-11-12 00:01:23 -0800</bug_when>
    <thetext>Created attachment 73707
Updated patch

I&apos;ve added a method getFocusedNode() that just returns the currently focused node, because it&apos;s more generic and I&apos;ll be able to use it for bug #25525 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309771</commentid>
    <comment_count>4</comment_count>
      <attachid>73707</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 09:31:47 -0800</bug_when>
    <thetext>Comment on attachment 73707
Updated patch

Clearing flags on attachment: 73707

Committed r72109: &lt;http://trac.webkit.org/changeset/72109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309772</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-16 09:31:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73599</attachid>
            <date>2010-11-11 04:35:17 -0800</date>
            <delta_ts>2010-11-12 00:01:23 -0800</delta_ts>
            <desc>Patch to show context menu for focused items when using the keyboard</desc>
            <filename>default-context-menu-keyboard.diff</filename>
            <type>text/plain</type>
            <size>2113</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNmQ5YTY1Mi4uM2Y2YjA5YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0xMSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2hvdyBkZWZhdWx0IGNv
bnRleHQgbWVudSBmb3IgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgd2hlbiBhY3RpdmF0
ZWQgd2l0aCBrZXlib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDkzNzYKKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOgorCiAyMDEwLTExLTA4
ICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAppbmRleCA2NTMxZWUxLi5jYjk4YjI0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtMzQwLDkgKzM0MCwyMSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dl
Yl92aWV3X3BvcHVwX21lbnVfaGFuZGxlcihHdGtXaWRnZXQqIHdpZGdldCkKICAgICBJbnRQb2lu
dCBsb2NhdGlvbjsKIAogICAgIGlmICghc3RhcnQubm9kZSgpIHx8ICFlbmQubm9kZSgpCi0gICAg
ICAgIHx8IChmcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpLmlzQ2FyZXQoKSAmJiAhZnJh
bWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKS5pc0NvbnRlbnRFZGl0YWJsZSgpKSkKLSAgICAg
ICAgbG9jYXRpb24gPSBJbnRQb2ludChyaWdodEFsaWduZWQgPyB2aWV3LT5jb250ZW50c1dpZHRo
KCkgLSBjb250ZXh0TWVudU1hcmdpbiA6IGNvbnRleHRNZW51TWFyZ2luLCBjb250ZXh0TWVudU1h
cmdpbik7Ci0gICAgZWxzZSB7CisgICAgICAgIHx8IChmcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVj
dGlvbigpLmlzQ2FyZXQoKSAmJiAhZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24oKS5pc0Nv
bnRlbnRFZGl0YWJsZSgpKSkgeworICAgICAgICAvLyBJZiB0aGVyZSdzIGEgZm9jdXNlZCBlbG1l
bnQsIHVzZSBpdHMgbG9jYXRpb24uCisgICAgICAgIGJvb2wgbG9jYXRpb25TZXQgPSBmYWxzZTsK
KyAgICAgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgICAgICBpZiAo
ZG9jKSB7CisgICAgICAgICAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IGRvYy0+Zm9jdXNlZE5vZGUo
KTsKKyAgICAgICAgICAgIGlmIChmb2N1c2VkTm9kZSkgeworICAgICAgICAgICAgICAgIEludFJl
Y3QgZm9jdXNlZE5vZGVSZWN0ID0gZm9jdXNlZE5vZGUtPmdldFJlY3QoKTsKKyAgICAgICAgICAg
ICAgICBsb2NhdGlvbiA9IEludFBvaW50KHJpZ2h0QWxpZ25lZCA/IGZvY3VzZWROb2RlUmVjdC5y
aWdodCgpIDogZm9jdXNlZE5vZGVSZWN0LngoKSwgZm9jdXNlZE5vZGVSZWN0LmJvdHRvbSgpKTsK
KyAgICAgICAgICAgICAgICBsb2NhdGlvblNldCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKCFsb2NhdGlvblNldCkKKyAgICAgICAgICAgIGxvY2F0aW9uID0g
SW50UG9pbnQocmlnaHRBbGlnbmVkID8gdmlldy0+Y29udGVudHNXaWR0aCgpIC0gY29udGV4dE1l
bnVNYXJnaW4gOiBjb250ZXh0TWVudU1hcmdpbiwgY29udGV4dE1lbnVNYXJnaW4pOworICAgIH0g
ZWxzZSB7CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzdGFydC5ub2RlKCktPnJl
bmRlcmVyKCk7CiAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICByZXR1cm4gRkFM
U0U7Cg==
</data>
<flag name="review"
          id="64063"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73707</attachid>
            <date>2010-11-12 00:01:23 -0800</date>
            <delta_ts>2010-11-16 09:31:47 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>context-menu-keyboard2.diff</filename>
            <type>text/plain</type>
            <size>2333</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNmQ5YTY1Mi4uM2Y2YjA5YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0xMSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gU2hvdyBkZWZhdWx0IGNv
bnRleHQgbWVudSBmb3IgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgd2hlbiBhY3RpdmF0
ZWQgd2l0aCBrZXlib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDkzNzYKKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOgorCiAyMDEwLTExLTA4
ICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAppbmRleCA2NTMxZWUxLi45YmRkNGI3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtMjQ1LDYgKzI0NSwxMyBAQCBzdGF0aWMgdm9pZCBQb3B1cE1lbnVQb3Np
dGlvbkZ1bmMoR3RrTWVudSogbWVudSwgZ2ludCAqeCwgZ2ludCAqeSwgZ2Jvb2xlYW4gKnB1cwog
ICAgICpwdXNoSW4gPSBGQUxTRTsKIH0KIAorc3RhdGljIE5vZGUqIGdldEZvY3VzZWROb2RlKEZy
YW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgp
KQorICAgICAgICByZXR1cm4gZG9jLT5mb2N1c2VkTm9kZSgpOworICAgIHJldHVybiAwOworfQor
CiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2
ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZl
bnQpCiB7CiAgICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmlldyk7CkBAIC0zNDAsOSArMzQ3LDE0
IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKEd0
a1dpZGdldCogd2lkZ2V0KQogICAgIEludFBvaW50IGxvY2F0aW9uOwogCiAgICAgaWYgKCFzdGFy
dC5ub2RlKCkgfHwgIWVuZC5ub2RlKCkKLSAgICAgICAgfHwgKGZyYW1lLT5zZWxlY3Rpb24oKS0+
c2VsZWN0aW9uKCkuaXNDYXJldCgpICYmICFmcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkpKQotICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50KHJpZ2h0
QWxpZ25lZCA/IHZpZXctPmNvbnRlbnRzV2lkdGgoKSAtIGNvbnRleHRNZW51TWFyZ2luIDogY29u
dGV4dE1lbnVNYXJnaW4sIGNvbnRleHRNZW51TWFyZ2luKTsKLSAgICBlbHNlIHsKKyAgICAgICAg
fHwgKGZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkuaXNDYXJldCgpICYmICFmcmFtZS0+
c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpLmlzQ29udGVudEVkaXRhYmxlKCkpKSB7CisgICAgICAg
IC8vIElmIHRoZXJlJ3MgYSBmb2N1c2VkIGVsbWVudCwgdXNlIGl0cyBsb2NhdGlvbi4KKyAgICAg
ICAgaWYgKE5vZGUqIGZvY3VzZWROb2RlID0gZ2V0Rm9jdXNlZE5vZGUoZnJhbWUpKSB7CisgICAg
ICAgICAgICBJbnRSZWN0IGZvY3VzZWROb2RlUmVjdCA9IGZvY3VzZWROb2RlLT5nZXRSZWN0KCk7
CisgICAgICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50KHJpZ2h0QWxpZ25lZCA/IGZvY3VzZWRO
b2RlUmVjdC5yaWdodCgpIDogZm9jdXNlZE5vZGVSZWN0LngoKSwgZm9jdXNlZE5vZGVSZWN0LmJv
dHRvbSgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBsb2NhdGlvbiA9IEludFBvaW50
KHJpZ2h0QWxpZ25lZCA/IHZpZXctPmNvbnRlbnRzV2lkdGgoKSAtIGNvbnRleHRNZW51TWFyZ2lu
IDogY29udGV4dE1lbnVNYXJnaW4sIGNvbnRleHRNZW51TWFyZ2luKTsKKyAgICB9IGVsc2Ugewog
ICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc3RhcnQubm9kZSgpLT5yZW5kZXJlcigp
OwogICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>