moved fake esc and lmb between getDropFileURL and draggingInfoSending, otherwise it would make getDropFileURl return null or fail to fake lmb up on carbon hardware layer, then can not move mouse back from client

This commit is contained in:
jerry 2013-09-24 10:33:29 +00:00
parent 57db3da6f3
commit e145fef76f
2 changed files with 12 additions and 18 deletions

View File

@ -920,19 +920,13 @@ COSXScreen::leave()
CString fileList(dragInfoCStr); CString fileList(dragInfoCStr);
size_t size = fileList.size(); size_t size = fileList.size();
if (!m_isPrimary) {
// fake esc key down and up // fake esc key down and up
fakeKeyDown(kKeyEscape, 8192, 1); fakeKeyDown(kKeyEscape, 8192, 1);
fakeKeyUp(1); fakeKeyUp(1);
fakeMouseButton(kButtonLeft, false); fakeMouseButton(kButtonLeft, false);
if (m_isPrimary) {
CServerApp& app = CServerApp::instance();
CServer* server = app.getServerPtr();
LOG((CLOG_DEBUG "send dragging file to client"));
server->sendFileToClient(dragInfoCStr);
}
else {
// fake ctrl key up // fake ctrl key up
fakeKeyUp(29); fakeKeyUp(29);
CClientApp& app = CClientApp::instance(); CClientApp& app = CClientApp::instance();

View File

@ -1741,11 +1741,6 @@ CServer::onMouseMovePrimary(SInt32 x, SInt32 y)
// should we switch or not? // should we switch or not?
if (isSwitchOkay(newScreen, dir, x, y, xc, yc)) { if (isSwitchOkay(newScreen, dir, x, y, xc, yc)) {
if (m_screen->getDraggingStarted() && m_active != newScreen) { if (m_screen->getDraggingStarted() && m_active != newScreen) {
// fake a escape key down and up then left mouse button up
m_screen->keyDown(kKeyEscape, 8192, 1);
m_screen->keyUp(kKeyEscape, 8192, 1);
m_screen->mouseUp(kButtonLeft);
CString& dragFileList = m_screen->getDraggingFileDir(); CString& dragFileList = m_screen->getDraggingFileDir();
size_t size = dragFileList.size() + 1; size_t size = dragFileList.size() + 1;
char* fileList = new char[size]; char* fileList = new char[size];
@ -1753,6 +1748,11 @@ CServer::onMouseMovePrimary(SInt32 x, SInt32 y)
fileList[size - 1] = '\0'; fileList[size - 1] = '\0';
UInt32 fileCount = 1; UInt32 fileCount = 1;
// fake a escape key down and up then left mouse button up
m_screen->keyDown(kKeyEscape, 8192, 1);
m_screen->keyUp(kKeyEscape, 8192, 1);
m_screen->mouseUp(kButtonLeft);
LOG((CLOG_DEBUG2 "sending drag information to client")); LOG((CLOG_DEBUG2 "sending drag information to client"));
LOG((CLOG_DEBUG3 "dragging file list: %s", fileList)); LOG((CLOG_DEBUG3 "dragging file list: %s", fileList));
LOG((CLOG_DEBUG3 "dragging file list string size: %i", size)); LOG((CLOG_DEBUG3 "dragging file list string size: %i", size));