/*
* Stubs for linking with other modules.
*/
-void write_clip (void *data, int len) { }
+void write_clip (void *data, int len, int must_deselect) { }
void term_deselect(void) { }
HANDLE outhandle;
return 1;
}
-int WINAPI stdin_read_thread(void *param) {
+static int WINAPI stdin_read_thread(void *param) {
struct input_data *idata = (struct input_data *)param;
HANDLE inhandle;
void free_ctx (Context);
void palette_set (int, int, int, int);
void palette_reset (void);
-void write_clip (void *, int);
+void write_clip (void *, int, int);
void get_clip (void **, int *);
void optimised_move (int, int, int);
void connection_fatal(char *, ...);
* (should) never get called.
*/
void begin_session(void) { }
-void write_clip (void *data, int len) { }
+void write_clip (void *data, int len, int must_deselect) { }
void term_deselect(void) { }
/* GUI Adaptation - Sept 2000 */
}
q = lineend + 1; /* start of next line */
}
- write_clip (selspace, p - selspace);
+ write_clip (selspace, p - selspace, FALSE);
selstate = SELECTED;
} else
selstate = NO_SELECTION;
char *clipdata;
static unsigned char sel_nl[] = SEL_NL;
+ if (count == 0) { /* can't copy zero stuff */
+ MessageBeep(0);
+ break;
+ }
+
size = 0;
for (i = 0; i < count; i++)
size += strlen(events[selitems[i]]) + sizeof(sel_nl);
memcpy(p, sel_nl, sizeof(sel_nl));
p += sizeof(sel_nl);
}
- write_clip(clipdata, size);
- term_deselect();
+ write_clip(clipdata, size, TRUE);
free(clipdata);
}
free(selitems);
+
+ for (i = 0; i < nevents; i++)
+ SendDlgItemMessage(hwnd, IDN_LIST, LB_SETSEL,
+ FALSE, i);
}
}
return 0;
}
}
-void write_clip (void *data, int len) {
+void write_clip (void *data, int len, int must_deselect) {
HGLOBAL clipdata;
void *lock;
((unsigned char *) lock) [len] = 0;
GlobalUnlock (clipdata);
- SendMessage (hwnd, WM_IGNORE_CLIP, TRUE, 0);
+ if (!must_deselect)
+ SendMessage (hwnd, WM_IGNORE_CLIP, TRUE, 0);
+
if (OpenClipboard (hwnd)) {
EmptyClipboard();
SetClipboardData (CF_TEXT, clipdata);
CloseClipboard();
} else
GlobalFree (clipdata);
- SendMessage (hwnd, WM_IGNORE_CLIP, FALSE, 0);
+
+ if (!must_deselect)
+ SendMessage (hwnd, WM_IGNORE_CLIP, FALSE, 0);
}
void get_clip (void **p, int *len) {