<?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>27436</bug_id>
          
          <creation_ts>2009-07-19 16:08:07 -0700</creation_ts>
          <short_desc>gobject bindings need access to keyCode on KeyboardEvents!</short_desc>
          <delta_ts>2014-04-08 18:10:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</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>
          
          <blocked>16401</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Kenneth Casson Leighton">lkcl</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133039</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 16:08:07 -0700</bug_when>
    <thetext>this is part of the split of #16401 into smaller patches
as part of an agreement recommended by david.

take this lightly, please, but whoever thought that you could do language bindings without having access to keyCodes ... honestly, it&apos;s just so daft!  and, if there _are_ workarounds that get at the same information... honestly, why make developers&apos; lives damn awkward.  just publish the same consistent API and be done with it, for goodness sake! :)

anyway: it can be seen from the IDL itself that the exposed initKeyboardEvent function doesn&apos;t match up with the W3C DOM spec, so any arguments made - and there have been several, by reviewers - that Webkit language bindings stick religiously to the W3C spec are moot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133040</commentid>
    <comment_count>1</comment_count>
      <attachid>33065</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 16:10:44 -0700</bug_when>
    <thetext>Created attachment 33065
enables access to keyCode and charCode properties and W3C-compliant initKeyboardEvent function under gobject language bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133237</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-20 14:53:38 -0700</bug_when>
    <thetext>Please look back into the history of this line.  I expect this was added to avoid Obj-C generation and shoudl be changed to !objc now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133533</commentid>
    <comment_count>3</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-21 11:25:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Please look back into the history of this line.  I expect this was added to
&gt; avoid Obj-C generation and shoudl be changed to !objc now.

ack.  same as #27437 then, basically.  willdo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133535</commentid>
    <comment_count>4</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-21 11:34:20 -0700</bug_when>
    <thetext>ah... looking at this a little closer, i believe that the reason why
i commented out the initKeyboardEvent function on GOBJECT bindings
would have been because you can&apos;t, in c, have two functions with
the same name.

and the gobject bindings auto-generator would have created two
gdom_keyboard_event_init_keyboard_event() functions, because of
the two initKeyboardEvent entries in the IDL file.

so i simply #ifdef&apos;d one of them out.

stupidly, i actually managed to #ifdef out keyCode and charCode
as well!  so, duh, thank you for drawing my attention to this!

anyway - i&apos;ll submit a revised patch which has !LANGUAGE_OBJC
around keyCode and charCode.... errr... are you sure?

i&apos;ll submit it for your attention, you let me know if it should
be !LANGUAGE_OBJC or !LANGUAGE_JAVASCRIPT ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133539</commentid>
    <comment_count>5</comment_count>
      <attachid>33193</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-21 11:42:25 -0700</bug_when>
    <thetext>Created attachment 33193
comments out only the 2nd initKeyboardEvent function on LANGUAGE_GOBJECT

probably a good idea to look at #27437 this likely needs discussion, i&apos;m happy to submit necessary patches to keep Obj-C happy but don&apos;t have the expertise to say what is what, here - just let me know what needs to be done.  i do know however that you can&apos;t have two versions of the same c function which is why one of the initKeyboardEvent functions _has_ to be #ifdef&apos;d out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135734</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-29 16:57:21 -0700</bug_when>
    <thetext>I think this ties in to the more general issue of how to handle overloaded methods in a C-based bindings.  Perhaps we should decide on a more general solution to this problem rather than #if&apos;ing throughout the IDLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136359</commentid>
    <comment_count>7</comment_count>
      <attachid>33193</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-31 20:08:12 -0700</bug_when>
    <thetext>Comment on attachment 33193
comments out only the 2nd initKeyboardEvent function on LANGUAGE_GOBJECT

ChangeLog name:
+2008-11-30  lkcl &lt;lkcl@lkcl.net&gt;

Tabs in ChangeLog.

I think Mark wanted a different solution for c bindings in general, but in this change looks fine overall to me.

r- for the ChangeLog issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136594</commentid>
    <comment_count>8</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 01:02:56 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 33193 [details])
&gt; ChangeLog name:
&gt; +2008-11-30  lkcl &lt;lkcl@lkcl.net&gt;
&gt; 
&gt; Tabs in ChangeLog.

 yes.  sorry. found that out a bit late - have corrected most of them
 in the [15] patches submitted, must have missed this one.  will redo.


