Fix remote desktop cursor cross-contamination across dialogs
The view-mode "forbidden" cursor was applied with SetClassLongPtr(GCLP_HCURSOR), which mutates the cursor for the whole window class instead of the single dialog instance. Opening a second remote-desktop dialog without remote control overwrote that shared class cursor with IDC_NO, so the already-controlled dialog also began showing the forbidden icon even though it remained operable. Move the view-mode cursor decision into OnSetCursor, which Windows routes per window, and remove the now-unused class-cursor assignments. Remote-control mode and the remote cursor-shape path are left unchanged. Also drop the dead m_hRemoteCursor member and the leftover GetIconInfo block (which leaked hbmMask/hbmColor in ScreenSpyDlg), plus the now-unreferenced m_bMouseTracking flag. Co-Authored-By: deepseek-v4-pro
This commit is contained in:
@@ -274,13 +274,11 @@ public:
|
||||
clock_t m_lastMouseMove; // 鼠标移动时间
|
||||
POINT m_lastMousePoint;// 上次鼠标位置
|
||||
BOOL m_bAdaptiveSize = TRUE;
|
||||
HCURSOR m_hRemoteCursor = NULL;
|
||||
HCURSOR m_hCustomCursor = NULL; // 缓存的自定义光标
|
||||
DWORD m_dwCustomCursorHash = 0; // 当前自定义光标哈希
|
||||
CRect m_CRect;
|
||||
double m_wZoom=1, m_hZoom=1;
|
||||
int m_offsetX=0, m_offsetY=0; // 自适应模式黑边偏移(像素)
|
||||
bool m_bMouseTracking = false;
|
||||
|
||||
// 自适应黑边合成缓冲(按窗口尺寸缓存,避免每帧分配 GDI 资源)
|
||||
HDC m_hComposeDC = NULL;
|
||||
|
||||
Reference in New Issue
Block a user