Bill Haneman wrote:
(sorry for replying to myself - this is a clarification)
Bill Haneman wrote:...
Also, there are situations where the magnifier service may need to
run on a different host from the client. For instance, if you are
running a remote application, you don't really want the magnifier
to run remotely as well, because of the much larger amount of X
traffic and the CPU requirements of the magnification service.
CORBA allows this at least in theory (although our current
'bonobo-activation' mechanism does not recognize remote servers).
The CPU requirements isn't is a big problem, because if you start the
gnome-mag in a remote machine, probably, this machine will have a
better
CPU than the machine that is running the X Server. The X traffic is
really important, but I think that it's not a big problem, because we
have solutions like vino and xdmcp that works really fine, and how
gnome-mag uses the DAMAGE extension this problem is minimized. I raised
this aspect, because here in Brazil we have many places with old
machines, that will not support a good magnifier without delay, so is
more cheap buy a good server and use the old machines like dummy
terminals.
By this I mean that "bonobo-activation-server" doesn't report
remote magnification services to a client which is requesting an
instance of gnome-mag. However, gnome-mag should work fine with
remote _X servers_ as far as I know - at least, I have used this
feature in the past. (Carlos, did you get this working on your
system? Maybe a bug somewhere?)
no... here is the output of what I get when I call gnome-mag with this
command line in the remote machine:
#: magnifier -mv -t myip:0 -s myip:0
(magnifier:19579): Bonobo-WARNING **: Assigning a default value to a
non
readable property 'source-display-screen'
(magnifier:19579): Bonobo-WARNING **: Assigning a default value to a
non
readable property 'target-display-screen'
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_width: assertion
`GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_height: assertion
`GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_width: assertion
`GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_height: assertion
`GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_display_get_screen: assertion
`ScreenCount (GDK_DISPLAY_X11 (display)->xdisplay) > screen_num' failed
(magnifier:19579): Gdk-CRITICAL **: gdk_screen_get_root_window:
assertion `GDK_IS_SCREEN (screen)' failed
(magnifier:19579): Gdk-WARNING **: gdkdrawable-x11.c:904 drawable is
not
a pixmap or window
The program 'magnifier' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
(Details: serial 9 error_code 9 request_code 154 minor_code 1)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error()
function.)
If we can get the bonobo-activation-server to return the CORBA
object ID of a remote gnome-mag service (or hack some other
mechanism for getting the object ID), then a remote client (for
instance, a remote instance of gnopernicus) can talk to a local
gnome-mag service through the bonobo/CORBA IPC interface.
Bill
This sort of case is probably more common in some corporate
environments, but we are not sure just how important it will be in
the future.