X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/257b3b03cb1cff917e0b3b7832ad3eab5b59f257..7a0c745ad134aff0bb8f4258ea607137a819b58d:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index 3ef8bee2f0..b5bdf1dca7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,504 @@ +2013-09-18 Dmitry Antipov + + * frame.c (x_mouse_grabbed): New function. + * dispextern.h (x_mouse_grabbed): Add prototype. + (last_mouse_frame): Remove declaration. + * xterm.h (struct x_display_info): + * w32term.h (struct w32_display_info): + * nsterm.h (struct ns_display_info): New member + last_mouse_frame, going to replace... + * xdisp.c (last_mouse_frame): ...global variable. + (note_tool_bar_highlight): + * w32term.c (w32_mouse_position, w32_read_socket): + * xterm.c (XTmouse_position, handle_one_xevent): + Use x_mouse_grabbed. + * nsterm.m (ns_mouse_position, mouseDown): Adjust user. + +2013-09-17 Dmitry Antipov + + * w32term.c (w32_read_socket): Avoid temporary + variables in a call to x_real_positions. + * xterm.c (handle_one_xevent): Likewise. + +2013-09-17 Dmitry Antipov + + * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function. + (x_icon_type): Remove prototype. + (x_bitmap_icon) [!HAVE_NS]: Declare as such. + * frame.c (x_icon_type): Remove. + * w32term.c (x_make_frame_visible, x_iconify_frame): + * xterm.c (x_make_frame_visible, x_iconify_frame): + Use x_set_bitmap_icon to factor out common code. + +2013-09-17 Dmitry Antipov + + * dispextern.h (check_x_display_info, x_get_string_resource): + Declare here just once and unify the latter. + * frame.c (check_x_display_info, x_get_string_resource): + * nsterm.h (check_x_display_info): + * xrdb.c (x_get_string_resource): + * xterm.h (check_x_display_info): Remove prototypes. + * nsfns.m (x_get_string_resource): Likewise. Adjust definition. + * w32reg.c (x_get_string_resource): Likewise. + (w32_get_rdb_resource): Adjust user. + +2013-09-17 Dmitry Antipov + + * xterm.h (struct x_display_info): New member + x_pending_autoraise_frame, going to replace... + * xterm.c (pending_autoraise_frame): ...static variable. + (x_new_focus_frame, XTread_socket): Adjust users. + * w32term.h (struct w32_display_info): New member + w32_pending_autoraise_frame, going to replace... + * w32term.c (pending_autoraise_frame): ...global variable. + (x_new_focus_frame, w32_read_socket): Adjust users. + +2013-09-17 Glenn Morris + + * xdisp.c (message_dolog): If we create *Messages*, + switch it to messages-buffer-mode. + +2013-09-17 Paul Eggert + + Don't overuse 'const' in types of locals. + * bidi.c (bidi_count_bytes): + * gtkutil.c, gtkutil.h (xg_event_is_for_menubar) + (xg_event_is_for_scrollbar): + * xselect.c (x_handle_property_notify) + (x_handle_selection_notify, x_handle_dnd_message): + * xsettings.c, xsettings.h (xft_settings_event): + * xterm.c (x_handle_net_wm_state, handle_one_event) + (x_menubar_window_to_frame, x_detect_focus_change) + (construct_mouse_click, note_mouse_movement) + (x_scroll_bar_to_input_event, x_scroll_bar_expose) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement) + (handle_one_xevent, x_handle_net_wm_state): + * xterm.h (x_handle_property_notify, x_handle_selection_notify) + (x_handle_dnd_message): + Avoid unnecessary 'const', typically the second 'const' in + 'const foo * const arg', a 'const' that does not affect the API + and doesn't significantly help the human reader. + +2013-09-17 Dmitry Antipov + + * image.c (fn_g_type_init) [WINDOWSNT]: Define and load + only if Glib < 2.36.0. + (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0. + * xsettings.c (init_gconf, init_gsettings): Do not check + for g_type_init. + * xterm.c (handle_one_xevent): Do not call to x_clear_area + if GTK >= 2.7.0. + (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC. + +2013-09-16 Jan Djärv + + * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0 + before calling g_type_init. + + * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ... + + * nsterm.m (syms_of_nsterm): ... to here. + +2013-09-16 Dmitry Antipov + + * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean. + (ignore_next_mouse_click_timeout): Use Time as X does. + (handle_one_xevent): Avoid cast and use unsigned comparison. + +2013-09-16 Dmitry Antipov + + Do not copy X event in handle_one_xevent except KeyPress case. + Wnen XEvent is processed, it is unlikely to be changed except + KeyPress case, so we can avoid copying and use const pointer to + const data to make sure that an event is not changed elsewhere. + * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent * + const' and do not create local copy except for the KeyPress event. + Use casts to avoid a few glitches. Adjust formatting. Add comments. + (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user. + (x_handle_net_wm_state, x_menubar_window_to_frame) + (x_detect_focus_change, construct_mouse_click, note_mouse_movement) + (x_scroll_bar_to_input_event, x_scroll_bar_expose) + (x_scroll_bar_handle_click, x_scroll_bar_note_movement): + * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar): + * xselect.c (x_handle_property_notify, x_handle_selection_notify) + (x_handle_dnd_message): + * xsettings.c (xft_settings_event): + Use 'const XEvent * const' where appropriate. + * xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes. + +2013-09-16 Dmitry Antipov + + Fix X event waiting to handle multiple frames. + * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type. + * xterm.c (pending_event_wait): Remove. Adjust users. + (x_detect_focus_change): Pass frame arg. + (handle_one_xevent): Find related frame early and clear per-frame + wait_event_type only if this is an event for the relevant frame. + (x_wait_for_event): Use per-frame wait_event_type. + +2013-09-15 Jan Djärv + + * nsfns.m (Fx_create_frame): Fix font driver registration for + GNUStep. + + * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 + for syms_of_macfont. + + * nsterm.m: Include macfont.h. + (ns_tmp_flags, ns_tmp_font): Remove. + (ns_compute_glyph_string_overhangs): Check for driver Qns. + (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags, + ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m. + (changeFont:): Fix code style. Check for font driver type when + getiing font. + + * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and + (f)->descent. + + * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove. + (nsfont_open): Set font driver type. + Set font->ascent and font->descent. Figure out font instead of + ns_tmp_font, and flags instead of ns_tmp_flags. + Fix indentation. Remove call to ns_draw_text_decoration, + moved to nsterm. + + * nsfns.m: Include macfont.h. + (Fx_create_frame): Register macfont driver, make a better default font. + (Fns_popup_font_panel): Get font from macfont driver, if used. + + * macfont.m, macfont.h, maccuvs.h: New files. + + * font.h: Declare syms_of_macfont. + + * font.c (syms_of_font): Call syms_of_macfont. + + * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o. + +2013-09-15 Dmitry Antipov + + Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999, + and it is always zero for others, so I assume that this is an ancient + leftover which nobody will want to change any more. + * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove. + (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): + * frame.c (x_set_scroll_bar_width): + * w32fns.c (w32_createscrollbar): + * w32term.c (w32_set_vertical_scroll_bar): + * xfns.c (x_set_scroll_bar_default_width): + * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar) + (x_scroll_bar_expose): Related users changed. + +2013-09-15 Dmitry Antipov + + * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment. + (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER. + (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]: + Define as such. + * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT): + Define once here... + * nsterm.h, w32term.h, xterm.h: ...and not here. + * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET): + Remove unused Xisms. + * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because + these modules are never compiled otherwise. + +2013-09-14 Eli Zaretskii + + * buffer.c (syms_of_buffer) : + Doc fix. (Bug#15375) + +2013-09-13 Dmitry Antipov + + Unify Fx_focus_frame between all ports. + * frame.h (x_focus_frame): New prototype. + * xfns.c (Fx_focus_frame): Remove. + (syms_of_xfns): Do not defsubr it. + (x_focus_frame): X implementation. + * nsfns.m (Fx_focus_frame): Remove. + (syms_of_nsfns): Do not defsubr it. + (x_focus_frame): NS implementation. + * w32term.c (Fx_focus_frame): Remove. + (x_focus_on_frame): Rename to... + (x_focus_frame): W32 implementation. + * w32term.h (x_focus_on_frame): Remove prototype. + * w32fns.c (Fx_focus_frame): Remove. + (syms_of_w32fns): Do not defsubr it. + * frame.c (Fx_focus_frame): Define here. + (syms_of_frame): Defsubr here. + * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame. + +2013-09-13 Dmitry Antipov + + Unify FRAME_window_system_DISPLAY_INFO macros between all ports. + All of them are replaced with FRAME_DISPLAY_INFO, defined in + each port to reference the port-specific window system data. + * msdos.h (FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. + * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. Adjust users. + * xterm.h (FRAME_X_DISPLAY_INFO): Remove. + (FRAME_DISPLAY_INFO): Define. Adjust users. + * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify. + * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m: + * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c: + * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c: + * xselect.c, xterm.c: All related users changed. + +2013-09-13 Dmitry Antipov + + * xterm.h (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame): Remove prototypes. + * xfns.c (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame, x_top_window_to_frame): + Move from here... + * xterm.c (x_window_to_frame, x_any_window_to_frame) + (x_menubar_window_to_frame, x_top_window_to_frame): + ...to here and convert all but the last to static. + +2013-09-12 Eli Zaretskii + + * lisp.mk (lisp): Add w32-common-fns.elc. + +2013-09-12 Xue Fuqiao + + * charset.c (char_charset): Document an exception for char-charset. + +2013-09-12 Dmitry Antipov + + * xterm.h (x_display_info): New field last_user_time... + * xterm.c (toplevel): ...to replace static last_user_time. + (handle_one_xevent, x_ewmh_activate_frame): Adjust users. + +2013-09-12 Dmitry Antipov + + * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip + scroll bar values to prevent thumb from disappear and update comment. + +2013-09-11 Glenn Morris + + * emacs.c (usage_message): Possessive apostrophe tweak. + +2013-09-11 Dmitry Antipov + + * nsterm.m (syms_of_nsterm): Use Qns. + * w32fns.c (Fx_open_connection): Remove old '#if 0' code. + * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32. + * xfns.c (x_display_info_for_name, Fx_open_connection): + Remove old '#if 0' code. + (syms_of_xfns): Use Qx. + * termhooks.h (fullscreen_hook): Remove the leftover. + (struct terminal): Fix typo in comment. + +2013-09-11 Dmitry Antipov + + Cleaning up a few X scroll bar bits. + * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member. + * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]: + New member last_seen_part, going to replace... + * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part. + (xt_action_hook) [USE_LUCID]: Adjust user. + (xm_scroll_callback, xg_scroll_callback): Do not bloat with + Lucid-specific scroll bar support. + (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part + to int and adjust to use last_seen_part member. + (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user. + (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]: + Initialize last_seen_part. + +2013-09-11 Stefan Monnier + + * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when + insert-buffer-substring an empty string. + +2013-09-11 Paul Eggert + + * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out, + avoiding a GCC warning. + +2013-09-11 Dmitry Antipov + + Ifdef away frame tool bar code when it is not really used. + * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]: + Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string + and minimize_tool_bar_window_p under the above. + (fset_current_tool_bar_string, fset_desired_tool_bar_string) + (fset_tool_bar_window): Likewise. + * dispnew.c (clear_current_matrices, clear_desired_matrices) + (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame) + (change_frame_size_1): + * window.c (window_from_coordinates, Frecenter): Adjust users. + * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar + code is not really used. + * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line) + (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info) + (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight) + [!USE_GTK && !HAVE_NS]: Define as such. + (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face) + (note_mouse_highlight, expose_frame): + * xfns.c (x_set_tool_bar_lines): + * xterm.c (handle_one_xevent): Adjust users. + +2013-09-11 Paul Eggert + + Fix corruption with multiple emacsclient -t instances (Bug#15222). + This bug was introduced by my 2013-08-26 patch, which incorrectly + assumed that the terminfo implementation doesn't use termcap buffers. + * term.c (init_tty) [TERMINFO]: Remove optimization, as + these buffers apparently are used after all. + * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too. + (struct tty_display_info): Define members termcap_term_buffer and + termcap_strings_buffer even if TERMINFO. + +2013-09-11 Dmitry Antipov + + Fix last change. + * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient + 'usage' docstring entry to pacify make-docfile. + +2013-09-11 Barry O'Reilly + + Change comparison functions =, <, >, <=, >= to take many arguments. + * data.c: Change comparison functions' interface and implementation. + * lisp.h: Make arithcompare available for efficient two arg + comparisons. + * bytecode.c: Use arithcompare. + * fileio.c: Use new interface. + +2013-09-11 Stefan Monnier + + * keyboard.c (read_char): Don't break immediate_echo (bug#15332). + +2013-09-10 Stefan Monnier + + * eval.c (Feval): Document the new use of `lexical'. + +2013-09-09 Dmitry Antipov + + Review and drop old frame resize hack. + * frame.h (struct frame): Remove force_flush_display_p. + * dispnew.c (update_frame): Adjust user and don't call + flush_frame here. The comment has said that there was an issues + with redisplaying fringes, but I don't see any differences with + and without this hack. Hopefully we can continue without it. + * xdisp.c (clear_garbaged_frames): Adjust user and do not clear + current frame matrices twice if resized_p is set. + +2013-09-09 Dmitry Antipov + + Do not populate pure Xism x_sync to other ports. + * frame.h (x_sync): Move under HAVE_X_WINDOWS. + * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such. + * nsfns.m, w32xfns.c (x_sync): Remove no-op. + * w32term.h (x_sync): Remove prototype. + +2013-09-09 Dmitry Antipov + + Cleanup frame flushing. + * dispextern.h (struct redisplay_interface): + Drop flush_display_optional because flush_display is enough + for X and flushing via RIF is just a no-op for others. + * frame.h (flush_frame): New function. + * dispnew.c (update_frame): + * minibuf.c (read_minibuf): + * xdisp.c (echo_area_display, redisplay_preserve_echo_area): + Use it. + * keyboard.c (detect_input_pending_run_timers): Do not flush + all frames but selected one in redisplay_preserve_echo_area. + * nsterm.m (ns_flush): Remove no-op. + (ns_redisplay_interface): Adjust user. + * w32term.h (x_flush): Remove no-op. + (w32_redisplay_interface): Adjust user. + * xterm.c (x_flush): Simplify because we do not flush all + frames at once any more. Adjust comment. + (x_redisplay_interface): Adjust user. + +2013-09-07 Paul Eggert + + Port --without-x --enable-gcc-warnings to Fedora 19. + * gfilenotify.c (globals_of_gfilenotify): + Call g_type_init only if using an older glib version that needs it. + +2013-09-06 Dmitry Antipov + + * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id) + (last_glyphless_glyph_merged_face_id): Remove declarations. + * dispextern.h (merge_glyphless_glyph_face): Add prototype. + * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id) + (last_glyphless_glyph_merged_face_id): Now static. + (merge_escape_glyph_face): New function, refactored from... + (get_next_display_element): ...here. + (merge_glyphless_glyph_face): New function, refactored from... + (produce_glyphless_glyph): ...here... + * term.c (produce_glyphless_glyph): ...and here. + +2013-09-06 Stefan Monnier + + * eval.c (eval_sub): Only call Ffunction if necessary. + +2013-09-06 Dmitry Antipov + + Attempt to make redisplay more selective when changing cursor type. + * frame.h (struct frame): New bitfield cursor_type_changed. + * xdisp.c (cursor_type_changed): Remove. + (try_cursor_movement, redisplay_window, try_window_id) + (set_frame_cursor_types, try_window_reusing_current_matrix): + Adjust to use per-frame bitfield. + (redisplay_internal): Look for cursor type change on each visible + frame and consider all frames if cursor type has been changed on + the frame other than selected. If cursor type has been changed on + selected frame only, do not use fast update. + +2013-09-06 Dmitry Antipov + + Attempt to make redisplay more selective when changing fonts. + * frame.h (struct frame): New bitfield fonts_changed. + * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration. + (adjust_frame_glyphs): Add prototype. + * dispnew.c (fonts_changed_p): Remove. + (adjust_glyphs): Remove because we do not + adjust matrices on all frames at once any more. + (adjust_frame_glyphs): Block and unblock input here. + (adjust_glyph_matrix): Use fonts_changed. + (change_frame_size_1): Use adjust_frame_glyphs. + * font.c (font_open_entity): Use fonts_changed. + * frame.c (set_menu_bar_lines, Fmake_terminal_frame): + * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip): + * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply) + (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window) + (shrink_mini_window, Fresize_mini_window_internal) + (window_scroll_pixel_based, Fset_window_configuration) + (apply_window_adjustment, Fset_window_vscroll): + * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip): + Use adjust_frame_glyphs. + * xdisp.c (redisplay_tool_bar, redisplay_window, try_window) + (try_window_reusing_current_matrix, try_window_id, display_line) + (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed. + (redisplay_internal): Consider fonts_changed and adjust frame + matrices for each frame only if the frame is visible. If font + has been changed on some frame during full redisplay, retry + only visible frames where the font has been actually changed. + +2013-09-05 Dmitry Antipov + + Cache current header and mode line height for each window. + * window.h (struct window): New fields mode_line_height + and header_line_height. + * window.c (make_window): Initialize them. + * dispextern.h (CURRENT_MODE_LINE_HEIGHT) + (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment. + (current_mode_line_height, current_header_line_height): + Remove declaration. + * xdisp.c (current_mode_line_height, current_header_line_height): + Remove. + (pos_visible_p, init_xdisp): Adjust user. + (redisplay_window): Invalidate mode_line_height and + header_line_height if current and desired matrices do not agree. + +2013-09-05 Dmitry Antipov + + * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER. + * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice. + 2013-09-05 Dmitry Antipov Make --without-x compatible with --enable-gcc-warnings.