aboutsummaryrefslogtreecommitdiffstats
path: root/src/xfaces.c
Commit message (Collapse)AuthorAgeFilesLines
* (compute_char_face): Extract overlay-sorting code as a separate function,Karl Heuer1994-02-091-69/+4
| | | | which is now in buffer.c.
* (init_frame_faces): Clear FRAME_N_COMPUTED_FACESRichard M. Stallman1994-02-061-9/+13
| | | | | | and FRAME_SIZE_COMPUTED_FACES. (compute_glyph_face): New arg CURRENT_FACE specifies face to merge with.
* (compute_char_face): Accept new arg LIMIT.Richard M. Stallman1993-11-201-4/+9
| | | | Pass Fnext_single_property_change its new arg LIMIT.
* Include <config.h> instead of "config.h".Roland McGrath1993-09-101-1/+1
|
* (face_name_id_number): Use assq_no_quit, not Fassq.Richard M. Stallman1993-07-241-1/+1
|
* * xfaces.c [XOS_NEEDS_TIME_H]: #undef USG while #includingJim Blandy1993-07-051-9/+11
| | | | | <X11/Xos.h>, so that file doesn't try to define struct timeval and struct timezone.
* Separate parameter faces (those created and modified by the user)Jim Blandy1993-06-221-128/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from the computed faces (the combinations created by compute_char_face), so that we don't waste global face id's. * xterm.h (struct x_display): Replace the fields faces and n_faces with fields param_faces, n_param_faces, computed_faces, n_computed_faces, and size_computed_faces. (FRAME_FACES, FRAME_N_FACES): Replaced by... (FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES, FRAME_N_PARAM_FACES): New macros. * xfaces.c: Doc fixes. (init_frame_faces): Call new_computed_face to create entries for the default and mode line faces. Use the FRAME...PARAM_FACES macros. (free_frame_faces): Use the FRAME...PARAM_FACES and FRAME...COMPUTED_FACES macros. Don't use the copy flag; all parameter faces have real X resources, and all computed faces just have copies. Free both the parameter and computed face arrays. (new_computed_face): New function. (intern_computed_face): Renamed from intern_frame_face; callers changed. Call new_computed_face. (ensure_face_ready, compute_char_face, compute_glyph_face): Use the FRAME...PARAM_FACES macros. (recompute_basic_faces): Use the FRAME...PARAM_FACES and FRAME...COMPUTED_FACES macros. Produce the computed faces by starting with the base faces and merging in the parameter faces. (Fset_face_attribute_internal): Use the FRAME...PARAM_FACES macros. Just call recompute_basic_faces if the default or mode line faces have changed. * xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros. * xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros. * dispextern.h (struct face): Remove the copy member. This is no longer necessary; all computed faces are copies, and no parameter faces are. * xfaces.c (face_vector, nfaces, nfaces_allocated): Make these static.
* * xfaces.c (recompute_basic_faces): This shouldn't be declared static.Jim Blandy1993-06-191-1/+1
|
* * xfaces.c: Add forward declaration for recompute_basic_faces.Jim Blandy1993-06-191-4/+5
|
* * xfaces.c (compute_base_face): Initialize the face's stipple.Jim Blandy1993-06-171-0/+4
| | | | | | | Although we don't use this feature now, face_eql notices it. * xfaces.c (compute_base_face): Set cached_index to an invalid index, to avoid an unnecessary comparison.
* * xfaces.c (init_frame_faces): Remove assumption that the selectedJim Blandy1993-06-091-14/+26
| | | | frame must be an X frame whenever there is already an X frame.
* (same_size_fonts): Compare only the width.Richard M. Stallman1993-06-061-2/+9
|
* Test XOS_NEEDS_TIME_H, not HPUX, for including time.hj.Richard M. Stallman1993-06-021-2/+2
|
* (init_frame_faces): Don't look at selected_frame unless it is an X frame.Richard M. Stallman1993-06-011-8/+9
|
* * xfaces.c (unload_color): Don't #include <X11/Intrinsic.h>,Jim Blandy1993-05-301-2/+6
| | | | | | <X11/StringDefs.h>, or <X11/Xmu/Drawing.h>. Just write out "unsigned long" instead of using the "Pixel" typedef; it's in the protocol, so it's not likely to change.
* Fix HPUX conditional syntax.Richard M. Stallman1993-05-301-1/+1
|
* * xfaces.c (init_frame_faces): We have to make sure that face ID'sJim Blandy1993-05-301-1/+20
| | | | | are valid on all frames or no frames; make sure F has allocated faces for any face valid on the selected frame.
* [HPUX]: Include time.h and define __TIMEVAL__.Richard M. Stallman1993-05-291-0/+6
|
* * xterm.h: New section for declarations for xfaces.c.Jim Blandy1993-05-251-64/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (init_frame_faces, free_frame_faces, intern_face, face_name_id_number, same_size_fonts, recompute_basic_faces, compute_char_face, compute_glyph_face): Declare these here. * xfaces.c (same_size_fonts): We can now remove this extern declaration. * xfns.c (face_name_id_number): Likewise. * xterm.c (intern_face): Likewise. * xfaces.c (build_face, unload_font, free_frame_faces): Don't forget to block input while making X calls. Treat faces as structures specifying modifications to the frame's parameters, rather than things which need to specify a complete set of parameters by themselves. * xfaces.c (init_frame_faces): Don't set up the two frame display faces by querying the GC - just leave all their fields blank, and call recompute_basic_faces, letting build_face do the work of consulting the frame when necessary. (recompute_basic_faces): New function. (compute_base_faces): New function for obtaining the "identity" for compute_char_face and compute_glyph_face. (compute_char_face, compute_glyph_face): Call it, instead of copying FRAME_DEFAULT_FACE. * xfns.c (x_make_gc): No need to call init_frame_faces here. * xfaces.c (intern_frame_face): This can be static. * dispextern.h (struct face): New field - `copy', to help us with resource allocation. * xfaces.c (free_frame_faces): Do free the first two faces; don't free anything from a face that's a copy. (intern_frame_face): Mark every face we intern as a copy; its resources are actually a combination of the real faces. (Fset_face_attribute_internal): No need to check if we're trying to free one of the frame's GC's; they never enter into the picture. * xfns.c (Fx_list_fonts): New function. (face_name_id_number): Add extern declaration for this. * xfaces.c (face_name_id_number): Make this externally visible, and make the FRAME argument a FRAME_PTR, not a Lisp_Object. (compute_char_face): Call face_name_id_number properly.
* * xfns.c (Fx_list_fonts): New function.Jim Blandy1993-05-251-24/+20
| | | | | | | | | | | | | | | | (same_size_fonts): Function moved here from xfaces.c. (face_name_id_number): Add extern declaration for this. * xfaces.c (same_size_fonts): Moved to xfns.c. Left an extern declaration behind. (face_name_id_number): Make this externally visible, and make the FRAME argument a FRAME_PTR, not a Lisp_Object. (compute_char_face): Call face_name_id_number properly. * xfaces.c (unload_color): Don't free the pixel for now. * xfaces.c (merge_faces): You can't tell if a font is a character-cell font or not by testing whether or not it has a per_char table. They all do.
* (Fset_face_attribute_internal): Don't call unload_fontRichard M. Stallman1993-05-241-1/+2
| | | | for the frame's own font.
* * xfaces.c (Fset_face_attribute_internal): Don't free the frame'sJim Blandy1993-05-231-2/+6
| | | | normal_gc or reverse_gc.
* Updated copyright years.Jim Blandy1993-05-221-1/+1
|
* Get the types right, baby.Jim Blandy1993-05-201-2/+2
|
* Make sure that all the display faces use fonts of theJim Blandy1993-05-191-5/+26
| | | | | | | | same dimensions as the default face, so as not to confuse the rest of the redisplay code. * xfaces.c (same_size_fonts): New function. (merge_faces): Only merge in a new font from the FROM face if it is the same size as the font in the TO face.
* * xfaces.c (free_frame_faces): Don't free the resources from theJim Blandy1993-05-181-38/+6
| | | | first two faces.
* (compute_char_face): Pass 0 as EXTEND arg to overlays_at.Richard M. Stallman1993-05-161-6/+18
| | | | Try first with small overlay_vec, then use a big enough one.
* * xfaces.c (Fset_face_attribute_internal): Jolt redisplay, so itJim Blandy1993-05-161-0/+11
| | | | knows something has changed.
* * xfaces.c (unload_color): Don't try to unload the standard blackJim Blandy1993-05-161-1/+3
| | | | or white pixel.
* (compute_char_face): New args REGION_BEG, REGION_END.Richard M. Stallman1993-05-151-4/+28
| | | | Don't sort if noverlays is 0 or 1.
* * xfaces.c (compute_char_face): When merging the overlays,Jim Blandy1993-05-141-18/+26
| | | | | | | | | | | | | | | | | | | | traverse sortvec, not overlay_vec; the latter isn't the one we sorted. * xfaces.c (intern_face): If the face has a GC, but it's not the default or modeline face, abort. Nothing but those two faces should have a GC *and* be passed to intern_face. (compute_char_face, compute_glyph_face): After copying the frame's default face into face, to use as a base case for calculation, set the `gc' member to zero; that way we don't have things lying around that look like display faces but aren't. * xfaces.c (intern_frame_face): When copying the new face into the frame's face array, remember that the number of bytes to copy is sizeof (*new_face), not sizeof (new_face). * xfaces.c (compute_char_face): Assume that W is displaying the current buffer. Abort if it isn't.
* * xfaces.c (intern_frame_face): Exchange order of arguments, toJim Blandy1993-05-131-11/+30
| | | | | | | | | | | | | make callers correct. * xfaces.c (compute_char_face): Notice the next property change location correctly. * xfaces.c (face_name_id_number): Return 0 (the default face) if the name is undefined. * xfaces.c (Fset_face_attribute_internal): Do nothing unless FRAME is an X frame.
* * xdisp.c (display_text_line): We can't use the FRAME_DEFAULT_FACEJim Blandy1993-05-111-3/+2
| | | | | | | macro here; that's x-specific. Just don't pass the second argument. * xfaces.c (compute_glyph_face): Remove the BASIC_FACE argument; use F's default face.
* * xfaces.c (Fmake_face_internal): Do nothing for non-X frames.Jim Blandy1993-05-101-291/+423
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dispextern.h (struct face): Add cached_index member. * xfaces.c (get_cached_face): Use it to avoid unnecessary searches of face_vector. * xfaces.c (intern_face): Renamed from get_display_face. * xfns.c (x_make_gc): After building the GC's for the frame, call init_frame_faces to set up the first two faces. * xfaces.c (init_frame_faces): Don't just try to copy the default and mode line faces from some other random frame; instead, consult the normal_gc and reverse_gc members of the frame, and build the faces based on their parameters. Adjust the face computation functions to return frame face ID's, not pointers to display faces; since we call these functions during display construction, we don't want the display faces yet. * xfaces.c (intern_frame_face): New function. (compute_char_face, compute_glyph_face): Apply intern_frame_face to the computed face, and return the frame face's ID, instead of calling intern_face and returning a pointer to a display frame. * xfaces.c: Describe the facial data structures. It took me a while to figure them out; perhaps this will save someone else the trouble. * xfaces.c (get_display_face): Use face_eql instead of writing it out.
* Don't include Xmu/Drawing.h.Richard M. Stallman1993-04-151-1/+1
|
* * xfaces.c (sort_overlays): Define this to be static, as declared.Jim Blandy1993-04-101-1/+1
|
* * xfaces.c: Doc fixes.Jim Blandy1993-03-311-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put interrupt input blocking in a separate file from xterm.h. This isn't specific to X, and it allows us to avoid #including xterm.h in files that don't really have anything to do with X. * blockinput.h: New file. * xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h. (x_input_blocked, x_pending_input): Deleted; there are analogs in blockinput.h called interrupt_input_blocked and interrupt_input_pending. * keyboard.c (interrupt_input_blocked, interrupt_input_pending): New variables, used by the macros in blockinput.h. * xterm.c: #include blockinput.h. (x_input_blocked, x_pending_input): Deleted. (XTread_socket): Test and set interrupt_input_blocked and interrupt_input_pending instead of the old variables. * alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c: #include blockinput.h. * eval.c: #include blockinput.h instead of xterm.h. * keyboard.c: #include blockinput.h. (input_poll_signal): Just test interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and x_input_blocked. Block the processing of interrupt input while we're manipulating the malloc heap. * alloc.c: (xfree): New function, to make it easy to free things safely. (xmalloc, xrealloc): Block X input while doing the deed. (VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree instead of free. (uninterrupt_malloc): New function, to install input-blocking hooks into the GNU malloc routines. * emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc on startup. * alloc.c: (make_interval, make_float, Fcons, Fmake_vector, Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect): Use xmalloc instead of malloc; don't bother to check if out of memory here. (Fgarbage_collect): Call xrealloc instead of realloc. * buffer.c: Use xmalloc and xfree instead of malloc and free; don't bother to check if out of memory here. (Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around calls to ralloc routines. * insdel.c: Same. * lisp.h (xfree): New extern declaration. * xfaces.c (xfree): Don't #define this to be free; use the definition in alloc.c. * dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c, xmenu.c, xterm.c: Use xfree instead of free. * hftctl.c: Use xfree and xmalloc instead of free and malloc. * keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc and malloc. * search.c: Since the regexp routines can malloc, BLOCK_INPUT while runing them. #include blockinput.h. * sysdep.c: #include blockinput.h. Call xfree and xmalloc instead of free and malloc. BLOCK_INPUT around routines which we know will call malloc. ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o, xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that these depend on blockinput.h.
* *** empty log message ***Jim Blandy1993-03-271-131/+205
|
* *** empty log message ***Jim Blandy1993-03-241-4/+176
|
* Initial revisionJim Blandy1993-03-231-0/+547