Re: Looking for a connect signal again: Clicking on empty place in overview



Thank you both for your informations, they were really useful learning to handle gnome-shell js again. :-)

Maybe my exceptions regarding looking-glass were misleaded by my experiences with the firefox DOM-inspector https://addons.mozilla.org/de/firefox/addon/dom-inspector-6622/ which is a really powerful tool for CSS and _javascript_ inspection for both content and chrome.

cheers
Bazon

2012/10/5 Amy <mathematical coffee gmail com>
On 5 October 2012 14:55, Jasper St. Pierre <jstpierre mecheye net> wrote:
> On Fri, Oct 5, 2012 at 12:17 AM, Bazon Bloch <bazonbloch arcor de> wrote:
>> Thank you, that was indeed the needed connect! :-)
>>
>> But I got two questions left concerning that:
>> 2012/10/4 Amy <mathematical coffee gmail com>(You can
>>
>>> enter the Overview & then open the looking glass and use the 'picker'
>>> object to try and work out which actor you want to listen to events on
>>> if you didn't know it was the _workspacesDisplay.actor).
>>
>>
>> 1.
>> That was thing I was trying before. But: The picker only picked me
>> [0x8f1a380 ShellGenericContainer:last-child first-child]
>>
>> this is indeed the same as if I enter
>> imports.ui.main.overview._workspacesDisplay.actor
>> in the looking glass inspector, that also returns
>> [0x8f1a380 ShellGenericContainer:last-child first-child]
>>
>> But how do I know than that
>> [0x8f1a380 ShellGenericContainer:last-child first-child] =
>> imports.ui.main.overview._workspacesDisplay.actor ?

re Blazon - Oh, I didn't think of that :P If you're very lucky,
sometimes gnome-shell JS classes for which the class has one main
actor set the '_delegate' property on `this.actor` pointing back to
`this`, so you can trace back like that. For example,
Main.panel.actor._delegate === Main.panel, so if you had just the
actor you could ask for its  _delegate property and see '[object
Object delegate for 0xa3723c0 ShellGenericContainer:last-child
"panel"]'. I think on GNOME 3.4 if you get the above object, you can
also look at __name__ to see 'Panel' (can't check at the moment, I'm
on 3.2). Unfortunately not all classes do the `this.actor._delegate =
this` thing (easy to forget, or perhaps not appropriate for that
class).

>
> There's no way to find that (it would be impossible). But if you
> scourge up and down the tree of actors (use the mouse wheel when
> hovering over an actor in the looking glass), and grep through the
> sources, you can get close.
>> I tried to click on "__metaclass__", but that gave me no information.
>>
>> 2.
>> In looking glass, I can't find the "reactive" property in
>> imports.ui.main.overview._workspacesDisplay.actor. How did you know it was
>> there?

The hard way when I first started developing extensions, when I was
spending ages trying to work out why my actor wasn't responding to
clicks etc and eventually finding it in the Clutter documentation
after far too many hours :) (it's a bit like that... "oh, all you had
to do was set <magicProperty> to <magicValue> and it works!" - just
ask lots of questions and you'll eventually get there). If you knew
the actor was a Clutter.Actor (all St.* actors are Clutter Actors) you
could look at the relevant documentation page [0] though .reactive
might not be immediately obvious as the cause of your problem.

> It's a property for all Clutter actors, of which
> _workspacesDisplay.actor is one of. The property inspector is
> misleading; we should probably rework that to be a bit better.

The objects that are through GObject introspection (like Clutter
actors, or Meta classes) don't have their properties shown in the LG
object inspector by default because they're loaded lazily - i.e. they
only show up once some extension/JS code queries them. For example,
type in `global.screen` and inspect it - you probably won't see a
property `set_compositor_data`. Now type
`global.screen.set_compositor_data` and you will see that it exists
and is a function. Inspect it again, and you'll see
`set_compositor_data` is now there.

I've done a little bit of work on trying to improve the property
inspector in the looking glass to display all the properties of an
object that can be found through GObject introspection - it doesn't
always work, but I find it handy to explore new (gobject
introspection) objects, hand in hand with the documentation [1]. You
may find it handy.

[0]: http://developer.gnome.org/clutter/stable/ClutterActor.html
[1]:https://extensions.gnome.org/extension/476/looking-glass-inspector/

>>
>> Many thanks
>> Bazon
>>
>>
>>
>>
>>
>>
>> 2012/10/4 Amy <mathematical coffee gmail com>
>>>
>>> If you connect to 'button-press-event' or 'button-release-event' (ie
>>> click event) on `Main.overview._workspacesDisplay.actor`, and
>>> additionally set its 'reactive' property to `true` (so that it
>>> actually receives these events), that should do the trick. (You can
>>> enter the Overview & then open the looking glass and use the 'picker'
>>> object to try and work out which actor you want to listen to events on
>>> if you didn't know it was the _workspacesDisplay.actor).
>>>
>>> On 3 October 2012 23:37, Bazon Bloch <bazonbloch arcor de> wrote:
>>> > Hello,
>>> >
>>> > I would like to show the desktop when clicking an empty place in the
>>> > overview in WorkspacesView.WorkspacesDisplay mode.
>>> > So I need a connect signal for that. Does anyone know that signal?
>>> >
>>> > Thanks
>>> > Bazon
>>> > _______________________________________________
>>> > gnome-shell-list mailing list
>>> > gnome-shell-list gnome org
>>> > https://mail.gnome.org/mailman/listinfo/gnome-shell-list
>>
>>
>>
>> _______________________________________________
>> gnome-shell-list mailing list
>> gnome-shell-list gnome org
>> https://mail.gnome.org/mailman/listinfo/gnome-shell-list
>>
>
>
>
> --
>   Jasper



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]