#define IDM_TEL_EOF 0x0130
#define IDM_ABOUT 0x0140
#define IDM_SAVEDSESS 0x0150
+#define IDM_COPYALL 0x0160
#define IDM_SAVED_MIN 0x1000
#define IDM_SAVED_MAX 0x2000
{
char *bits;
int size = (font_width+15)/16 * 2 * font_height;
- bits = calloc(size, 1);
+ bits = smalloc(size);
+ memset(bits, 0, size);
caretbm = CreateBitmap(font_width, font_height, 1, 1, bits);
- free(bits);
+ sfree(bits);
}
/*
AppendMenu (m, MF_POPUP | MF_ENABLED, (UINT) s, "Sa&ved Sessions");
AppendMenu (m, MF_ENABLED, IDM_RECONF, "Chan&ge Settings...");
AppendMenu (m, MF_SEPARATOR, 0, 0);
+ AppendMenu (m, MF_ENABLED, IDM_COPYALL, "C&opy All to Clipboard");
AppendMenu (m, MF_ENABLED, IDM_CLRSB, "C&lear Scrollback");
AppendMenu (m, MF_ENABLED, IDM_RESET, "Rese&t Terminal");
AppendMenu (m, MF_SEPARATOR, 0, 0);
if (!has_focus)
timer_id = SetTimer(hwnd, 1, 59500, NULL);
else
- timer_id = SetTimer(hwnd, 1, 250, NULL);
+ timer_id = SetTimer(hwnd, 1, 100, NULL);
long_timer = 1;
/* There's no point rescanning everything in the message queue
cl = c;
} else if (wParam == IDM_SAVEDSESS) {
char *session = sessions[(lParam - IDM_SAVED_MIN) / 16];
- cl = malloc(16 + strlen(session)); /* 8, but play safe */
+ cl = smalloc(16 + strlen(session)); /* 8, but play safe */
if (!cl)
cl = NULL; /* not a very important failure mode */
else {
if (filemap)
CloseHandle(filemap);
if (freecl)
- free(cl);
+ sfree(cl);
}
break;
case IDM_RECONF:
}
}
break;
+ case IDM_COPYALL:
+ term_copyall();
+ break;
case IDM_CLRSB:
term_clrsb();
break;
return -1;
}
if (left_alt && wParam == VK_SPACE && cfg.alt_space) {
-
+ PostMessage(hwnd, WM_CHAR, ' ', 0);
SendMessage (hwnd, WM_SYSCOMMAND, SC_KEYMENU, 0);
return -1;
}
}
}
- /* This stops ALT press-release doing a 'COMMAND MENU' function */
- if (!cfg.alt_only) {
- if (message == WM_SYSKEYUP && wParam == VK_MENU)
+ /* ALT alone may or may not want to bring up the System menu */
+ if (wParam == VK_MENU) {
+ if (cfg.alt_only) {
+ static int alt_state = 0;
+ if (message == WM_SYSKEYDOWN)
+ alt_state = 1;
+ else if (message == WM_SYSKEYUP && alt_state)
+ PostMessage(hwnd, WM_CHAR, ' ', 0);
+ if (message == WM_SYSKEYUP)
+ alt_state = 0;
+ } else
return 0;
}