static WPARAM pend_netevent_wParam = 0;
static LPARAM pend_netevent_lParam = 0;
static void enact_pending_netevent(void);
+static void flash_window(int mode);
static time_t last_movement = 0;
term_out();
term_update();
ShowCaret(hwnd);
+
+ flash_window(1); /* maintain */
+
if (in_vbell)
/* Hmm, term_update didn't want to do an update too soon ... */
timer_id = SetTimer(hwnd, 1, 50, NULL);
else if (!has_focus)
- timer_id = SetTimer(hwnd, 1, 2000, NULL);
+ timer_id = SetTimer(hwnd, 1, 500, NULL);
else
timer_id = SetTimer(hwnd, 1, 100, NULL);
long_timer = 1;
return cfg.mouse_is_xterm ? MBT_PASTE : MBT_EXTEND;
if (button == MBT_RIGHT)
return cfg.mouse_is_xterm ? MBT_EXTEND : MBT_PASTE;
+ return 0; /* shouldn't happen */
}
static void show_mouseptr(int show)
button = MBT_RIGHT;
press = 0;
break;
+ default:
+ button = press = 0; /* shouldn't happen */
}
show_mouseptr(1);
if (press) {
if (wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) {
Mouse_Button b;
if (wParam & MK_LBUTTON)
- b = MBT_SELECT;
+ b = MBT_LEFT;
else if (wParam & MK_MBUTTON)
- b = cfg.mouse_is_xterm ? MBT_PASTE : MBT_EXTEND;
+ b = MBT_MIDDLE;
else
- b = cfg.mouse_is_xterm ? MBT_EXTEND : MBT_PASTE;
+ b = MBT_RIGHT;
term_mouse(b, MA_DRAG, TO_CHR_X(X_POS(lParam)),
TO_CHR_Y(Y_POS(lParam)), wParam & MK_SHIFT,
wParam & MK_CONTROL);
has_focus = TRUE;
CreateCaret(hwnd, caretbm, font_width, font_height);
ShowCaret(hwnd);
+ flash_window(0); /* stop */
compose_state = 0;
term_out();
term_update();
clipdata = NULL;
return;
} else if (OpenClipboard(NULL)) {
- if (clipdata = GetClipboardData(CF_UNICODETEXT)) {
+ if ((clipdata = GetClipboardData(CF_UNICODETEXT))) {
CloseClipboard();
*p = GlobalLock(clipdata);
if (*p) {
*len = p2 - *p;
return;
}
- } else if (clipdata = GetClipboardData(CF_TEXT)) {
+ } else if ( (clipdata = GetClipboardData(CF_TEXT)) ) {
char *s;
int i;
CloseClipboard();
}
/*
+ * Manage window caption / taskbar flashing, if enabled.
+ * 0 = stop, 1 = maintain, 2 = start
+ */
+static void flash_window(int mode)
+{
+ static long last_flash = 0;
+ static int flashing = 0;
+ if ((mode == 0) || (cfg.beep_ind == B_IND_DISABLED)) {
+ /* stop */
+ if (flashing) {
+ FlashWindow(hwnd, FALSE);
+ flashing = 0;
+ }
+
+ } else if (mode == 2) {
+ /* start */
+ if (!flashing) {
+ last_flash = GetTickCount();
+ flashing = 1;
+ FlashWindow(hwnd, TRUE);
+ }
+
+ } else if ((mode == 1) && (cfg.beep_ind == B_IND_FLASH)) {
+ /* maintain */
+ if (flashing) {
+ long now = GetTickCount();
+ long fdiff = now - last_flash;
+ if (fdiff < 0 || fdiff > 450) {
+ last_flash = now;
+ FlashWindow(hwnd, TRUE); /* toggle */
+ }
+ }
+ }
+}
+
+/*
* Beep.
*/
void beep(int mode)
cfg.beep = BELL_DEFAULT;
}
}
+ /* Otherwise, either visual bell or disabled; do nothing here */
+ if (!has_focus) {
+ flash_window(2); /* start */
+ }
}