diff options
author | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-12 02:49:25 +0000 |
---|---|---|
committer | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-12 02:49:25 +0000 |
commit | 69271766b8f53ed0778378e9e3a7aa340dddabb2 (patch) | |
tree | 3ecc089c270171e440c4d1f72edba22be7cec906 /remoting | |
parent | cb67b82bb0f20da75aee0cca0b48333497422f31 (diff) | |
download | chromium_src-69271766b8f53ed0778378e9e3a7aa340dddabb2.zip chromium_src-69271766b8f53ed0778378e9e3a7aa340dddabb2.tar.gz chromium_src-69271766b8f53ed0778378e9e3a7aa340dddabb2.tar.bz2 |
Set the size of the remote desktop correctly.
Previously, the remote dekstop dimensions were set to the hosting window's client area size (which is smaller than needed due to the windows border). This CL makes sure that the remote desktop will be of the right size.
BUG=137696
Review URL: https://chromiumcodereview.appspot.com/12663007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187464 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting')
-rw-r--r-- | remoting/host/win/rdp_client_window.cc | 19 | ||||
-rw-r--r-- | remoting/host/win/rdp_client_window.h | 3 |
2 files changed, 15 insertions, 7 deletions
diff --git a/remoting/host/win/rdp_client_window.cc b/remoting/host/win/rdp_client_window.cc index 4e46d4f..1bd7f43 100644 --- a/remoting/host/win/rdp_client_window.cc +++ b/remoting/host/win/rdp_client_window.cc @@ -13,6 +13,7 @@ namespace remoting { RdpClientWindow::RdpClientWindow(const net::IPEndPoint& server_endpoint, EventHandler* event_handler) : event_handler_(event_handler), + screen_size_(SkISize::Make(0, 0)), server_endpoint_(server_endpoint) { } @@ -27,7 +28,8 @@ RdpClientWindow::~RdpClientWindow() { bool RdpClientWindow::Connect(const SkISize& screen_size) { DCHECK(!m_hWnd); - RECT rect = { 0, 0, screen_size.width(), screen_size.height() }; + screen_size_ = screen_size; + RECT rect = { 0, 0, screen_size_.width(), screen_size_.height() }; bool result = Create(NULL, rect, NULL) != NULL; // Hide the window since this class is about establishing a connection, not @@ -76,13 +78,8 @@ LRESULT RdpClientWindow::OnCreate(CREATESTRUCT* create_struct) { base::win::ScopedBstr server_name( UTF8ToUTF16(server_endpoint_.ToStringWithoutPort()).c_str()); - RECT rect; - if (!GetClientRect(&rect)) { - result = HRESULT_FROM_WIN32(GetLastError()); - goto done; - } - // Create the child window that actually hosts the ActiveX control. + RECT rect = { 0, 0, screen_size_.width(), screen_size_.height() }; activex_window.Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE | WS_BORDER); if (activex_window.m_hWnd == NULL) { result = HRESULT_FROM_WIN32(GetLastError()); @@ -104,6 +101,14 @@ LRESULT RdpClientWindow::OnCreate(CREATESTRUCT* create_struct) { if (FAILED(result)) goto done; + // Set dimensions of the remote desktop. + result = client_->put_DesktopWidth(screen_size_.width()); + if (FAILED(result)) + goto done; + result = client_->put_DesktopHeight(screen_size_.height()); + if (FAILED(result)) + goto done; + // Set the server name to connect to. result = client_->put_Server(server_name); if (FAILED(result)) diff --git a/remoting/host/win/rdp_client_window.h b/remoting/host/win/rdp_client_window.h index 0015eaf0..ee8d9fc 100644 --- a/remoting/host/win/rdp_client_window.h +++ b/remoting/host/win/rdp_client_window.h @@ -120,6 +120,9 @@ class RdpClientWindow // Invoked to report connect/disconnect events. EventHandler* event_handler_; + // Contains the requested dimensions of the screen. + SkISize screen_size_; + // The endpoint to connect to. net::IPEndPoint server_endpoint_; |