caretbm = CreateBitmap(font_width, font_height, 1, 1, bits);
sfree(bits);
}
+ CreateCaret(hwnd, caretbm, font_width, font_height);
/*
* Initialise the scroll bar.
static int ignore_clip = FALSE;
static int just_reconfigged = FALSE;
static int resizing = FALSE;
+ static int need_backend_resize = FALSE;
switch (message) {
case WM_TIMER:
{
int prev_alwaysontop = cfg.alwaysontop;
int need_setwpos = FALSE;
+ int old_fwidth, old_fheight;
cfg.width = cols;
cfg.height = rows;
+ old_fwidth = font_width;
+ old_fheight = font_height;
if (!do_reconfig(hwnd))
break;
just_reconfigged = TRUE;
if (cfg.height != rows ||
cfg.width != cols ||
+ old_fwidth != font_width ||
+ old_fheight != font_height ||
cfg.savelines != savelines)
need_setwpos = TRUE;
term_size(cfg.height, cfg.width, cfg.savelines);
return 0;
case WM_SETFOCUS:
has_focus = TRUE;
- CreateCaret(hwnd, caretbm, 0, 0);
+ CreateCaret(hwnd, caretbm, font_width, font_height);
ShowCaret(hwnd);
compose_state = 0;
term_out();
case WM_ENTERSIZEMOVE:
EnableSizeTip(1);
resizing = TRUE;
+ need_backend_resize = FALSE;
break;
case WM_EXITSIZEMOVE:
EnableSizeTip(0);
resizing = FALSE;
- back->size();
+ if (need_backend_resize)
+ back->size();
break;
case WM_SIZING:
{
*/
if (!resizing)
back->size();
+ else
+ need_backend_resize = TRUE;
just_reconfigged = FALSE;
}
}