Since GSettings is not supported in extensions in 3.2, all settings
have been replaced by constants in JS files (except for user-theme,
whose only purpose is to actually bridge GSettings to the shell).
Customizations are still supported in master, and distributions
packaging these extensions for system-wide install may consider
reverting this bug.
In 3.2 branch, the GSettings migration hasn't happened yet, so
we need to use underscores in binding names.
Also, uncomment some code that handles keyPressEvent, as the core
shell code causes crashes in all_thumbnails, sometimes.
We need to disconnect the signals every time we destroy the
IMStatusChooserItem, that is, both at enable() and at disable().
(In particular, disconnecting at disable() doesn't matter much, since
those signals are emitted only very early after login - which is why
enabling in the middle of session worked before)
Some keyboard layouts (in particular, azerty / french) require
pressing shift to obtain numerals. Therefore we should not cancel
the switch when shift is pressed.
Also, we should accept indifferently left or right modifiers.
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.
Cherry-picked from master, added code to load translation from
within the extension folder.
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.
Cherry-picked from master. The zip file contains everything that is
needed for extensions, but schemas and translations are not loaded
from there, as convenience.js cannot be supported in 3.2
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.
We cannot return from show() without creating an AppSwitcher, as it
will subsequently crash in core shell code due to _appSwitcher being null.
We can prevent this by destroying the actor (which will prevent it
from being allocated and thus avoid the crash).
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
The name property is supposed to be already a displayable string,
without any further work.
Also, that gettext call wouldn't have any effect, since we don't
have those strings in our catalogs.
By importing various stuff from core shell, now it works for me.
(In particular, what was missing was setting the modifierMask in
show()).
Also, remove the native mode. Users wishing to have it should just
disable the extension with the standard tools.
This is the stable release, so we support all of GNOME Shell
stable cycle without updates.
(As said earlier, dock and alternate-tab have issues, so they're
not marked 3.2 but just 3.2.0)
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
In current GNOME Shell master, there are some more things that
we need to update on enable/disable. Also, the Do Not Disturb
item was changed to Notifications, and the meaning flipped.
TelepathyClient.Notification was renamed to ChatNotification, a
setChatState method was added in the Source API too and the timestamp
management changed a bit.
https://bugzilla.gnome.org/show_bug.cgi?id=657475
I was planning to add global.stage_xwindow, back when this was
written for core. Then this became an extension, but the reference
staid there.
We could use clutter_x11_get_stage_window(), if that wasn't marked
(skip). For now, let's just 0 (it is correct anyway, as we want
the dialog to be system modal)
main() has been replaced by init(), enable() and disable()
I'm not sure it actually disables, it should unless you have more
extensions messing with the same methods.
main() has been replaced by init(), enable() and disable()
when disabling, all sources and notifications associated with gajim
contacts are automatically closed
main() has been replaced by init(), enable() and disable()
at the same time, ensure that all keybindings are correctly taken
(even though alt-tab and alt-shift-tab have the same effect right
now)