Mercurial > emacs
diff src/xterm.c @ 83019:82c3b4da43ca
Merged in changes from CVS HEAD
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-33
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-34
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-35
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-36
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-37
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-38
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-39
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-40
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-41
Make fringe-drawing stuff compile without a window-system
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-42
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-43
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-44
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-45
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-46
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-47
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-48
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-49
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-50
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-59
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Thu, 22 Jan 2004 15:37:19 +0000 |
parents | c4d4cbf86260 0bb1ce3944cd |
children | bf5b5fb49420 |
line wrap: on
line diff
--- a/src/xterm.c Thu Jan 22 02:36:55 2004 +0000 +++ b/src/xterm.c Thu Jan 22 15:37:19 2004 +0000 @@ -571,6 +571,9 @@ output_cursor.x, output_cursor.y); x_draw_vertical_border (w); + + draw_window_fringes (w); + UNBLOCK_INPUT; } @@ -650,11 +653,7 @@ xassert (w); if (!desired_row->mode_line_p && !w->pseudo_window_p) - { - BLOCK_INPUT; - draw_row_fringe_bitmaps (w, desired_row); - UNBLOCK_INPUT; - } + desired_row->redraw_fringe_bitmaps_p = 1; /* When a window has disappeared, make sure that no rest of full-width rows stays visible in the internal border. Could @@ -698,9 +697,24 @@ Window window = FRAME_X_WINDOW (f); GC gc = f->output_data.x->normal_gc; struct face *face = p->face; + int rowY; /* Must clip because of partially visible lines. */ - x_clip_to_row (w, row, gc); + rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); + if (p->y < rowY) + { + /* Adjust position of "bottom aligned" bitmap on partially + visible last row. */ + int oldY = row->y; + int oldVH = row->visible_height; + row->visible_height = p->h; + row->y -= rowY - p->y; + x_clip_to_row (w, row, gc); + row->y = oldY; + row->visible_height = oldVH; + } + else + x_clip_to_row (w, row, gc); if (p->bx >= 0) { @@ -6314,6 +6328,11 @@ &compose_status); #endif + /* If not using XIM/XIC, and a compose sequence is in progress, + we break here. Otherwise, chars_matched is always 0. */ + if (compose_status.chars_matched > 0 && nbytes == 0) + break; + orig_keysym = keysym; if (numchars > 1) @@ -7452,6 +7471,13 @@ w->phys_cursor_type = cursor_type; w->phys_cursor_on_p = 1; + if (glyph_row->exact_window_width_line_p + && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]) + { + glyph_row->cursor_in_fringe_p = 1; + draw_fringe_bitmap (w, glyph_row, 0); + } + else switch (cursor_type) { case HOLLOW_BOX_CURSOR: