Re: Magnifier DBus interface vs GSettings



Hi Patrick,

You wrote:
I would have argued the other
way and gone for: magnifier needs the accessibility bus, so control
via dbus rather than require some desktop schema to be installed.

You make a good point. A similar point was madewhen we discussed the issue at a recent (Thu Mar 29) GNOME a11y meeting. Namely: what if the platform supports DBus, but does not support GSettings? If the magnifier DBus interface does not support enabling, then there is no way to enable it on that platform. <axe-grinding>The correct solution is for that platform to provide such access via user preferences.</axe-grinding>.

Considering this further, I've noticed a number of things:

1. GNOME Shell operates within a GSettings environment. Hence, so does GS-mag, and is bound to the GSettings system. 2. The magnifier DBus *interface* is only a contract. In particular, it does not specify how to *implement* that contract. 3. Viewed from the outside, an *implementation* of the magnifier DBus interface is a black-box. Clients of the service don't know anything about the internals of the implementation. 4. Viewed from the inside, GS-mag's particular implementation of the DBus setActive() method is but a wrapper around the magnifier's own setActive() method. 5. Viewed even further inside -- from within GNOME Shell itself -- the magnifier's setActive() method is available to any other GNOME Shell object.

With respect to 5, set aside the DBus issue for the moment. The implication is that some GNOME Shell object could enable/disable the magnifier directly, and its actual state can be out of sync with the user preferences (as given by GSettings). That's a bug and needs fixing.

Back to DBus: if the above fix is made, then the bugzilla " D-Bus: org.gnome.Magnifier.setActive incomplete." (https://bugzilla.gnome.org/show_bug.cgi?id=669192) is likewise fixed:

1. the DBus interface need not change.
2. GS-mag's DBus implementation need not change.
3. Magnifiers that run on platforms that don't support GSettings (or other preferences/settings architecture) can be accessed through DBus.

Seems like a win for everyone.

--
;;;;joseph.


'A: After all, it isn't rocket science.'
'K: Right. It's merely computer science.'
             - J. D. Klaun -



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