Jason Rumney [Sat, 17 Nov 2001 17:40:47 +0000 (17:40 +0000)]
(x_draw_bar_cursor): If the background color of the
glyph under the cursor equals the frame's cursor color, use
the glyph's foreground color for drawing the bar cursor.
(x_after_update_window_line): Clear internal border
in different circumstances.
(w32_set_vertical_scroll_bar): Check for width and height > 0.
(w32_draw_relief_rect): Correct relief by 1 pixel.
(x_set_glyph_string_background_width): Set
extends_to_end_of_line_p if the row's fill_line_p is set and
drawing the last glyph with DRAW_IMAGE_{RAISED,SUNKEN}.
(x_display_and_set_cursor): If cursor_in_echo_area,
use NO_CURSOR if cursor_in_non_selected_windows is false.
(show_mouse_face): Clean up. Recognize overwritten
cursor differently.
(x_draw_glyphs): Remove parameters READ_START and
REAL_END. Notice if cursor gets overwritten.
(notice_overwritten_cursor): Renamed from
note_overwritten_text_cursor. Rewritten to take glyph widths
into account, and to take X positions as parameters.
(x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
around call to x_draw_glyphs.
Gerd Moellmann [Thu, 15 Nov 2001 11:03:48 +0000 (11:03 +0000)]
(x_draw_bar_cursor): If the background color of the
glyph under the cursor equals the frame's cursor color, use
the glyph's foreground color for drawing the bar cursor.
André Spiegel [Wed, 14 Nov 2001 13:50:58 +0000 (13:50 +0000)]
(vc-diff-internal, vc-coding-system-for-diff)
(vc-default-diff-tree): New functions.
(vc-version-diff): Use them. As a result, coding systems are now
set up properly for all sorts of diffs, and tree diffs can now
also be done locally.
(vc-diff): With a prefix argument, don't require that it's called
from a buffer under version control.
(XTread_socket): Don't update focus for EnterNotify or
LeaveNotify events. Only FocusIn and FocusOut do that now.
(x_display_and_set_cursor): Do display hollow cursors in active
minibuffer windows when they are not selected.
Jason Rumney [Sat, 10 Nov 2001 13:25:12 +0000 (13:25 +0000)]
(single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
Protect unibyte strings created by replacing their multibyte
equivalents in menu_items.
(w32_menu_show): Don't overwrite an item's name with its key
description in case the description is a multibyte string.
(single_submenu): Some cleanup.
Jason Rumney [Sat, 10 Nov 2001 13:24:02 +0000 (13:24 +0000)]
(Fx_file_dialog): Pass a filter to GetOpenFileName.
(enum_font_cb2): Ignore fonts starting with @, unless explicitly
specified.
(x_set_foreground_color): Set frame's cursor_pixel.
(x_set_font): Handle case of x_new_fontset returning the same name
as before, although there was a change in fontsets.
Jason Rumney [Sat, 10 Nov 2001 13:20:57 +0000 (13:20 +0000)]
(remember_mouse_glyph): New function.
(w32_mouse_position): Use it.
(note_mouse_movement): If the mouse moved off the glyph, remember
its new position.
(x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
(fast_find_string_pos): New function.
(fast_find_position): Return the correct vpos. Add parameter
STOP. In the final row, stop before glyphs having STOP as object.
Don't consider glyphs that are not from a buffer.
(expose_window_tree, expose_frame): Don't compute intersections here.
(expose_window): Do it here instead.
(expose_window_tree, expose_window, expose_line): Return 1 when
overwriting mouse-face.
(expose_window): If W is the window currently being updated, mark
the frame garbaged.
(expose_frame): If mouse-face was overwritten, redo it.
(x_draw_glyph_string): Restore clipping after drawing box.
Fix a computation of the underline position.
(w32_get_glyph_string_clip_rect): Minor cleanup.
(x_fill_stretch_glyph_string): Remove an assertion.
(x_produce_glyphs): Don't convert multibyte characters
to unibyte characters in unibyte buffers.
(cursor_in_mouse_face_p): New function.
(x_draw_stretch_glyph_string): Use it to choose a different GC
when drawing a cursor within highlighted text. Don't draw
background again if it has already been drawn.
(x_draw_glyph_string_box): Don't draw a full-width
box just because the glyph row's full_width_p flag is set.
(x_draw_glyphs): Fix computation of rightmost x for
full-width rows.
(w32_draw_relief_rect): Extend left shadow to the bottom and left;
change bottom shadow accordingly. Some cleanup.
(x_update_window_end): Handle overwritten mouse face
also for tool bar windows.
(show_mouse_face): Set the glyph row's mouse_face_p flag also when
DRAW is DRAW_IMAGE_RAISED.
(clear_mouse_face): Return 1 if text with mouse face was
actually redrawn. Make the function static. Reset
dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
optimize away highlighting if we pass over that same overlay again.
(note_mouse_highlight): Call mouse_face_overlay_overlaps
to detect a case where we have to highlight a different region
despite not having left the currently highlighted region.
Set mouse_face_overlay in the x_display_info. Avoid changing the
mouse pointer shape when show_mouse_face has already done it, or
there is no need. Handle mouse-face and help-echo in strings.
(glyph_rect): New function.
(w32_mouse_position): Use it to raise the threshold for mouse
movement event generation.
(w32_initialize_display_info): Initialize the x_display_info's
mouse_face_overlay.
(w32_set_vertical_scroll_bar): Don't clear a zero height
or width area.
(w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
a widget to zero height.
Gerd Moellmann [Thu, 1 Nov 2001 13:10:58 +0000 (13:10 +0000)]
(command-line): If the terminal Emacs is running on
has erase char set to ^H, use the Backspace key for deleting
backward, and the Delete key for deleting forward.