As far as I can tell, this isn't a programming error, it's a logic error. I have a separate computer running Intrepid, on which Vino is configured to disable the wallpaper if someone is connected. I VNC'ed into it, and the wallpaper was disabled. Then, to try out the latest Vinagre, I VNC'ed from the Intrepid system to the Intrepid system. At this point both my main system and the Intrepid system are VNC'ed into the Intrepid system. When I closed Vinagre on the Intrepid system, Vino restored the wallpaper. Obviously, this isn't the preferred behavior. It should keep it disabled as long as anyone is connected. I tried disabling the "Disable the wallpaper when connected" option, then re-enabling it, but the wallpaper still showed. When I disconnected then reconnected, it hid the wallpaper, and would not show it if I disabled the hide wallpaper option. Also, if I connect, which causes the wallpaper to be disabled, then disable the hide wallpaper option and disconnect, it doesn't re-enable the wallpaper. Here's how I think it should happen, starting with no one connected and wallpaper enabled (I don't know anything about the Vino code, so I'm just making up function/variable names):
<code>
vinoDisabledWallpaper = false # default value
def ConnectionEstablished(...):
...
if GConf("/desktop/gnome/remote_access/disable_background") == true: # If Vino is set to disable the background
if IsWallpaperAlreadyDisabled() == true: # If wallpaper is already disabled by the user
return # Than it's already disabled
else:
DisableWallpaper()
vinoDisabledWallpaper = true # So you know it was disabled by Vino, and not by the user.
# You wouldn't want to enable the wallpaper if the user had manually disabled it.
def ConnectionTerminated(...):
...
if IsAnyoneConnected() == false && isWallpaperDisabled = true: # If no one is still connected and
# Vino disabled the wallpaper
EnableWallpaper() # Even if (especially if) someone disabled the hide wallpaper option, it should enable the wallpaper
def EnableHideWallpaperOption(...): # Enabling the "Disable the wallpaper when connected" option
...
if IsAnyoneConnected() == true: # If someone is connected
if IsWallpaperAlreadyDisabled() == true: # If wallpaper is already disabled by the user
return # Than it's already disabled
else:
DisableWallpaper()
vinoDisabledWallpaper = true # So you know it was disabled by Vino, and not by the user.
# You wouldn't want to enable the wallpaper if the user had manually disabled it.
def DisableHideWallpaperOption(...): # Disabling the "Disable the wallpaper when connected" option
...
if vinoDisabledWallpaper == true:
EnableWallpaper()
vinoDisabledWallpaper = false
Binary package hint: vino
Vino 2.23.91-0ubuntu1 on Intrepid
As far as I can tell, this isn't a programming error, it's a logic error. I have a separate computer running Intrepid, on which Vino is configured to disable the wallpaper if someone is connected. I VNC'ed into it, and the wallpaper was disabled. Then, to try out the latest Vinagre, I VNC'ed from the Intrepid system to the Intrepid system. At this point both my main system and the Intrepid system are VNC'ed into the Intrepid system. When I closed Vinagre on the Intrepid system, Vino restored the wallpaper. Obviously, this isn't the preferred behavior. It should keep it disabled as long as anyone is connected. I tried disabling the "Disable the wallpaper when connected" option, then re-enabling it, but the wallpaper still showed. When I disconnected then reconnected, it hid the wallpaper, and would not show it if I disabled the hide wallpaper option. Also, if I connect, which causes the wallpaper to be disabled, then disable the hide wallpaper option and disconnect, it doesn't re-enable the wallpaper. Here's how I think it should happen, starting with no one connected and wallpaper enabled (I don't know anything about the Vino code, so I'm just making up function/variable names):
<code>
vinoDisabledWal lpaper = false # default value
def ConnectionEstab lished( ...): /desktop/ gnome/remote_ access/ disable_ background" ) == true: # If Vino is set to disable the background adyDisabled( ) == true: # If wallpaper is already disabled by the user aper() Wallpaper = true # So you know it was disabled by Vino, and not by the user.
...
if GConf("
if IsWallpaperAlre
return # Than it's already disabled
else:
DisableWallp
vinoDisabled
# You wouldn't want to enable the wallpaper if the user had manually disabled it.
def ConnectionTermi nated(. ..):
...
if IsAnyoneConnected() == false && isWallpaperDisabled = true: # If no one is still connected and
# Vino disabled the wallpaper
EnableWallpaper() # Even if (especially if) someone disabled the hide wallpaper option, it should enable the wallpaper
def EnableHideWallp aperOption( ...): # Enabling the "Disable the wallpaper when connected" option adyDisabled( ) == true: # If wallpaper is already disabled by the user aper() Wallpaper = true # So you know it was disabled by Vino, and not by the user.
...
if IsAnyoneConnected() == true: # If someone is connected
if IsWallpaperAlre
return # Than it's already disabled
else:
DisableWallp
vinoDisabled
# You wouldn't want to enable the wallpaper if the user had manually disabled it.
def DisableHideWall paperOption( ...): # Disabling the "Disable the wallpaper when connected" option lpaper == true: allpaper = false
...
if vinoDisabledWal
EnableWallpaper()
vinoDisabledW
</code>