A long due update, since this was merged in gjs and core shell.
We no longer need to mess with __proto__ and prototype, and can
use decent syntax for true object oriented programming.
(This affects all except xrandr-indicator, since I want to port
that to GDBus too, using the new bindings right from the start)
Modified to avoid global settings variables, that were updated
unpredictably. Removed the inital show effect and placing the dock
at primary.y at startup (causing a big and often unexpected jump).
Ported to the new class framework, which should mean cleaner code.
Retrieve Convenience from the extension helper object (Me), and
pass no arguments to initTranslations and getSettings (since the
metadata has all that is required)
Introduce a common settings.mk file, which is included in extensions
that need GSettings, to ensure that conventions are respected, and
necessary fixes can be applied from one place.
Add "gettext-domain", "extension-id" (containing the base part of the
UUID) and "gschemabase" (which, combined with "extension-id", gives
the GSettings schema) to metadata.json, autogenerated by the build
system.
It is not used anymore, now that translations are bundled with
the extension. Also, in the zip files it ended up with my home
folder, which is not nice.
Common code for retrieving translations and GSettings schemas has
been factored out into lib/convenience.js, which is part of
every extension installation.
Since that code relies on renames done at zip file creation time,
extensions can no longer be installed with "make install". Instead,
one should create the zip file and install it with the tweak-tool.
There is also a bash script, local-install.sh, that will install
everything in zip-files.
Also, since the GSettingsSchemaSource code is not yet in a stable
GLib release, extensions using GSettings have seen their stable
shell version removed.
Now, typing "make zip-file" will create a standard zip-file for each
extension, with everything necessary, including translations and GSettings schemas.
These files can then be installed with the tweak-tool or uploaded
at extensions.gnome.org
Based on an earlier patch by Jasper St. Pierre.
To go along GNOME Shell 3.2.1
Also, mark both alternate-tab and dock as generally "working with
3.2", since the most outstanding bugs seem to be fixed now.
Prior to this fix, the variables 'enter_event' and 'leave_event' in the
handler for the 'changed' event for the
'/org/gnome/shell/extensions/dock/hide_effect' dconf key were
uninitialized. This made switching the hide effect at runtime throw an
error. By promoting these two variables to instance members and
assigning to them upon initialization, this problem should be fixed.
https://bugzilla.gnome.org/show_bug.cgi?id=662389
GNOME Shell has changed internal API here and there, and this
broke some extensions.
alternate-tab and dock still have issues, I'll try to solve them
post 3.2.0
main() has been replaced by init(), enable() and disable()
not sure if it works, could cause memory leaks if disabling, because
of uncollectable cycles
Now it is possible to configure in GSettings if the dock should be
visible at all time or it should autohide when not needed. If
autohiding, it animates, and the effect is itself configurable, as
well as his duration.
Based on a patch by Miguel Aguilar <zodiac_es@yahoo.es>
Use GSettings to store configuration and make the dock position
customizabile. Currently, supported are left and right of the
primary monitor; more could be added in the future.
(Commit message edited by Giovanni Campagna)
https://bugzilla.gnome.org/show_bug.cgi?id=647394
Signed-off-by: Giovanni Campagna <gcampagna@src.gnome.org>
Extensions that use public Shell API are expected to work for all
stable 3.0 releases, so we skip setting the minor version. (This
means that they'll work in 3.0.0 and 3.0.1 without rebuilding).
Notably absent are auto-move-windows and windowsNavigator, that
hook deep into Shell code and could be broken by next minor release.
GNOME Shell emits a warning when "url" is absent in metadata.json,
adding it costs nothing. Links to the GIT repository because I
found no better page to reference.
Fix the behavior of the PopupMenu after the conversion of
St.Clickable to St.Button, and fix the invocation of ShellApp.open_new_window(),
which now accepts a workspace index as a number (as a side effect,
"New window" means one the current workspace now).