&gt; I think Mark wanted a different solution for c bindings in general, 

 in each instance where the discussion comes up, i mention that there
 is no issue.  the current solution has been proven to work, and,
 because of the violation of the W3C DOM spec in this case (to very
 sensibly add support for Alt-Gr) this is pretty much the _only_
 case where the [clashing] function needs to be #ifdef&apos;d out.

 more details have been given in other bugreports [several times].


&gt; but in this
&gt; change looks fine overall to me.

 great.
 
&gt; r- for the ChangeLog issues.

 will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136595</commentid>
    <comment_count>9</comment_count>
      <attachid>33963</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 01:07:05 -0700</bug_when>
    <thetext>Created attachment 33963
fixes tabs in CHANGELOG, alters date from original patch creation date (2008) to current date</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136644</commentid>
    <comment_count>10</comment_count>
      <attachid>33963</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-03 08:52:58 -0700</bug_when>
    <thetext>Comment on attachment 33963
fixes tabs in CHANGELOG, alters date from original patch creation date (2008) to current date

Assuming Mark&apos;s concerns with this general approach were resolved (as you noted above), then this looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136711</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-03 10:50:21 -0700</bug_when>
    <thetext>As I&apos;ve outlined in bug 27435, my concerns about the handling of overloaded methods have yet to be addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136714</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-03 10:59:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; I think Mark wanted a different solution for c bindings in general,

Yes, I&apos;m after a more general solution than picking a single function and #if&apos;ing the rest out.  As I&apos;ve mentioned in bug 27435, there are other situations in which this is necessary.  Since a general solution would obviate the need for #if&apos;ing in IDL files I would prefer to see it explored before we go landing changes that add #if&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136726</commentid>
    <comment_count>13</comment_count>
      <attachid>33963</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-03 11:48:07 -0700</bug_when>
    <thetext>Comment on attachment 33963
fixes tabs in CHANGELOG, alters date from original patch creation date (2008) to current date

r- per mark&apos;s above comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136728</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-03 11:53:58 -0700</bug_when>
    <thetext>I think you should try to enlist one of the longer-term WebKitGtk contributers to help you with these patches.  You&apos;re hitting a lot of road-blocks at once.  Much of that is likely due to uploading 15 &quot;first time&quot; patches at once.  So you end up hitting similar combinations of starter-mistakes with each.  In this case, Mark is asking for a re-architecture of how we do autogeneration.  That&apos;s a little much to expect of a new contributer, but certainly possible.  Especially if you engage other senior members of the project.

In this case, it may be too much to ask, because our auto-gen system is a pile of ugly perl which several of us have wanted to re-write for years.  Eventually one of us will get around to re-writting it in c++ or python.

I think it would be a relatively easy change to add some sort of ALLOW_ARGUMENT_OVERLOADS or similar define which encapsulated !JAVASCRIPT and GOBJECT.  That wouldn&apos;t involve re-writing the world, but it also wouldn&apos;t be poluting our IDL files more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136735</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-03 12:10:33 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I think it would be a relatively easy change to add some sort of
&gt; ALLOW_ARGUMENT_OVERLOADS or similar define which encapsulated !JAVASCRIPT and
&gt; GOBJECT.  That wouldn&apos;t involve re-writing the world, but it also wouldn&apos;t be
&gt; poluting our IDL files more.

Except for the small issue that JavaScript DOM bindings support overloaded functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136738</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-03 12:22:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; I think it would be a relatively easy change to add some sort of
&gt; &gt; ALLOW_ARGUMENT_OVERLOADS or similar define which encapsulated !JAVASCRIPT and
&gt; &gt; GOBJECT.  That wouldn&apos;t involve re-writing the world, but it also wouldn&apos;t be
&gt; &gt; poluting our IDL files more.
&gt; 
&gt; Except for the small issue that JavaScript DOM bindings support overloaded
&gt; functions.

Sounds like either I have the ! reversed in my example text above, or I&apos;m misunderstanding the issue.  Are you saying that it would not be good/possible/sufficient to replace the proposed !JAVASCRIPT &amp;&amp; GOBJECT &amp;&amp; ... with a single define?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136748</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-03 12:51:52 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Sounds like either I have the ! reversed in my example text above, or I&apos;m
&gt; misunderstanding the issue.  Are you saying that it would not be
&gt; good/possible/sufficient to replace the proposed !JAVASCRIPT &amp;&amp; GOBJECT &amp;&amp; ...
&gt; with a single define?

