Re: Magnifier DBus interface vs GSettings

Joseph Scheuhammer <[email protected]>
Newsgroups gmane.comp.gnome.accessibility.general
Message-ID <[email protected]>
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 -
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.