Mercurial > emacs
view etc/TODO @ 40137:5f0d7d58283b
(remember_mouse_glyph): New function.
(w32_mouse_position): Use it.
(note_mouse_movement): If the mouse moved off the glyph, remember its
new position.
Sync with xterm.c:
(notice_overwritten_cursor): Renamed from note_overwritten_text_cursor.
Rewritten to take glyph widths into account.
(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.
(fast_find_position) [0]: Add a presumably more correct version for after 21.1.
(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_use_underline_position_properties): New variable.
(syms_of_xterm): DEFVAR_BOOL it.
(x_draw_glyph_string): Add comment to use it in future.
(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.
(x_dump_glyph_string): Put in #if GLYPH_DEBUG.
(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.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sun, 21 Oct 2001 15:20:03 +0000 |
parents | a0315327e2ed |
children | 57ff4380e1fe |
line wrap: on
line source
-*-text-*- * Port the conservative stack marking code of Emacs' garbage collector to more systems, so that we can completely get rid of GCPROs. * Program Enriched mode to read and save in RTF. [Is there actually a decent single definition of RTF?] * Implement other text formatting properties. ** Footnotes that can appear either in place or at the end of the page. ** text property that says "don't break line in middle of this". Don't break the line between two characters that have the same value of this property. ** Discretionary hyphens that are not visible when they are at end of line. * Implement something better than the current Refill mode. This probably needs some primitive support. * Implement a clean way to use different major modes for different parts of a buffer. * Give start-process the ability to direct standard-error output to a different filter. * Make compile.el record the markers that point to error loci on text properties in the error message lines. * Make desktop.el save the "frame configuration" of Emacs (in some useful sense). * Make movemail work with IMAP. * Add ANSI C prototype forward declarations to the source files, so that even the functions used within one file have prototypes. * Replace finder.el with something that generates an Info file which gives the same information through a menu structure. [Dave Love started on this.] * Implement a variant of uncompress.el or jka-compr.el that works with GNU Privacy Guard for encryption. [Code exists but isn't assigned.] * Save undo information in files, and reload it when needed for undoing. * Change the Windows NT menu code so that it handles the deep_p argument and avoids regenerating the whole menu bar menu tree except when the user tries to use the menubar. This requires the RIT to forward the WM_INITMENU message to the main thread, and not return from that message until the main thread has processed the menu_bar_activate_event and regenerated the whole menu bar. In the mean time, it should process other messages. * Make Emacs work as a Java Bean. * Implement the design for Unicode-based internal encoding for Mule. * Document the features of libraries missing from the manual (or ancillary manuals, including the Lisp manual in some cases). Here's a list which is probably not complete/correct: align, allout, artist, ansi-color, array, battery, calculator, cdl, cmuscheme, completion, delim-col, dirtrack, double, echistory, elide-head, easymenu, expand, flow-ctrl, format [format-alist], generic/generic-x [various modes], kermit, log-edit, ledit [obsolete?], makesum, midnight [other than in Kill Buffer node], mouse-copy [?], mouse-drag, mouse-sel, net-utils, rcompile, snmp-mode [?], soundex [should be interactive?], strokes [start from the web page], talk, thingatpt [interactive functions?], type-break, vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, iso-swed, swedish, feedmail [?], uce, bruce, gametree, meese, page-ext, refbib, refer, scribe, sgml-mode, spell, texinfo, underline, cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, cvs-status (should be described in PCL-CVS manual); other progmodes, probably in separate manual. * Get some major packages installed: W3/url (development version needs significant work), PSGML, Mule-UCS, Tramp (?). Check the assignments file for other packages which might go in and have been missed. * Make keymaps a first-class Lisp object (this means a rewrite of keymap.c). What should it do apart from being opaque ? multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? what else ? * Provide real menus on ttys. The MS-DOS implementation can serve as an example how to do part of this. * Implement popular parts of the rest of the CL functions as compiler macros in cl-macs. * Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). * Support simultaneous tty and X frames. * Implement primitive and higher-level functions to allow filling properly with variable-pitch faces. * Provide MIME support for Rmail using the Gnus MIME library. * Eliminate the storm of warnings concerning char/unsigned char mismatches that we get with proprietary compilers on various systems. They make it difficult to spot the important warnings. * Fix anything necessary to use `long long' EMACS_INTs with GCC. * Split out parts of lisp.h and generate Makefile dependencies automatically. * Update the FAQ. * Allow auto-compression-mode to use zlib calls if zlib is available. [It's required for PNG, so may be linked anyhow.] * Add a --pristine startup flag which does -q --no-site-file plus ignoring X resources (Doze equivalents?) and most of the environment. What should not be ignored needs consideration. * Investigate using the language environment (or locale?) to set up more things, such as the default Ispell dictionary, calendar holidays... * Improve the GC (generational, incremental). (We may be able to use the Boehm collector.) * Port Emacs to GTK+. (Relevant work has been done already.) * Make the Lucid menu widget display multilingual text. * Implement, in C, a ``focus follows mouse'' mode that selects a window when the mouse enters it. * Check what hooks would help Emacspeak -- see the defadvising in W3. * Implement some variety of (non-gtk) drag-and-drop support under X. Using libdnd might be a good start. * Remove the limitation that window and frame widths and heights can be only full columns/lines. * Add horizontal scroll bars. * Integrate Vroonhof's Custom themes code and make it do useful things. [The integration is partly done.] * Provide an optional feature which computes a scroll bar slider's size and its position from lines instead of characters. * Adapt the gnuserv/gnudoit features for server/emacsclient. * Remove the special treatment of binary files by DOS and Windows ports. They should use find-file-literally and `no-conversion' instead. * Investigate using GNU Lightning or similar system for incremental compilation of selected bytecode functions to subrs. Converting CCL programs to native code is probably the first thing to try, though. * Add a feature to Info similar to "info --apropos SUBJECT". * If you do an insert-file and that file is currently modified in another buffer but not written yet, print a warning. * Add support for SVG (Scalable Vector Graphics) rendering to Emacs. * Use the XIE X extension, if available, for image display. * Rewrite make-docfile to something sane.