On Thu, Oct 17, 2013 at 2:28 PM, C Anthony Risinger <anth...@xtfx.me> wrote:

> On Thu, Oct 17, 2013 at 1:53 PM, Sarvi Shanmugham <sarvil...@gmail.com>wrote:
>
>> I added a return to the begining of the addWindowListener function and it
>> skipped that error
>> and hit another similar to the last one
>>
>> I made a couple of more fixes. I got the error below
>> init <pyjs.runners.giwebkit.RunnerContext object at 0x10a0699d0> True
>> Traceback (most recent call last):
>>   File "KitchenSink.py", line 117, in <module>
>>     pyjd.setup("public/KitchenSink.html")
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/__init__.py", line 68,
>> in setup
>>     listener()
>>   File "/Users/sarvi/Workspace/pyjs/pyjswidgets/pyjamas/History.py", line
>> 109, in init
>>     hash = wnd().location.hash
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 408,
>> in __call__
>>     return self.getattr(inst, key)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 413,
>> in getattr
>>     attr = impl(inst, key)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 423,
>> in getattr_gi
>>     if inst.get_data(key) is None:
>>   File
>> "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gi/overrides/GObject.py",
>> line 590, in _unsupported_data_method
>>     raise RuntimeError('Data access methods are unsupported. '
>> RuntimeError: Data access methods are unsupported. Use normal Python
>> attributes instead
>>
>> And made a change to hasattr() along the same lines as your suggestion
>> above.
>>
>> Then I got the following
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 438,
>> in getattr_w3
>>     attr = self._custom[key].bind(key)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 360,
>> in bind
>>     return types.MethodType(cls(key), None, owner)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 328,
>> in __init__
>>     Soup.URI.new()
>> TypeError: new() takes exactly 1 argument (0 given)
>>
>> I just changed that to take Scoup.URI.new('http://www.google.com')
>>
>> and then I hit this
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 438,
>> in getattr_w3
>>     attr = self._custom[key].bind(key)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 360,
>> in bind
>>     return types.MethodType(cls(key), None, owner)
>>   File "/Users/sarvi/Workspace/pyjs/pyjs/runners/giwebkit.py", line 332,
>> in __init__
>>     doc = app._doc
>> NameError: global name 'app' is not defined
>>
>> When I was looking through, I am not sure I understand how this code has
>> been working so far, coz "app" is not
>> defined gloablly.
>>
>> What am I missing.
>> I could wait for you to finish up the addEventListener, but I suspect
>> thats not gonna address any of this.
>> So let me know if it is helpful for me to pursue this.
>>
>
> so i was looking into this... and i have absolutely no idea what changed,
> webkit or gobject-introspection, but AFAICT... add_event_listener is NOW
> SUPPORTED OUT OF THE BOX.
>
> i'm going to spend a few minutes on this so i'll ping when done... go
> ahead and stand by until then, i'll let you know once it runs on my machine.
>

ok, some success...

the goog news is add_event_listener REALLY does work, the problem is the
handler doesn't recieve any args.  i know what the problem is, and i'm
pretty sure there is a solution using PyGI's overrides system, but i'll
have to look at that later... FTW, i somewhat described the issue last
year, here:

https://bugs.webkit.org/show_bug.cgi?id=77835#c16

...it relates to the fact that a GCallback (before casting) doesn't receive
any args, therefore PyGI doesn't send any.

RE: the `app` issue, honestly i don't know how that worked before... more
than likely i changed the global from app -> context at the last second and
never tested it before committing, but i promise you, this thing worked at
one point :)

so, even though event handling is busted, and will cause a segfault, you
should be able to do this:

# cd examples/kitchensink/
# ../../bin/pyjd KitchenSink.py

...and see the example in all it's glory. you must be in the proper
directory else it won't find the template HTML file. mousing over the
window will lead to a segfault until i figure out how to tell PyGI which
args to expect for a handler... i know it can be done by modifying the
annotation in the source (as i demonstrated in the link above), but
obviously we don't want to do that because then you have to recompile
webkit for a very stupid reason.

i may have time tonight to look into this, otherwise i'l have to punt until
the weekend, but feel free to explore until then! this is probably the
final hurdle to a fully out-of-the-box solution for Linux (and apparently
MacOS!)

-- 

C Anthony

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Pyjs.org Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyjs-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to