Telnet specials menu was not being reinstated after a session was restarted in
[u/mdw/putty] / unix / pterm.c
index cc47d1d..da1bc8d 100644 (file)
@@ -2078,7 +2078,7 @@ void do_cursor(Context ctx, int x, int y, wchar_t *text, int len,
            gdk_draw_rectangle(inst->pixmap, gc, 0,
                               x*inst->font_width+inst->cfg.window_border,
                               y*inst->font_height+inst->cfg.window_border,
-                              len*inst->font_width-1, inst->font_height-1);
+                              len*widefactor*inst->font_width-1, inst->font_height-1);
        }
     } else {
        int uheight;
@@ -2100,7 +2100,7 @@ void do_cursor(Context ctx, int x, int y, wchar_t *text, int len,
            starty = y * inst->font_height + inst->cfg.window_border + uheight;
            dx = 1;
            dy = 0;
-           length = len * char_width;
+           length = len * widefactor * char_width;
        } else {
            int xadjust = 0;
            if (attr & TATTR_RIGHTCURS)
@@ -2737,8 +2737,8 @@ void setup_fonts_ucs(struct gui_data *inst)
     inst->font_width = gdk_char_width(inst->fonts[0], ' ');
     inst->font_height = inst->fonts[0]->ascent + inst->fonts[0]->descent;
 
-    inst->direct_to_font = init_ucs(&inst->ucsdata,
-                                   inst->cfg.line_codepage, font_charset,
+    inst->direct_to_font = init_ucs(&inst->ucsdata, inst->cfg.line_codepage,
+                                   inst->cfg.utf8_override, font_charset,
                                    inst->cfg.vtmode);
 }
 
@@ -3217,7 +3217,6 @@ static void start_backend(struct gui_data *inst)
        sfree(title);
     }
     inst->back->provide_logctx(inst->backhandle, inst->logctx);
-    update_specials_menu(inst);
 
     term_provide_resize_fn(inst->term, inst->back->size, inst->backhandle);
 
@@ -3436,6 +3435,8 @@ int pt_main(int argc, char **argv)
        inst->specialsitem1 = menuitem;
        MKMENUITEM(NULL, NULL);
        inst->specialsitem2 = menuitem;
+       gtk_widget_hide(inst->specialsitem1);
+       gtk_widget_hide(inst->specialsitem2);
        MKMENUITEM("Clear Scrollback", clear_scrollback_menuitem);
        MKMENUITEM("Reset Terminal", reset_terminal_menuitem);
        MKMENUITEM("Copy All", copy_all_menuitem);