- * xdisp.c (x_consider_frame_title, tool_bar_lines_needed): Move
- prototypes to HAVE_WINDOW_SYSTEM-only part.
- (get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
- part. Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
- (null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
- part.
-
- * frame.h (MOUSE_HL_INFO): Fix definition to work both for
- TTY-only and GUI builds.
-
- * dispnew.c (init_display): Setup initial frame's output_data for
- text terminal frames.
-
- * frame.h (MOUSE_HL_INFO): Fix TTY definition.
-
- * dispextern.h (tty_draw_row_with_mouse_face): Add prototype.
-
- * xdisp.c (draw_row_with_mouse_face): Don't #ifdef away on MSDOS.
- Call tty_draw_row_with_mouse_face on MSDOS as well.
-
- * msdos.c (tty_draw_row_with_mouse_face): Renamed from
- draw_row_with_mouse_face. Make the argument list identical with
- GPM implementation.
-
- * msdos.h (Display_Info): Restore typedef.
- (initialize_msdos_display): Add prototype.
-
-2010-11-02 Eli Zaretskii <eliz@gnu.org>
+ 2010-11-05 Eli Zaretskii <eliz@gnu.org>
+
-2010-11-01 Eli Zaretskii <eliz@gnu.org>
-
- * msdos.c (dos_set_window_size, draw_row_with_mouse_face)
- (IT_update_begin, IT_update_end, IT_frame_up_to_date)
- (internal_terminal_init, dos_rawgetc): Replace Display_Info with
- Mouse_HLInfo everywhere where mouse_face_* members were accessed
- for mouse highlight purposes.
-
++ Unify mouse-highlight code for all GUI and TTY sessions.
+
+ * term.c: Remove static mouse_face_* variables. All users
+ changed.
+ (term_show_mouse_face, term_clear_mouse_face)
+ (fast_find_position, term_mouse_highlight): Functions deleted.
+ (tty_draw_row_with_mouse_face): New function.
+ (term_mouse_movement): Call note_mouse_highlight instead of
+ term_mouse_highlight.
+
-
-2010-10-31 Eli Zaretskii <eliz@gnu.org>
-
- * xdisp.c (get_tool_bar_item, handle_tool_bar_click)
+ * nsterm.m (ns_update_window_begin, ns_update_window_end)
+ (ns_update_end, x_destroy_window, ns_frame_up_to_date)
+ (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
+ (ns_dumpglyphs_image, ns_dumpglyphs_stretch)
+ (ns_initialize_display_info, keyDown, mouseMoved, mouseExited):
+ Replace Display_Info with Mouse_HLInfo everywhere where
+ mouse_face_* members were accessed for mouse highlight purposes.
+
+ * xterm.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, XTframe_up_to_date, x_set_mouse_face_gc)
+ (handle_one_xevent, x_free_frame_resources, x_term_init): Replace
+ Display_Info with Mouse_HLInfo everywhere where mouse_face_*
+ members were accessed for mouse highlight purposes.
+
+ * w32term.c (x_update_window_begin, x_update_window_end)
+ (x_update_end, w32_read_socket, x_free_frame_resources)
+ (w32_initialize_display_info): Replace Display_Info with
+ Mouse_HLInfo everywhere where mouse_face_* members were accessed
+ for mouse highlight purposes.
+
+ * xdisp.c (show_mouse_face, note_mode_line_or_margin_highlight)
+ (note_mouse_highlight) [HAVE_WINDOW_SYSTEM]: Don't run GUI code
+ unless the frame is on a window-system.
-
- * frame.h (MOUSE_HL_INFO): New macro.
-
- * lisp.h (Mouse_HLInfo): New data type.
-
- * xterm.h (struct x_display_info):
- * w32term.h (struct w32_display_info):
- * nsterm.h (struct ns_display_info):
- * termchar.h (struct tty_display_info): Use it instead of
- mouse_face_* members.
-
- * dispextern.h (DPYINFO_DEFINED): Remove definition.
- (FRAME_X_DISPLAY_INFO): Remove definition.
- (show_mouse_face, clear_mouse_face): Update type of 1st argument.
-
-2010-10-30 Eli Zaretskii <eliz@gnu.org>
-
- * xdisp.c (coords_in_mouse_face_p): Move prototype out of the
++ (get_tool_bar_item, handle_tool_bar_click)
+ (note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
+ (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
+ (note_mode_line_or_margin_highlight, note_mouse_highlight)
+ (x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
+ Replace Display_Info with Mouse_HLInfo everywhere where
+ mouse_face_* members were accessed for mouse highlight purposes.
- systems.
- (show_mouse_face): Call it, instead of calling draw_glyphs directly.
++ (coords_in_mouse_face_p): Move prototype out of the
+ HAVE_WINDOW_SYSTEM conditional.
+ (x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
+ HAVE_WINDOW_SYSTEM block.
+ (try_window_id) [HAVE_GPM || MSDOS]: Call
+ x_clear_window_mouse_face.
+ (draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
-
- * xmenu.c (popup_activated): Don't define on MSDOS.
++ systems. Call tty_draw_row_with_mouse_face for TTY systems.
++ (show_mouse_face): Call draw_row_with_mouse_face, instead of
++ calling draw_glyphs directly.
+ (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
+ (cursor_in_mouse_face_p, rows_from_pos_range)
+ (mouse_face_from_buffer_pos, mouse_face_from_string_pos)
+ (note_mode_line_or_margin_highlight, note_mouse_highlight)
+ (x_clear_window_mouse_face, cancel_mouse_face): Move out of the
+ HAVE_WINDOW_SYSTEM block. Ifdef away window-system specific
+ fragments.
+ (note_mouse_highlight): Call popup_activated for MSDOS as well.
+ Clear mouse highlight if pointer is over glyphs whose OBJECT is an
+ integer.
+ (mouse_face_from_buffer_pos): Add parentheses around && within ||.
- * termchar.h (struct tty_display_info): Define mouse_face_*
- members not only for MSDOS. Delete stray whitespace.
- <mouse_face_beg_x, mouse_face_beg_y, mouse_face_overlay>: New
- struct members.
-
- * dispextern.h (DPYINFO_DEFINED) [HAVE_X_WINDOWS]: Define.
- (DPYINFO_DEFINED) [HAVE_NTGUI]: Define.
- (DPYINFO_DEFINED) [HAVE_NS]: Define.
- (Display_Info) [!DPYINFO_DEFINED]: Define here.
- (FRAME_X_DISPLAY_INFO) [HAVE_GPM]: Define.
- (FRAME_X_DISPLAY_INFO): Define to NULL if not defined.
- (frame_to_window_pixel_xy, note_mouse_highlight)
- (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
- (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
- HAVE_WINDOW_SYSTEM conditional.
- (draw_row_with_mouse_face): Declare prototype.
-
- * msdos.h (Display_Info): Don't define here.
++ (x_consider_frame_title, tool_bar_lines_needed): Move
++ prototypes to HAVE_WINDOW_SYSTEM-only part.
++ (get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
++ part. Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
++ (null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
++ part.
+
+ * dispnew.c (mirror_make_current): Set Y coordinate of the
+ mode-line and header-line rows.
++ (init_display): Setup initial frame's output_data for text
++ terminal frames.
+
++ * xmenu.c (popup_activated): Don't define on MSDOS, which now has
++ its own definition on msdos.c.
+
+ * msdos.c (show_mouse_face, clear_mouse_face)
+ (fast_find_position, IT_note_mode_line_highlight)
+ (IT_note_mouse_highlight): Functions deleted.
+ (IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
+ instead of IT_note_mouse_highlight.
+ (draw_row_with_mouse_face, popup_activated): New functions.
++ (dos_set_window_size, draw_row_with_mouse_face, IT_update_begin)
++ (IT_update_end, IT_frame_up_to_date, internal_terminal_init)
++ (dos_rawgetc): Replace Display_Info with Mouse_HLInfo everywhere
++ where mouse_face_* members were accessed for mouse highlight
++ purposes.
++
++ * msdos.h (initialize_msdos_display): Add prototype.
++
++ * frame.h (MOUSE_HL_INFO): New macro.
++
++ * lisp.h (Mouse_HLInfo): New data type.
++
++ * xterm.h (struct x_display_info):
++ * w32term.h (struct w32_display_info):
++ * nsterm.h (struct ns_display_info):
++ * termchar.h (struct tty_display_info): Use it instead of
++ mouse_face_* members.
++
++ * dispextern.h (show_mouse_face, clear_mouse_face): Update type of
++ 1st argument.
++ (frame_to_window_pixel_xy, note_mouse_highlight)
++ (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
++ (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
++ HAVE_WINDOW_SYSTEM conditional.
++ (draw_row_with_mouse_face): Declare prototype.
++ (tty_draw_row_with_mouse_face): Declare prototype.
++
+2010-11-05 Eli Zaretskii <eliz@gnu.org>
+
+ * term.c (append_glyphless_glyph, produce_glyphless_glyph): Remove
+ unused variables.
+
+2010-11-05 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsterm.m (EmacsView-mouseExited:): Correct error in conditional
+ logic pointed out by Eli Zaretskii.
+
+2010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * coding.c (coding-category-list): Refer to set-coding-system-priority
+ instead of the obsolete set-coding-priority in the doc string.
+
+
+2010-11-04 Adrian Robert <Adrian.B.Robert@gmail.com>
+
+ * nsfont.m (nsfont_draw): Correct previous patch to return
+ correct value.
+ * nsimage.m (EmacsImage-setXBMColor:): Correct previous patch:
+ don't change the method signature, change the return.
+
+2010-11-04 Ismail Donmez <ismail@namtrac.org> (tiny change)
+
+ * nsfont.m (nsfont_draw)
+ * nsimage.m (EmacsImage-setXBMColor:)
+ * nsterm.m (EmacsView-performDragOperation:): Correct empty return.
+
+2010-11-03 Julien Danjou <julien@danjou.info>
+
+ * image.c (gif_load): Add support for transparency and specified
+ :background.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (lookup_glyphless_char_display): Extern it.
+
+ * termhooks.h (struct terminal): New member charset_list.
+
+ * coding.c (Fset_terminal_coding_system_internal): Set the
+ `charset_list' member of struct terminal.
+
+ * term.c (produce_glyphs): Handle the case it->what == IT_GLYPHLESS.
+ (append_glyphless_glyph, produce_glyphless_glyph): New functions.
+
+ * xdisp.c (lookup_glyphless_char_display): Make it non-static.
+ (lookup_glyphless_char_display): Set it->what at the end.
+ (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+ (last_glyphless_glyph_merged_face_id): Make them non-static.
+
+ * w32term.c (x_draw_glyphless_glyph_string_foreground):
+ Fix the arg with_background for font->driver->draw.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ * w32gui.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
+ Surround chp by parentheses.
+
+2010-11-01 Kenichi Handa <handa@m17n.org>
+
+ Implement various display methods for glyphless characters.
+
+ * xdisp.c (Qglyphless_char, Vglyphless_char_display)
+ (Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space)
+ (Qzero_width): New variables.
+ (THIN_SPACE_WIDTH): New macro.
+ (lookup_glyphless_char_display): New funciton.
+ (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
+ (last_glyphless_glyph_merged_face_id): New variables.
+ (get_next_display_element): Check glyphless characters.
+ (redisplay_internal): Initialize last_glyphless_glyph_frame and
+ last_glyphless_glyph_face_id.
+ (fill_glyphless_glyph_string): New function.
+ (BUILD_GLYPHLESS_GLYPH_STRING): New macro.
+ (BUILD_GLYPH_STRINGS): Handle the case GLYPHLESS_GLYPH.
+ (append_glyphless_glyph, produce_glyphless_glyph): New functions.
+ (x_produce_glyphs): If a suitable font is not found, produce a
+ glyphless glyph. Handle the case it->what == IT_GLYPHLESS.
+ (syms_of_xdisp): Intern and staticpro Qglyphless_char,
+ Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space, and
+ Qzero_width.
+ (Vglyphless_char_display): Declare it as a Lisp variable.
+
+ * dispextern.h (enum glyph_type): Add GLYPHLESS_GLYPH.
+ (struct glyph): Change the size of the member "type" to 3.
+ Add glyphless to the union slice and u.
+ (enum display_element_type): Add IT_GLYPHLESS.
+ (enum glyphless_display_method): New enum.
+ (struct it): New member glyphless_method.
+ (Vglyphless_char_display): Extern it.
+
+ * xterm.c (x_draw_glyphless_glyph_string_foreground): New function.
+ (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
+
+ * w32term.c (x_draw_glyphless_glyph_string_foreground): New function.
+ (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
+
+ * nsterm.m (ns_draw_glyph_string): Handle the case
+ GLYPHLESS_GLYPH (the detail is not yet implemented).
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
+
+ * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Fix merge, maybe.
+
+ * frame.c (syms_of_frame) <tool-bar-mode>:
+ Default to nil if !HAVE_WINDOW_SYSTEM. (Bug#7299)
+
+2010-10-31 Chong Yidong <cyd@stupidchicken.com>
+
+ * xterm.c (x_connection_closed): Print informative error message
+ when aborting on GTK. This requires using shut_down_emacs
+ directly instead of Fkill_emacs.
2010-10-29 Eli Zaretskii <eliz@gnu.org>