In some places that overloading is used, such as XHR, the IDL contains a single version of the method that is annotated with [Custom] to indicate that a custom JS implementation of the binding for that method will be provided.  That custom implementation typically introspects the arguments that were provided and dispatches to the appropriate method on the wrapped DOM object.

In most cases, functions that are #if&apos;d in the IDLs to exclude them from JavaScript are not done so for a reason related to overloading, so changing them to be wrapped by a define related to overloading would not be appropriate.

In the case of initKeyboardEvent it&apos;s not clear why one variant is excluded from JavaScript.  The variant without altGraph was added in &lt;http://trac.webkit.org/changeset/16277/trunk/WebCore/dom/KeyboardEvent.idl&gt; by Sam without much explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136830</commentid>
    <comment_count>18</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 16:14:37 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; I think it would be a relatively easy change to add some sort of
&gt; &gt; &gt; ALLOW_ARGUMENT_OVERLOADS or similar define which encapsulated !JAVASCRIPT and
&gt; &gt; &gt; GOBJECT.  That wouldn&apos;t involve re-writing the world, but it also wouldn&apos;t be
&gt; &gt; &gt; poluting our IDL files more.
&gt; &gt; 
&gt; &gt; Except for the small issue that JavaScript DOM bindings support overloaded
&gt; &gt; functions.
&gt; 
&gt; Sounds like either I have the ! reversed in my example text above, or I&apos;m
&gt; misunderstanding the issue.  Are you saying that it would not be
&gt; good/possible/sufficient to replace the proposed !JAVASCRIPT &amp;&amp; GOBJECT &amp;&amp; ...
&gt; with a single define?

 see https://bugs.webkit.org/show_bug.cgi?id=27435#c29 and previous.

 overloaded functions = same function with different numbers of arguments.

 think: &quot;the usual c / c++ problem, basically&quot;.


 XULrunner have run into exactly the same problem:

   https://bug459452.bugzilla.mozilla.org/attachment.cgi?id=342670
   https://bugzilla.mozilla.org/show_bug.cgi?id=502234

 except there, the users have c++ as the native API, and the python bindings are direct to that.  any mess-ups are due to implementation flaws (as can be seen from the above two bugs) and precedence given to javascript rather than any particularly good reason.

 MSHTML does two tricks:

 * adds rolling numbers onto the overloaded functions.  burden is passed to users to work out which one to use.

 * and, also, i thiiink what they do is create different COM interfaces and then create a coclass merging them all together.  IDispatch can cope with telling users about the interfaces and their functions (at run-time) and in this way, dynamic use of the MSHTML interface simply passes the burden onto the users.

 both of which are greeeaat.

 but.  seriously.   see https://bugs.webkit.org/show_bug.cgi?id=27435#c29 - the conclusion is that i don&apos;t believe it&apos;s that big a deal.  even if what small API changes are required happen in 6 months or a year.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136835</commentid>
    <comment_count>19</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 16:32:31 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I think you should try to enlist one of the longer-term WebKitGtk contributers
&gt; to help you with these patches. 

 *sigh*.  sadly, they&apos;ve all said &quot;we&apos;d love to, but we don&apos;t have time&quot;.  please don&apos;t spend time reading any of the 300 comments in #16401, it won&apos;t help :)

&gt; You&apos;re hitting a lot of road-blocks at once. 

 well, that&apos;s better than hitting one and only one, for eight months straight.

&gt; Much of that is likely due to uploading 15 &quot;first time&quot; patches at once.  So
&gt; you end up hitting similar combinations of starter-mistakes with each.

 yep.  caught lots of them.  cancelled review on ones where i remember.

&gt;  In this
&gt; case, Mark is asking for a re-architecture of how we do autogeneration.  That&apos;s
&gt; a little much to expect of a new contributer, but certainly possible. 

 *sssss*... i&apos;m not the person to ask to do that.  not on something that&apos;s at the core of the project.

 and, also, i think it would be a good idea to get the gobject bindings in, first, _before_ making any significant changes.

 in that way, all the bindings can be considered - and taken into consideration - all at once.

 if one of them is left out, then... 

