aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Rewrite w32fns.c's `x_set_menu_bar_lines'Martin Rudalics2017-05-012-34/+52
| | | | | | | | | * src/w32fns.c (x_set_menu_bar_lines): Redraw frame immediately regardless of whether menu bar is added or removed. Clear under internal border iff a W32 window exists. Store either 0 or 1 as new parameter value. (x_change_tool_bar_height): Use FRAME_W32_WINDOW instead of FRAME_X_WINDOW.
* Fix `delete-frame' behavior including Bug#26682Martin Rudalics2017-04-302-25/+23
| | | | | | | | | | | | * src/frame.c (other_frames): Accept two arguments now. Don't care about minibuffer window. Don't care about visibility when called from delete_frame with FORCE true (Bug#26682). (delete_frame, Fmake_frame_invisible): Adjust other_frames calls. * src/w32term.c (w32_read_socket): Don't add a move frame event for an invisible frame. * lisp/frame.el (handle-delete-frame): Don't kill Emacs when attempting to delete a surrogate minibuffer frame.
* Merge from origin/emacs-25Glenn Morris2017-04-274-35/+35
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 784602b1050 (origin/emacs-25) ; Add release notice 3a34412caae (tag: emacs-25.2) Set Emacs version to 25.2 and update AU... 56a4461a48d ; Move stray item from admin/notes/repo to CONTRIBUTE 2b0d1118199 ; CONTRIBUTE: Remove stray header. f2ab09ec60d Fix a typo in indexing the user manual bc55a574235 * lisp/menu-bar.el (kill-this-buffer): Doc fix. (Bug#26466) a6d50401b4b Document 'line-pixel-height' 0c55cf43e61 * search.c (Fre_search_forward, Fre_search_backward): Imp... c7ed57eaef4 Mention that processes start in default-directory (Bug#18... 856ec9ffa1f * src/xdisp.c (vmessage, message): Clarify commentary. 849a0aaa1c9 Belated fixes for admin.el's M-x make-manuals-dist 84938d79698 default-directory: Remark that it must be a directory name 3f0d047d2eb Delete confuse statement in manual ee1bd94dd0c Improve packaging documentation fb18bff91f0 Expand manual section on quitting windows 9a737079645 Fix docstring of dabbrev-abbrev-char-regexp afe8849bac1 * doc/misc/cl.texi (Iteration Clauses): Clarify example (... ada79442c07 ;* doc/misc/info.texi (Choose menu subtopic): Improve ind... d38fd9229c0 Narrow scope of modification hook renabling in org-src fo... e0e9db4c84a ; Spelling fix # Conflicts: # README # etc/AUTHORS # etc/HISTORY # lisp/ldefs-boot.el
| * * search.c (Fre_search_forward, Fre_search_backward): Improve doc (Bug#25193).Hong Xu2017-04-061-31/+21
| |
| * Mention that processes start in default-directory (Bug#18515)Noam Postavsky2017-04-061-0/+4
| | | | | | | | | | | | | | | | | | * doc/lispref/processes.texi (Synchronous Processes): (Asynchronous Processes): * lisp/subr.el (start-process): * src/callproc.c (call-process): Mention that the subprocess starts in `default-directory' when local, suggest `start-file-process' and `process-file' otherwise.
| * * src/xdisp.c (vmessage, message): Clarify commentary.Noam Postavsky2017-04-061-3/+7
| |
| * default-directory: Remark that it must be a directory nameTino Calancha2017-03-311-1/+3
| | | | | | | | * src/buffer.c (default-directory): Update docstring (Bug#26272).
| * Fix bug: Range-check integer ‘alpha’ frame parm valueThien-Thi Nguyen2017-03-171-1/+1
| | | | | | | | | | | | | | Typo introduced 2013-04-01, "Prefer < to > in range checks such as 0 <= i && i < N". * src/frame.c (x_set_alpha): Use ‘ialpha’, not ‘alpha’.
* | Fix doc and customization type of `window-combination-limit' (Bug#26673)Martin Rudalics2017-04-271-3/+9
| | | | | | | | | | | | | | | | * src/window.c (Vwindow_combination_limit): Fix doc-string. * lisp/cus-start.el (window-combination-limit): Fix customization type. * doc/lispref/windows.texi (Recombining Windows): Fix documentation of `window-combination-limit'.
* | Fix macOS version check (bug#26664)Alan Third2017-04-261-1/+1
| | | | | | | | | | * src/nsterm.m (initFrameFromEmacs): Prevent window tabbing mode on macOS versions 10.12+.
* | Try to fix latest fix of w32_mouse_positionMartin Rudalics2017-04-261-14/+14
| | | | | | | | | | * src/w32term.c (w32_mouse_position): Fix a bug introduced by latest fix and try to make the affected code more rigorous.
* | Avoid segfaults when 'find-font' is invoked for a TTY frameEli Zaretskii2017-04-261-11/+13
| | | | | | | | | | * src/font.c (font_pixel_size): Don't call GUI functions if F is a text-mode frame. (Bug#26646)
* | * src/Makefile.in (leimdir): Remove variable, no longer used.Glenn Morris2017-04-251-1/+0
| |
* | Generate leim-list via lisp/Makefile, not src/MakefileGlenn Morris2017-04-251-4/+1
| | | | | | | | | | | | * src/Makefile.in ($(leimdir)/leim-list.el): Remove rule. (emacs$(EXEEXT)): Don't depend on leim-list. * lisp/Makefile.in ($(lisp)/loaddefs.el): Depend on gen-lisp again.
* | Fix define for GNUstep buildsAlan Third2017-04-251-1/+2
| | | | | | | | | | * src/nsterm.m (initFrameFromEmacs): Fix the ifdef so that GNUstep doesn't see the code.
* | Fix some NS frame handling issuesAlan Third2017-04-251-15/+43
| | | | | | | | | | | | | | | | | | | | | | * src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS): New defines intended to make things tidier. (x_set_undecorated): Use the new defines. (windowWillResize): Don't use new macOS 12+ only feature. (initFrameFromEmacs): Use the new defines, and disable automatic window tabbing feature in macOS 12. (x_set_undecorated, x_set_parent_frame, x_set_no_accept_focus, x_set_z_group): Add NSTRACE notices.
* | Fix XBM colour rendering in NS port (bug#22060)Alan Third2017-04-241-1/+1
| | | | | | | | src/nsimage.m (setXBMColor): Fix calculation of xbm_fg.
* | Let w32_mouse_position pick a child window only if it has a child frameMartin Rudalics2017-04-231-8/+16
| | | | | | | | | | | | * src/w32term.c (w32_mouse_position): When using a frame found by ChildWindowFromPoint make sure it's a child frame (Bug#26615, maybe).
* | Fix usage of FRAME_Z_GROUPPhilipp Stephani2017-04-221-1/+1
| | | | | | | | | | * src/nsterm.m (initFrameFromEmacs:): FRAME_Z_GROUP does not return a Lisp object, cf. Bug#26597.
* | Fix GNUstep buildAlan Third2017-04-222-16/+12
| | | | | | | | | | | | * src/nsfns.m (Fns_frame_z_list_order): Rewrite for GNUstep compatibility. * src/nsmenu.m (update_frame_tool_bar): Remove unused variable.
* | Add no-accept-focus and frame-list-z-order to NS portAlan Third2017-04-213-4/+81
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/frame.el (frame-list-z-order): Add NS. * src/nsfns.m: Add x_set_no_accept_focus to handler struct. (Fx_create_frame): Handle no-accept-focus parameter. (ns_window_is_ancestor): (Fns_frame_list_z_order): New functions. * src/nsterm.m (x_set_no_accept_focus): New function. (initFrameFromEmacs): Use EmacsWindow instead of EmacsFSWindow for non-fullscreen windows. (EmacsWindow:canBecomeKeyWindow): New function.
* | Avoid infinite loop in redisplay when header-line-format is invalidEli Zaretskii2017-04-211-1/+2
| | | | | | | | | | | | * src/xdisp.c (handle_invisible_prop): Avoid inflooping when the string has an invalid %-construct in it and is displayed as part of mode-line or header-line. (Bug#26586)
* | Fix bug introduced by my last commitAlan Third2017-04-191-1/+1
| | | | | | | | * src/nsterm.m (ns_draw_fringe_bitmap): Revert key-mashing accident.
* | Add new frame functionality to NS portAlan Third2017-04-197-100/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/frame.el (frame-restack): Call ns-frame-restack. * src/keyboard.c (kbd_buffer_get_event) [HAVE_NS]: Enable MOVE_FRAME_EVENT handling. * src/frame.h: * src/frame.c: Enable 'z-group', 'undecorated' and 'parent' frame definitions. * src/nsfns.m: Add x_set_z_group, x_set_parent_frame and x_set_undecorated (Cocoa only) to handler struct. (Fx_create_frame): Handle 'z-group', 'parent-frame' and 'undecorated' frame parameter. (Fns_frame_restack): New function. * src/nsmenu.m (free_frame_tool_bar, update_frame_tool_bar): FRAME_TOOLBAR_HEIGHT is no longer a variable. * src/nsterm.h (NS_PARENT_WINDOW_LEFT_POS, NS_PARENT_WINDOW_TOP_POS): Add #defines to find the screen position of the parent frame. (NS_TOP_POS): Remove defun. (EmacsView): Remove redundant toolbar variables and add createToolbar method. (FRAME_NS_TITLEBAR_HEIGHT, FRAME_TOOLBAR_HEIGHT): Always calculate the values instead of storing them in a variable. * src/nsterm.m (x_set_offset, windowDidMove): Take parent frame position into account when positioning frames. (initFrameFromEmacs): Remove toolbar creation code and handle new frame parameters. (x_set_window_size): Remove toolbar height calculation. (x_set_z_group): (x_set_parent_frame): (x_set_undecorated) [NS_IMPL_COCOA]: New function. (x_destroy_window): Detach parent if child closes. (updateFrameSize): Change NSTRACE message to reflect new reality and no longer reset frame size. (windowWillResize): Don’t change NS window name when the titlebar is invisible. (createToolbar): Move toolbar creation code into it’s own method. (toggleFullScreen): FRAME_TOOLBAR_HEIGHT and FRAME_NS_TITLEBAR_HEIGHT are no longer variables. (windowDidMove): Fire MOVE_FRAME_EVENT Emacs event.
* | Use vfork if possible on Darwin (bug#26397)Alan Third2017-04-183-6/+22
| | | | | | | | | | | | | | | | | | | | | | Co-authored-by: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * src/conf_post.h (HAVE_WORKING_VFORK): Don't undef. (vfork): Don't define. * src/process.c (create_process) [DARWIN_OS]: Use fork if pty_flag is set, otherwise vfork. * src/callproc.c (call_process) [DARWIN_OS]: Use TIOCNOTTY to detach the controlling terminal instead of setsid.
* | ; Spelling fixPaul Eggert2017-04-171-1/+1
| |
* | * src/xterm.c (x_fill_rectangle): Now static.Paul Eggert2017-04-172-2/+1
| |
* | Tighten recently-added UTF-8 checkPaul Eggert2017-04-173-3/+5
| | | | | | | | | | | | * src/coding.c (encode_coding_utf_8): Now extern. * src/terminal.c (terminal_glyph_code) [HAVE_STRUCT_UNIPAIR_UNICODE]: Check for UTF-8, not just for multibyte.
* | * src/lisp.h (STRING_SET_CHARS): Simplify assertion.Paul Eggert2017-04-171-2/+3
| |
* | Fix assertion violations when displaying thread-related errorEli Zaretskii2017-04-171-2/+10
| | | | | | | | | | * src/process.c (Faccept_process_output): Don't assume a thread's name is always a string.
* | Remove unused coding enumsPaul Eggert2017-04-161-33/+0
| | | | | | | | | | * src/coding.h (enum coding_system_type, enum end_of_line_type): Remove; unused.
* | Work around bug with unibyte Linux consolesPaul Eggert2017-04-161-1/+3
| | | | | | | | | | * src/terminal.c (terminal_glyph_code): Skip the UTF-8 stuff if the terminal's coding system is unibyte (Bug#26396).
* | Fix redisplay performance problems with some fontsEli Zaretskii2017-04-161-10/+16
| | | | | | | | | | | | | | * src/font.c (font_list_entities): Revert part of the changes introduced on Apr 2, 2014 to fix bug#17125. It turns out having zero_vector in the font-cache is an important indication that cannot be removed. (Bug#21028)
* | Add assertion to STRING_SET_CHARSEli Zaretskii2017-04-161-0/+4
| | | | | | | | | | | | * src/lisp.h (STRING_SET_CHARS): Add an assertion and commentary to prevent incorrect usage. For details, see this discussion: http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00412.html.
* | Avoid compilation warnings on MS-WindowsEli Zaretskii2017-04-162-10/+8
| | | | | | | | | | | | | | * src/w32term.c (w32_read_socket): Avoid compiler warnings about parentheses around assignment. * src/w32fns.c (w32_createwindow): Remove unused variable dwStyle. Use "|=" where appropriate.
* | ; Spelling and minor wording fixesPaul Eggert2017-04-143-16/+16
| |
* | Fix segfault when calling frame_ancestor_p (Bug#26493)Martin Rudalics2017-04-141-1/+1
| | | | | | | | | | * src/xterm.c (handle_one_xevent): Check that hf was not reset before calling frame_ancestor_p (Bug#26493).
* | Create generated lisp files before main loaddefs.elGlenn Morris2017-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | This should improve reproducibility of lisp/loaddefs.el. * lisp/Makefile.in (gen-lisp): New phony target. ($(lisp)/loaddefs.el, compile-main): Depend on gen-lisp. * src/Makefile.in ($(leimdir)/leim-list.el): Depend on all of ../leim. * lisp/cedet/semantic.el (semantic-mode): * lisp/cedet/semantic/fw.el (top-level): * lisp/emacs-lisp/eieio-core.el (top-level): Robustify to generated input files maybe not yet existing.
* | Small src/Makefile simplificationGlenn Morris2017-04-131-6/+2
| | | | | | | | | | * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc) ($(lispsource)/term/ns-win.elc): Combine rules.
* | New internal-border face and args for select-window and x-focus-frameMartin Rudalics2017-04-1215-85/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `internal-border' face and handle it whenever clearing the internal border. If NORECORD equals the symbol 'mark-for-redisplay', `select-window' will not record the window but still mark it for redisplay. The new argument NOACTIVATE for `x-focus-frame' tries to not activate FRAME when set. * lisp/faces.el (internal-border): New face. * lisp/mwheel.el (mwheel-scroll): Select window to scroll with `mark-for-redisplay'. * lisp/scroll-bar.el (scroll-bar-drag) (scroll-bar-horizontal-drag, scroll-bar-scroll-down) (scroll-bar-scroll-up, scroll-bar-toolkit-scroll) (scroll-bar-toolkit-horizontal-scroll): Select window to scroll with `mark-for-redisplay'. * lisp/window.el (handle-select-window): When `focus-follows-mouse' is not 'auto-raise' try to not activate FRAME. * src/dispextern.h (face_id): Add INTERNAL_BORDER_FACE_ID. * src/frame.c (Fx_focus_frame): New argument NOACTIVATE. * src/frame.h (x_focus_frame): Update extern declaration. * src/gtkutil.c (xg_clear_under_internal_border): Remove function. (xg_frame_resized, xg_frame_set_char_size): Call x_clear_under_internal_border. (xg_tool_bar_callback): Adapt x_focus_frame call. * src/gtkutil.h (xg_clear_under_internal_border): Remove declaration. * src/nsfns.m (x_focus_frame): Add argument NOACTIVATE. * src/w32fns.c (x_clear_under_internal_border): Fill border with internal-border background if specified. * src/w32term.h (x_clear_under_internal_border): Add extern declaration. * src/w32term.c (x_after_update_window_line): Fill border with internal-border background if specified. (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar) (x_scroll_bar_clear, w32_read_socket): Call x_clear_under_internal_border. (x_focus_frame): New argument NOACTIVATE. * src/window.c (select_window): Mark WINDOW for redisplay when NORECORD equals 'mark-for-redisplay'. (Fselect_window): Update doc-string. (syms_of_window): Define Qmark_for_redisplay. * src/xdisp.c (clear_garbaged_frames, echo_area_display) (redisplay_internal): Call x_clear_under_internal_border. * src/xfaces.c (lookup_basic_face): Handle `window-divider' and `internal-border' faces. (realize_basic_faces): Realize `internal-border' face. (syms_of_xfaces): Define Qinternal_border. * src/xfns.c (x_set_internal_border_width): Remove call for xg_clear_under_internal_border. (x_focus_frame): New argument NOACTIVATE. When non-nil try to not activate frame. * src/xterm.c (x_fill_rectangle): No more static. (x_clear_under_internal_border, x_after_update_window_line): Fill border with internal-border background if specified. (xt_horizontal_action_hook): Rewrite. (handle_one_xevent): Call x_clear_under_internal_border. * src/xterm.h (x_fill_rectangle): Add extern declaration.
* | Port recent frame changes to --enable-gcc-warningsPaul Eggert2017-04-122-8/+3
| | | | | | | | | | | | * src/frame.c (next_frame, prev_frame): Remove now-redundant assertions. * src/frame.h (FOR_EACH_FRAME): Assume Vframe_list is nonempty.
* | Add new frame parameters and associated functionsMartin Rudalics2017-04-1215-316/+2230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new frame parameters `undecorated', `override-redirect', `parent-frame', `skip-taskbar', `no-focus-on-map', `no-accept-focus', `z-group', `delete-before', `no-other-frame', `mouse-wheel-frame', `min-width', `min-height'. Add new functions `frame-restack' and `frame-list-z-order'. * lisp/cus-start.el (focus-follows-mouse): Adapt customization type. * lisp/frame.el (handle-delete-frame): Handle child and `delete-before' frames. (other-frame): Stop looking for other frame after one round. (frame-list-z-order, frame-restack): New functions. (delete-other-frames): Handle child frames. * lisp/frameset.el (frameset-persistent-filter-alist) (frameset--record-relationships): Handle `delete-before', `parent-frame' and `mouse-wheel-frame' parameters. Rename latter from `frameset--record-minibuffer-relationships'. (frameset--restore-frame): Handle ‘parent-frame’ parameter specially. (frameset-restore): Handle `delete-before', `parent-frame' and `mouse-wheel-frame' parameters. * lisp/mwheel.el (mwheel-scroll): Handle `mouse-wheel-frame' parameter. * lisp/window.el (window--min-size-ignore-p): Fix doc-string. (mouse-autoselect-window-select, handle-select-window): Major rewrite. Try to not ignore errors. Handle auto-selection of child frames and different values of `focus-follows-mouse'. * src/frame.c (frame_windows_min_size): Handle new `min-width' and `min-height' frame parameters. (make_frame): Initialize new frame structure members. (do_switch_frame): Don't reset internal_last_event_frame for descendant frames. (Fframe_parent, frame_ancestor_p, Fframe_ancestor_p): New functions. (candidate_frame): Don't return `no-other-frame' frame. (other_frames): New function replacing other_visible_frames. (delete_frame): Rewrite. Handle child and `delete-before' frames. (Fmake_frame_invisible): Call other_frames. (store_frame_param): Check `delete-before' and `parent-frame' parameters for circular dependencies. (frame_parms, syms_of_frame): Add entries for and define new frame parameters. (focus_follows_mouse): New meaningful value `auto-raise'. * src/frame.h (z_group): New enumeration type. (frame): New slots parent_frame, undecorated, override_redirect, skip_taskbar, no_focus_on_map, no_accept_focus, z_group. (fset_parent_frame): New inlined function. (FRAME_UNDECORATED, FRAME_OVERRIDE_REDIRECT) (FRAME_PARENT_FRAME, FRAME_SKIP_TASKBAR, FRAME_NO_FOCUS_ON_MAP) (FRAME_NO_ACCEPT_FOCUS, FRAME_Z_GROUP, FRAME_Z_GROUP_NONE) (FRAME_Z_GROUP_ABOVE, FRAME_Z_GROUP_ABOVE_SUSPENDED) (FRAME_Z_GROUP_BELOW): New macros. (frame_ancestor_p): Add declaration. * src/gtkutil.c (xg_create_frame_widgets): Handle `undecorated' and `override-redirect' frame parameters. (x_wm_set_size_hint): None for child frames. (xg_set_undecorated, xg_frame_restack, xg_set_skip_taskbar) (xg_set_no_focus_on_map, xg_set_no_accept_focus) (xg_set_override_redirect): New functions. (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos): Don't let scrollbars obscure child frames. * src/gtkutil.h: (xg_set_undecorated, xg_frame_restack) (xg_set_skip_taskbar, xg_set_no_focus_on_map) (xg_set_no_accept_focus, xg_set_override_redirect): Add extern declarations. * src/nsfns.m (ns_frame_parm_handlers): Add entries for new frame parameters. (Fx_create_frame): Install `min-width' and `min-height' frame parameters. * src/nsterm.m (mouseMoved:): Handle focus_follows_mouse change. * src/w32fns.c (WS_EX_NOACTIVATE): Define if necessary. (x_real_positions): Handle child frames. (x_set_menu_bar_lines): Don't for child frames. (x_set_undecorated, x_set_parent_frame, x_set_skip_taskbar) (x_set_no_focus_on_map, x_set_no_accept_focus) (x_set_z_group): New functions. (w32_createvscrollbar, w32_createhscrollbar): Don't draw scroll bars over child frames. (w32_createwindow): Handle new frame parameters and child frames. (w32_wnd_proc): Let mouse clicks into a child frame activate the frame. Try to handle the `no-accept-focus' parameter. Do SetFocus when our window is brought to top or becomes the foreground window. (w32_window): Don't initialize menu bar for child frames. (Fx_create_frame): Handle new frame parameters. (x_create_tip_frame): Set explicit_parent slot. (w32_dialog_in_progress): New function. (Fx_file_dialog): Handle `z-group-above' frames. (w32_frame_list_z_order, Fw32_frame_list_z_order) (w32_frame_restack, Fw32_frame_restack): New functions. (w32_frame_parm_handlers): Add entries for new frame parameters. * src/w32font.c (Fx_select_font): Handle `z-group-above' frames during font selection dialogue. * src/w32term.c (construct_mouse_wheel): Construct mouse wheel event from F's w32 window. (w32_mouse_position): Handle child frames. (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar): Don't draw scroll bars over child frames. (w32_read_socket): Always erase background of child frames. When generating SELECT_WINDOW_EVENTs handle new value of `focus-follows-mouse' and handle `no-accept-focus' parameter. Handle `mouse-wheel-frame' parameter. (x_calc_absolute_position, x_set_offset, x_set_window_size): Handle child frames. (x_make_frame_visible): Handle child frames specially. Handle `no-focus-on-map' parameter. * src/w32term.h (w32_dialog_in_progress): Add external declaration. * src/xdisp.c (x_consider_frame_title, prepare_menu_bars): Not for child frames. * src/xfns.c (Xm/MwmUtil.h): Include for WM hints. (PropMotifWmHints, PROP_MOTIF_WM_HINTS_ELEMENTS): Define for non-Motif, non-GTK case. (x_real_pos_and_offsets): Handle child frames. (x_set_undecorated, x_set_parent_frame) (x_set_no_focus_on_map, x_set_no_accept_focus) (x_set_override_redirect): New functions. (x_set_menu_bar_lines): Not for child frames. (x_window): Handle `undecorated' and `override_redirect' cases. (Fx_create_frame): Handle new frame parameters. (frame_geometry): Handle child frames and outer border. (x_frame_list_z_order, Fx_frame_list_z_order) (x_frame_restack, Fx_frame_restack): New functions. (Fx_file_dialog, Fx_select_font): Set x_menu_set_in_use. (x_frame_parm_handlers): Add entries for new frame parameters. * src/xmenu.c (x_menu_set_in_use): Handle `z-group-above' frames. * src/xterm.c (x_set_frame_alpha): Don't set alpha of parent for child frames. (XTmouse_position): Handle child frames. (x_scroll_bar_create, x_scroll_bar_expose): Don't let scroll bars obscure child frames. (handle_one_xevent): Handle child frame positions. If necessary set `skip-taskbar' and reassign proper `z-group' when we are mapped. When generating SELECT_WINDOW_EVENTs handle new value of `focus-follows-mouse'. Handle `mouse-wheel-frame' parameter. Let mouse clicks into a child frame activate the frame. (x_calc_absolute_position, x_set_offset): Handle child frames specially. (x_set_skip_taskbar, x_set_z_group): New functions. (x_make_frame_visible): Handle child frames. (ATOM_REFS_INIT): Add entries for Xatom_net_wm_state_skip_taskbar, Xatom_net_wm_state_above, Xatom_net_wm_state_below. * src/xterm.h (top-level): Declare Xatom_net_wm_state_above, Xatom_net_wm_state_below and Xatom_net_wm_state_skip_taskbar. (x_set_skip_taskbar, x_set_z_group): Add extern declarations.
* | Frame movement, focus and hook related changesMartin Rudalics2017-04-116-19/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New hook `move-frame-functions'. Run `focus-in-hook' after switching to frame that gets focus. Don't run XMoveWindow for GTK. * lisp/frame.el (handle-move-frame, frame-size-changed-p): New functions. * src/frame.c (do_switch_frame): Simplify code. (Fhandle_switch_frame): Switch frame before running `handle-focus-in'. (Vfocus_in_hook, Vfocus_out_hook): Clarify doc-strings. (Vmove_frame_functions): New hook variable. * src/keyboard.c (kbd_buffer_get_event): Handle MOVE_FRAME_EVENT. Handle SELECT_WINDOW_EVENT separately. (head_table): Add Qmove_frame entry. (syms_of_keyboard): Add Qmove_frame. (keys_of_keyboard): Define key for `move-frame'. * src/termhooks.h (event_kind): Add MOVE_FRAME_EVENT. * src/w32term.c (w32_read_socket): Create MOVE_FRAME_EVENT. * src/window.c (run_window_size_change_functions): Record size of FRAME's minibuffer window too. * src/xterm.c (handle_one_xevent): Create MOVE_FRAME_EVENT. (x_set_offset): For GTK call gtk_widget_move instead of XMoveWindow.
* | Avoid abort in ftfont.c due to faulty fontsWerner LEMBERG2017-04-111-1/+2
| | | | | | | | | | * src/ftfont.c (ftfont_get_metrics): Try loading the font without hinting, before aborting. (Bug#25945)
* | Set x_gtk_use_window_move by default for fixing bug#25851 and bug#25943Martin Rudalics2017-04-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This activates a change that was installed a few weeks ago but whose ChangeLog was inadvertently dropped during its commit. The proper ChangeLog is included below as part of the present commit. * src/gtkutil.c (xg_set_geometry): When x_gtk_use_window_move is set avoid calling x_gtk_parse_geometry (Bug#25851). (x_wm_set_size_hint): When x_gtk_use_window_move is set, set PPosition, USPosition and USSize flags if requested. * src/xterm.c (x_set_offset): With GTK when x_gtk_use_window_move is set, leave it entirely to gtk_window_move to position the window and skip any post-adjustments (Bug#25851 and Bug#25943). (x_gtk_use_window_move): New variable.
* | Add PVSIZE function to return the size of a pseudovector.Lars Brinkhoff2017-04-109-21/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/lisp.h (PVSIZE): New function. * src/chartab.c (copy_char_table): * src/data.c (Ftype_of, Finteractive_form, Faref, Faset): * src/doc.c (Fdocumentation, store_function_docstring): * src/eval.c (Fcommandp, funcall_lambda, lambda_arity, Ffetch_bytecode): * src/fns.c (Flength, Fcopy_sequence): * src/font.h (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P): * src/lread.c (substitute_object_recurse): * src/src/print.c (print_object): Use it.
* | Fix circular read syntax for records.Lars Brinkhoff2017-04-081-1/+2
| | | | | | | | | | | | * lread.c (substitute_object_recurse): Work with records. * lread-tests.el (lread-record-1): New test.
* | Deprecate copy-record in favor of copy-sequencePaul Eggert2017-04-073-19/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since copy-sequence seems to be needed anyway for records, have it work on records, and remove copy-record as being superfluous. * doc/lispref/records.texi (Records, Record Functions): * lisp/emacs-lisp/cl-macs.el (cl-defstruct): * lisp/emacs-lisp/eieio.el (make-instance, clone): * test/src/alloc-tests.el (record-3): Use copy-sequence, not copy-record, to copy records. * doc/lispref/sequences.texi (Sequence Functions) (Array Functions): Document that aref and copy-sequence work on records. * etc/NEWS: Omit copy-record. * src/alloc.c (Fcopy_record): Remove. * src/data.c (Faref): Document that arg can be a record. * src/fns.c (Fcopy_sequence): Copy records, too.
* | Fix dependency checking in src/Makefile.inPaul Eggert2017-04-071-10/+10
| | | | | | | | | | | | * src/Makefile.in (AUTO_DEPEND, DEPDIR, DEPFLAGS): Move includes of dependency files until after ALLOBJS is defined, since it uses ALLOBJS. Otherwise, some dependencies will be missed.
* | Minor tuneup of write-region changePaul Eggert2017-04-071-3/+3
| | | | | | | | | | * src/fileio.c (write_region): Use SCHARS, not Flength, on a value known to be a string.