void clipboard_active(HWND hwnd, int active)
{
clipactive = active;
- if (!initialized)
+ if (!initialized || !hwnd)
return;
if (clipactive && clipboard_change) {
clipboard_read(NULL, hwnd, false);
static void *tablet;
HCURSOR normalcursor;
static HWND hwndNextViewer;
+static bool clipboard_initialized;
HANDLE AVTask;
static int all_events_disabled;
static int mainthreadid;
#endif
DragAcceptFiles(hWnd, TRUE);
normalcursor = LoadCursor(NULL, IDC_ARROW);
- if (mon->monitor_id == 0 && !hwndNextViewer) {
+ if (!clipboard_initialized) {
+ clipboard_initialized = true;
hwndNextViewer = SetClipboardViewer(hWnd);
clipboard_init(hWnd);
}
return 0;
case WM_DESTROY:
+ clipboard_initialized = false;
if (device_change_timer)
KillTimer(hWnd, 4);
device_change_timer = 0;
break;
case WM_CHANGECBCHAIN:
- if (mon->monitor_id == 0 && hwndNextViewer) {
+ if (clipboard_initialized) {
if ((HWND)wParam == hwndNextViewer)
hwndNextViewer = (HWND)lParam;
else if (hwndNextViewer != NULL)
}
break;
case WM_DRAWCLIPBOARD:
- if (mon->monitor_id == 0 && hwndNextViewer) {
+ if (clipboard_initialized) {
clipboard_changed(hWnd);
SendMessage(hwndNextViewer, message, wParam, lParam);
return 0;