On Thu, Apr 26, 2012 at 6:55 AM, Amy Chan <mathematical.cof...@gmail.com> wrote: > Thank you. I looked into libwnck which does all this stuff from python (now > there's an example of what I wish clutter > had):http://developer.gnome.org/libwnck/stable/WnckWindow.html > > After a bit of experimenting, it turns out in python I can simply do: > > import wnck > wnck.screen_get_default().get_active_window().make_above() > > and that's done! > > So while I wait for the meta_window_set_xxxx stuff to eventually be exposed > to the JS interface, I may experiment with somehow calling a python script > from within JS to do that bit of functionality (I recall seeing this done in > another extension - will have to look it up). > > Or even better, since wnck seems to use the whole gobject introspection > thing, maybe it has JS bindings I can somehow get?
const Wnck = imports.gi.Wnck; Wnck.Screen.get_default().get_active_window().make_above(); I wonder if we should use more wnck. mutter already depends upon it. > cheers, > Amy > > > On 24/04/12 13:23, Jasper St. Pierre wrote: >> >> On Mon, Apr 23, 2012 at 11:11 PM, Amy C<mathematical.cof...@gmail.com> >> wrote: >>> >>> Hi all, >>> >>> As part of teaching myself how to make gnome shell extensions, I >>> decided to just add an item to the menu of the panel's title bar that >>> allows the user to select options like always on top/always on this >>> workspace. >>> >>> I notice in the mutter API there is a meta_window_set_above in >>> window.c but this doesn't seem to be exposed to the JS interface. >>> Through a bit of trial and error I also seem to be able to call >>> window.set_property('above',true) but this function appears to do >>> nothing (there is a 'title' property I tested on and using >>> set_property on this also seems to do nothing). >> >> >> Ugh. All the MetaWindow properties are all read-only. It seems they >> were only added for the notifies. >> >> Yeah. metacity was originally designed as a process, not a library, so >> it doesn't really do things the way it should. I'm working on making >> metacity/mutter less of a program with an API and more like a library, >> because that's what it should be. >> >>> I could simulate (e.g.) always in this workspace by listening to a >>> workspace changed event and moving the relevant window, but this would >>> not be a "true" implementation in that the window manager still thinks >>> that window.is_on_all_workspaces is false (as I don't seem to be able >>> to set it). >>> >>> So, does anyone know: >>> - an alternate way to set these window properties (properly, as in the >>> window manager knows about it) in a gnome shell extension? >> >> >> There might be some X window properties you can set (but I doubt it, >> and you probably can't do it from JS) >> >>> - how to tell whether a likely function in a c file (e.g. >>> meta_window_set_above) has been exported to the JS interface? >> >> >> Check out /usr/share/gir-1.0/Meta-1.0.gir >> >>> - how to expose a method from the C interface to the JS interface? >> >> >> You have to submit a patch to the C code, and wait a release cycle. >> Unfortunate, I know. >> >>> cheers! >>> _______________________________________________ >>> gnome-shell-list mailing list >>> gnome-shell-list@gnome.org >>> http://mail.gnome.org/mailman/listinfo/gnome-shell-list >> >> >> >> > -- Jasper _______________________________________________ gnome-shell-list mailing list gnome-shell-list@gnome.org http://mail.gnome.org/mailman/listinfo/gnome-shell-list