&gt; In this case, it may be too much to ask, because our auto-gen system is a pile
&gt; of ugly perl which several of us have wanted to re-write for years.  

 i did as best i could a hybrid cut/paste job.

&gt; Eventually
&gt; one of us will get around to re-writting it in c++ or python.
&gt; 
&gt; I think it would be a relatively easy change to add some sort of
&gt; ALLOW_ARGUMENT_OVERLOADS or similar define which encapsulated !JAVASCRIPT and
&gt; GOBJECT.  That wouldn&apos;t involve re-writing the world, but it also wouldn&apos;t be
&gt; poluting our IDL files more.

 mmm.... can&apos;t give an opinion - bit tired, and also i don&apos;t quite follow
 [need context].

 i can say however that the mozilla approach is to simply add extra IDL attributes, and they have a &quot;no&quot; prefix to indicate !.  e.g. [noscript] means &quot;exclude from both javascript and xpcom when generating bindings&quot; which they freely admit is a broken idea.

 as you can see from this:
   https://bug459452.bugzilla.mozilla.org/attachment.cgi?id=342670

 this is an attempt to fix the issue by adding an [optional_arg] IDL attribute, and then the number of arguments is inserted as an additional argument into the c++ code.

 i don&apos;t like it.

 and, as mentioned here:
   https://bugs.webkit.org/show_bug.cgi?id=27435#c29
 i believe that this whole issue is moot, i.e. from a &quot;practical&quot;
 software engineering perspective, a whole boat-load of complexity
 could end up getting added for very little extra benefit / ROI.

 evidence to the contrary, i _do_ subscribe to the &quot;good enough&quot; software engineering principle - it&apos;s just that with webkit-gobject and pyjamas-desktop the bar&apos;s a bit damn high.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136838</commentid>
    <comment_count>20</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 16:41:57 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #8)
&gt; &gt; &gt; I think Mark wanted a different solution for c bindings in general,
&gt; 
&gt; Yes, I&apos;m after a more general solution than picking a single function and
&gt; #if&apos;ing the rest out.  As I&apos;ve mentioned in bug 27435, there are other
&gt; situations in which this is necessary.

 [answered there]

