+2001-02-09 Jason Rumney <jasonr@gnu.org>
+
+ * w32term.c (w32_encode_char): Treat eight bit graphic and control
+ characters the same as ASCII and latin-1.
+ (x_display_and_set_cursor): Check for the focus frame's selected
+ window instead of selected_window.
+ (x_after_update_window_line): Don't clear if frame's internal
+ border width is zero.
+ (x_new_font): Don't change a tooltip's size.
+ (w32_initialize): Set char_ins_del_ok to 1.
+
+ * w32fns.c (Fx_show_tip): Fix calls to make_number.
+ (x_set_font): If font hasn't changed, avoid recomputing
+ faces and other things.
+ (x_set_tool_bar_lines): Do nothing if frame is
+ minibuffer-only,
+ (Fx_create_frame): Add the tool bar height to the frame
+ height.
+ (x_create_tip_frame): Prevent changing the tooltip's
+ background color by specifying a color for the default font
+ in .Xdefaults.
+ (Qcancel_timer): New variable.
+ (syms_of_w32fns): Initialize and staticpro it.
+ (Fx_hide_tip, Fx_show_tip): Use it.
+ (Fx_show_tip): Make sure to set tip_timer to nil when canceling
+ the timer.
+ (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
+
+ * w32.c (init_environment): Duplicate local string before putenv.
+
2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
* charset.c (Fstring): A typo.
if (!desired_row->mode_line_p && !w->pseudo_window_p)
{
+ struct frame *f;
+ int width;
+
BLOCK_INPUT;
x_draw_row_bitmaps (w, desired_row);
/* When a window has disappeared, make sure that no rest of
full-width rows stays visible in the internal border. */
- if (windows_or_buffers_changed)
+ if (windows_or_buffers_changed
+ && (f = XFRAME (w->frame),
+ width = FRAME_INTERNAL_BORDER_WIDTH (f),
+ width != 0))
{
- struct frame *f = XFRAME (w->frame);
- int width = FRAME_INTERNAL_BORDER_WIDTH (f);
int height = desired_row->visible_height;
int x = (window_box_right (w, -1)
+ FRAME_X_RIGHT_FLAGS_AREA_WIDTH (f));
/* If charset is not ASCII or Latin-1, may need to move it into
Unicode space. */
if ( font && !font->bdf && w32_use_unicode_for_codepage (codepage)
- && charset != CHARSET_ASCII && charset != charset_latin_iso8859_1)
+ && charset != CHARSET_ASCII && charset != charset_latin_iso8859_1
+ && charset != CHARSET_8_BIT_CONTROL && charset != CHARSET_8_BIT_GRAPHIC)
{
char temp[3];
temp[0] = BYTE1 (*char2b);
}
else
{
- if (w != XWINDOW (selected_window)
- || f != FRAME_W32_DISPLAY_INFO (f)->w32_highlight_frame)
+ if (f != FRAME_W32_DISPLAY_INFO (f)->w32_highlight_frame
+ || w != XWINDOW (f->selected_window))
{
extern int cursor_in_non_selected_windows;
if (FRAME_W32_WINDOW (f) != 0)
{
frame_update_line_height (f);
- x_set_window_size (f, 0, f->width, f->height);
+ if (NILP (tip_frame) || XFRAME (tip_frame) != f)
+ x_set_window_size (f, 0, f->width, f->height);
}
else
/* If we are setting a new frame's font for the first time,
estimate_mode_line_height_hook = x_estimate_mode_line_height;
scroll_region_ok = 1; /* we'll scroll partial frames */
- char_ins_del_ok = 0; /* just as fast to write the line */
+ char_ins_del_ok = 1;
line_ins_del_ok = 1; /* we'll just blt 'em */
fast_clear_end_of_line = 1; /* X does this well */
memory_below_frame = 0; /* we don't remember what scrolls