In Tray menu the item " Disable New Clients " added.
Also some bugs are fixed.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@468 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/network/Socket.h b/network/Socket.h
index 595f47e..09d88be 100644
--- a/network/Socket.h
+++ b/network/Socket.h
@@ -122,7 +122,7 @@
if (newTimeout && (!*timeout || newTimeout < *timeout))
*timeout = newTimeout;
}
- virtual bool getDisable() {return true;};
+ virtual bool getDisable() {return false;};
};
}
diff --git a/rfb/ListConnInfo.h b/rfb/ListConnInfo.h
index 44df9ec..5953004 100644
--- a/rfb/ListConnInfo.h
+++ b/rfb/ListConnInfo.h
@@ -87,6 +87,7 @@
for (InputList->iBegin(); !InputList->iEnd(); InputList->iNext()) {
iAdd(InputList);
}
+ setDisable(InputList->getDisable());
}
void iAdd (ListConnInfo* InputList) {
diff --git a/rfb/VNCSConnectionST.cxx b/rfb/VNCSConnectionST.cxx
index 8b6adda..8f2ff23 100644
--- a/rfb/VNCSConnectionST.cxx
+++ b/rfb/VNCSConnectionST.cxx
@@ -689,6 +689,7 @@
accessRights = accessRights & !(AccessPtrEvents | AccessKeyEvents | AccessView);
break;
}
+ framebufferUpdateRequest(server->pb->getRect(), false);
}
int VNCSConnectionST::getStatus()
{
diff --git a/winvnc/ControlPanel.cxx b/winvnc/ControlPanel.cxx
index e668d91..7428230 100644
--- a/winvnc/ControlPanel.cxx
+++ b/winvnc/ControlPanel.cxx
@@ -25,8 +25,7 @@
InitLVColumns(IDC_LIST_CONNECTIONS, handle, 120, 3, ColumnsStrings,
LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM,
LVS_EX_FULLROWSELECT, LVCFMT_LEFT);
- SendCommand(3, -1);
- setItemChecked(IDC_DISABLE_CLIENTS, ListConnStatus.getDisable());
+ SendCommand(4, -1);
}
bool ControlPanel::onCommand(int cmd)
@@ -79,6 +78,7 @@
{
getSelConnInfo();
DeleteAllLVItem(IDC_LIST_CONNECTIONS, handle);
+ setItemChecked(IDC_DISABLE_CLIENTS, LCInfo->getDisable());
if(LCInfo->Empty())
return;
@@ -146,6 +146,7 @@
if (data != -1) {
ListConnStatus.Copy(&ListSelConn);
ListConnStatus.setAllStatus(data);
+ ListConnStatus.setDisable(isItemChecked(IDC_DISABLE_CLIENTS));
copyData.cbData = (DWORD)&ListConnStatus;
} else {
ListConnStatus.Clear();
diff --git a/winvnc/STrayIcon.cxx b/winvnc/STrayIcon.cxx
index d3e13da..229f1ce 100644
--- a/winvnc/STrayIcon.cxx
+++ b/winvnc/STrayIcon.cxx
@@ -99,6 +99,9 @@
EnableMenuItem(trayMenu, ID_CONNECT, (!userKnown ? MF_GRAYED : MF_ENABLED) | MF_BYCOMMAND);
EnableMenuItem(trayMenu, ID_CLOSE, (isServiceProcess() ? MF_GRAYED : MF_ENABLED) | MF_BYCOMMAND);
+ thread.server.getClientsInfo(&LCInfo);
+ CheckMenuItem(trayMenu, ID_DISABLE_NEW_CLIENTS, (LCInfo.getDisable() ? MF_CHECKED : MF_UNCHECKED) | MF_BYCOMMAND);
+
// SetForegroundWindow is required, otherwise Windows ignores the
// TrackPopupMenu because the window isn't the foreground one, on
// some older Windows versions...
@@ -108,19 +111,26 @@
POINT pos;
GetCursorPos(&pos);
TrackPopupMenu(trayMenu, 0, pos.x, pos.y, 0, getHandle(), 0);
+
break;
- }
- return 0;
+ }
+ return 0;
}
// Handle tray icon menu commands
case WM_COMMAND:
switch (LOWORD(wParam)) {
- case ID_CONTR0L_PANEL:
- {
- CPanel->showDialog();
- }
- break;
+ case ID_CONTR0L_PANEL:
+ CPanel->showDialog();
+ break;
+ case ID_DISABLE_NEW_CLIENTS:
+ {
+ thread.server.getClientsInfo(&LCInfo);
+ LCInfo.setDisable(!LCInfo.getDisable());
+ thread.server.setClientsStatus(&LCInfo);
+ CPanel->UpdateListView(&LCInfo);
+ }
+ break;
case ID_OPTIONS:
{
CurrentUserToken token;
@@ -170,6 +180,7 @@
break;
case 3:
thread.server.setClientsStatus((rfb::ListConnInfo *)command->cbData);
+ case 4:
thread.server.getClientsInfo(&LCInfo);
CPanel->UpdateListView(&LCInfo);
break;
diff --git a/winvnc/resource.h b/winvnc/resource.h
index b01ed96..1cb074b 100644
--- a/winvnc/resource.h
+++ b/winvnc/resource.h
@@ -39,13 +39,14 @@
#define ID_DISCONNECT 40004
#define ID_CONNECT 40005
#define ID_OPTIONS 40006
+#define ID_DISABLE_NEW_CLIENTS 40007
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 111
-#define _APS_NEXT_COMMAND_VALUE 40007
+#define _APS_NEXT_COMMAND_VALUE 40008
#define _APS_NEXT_CONTROL_VALUE 1024
#define _APS_NEXT_SYMED_VALUE 101
#endif
diff --git a/winvnc/winvnc.rc b/winvnc/winvnc.rc
index ab92218..9965f3d 100644
--- a/winvnc/winvnc.rc
+++ b/winvnc/winvnc.rc
@@ -295,13 +295,14 @@
BEGIN
POPUP "Tray Menu"
BEGIN
- MENUITEM "&Control Panel", ID_CONTR0L_PANEL
+ MENUITEM "Control &Panel", ID_CONTR0L_PANEL
MENUITEM SEPARATOR
MENUITEM "&Options...", ID_OPTIONS
MENUITEM "Add &New Client", ID_CONNECT
MENUITEM "&Disconnect Clients", ID_DISCONNECT
+ MENUITEM "Disable New &Clients", ID_DISABLE_NEW_CLIENTS
MENUITEM SEPARATOR
- MENUITEM "&Close VNC Server", ID_CLOSE
+ MENUITEM "Close &VNC Server", ID_CLOSE
MENUITEM "&About...", ID_ABOUT
END
END