&gt;  Since a general solution would obviate
&gt; the need for #if&apos;ing in IDL files I would prefer to see it explored before we
&gt; go landing changes that add #if&apos;s.

 * a general solution would require across-the-board changes [to CodeGenerator.pm], including to CodeGeneratorGObject.pm.  if they&apos;re willing to do that.
 
 * that means that someone would need to look at code that&apos;s in webkit svn _and_ code that&apos;s not.  if they&apos;re willing to do that.

 * it could be months before an updated solution is discussed and ready [if in fact one is needed at all - see #27435 answer]

 on balance, therefore, i would consider it a wiser move to tolerate #ifdefs, warts and all, land the CodeGeneratorGObject and _then_ look at all of the CodeGenerators all at once.

 if it&apos;s _really_ a problem to have an &quot;un-finalised&quot; c-based gobject API out there, then there are plenty of ways to stop people from using it whilst matters are discussed, whilst also not impeding people who are willing to use what&apos;s there, regardless.

 putting in a #ifdef DO_NOT_USE_GOBJECT_API_ONLY_AT_OWN_RISK_NOT_FINALISED_YET
 is the most obvious one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998958</commentid>
    <comment_count>21</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 18:10:50 -0700</bug_when>
    <thetext>This isn&apos;t going to happen now, but maybe we can think about it when we rework the GObject DOM bindings.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33065</attachid>
            <date>2009-07-19 16:10:44 -0700</date>
            <delta_ts>2009-07-21 11:42:25 -0700</delta_ts>
            <desc>enables access to keyCode and charCode properties and W3C-compliant initKeyboardEvent function under gobject language bindings</desc>
            <filename>kbe.idl.patch</filename>
            <type>text/plain</type>
            <size>1211</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvZG9t
L0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw4IEBACiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRHcmFwaEtleSk7CiAKICAg
ICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmICghZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgXAorICAgICAoIWRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NDQ3
MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC02MjM1MCw2ICs2MjM1
OCwxNCBAQAogICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcDoKICAgICAg
ICAgKFdlYkNvcmU6OlRleHRDb2RlY0lDVTo6cmVnaXN0ZXJFeHRlbmRlZEVuY29kaW5nTmFtZXMp
OgogCisyMDA4LTExLTMwICBsa2NsIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NDM2CisKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6IGFk
ZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisKIDIwMDgtMTItMDQgIEtldmluIFdh
dHRlcnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
dmluIE9sbGl2aWVyLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33193</attachid>
            <date>2009-07-21 11:42:25 -0700</date>
            <delta_ts>2009-08-03 01:07:05 -0700</delta_ts>
            <desc>comments out only the 2nd initKeyboardEvent function on LANGUAGE_GOBJECT</desc>
            <filename>kbe.idl.patch</filename>
            <type>text/plain</type>
            <size>1493</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvZG9t
L0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2MiwxMSBAQAogI2lm
ICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOworI2VuZGlm
CiAgICAgICAgIAorI2lmICghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VB
R0VfSkFWQVNDUklQVCkgJiYgXAorICAgICAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwg
IUxBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIAogICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2
ZW50KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIGNhbkJ1YmJsZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBjYW5jZWxhYmxlLCAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC02MjM1MCw2ICs2MjM3MywxOCBAQAogICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcDoKICAgICAgICAgKFdlYkNvcmU6OlRleHRDb2Rl
Y0lDVTo6cmVnaXN0ZXJFeHRlbmRlZEVuY29kaW5nTmFtZXMpOgogCisyMDA4LTExLTMwICBsa2Ns
IDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDM2CisK
KwkJR09iamVjdCBiaW5kaW5ncyBhcmUgYy1iYXNlZDogeW91IGNhbm5vdCBoYXZlIHR3byBjIGZ1
bmN0aW9ucworCQlnZG9tX2tleWJvYXJkX2V2ZW50X2luaXRfa2V5Ym9hcmRfZXZlbnQsIHNvIG9u
ZSBvZiB0aGVtIGlzCisJCWRpc2FibGVkIChhcyBpdCBpcyBvbiB0aGUgSlMgYmluZGluZ3MgYXMg
d2VsbCwgYWxyZWFkeSkuCisKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6IGFkZGVk
IExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisKIDIwMDgtMTItMDQgIEtldmluIFdhdHRl
cnMgIDxrZXZpbndhdHRlcnNAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmlu
IE9sbGl2aWVyLgo=
</data>
<flag name="review"
          id="17508"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33963</attachid>
            <date>2009-08-03 01:07:05 -0700</date>
            <delta_ts>2010-06-10 17:57:09 -0700</delta_ts>
            <desc>fixes tabs in CHANGELOG, alters date from original patch creation date (2008) to current date</desc>
            <filename>kbe.idl.patch</filename>
            <type>text/plain</type>
            <size>1526</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0NjM5NSkKKysrIFdlYkNvcmUvZG9t
L0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2MiwxMSBAQAogI2lm
ICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOworI2VuZGlm
CiAgICAgICAgIAorI2lmICghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VB
R0VfSkFWQVNDUklQVCkgJiYgXAorICAgICAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwg
IUxBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIAogICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2
ZW50KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIGNhbkJ1YmJsZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBjYW5jZWxhYmxlLCAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjM5MykKKysrIFdlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xNzM3NSw2ICsxNzQwOSwxOCBAQAogICAgICAgICAgIGhh
bmRsaW5nIGluIFdvcmtlciBjb25zdHJ1Y3RvciBmb3IgVjggYmluZGluZ3MuCiAgICAgICAgIChX
ZWJDb3JlOjpDQUxMQkFDS19GVU5DX0RFQ0wpOgogCisyMDA5LTA4LTAzICBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI3NDM2CisKKyAgICAgICAgR09iamVjdCBiaW5kaW5ncyBhcmUgYy1iYXNlZDogeW91
IGNhbm5vdCBoYXZlIHR3byBjIGZ1bmN0aW9ucworICAgICAgICBnZG9tX2tleWJvYXJkX2V2ZW50
X2luaXRfa2V5Ym9hcmRfZXZlbnQsIHNvIG9uZSBvZiB0aGVtIGlzCisgICAgICAgIGRpc2FibGVk
IChhcyBpdCBpcyBvbiB0aGUgSlMgYmluZGluZ3MgYXMgd2VsbCwgYWxyZWFkeSkuCisKKyAgICAg
ICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lm
aWMgSURMCisKIDIwMDktMDYtMTYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgo=
</data>
<flag name="review"
          id="18135"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>