Support an UltraVNC function: "Toggle Remote Input and Remote Blank Monitor (On/Off)"

Bug #1350973 reported by Alexandre Magno on 2014-07-31
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gtk-vnc (Ubuntu)
Undecided
Unassigned
vinagre (Ubuntu)
Undecided
Unassigned

Bug Description

See images.

The server gets a "big eye" as static screensaver, in some configurations (operational system + setted options). For more details, see the two last files that are listed at comment #8 below.

THIS IS A PROPOSAL fo a new feature. Perhaps affects:

- vinagre: /plugins/vnc/vinagre-vnc-plugin.c
- gtk-vnc: /src/vncconnection.c

See from to vinagre_vnc_tab_set_viewonly (line 946) in vinagre-vnc-tab.c

Alexandre Magno (alexandre-mbm) wrote :
Alexandre Magno (alexandre-mbm) wrote :
Alexandre Magno (alexandre-mbm) wrote :

Study from "ultravnc-code/UltraVNC Project Root/UltraVNC/vncviewer/ClientConnection.cpp".

Line 931:
  ti.lpszText = (LPSTR) szTips[id++];

szTips[1] ← sz_L3 ← IDS_L3 ← "Toggle Remote Input and Remote Blank Monitor (On/Off)"

Alexandre Magno (alexandre-mbm) wrote :

I don't know to interpret C++ code but seems that the actions are in:

Line 6741:
  case ID_DINPUT:

Or line 6876:
  case ID_VIEWONLYTOGGLE:

I am assuming it is in (from) this first block refered above. Beacuse the line 854:
  buttonmap=IDB_BITMAPlx;

Considering this, it is especially important the line 5412:
  m_remote_mouse_disable = (value == rfbServerState_Disabled) ? true : false;

Alexandre Magno (alexandre-mbm) wrote :

The answer is in the lines 4781-4792:

bool ClientConnection::SendServerInput(BOOL enabled)
{
    rfbSetServerInputMsg sim;
    int len = 0;

    sim.type = rfbSetServerInput;
    sim.status = enabled;

    WriteExact((char*)&sim, sz_rfbSetServerInputMsg, rfbSetServerInput);

    return true;
}

Alexandre Magno (alexandre-mbm) wrote :

For study the UltraVNC's code:

$ sudo apt-get install subversion
$ svn checkout svn://svn.code.sf.net/p/ultravnc/code/ ultravnc-code
$ cd ultravnc-code
$ clear; grep -n -r "SEARCH_KEY" ./ | grep -v -e '\/.svn\/' -e '\/translations\/' -e '\/old\/'

SEARCH_KEY examples: "ID_DINPUT", "rfbSetServerInput"

Interesting files:

- ultravnc-code/UltraVNC Project Root/UltraVNC/vncviewer/ClientConnection.cpp
- ultravnc-code/UltraVNC Project Root/UltraVNC/winvnc/winvnc/vncclient.cpp
- ultravnc-code/UltraVNC Project Root/UltraVNC/rfb/rfbproto.h
- ultravnc-code/UltraVNC Project Root/UltraVNC/winvnc/winvnc/vncdesktop.cpp
- ultravnc-code/UltraVNC Project Root/UltraVNC/winvnc/winvnc/blankmonitor.cpp

description: updated
description: updated
description: updated
summary: - More compatibility with the UltraVNC function "Toggle Remote Input and
- Remote Blank Monitor (On/Off)"
+ Support an UltraVNC function: "Toggle Remote Input and Remote Blank
+ Monitor (On/Off)"
Alexandre Magno (alexandre-mbm) wrote :

See https://github.com/jwendell/gtk-vnc/issues/1

An other client don't resolves my problem because the UltraVNC's code manages the requests per client, then only remains for me to add the feature to gtk-vnc and vinagre, if I don't want to change the UltraVNC.

description: updated
description: updated
description: updated
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers