diff --git a/0.76_My_PuTTY/terminal.c b/0.76_My_PuTTY/terminal.c index 30bc319..f8100c7 100644 --- a/0.76_My_PuTTY/terminal.c +++ b/0.76_My_PuTTY/terminal.c @@ -3560,6 +3560,10 @@ static void do_osc(Terminal *term) if (OpenClipboard(NULL)) { + // some clients don't flush the buffer before setting data, + // so we'll do that here just in case + EmptyClipboard(); + if (!SetClipboardData(fmt, (HANDLE)hData)) { GlobalFree(hData); } else { diff --git a/0.76_My_PuTTY/windows/window.c b/0.76_My_PuTTY/windows/window.c index 76a0397..80b06b6 100644 --- a/0.76_My_PuTTY/windows/window.c +++ b/0.76_My_PuTTY/windows/window.c @@ -5702,8 +5702,8 @@ if( (GetKeyState(VK_MENU)&0x8000) && (wParam==VK_SPACE) ) { // Using bits not used by any other status for backward compatibility. #define RIGHT_SHIFT_PRESSED 0x0400 #define LEFT_SHIFT_PRESSED 0x0200 - if (GetAsyncKeyState(VK_LSHIFT)) { ctrl |= RIGHT_SHIFT_PRESSED; } - if (GetAsyncKeyState(VK_RSHIFT)) { ctrl |= LEFT_SHIFT_PRESSED; } + if (GetAsyncKeyState(VK_LSHIFT)) { ctrl |= SHIFT_PRESSED; ctrl |= RIGHT_SHIFT_PRESSED; } + if (GetAsyncKeyState(VK_RSHIFT)) { ctrl |= SHIFT_PRESSED; ctrl |= LEFT_SHIFT_PRESSED; } // end if ((lParam & ( 1 << 24 )) >> 24) { ctrl |= ENHANCED_KEY; } if ((((u_short)GetKeyState(VK_NUMLOCK)) & 0xffff) != 0) { ctrl |= NUMLOCK_ON; } diff --git a/0.76b_My_PuTTY/terminal/terminal.c b/0.76b_My_PuTTY/terminal/terminal.c index f33e77c..3b9ee7b 100644 --- a/0.76b_My_PuTTY/terminal/terminal.c +++ b/0.76b_My_PuTTY/terminal/terminal.c @@ -3559,6 +3559,10 @@ static void do_osc(Terminal *term) if (OpenClipboard(NULL)) { + // some clients don't flush the buffer before setting data, + // so we'll do that here just in case + EmptyClipboard(); + if (!SetClipboardData(fmt, (HANDLE)hData)) { GlobalFree(hData); } else { diff --git a/0.76b_My_PuTTY/windows/window.c b/0.76b_My_PuTTY/windows/window.c index ace39fe..f32ba47 100644 --- a/0.76b_My_PuTTY/windows/window.c +++ b/0.76b_My_PuTTY/windows/window.c @@ -5702,8 +5702,8 @@ if( (GetKeyState(VK_MENU)&0x8000) && (wParam==VK_SPACE) ) { // Using bits not used by any other status for backward compatibility. #define RIGHT_SHIFT_PRESSED 0x0400 #define LEFT_SHIFT_PRESSED 0x0200 - if (GetAsyncKeyState(VK_LSHIFT)) { ctrl |= RIGHT_SHIFT_PRESSED; } - if (GetAsyncKeyState(VK_RSHIFT)) { ctrl |= LEFT_SHIFT_PRESSED; } + if (GetAsyncKeyState(VK_LSHIFT)) { ctrl |= SHIFT_PRESSED; ctrl |= RIGHT_SHIFT_PRESSED; } + if (GetAsyncKeyState(VK_RSHIFT)) { ctrl |= SHIFT_PRESSED; ctrl |= LEFT_SHIFT_PRESSED; } // end if ((lParam & ( 1 << 24 )) >> 24) { ctrl |= ENHANCED_KEY; } if ((((u_short)GetKeyState(VK_NUMLOCK)) & 0xffff) != 0) { ctrl |= NUMLOCK_ON; }