Problems with Vino's "Disable the wallpaper when connected" option
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
vino (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
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 (although if a user has manually disabled their wallpaper, the below "code" would handle it) (I don't know anything about the Vino code, so I'm just making up function/variable names):
<code>
vinoDisabledWal
def ConnectionEstab
...
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
...
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
...
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
...
if vinoDisabledWal
EnableWallpaper()
vinoDisabledW
</code>
Thanks for point this out. I just committed the fix upstream. It will be available in 2.24.1 tarball.