1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-04 04:52:10 -08:00
Commit graph

44035 commits

Author SHA1 Message Date
Yuuki Harano
1f82c85bff Fix compile error when PGTK_DEBUG is enabled
* src/pgtkterm.c (pgtk_set_window_size): Remove "pixelwise" arg,
which is already non-existent.
2021-05-19 23:34:16 +09:00
Yuuki Harano
82b4ea2fe8 * src/image.c: Fix compile error related xpm in image.c
Use the same code as NS.
2021-05-19 23:06:56 +09:00
Yuuki Harano
e48372f8e5 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk 2021-05-19 22:02:06 +09:00
Eli Zaretskii
eb75826207 Avoid crashes in condition-case
* src/eval.c (internal_lisp_condition_case): Don't take XCAR
without making sure the value is a cons cell.  (Bug#48479)
2021-05-17 18:10:49 +03:00
Noam Postavsky
487498e497 Remove unreliable test for match data clobbering
* src/search.c (Freplace_match): Don't test for change in search_regs
start and end, this is unreliable if change hooks modify text earlier
in the buffer (bug#35264).
2021-05-16 15:19:57 +02:00
Eli Zaretskii
b5e6dba05f Fix segfaults when byte-compiling with native-compilation
* src/emacs.c (main): Call 'set_initial_minibuffer_mode' before
entering recursive-exit.
* src/minibuf.c (init_minibuf_once_for_pdumper): Don't call
'set_minibuffer_mode' here...
(set_initial_minibuffer_mode): ... set it in this new function.
(Bug#48446)
* src/lisp.h: Add prototype for 'set_initial_minibuffer_mode'.
2021-05-15 20:44:40 +03:00
Yuuki Harano
d0fa569b73 Revert "Update texts while busy"
This reverts commit 8a649cba44.
Because the position of the initial frame is not desired, unless
initial-frame-alist is set.
2021-05-15 23:39:35 +09:00
Yuuki Harano
8a649cba44 Update texts while busy
Pgtk didn't update text and C-g didn't take effect while it is busy.
By timer interrupts, we can call pgtk_read_socket, and update texts
and handle C-g.

* src/pgtkterm.c (start_timer): New function to start timer.
(pgtk_show_hourglass): Remove code to start timer.
(pgtk_hide_hourglass): Remove code to stop timer.
(pgtk_term_init): Call start_timer().
2021-05-15 22:50:06 +09:00
Alan Mackenzie
46e4704e2a Miscellaneous corrections to src/minibuf.c for bug #48337
* src/minibuf.c (read_minibuf): Call get_minibuffer before incrementing
minibuf_level, in case a hook function calls Factive_minibuffer_window.
(init_minibuf_once_for_pdumper): Create  *Minibuf-0* here (moved from
init_minibuf_once), and set its mode, so that clicking in the mini-window
immediately after start up works (thanks, Eli Z.).
2021-05-15 11:49:49 +00:00
Martin Rudalics
c18403302d Have X builds handle VisibilityNotify events (Bug#48268, Bug#48413)
* src/xterm.c (handle_one_xevent): Handle VisibilityNotify
events (Bug#48268, Bug#48413).
2021-05-15 09:20:50 +02:00
Yuuki Harano
3f8f3a9027 Create a variable to enable selection on multi display
* src/pgtkselect.c (pgtk_selection_usable): If it is true, always
returns true.
(syms_of_pgtkselect): New bool variable.
2021-05-15 01:24:50 +09:00
Alan Mackenzie
780b1db126 Various detailed fixes to minibuf.c, etc., to fix bug #48337
Also fix some unsafe coding.

* lisp/window.el (push-window-buffer-onto-prev): New function, extracted from
(record-window-buffer): Refactor by extracting the above, and removing the now
redundant parameter DO-MINIBUF.

* src/minibuf.c (zip_minibuffer_stacks, read_minibuf): Replace calls to
get_minibuffer (0) by nth_minibuffer (0).  Replace calls to
Qrecord_window_buffer by calls to Qpush_window_buffer_onto_prev.
(Factive_minibuffer_window, read_minibuf_unwind): Call abort_emacs should an
"impossible" null value be returned by nth_minibuffer.
(read_minibuf): Move the get_minibuffer_call to just after the incrementation
of minibuf_level as a precaution against a missing buffer in
Vminibuffer_list.
(nth_minibuffer): Replace XCAR by Fcar, to allow (car nil) to work.
(init_minibuf_once): Create the inactive buffer  *Minibuf-0*.
(syms_of_minibuf): New DEFSYM, Qpush_window_buffer_onto_prev.

* src/window.c (restore_window_configuration): Replace some XCARs and XCDRs
by Fcar_safe and Fcdr_safe.
2021-05-14 15:52:21 +00:00
Yuuki Harano
9a64cc1468 Treat all the wayland connection as the same display
On Wayland,
even if without WAYLAND_DISPLAY, --display DISPLAY works, but
gdk_display_get_name() always return "wayland-0", which may be
different from DISPLAY.
If with WAYLAND_DISPLAY, then it always returns WAYLAND_DISPLAY.
So pgtk emacs is confused and enter multi display environment.
To workaround this situation, treat all the wayland-* as the same
display.

* src/pgtkfns.c (is_wayland_display): New function to decide it is a
wayland connection.
(pgtk_display_info_for_name): If both are wayland connection, then
they are the same display.
2021-05-14 01:32:53 +09:00
Glenn Morris
3061409de2 Merge from origin/emacs-27
bcd92b5708 (origin/emacs-27) Improve documentation of Hexl mode
c233f4eccd ; * etc/NEWS: Fix decoded-time-set-defaults typo.
4c3abb3dd1 Fix compilation errors with latest w32 API headers
127f1f330b Improve doc strings in log-edit.el
e36183ff46 ; * etc/TODO (etc/DOC): Update the todo entries.

# Conflicts:
#	etc/NEWS
2021-05-13 08:11:03 -07:00
dickmao
5be26b43f4 Process sentinels need to work under X and commandline
* src/process.c (add_non_keyboard_read_fd): Make this a public function.
(add_process_read_fd): Fold old, static add_non_keyboard_read_fd guts
into here.
* src/xsmfns.c (ice_conn_watch_CB): Call add_non_keyboard_read_fd
(bug#43834).
2021-05-13 15:22:01 +02:00
Eli Zaretskii
1aaceec931 Fix vertical cursor motion across tall text or small images
'line-move-partial' should in general leave it to the display
engine to scroll or recenter the window due to vertical motion of
the cursor.  The only purpose of this function is to produce
vscroll suitable for scrolling across large (relatively to the
window's height) images, where moving by display lines is not
appropriate.

* src/xdisp.c (Fdisplay__line_is_continued_p): New primitive.

* lisp/simple.el (line-move-partial): Call
'display--line-is-continued-p' to decide whether to leave it to
redisplay to scroll the window as appropriate.  (Bug#48170)
2021-05-13 16:12:10 +03:00
Nicolás Bértolo
0e69c85d7d Make searching for files faster under Windows
* src/lread.c (openp): Use faccessat to check that a file exists
before opening it on Windows (bug#41646).  This speeds up
searching for files.
2021-05-13 13:30:29 +02:00
Radon Rosborough
adbdf85e23 Use an explicit line width of 1 on hollow cursors under X
* src/xterm.c (x_draw_hollow_cursor): Specify a line width of
1 explicitly to avoid problems on some X implementations (bug#42452).
2021-05-13 11:44:36 +02:00
Eli Zaretskii
cd0e7d51ab ; * src/image.c (xpm_format, xpm_valid_color_symbols_p): Fix last change. 2021-05-13 12:33:08 +03:00
Eli Zaretskii
3547e01d96 * src/image.c (xpm_image_p): Avoid another compiler warning. 2021-05-13 12:23:19 +03:00
Eli Zaretskii
0b0ab33f2d * src/image.c: Avoid compiler warnings in Cairo builds without XPM. 2021-05-13 12:17:44 +03:00
Jeff Walsh
bfd6ab9dc9 * src/pgtkterm.c remove duplicated code
* src/pgtkterm.c (pgtk_update_window_begin):
(pgtk_update_window_end):
(pgtk_redisplay_interface): Remove duplicate code and default to the
generic gui_update_window_begin/end implementations
2021-05-13 00:32:06 +09:00
Martin Rudalics
b41f39d22c Handle Bug#24526 without breaking Emacs on tiling WMs (Bug#48268)
Since tiling window managers may react allergically to resize
requests immediately following MapNotify events on X, make sure
that such requests are issued only when a new frame should not
become visible and a size has been explicitly requested for it.

* lisp/faces.el (x-create-frame-with-faces): Mark frame as
'was-invisible' if it should be initially invisible or iconified
and has its size specified explicitly.
* src/frame.c (make_frame): Initialize new frame's was_invisible
flag.
(Fframe__set_was_invisible): New internal function.
* src/frame.h (struct frame): Specify size of new_size_p slot.
New flag was_invisible.
* src/w32fns.c (Fx_create_frame)
* src/nsfns.m (Fx_create_frame)
* src/xfns.c (Fx_create_frame): Set new frame's was_invisible
flag.
* src/xterm.c (handle_one_xevent): Call xg_frame_set_char_size
after a PropertyNotify or MapNotify event only if F's
was_invisible flag was set.
2021-05-12 09:44:02 +02:00
Andrea Corallo
63df3372be Rename comp-deferred-compilation
* lisp/progmodes/elisp-mode.el
	(emacs-lisp-native-compile-and-load): Rename
	comp-deferred-compilation -> native-comp-deferred-compilation.
	* src/comp.c (maybe_defer_native_compilation, syms_of_comp):
	Likewise.
2021-05-11 18:31:45 +02:00
Eli Zaretskii
c9bf4e7f43 Fix assertions in nth_minibuffer
* src/minibuf.c (nth_minibuffer): Avoid assertion violation when
DEPTHth minibuffer doesn't exist.  (Bug#48337)
2021-05-11 16:37:37 +03:00
Yuuki Harano
486e77befd Fix frame size shrinking when turning fringe/scrollbars on/off
In 66a36f1, I keeped passing text size by mistake.

* src/pgtkterm.c (pgtk_set_window_size): Don't use
FRAME_PIXEL_TO_TEXT_WIDTH/HEIGHT to pass pixel size.
2021-05-11 00:09:04 +09:00
Glenn Morris
305e4807a4 Base the "extraclean" Make rule on "maintainer-clean"
* Makefile.in (FIND_DELETE): New, set by configure.
(extraclean_dirs): Remove.
(extraclean): Make it just a small variation on maintainer-clean.
* admin/charsets/Makefile.in (extraclean):
* admin/grammars/Makefile.in (extraclean):
* admin/unidata/Makefile.in (extraclean):
* leim/Makefile.in (extraclean):
* lib-src/Makefile.in (extraclean):
* lisp/Makefile.in (extraclean):
* lwlib/Makefile.in (extraclean):
* nt/Makefile.in (extraclean):
* src/Makefile.in (extraclean): Remove target.
* lib/Makefile.in (extraclean): Merge into maintainer-clean.
2021-05-09 18:14:12 -07:00
Yuuki Harano
ca0b1b9fe5 Fix pgtk_make_frame_visible doesn't work
* src/pgtkterm.c (pgtk_wait_for_map_event): New function to wait for
map events. The content is moved from pgtk_make_frame_visible.
(pgtk_make_frame_visible): Call pgtk_wait_for_map_event, instead of
process here directly.
(pgtk_make_frame_invisible): Call pgtk_wait_for_map_event to wait
for multiple map events.
2021-05-09 17:53:20 +09:00
Eli Zaretskii
4c3abb3dd1 Fix compilation errors with latest w32 API headers
* src/w32common.h: Rename OS_* to OS_SUBTYPE__*, as w32 API
headers started defining OS_NT, which breaks the use of the
enumeration.  All users changed.  (Bug#48303)
2021-05-09 10:59:08 +03:00
Yuuki Harano
647e4a92bb * src/pgtkmenu.c (show_help_event): Let emacs not show menu tooltips 2021-05-08 23:46:49 +09:00
Yuuki Harano
639d94fe14 Entrust Gtk with handling tooltips
Previously, tooltips for menu items are below the menu.
To solve it, set tooltip text on menu items in advance, and entrust
gtk with handling tooltips.

* src/gtkutil.c (xg_show_tooltip): New function for pgtk to set
tooltip text on the widget.
(xg_hide_tooltip): New function for pgtk to clear tooltip text on the
widget.
(xg_create_frame_widgets): Don't set initial tooltips text, and don't
use qttip_cb.
(xg_create_frame_outer_widgets): Ditto.
(make_menu_item): Set tooltip text on the menu item.
* src/gtkutil.h: New declaration of xg_show_tooltip for pgtk.
* src/pgtkfns.c (Fx_show_tip): Calls xg_show_tooltip, and always ok.
2021-05-08 23:46:49 +09:00
Alan Mackenzie
f608b4b93c Prevent the selected window being a dead mini-window when switching frames
This fixes bug #48249 and also a situation where, with recursive minibuffers
enabled and minibuffer-follows-selected-frame t, switching frames when a
minibuffer was open would leave the mini-window selected on the old frame.

* lisp/window.el (record-window-buffer): Add extra parameter DO-MINIBUF, and
amend the code such that minibuffers only get processed when that parameter is
non-nil.

* src/minibuf.c (zip_minibuffer_stacks, read_minibuf): Call
Qrecord_window_buffer with the new argument set to Qt.
(move_minibuffers_onto_frame): Set the selected window on the old frame when
this would otherwise remain the mini-window.
2021-05-08 12:13:57 +00:00
Andrea Corallo
fbbcbed10e Rename comp-eln-load-path → native-comp-eln-load-path
* src/comp.c (Fcomp_el_to_eln_filename): Rename comp-eln-load-path →
native-comp-eln-load-path.
* src/lread.c (maybe_swap_for_eln): Likewise.
* lisp/startup.el (native-comp-eln-load-path)
(normal-top-level): Likewise.
* lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final)
(comp-eln-load-path-eff, comp-trampoline-compile)
(comp-clean-up-stale-eln, comp-run-async-workers)
(comp-lookup-eln, batch-byte-native-compile-for-bootstrap): Likewise.
2021-05-06 17:16:09 +02:00
Andrea Corallo
901ce56603 Rename comp-warning-on-missing-source
* src/lread.c (maybe_swap_for_eln): Rename
comp-warning-on-missing-source →
native-comp-warning-on-missing-source.
* src/comp.c (syms_of_comp): Likewise.
* lisp/emacs-lisp/comp.el (native-comp-warning-on-missing-source):
Likewise.
2021-05-06 17:16:09 +02:00
Andrea Corallo
8c429a42c4 Rename comp-native-driver-options → native-comp-driver-options
* src/comp.c (add_driver_options, syms_of_comp): Rename
comp-native-driver-options → native-comp-driver-options.
* lisp/emacs-lisp/comp.el (native-comp-driver-options)
(comp-ctxt, comp-spill-lap-function, comp-final)
(comp-run-async-workers): Likewise.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise.
2021-05-06 17:16:08 +02:00
Andrea Corallo
94c69eb1d7 Rename comp-debug -> native-comp-debug
* src/comp.c (emit_ctxt_code, syms_of_comp): Rename comp-debug ->
native-comp-debug.
* lisp/emacs-lisp/comp.el (native-comp-debug, comp-ctxt)
(comp-spill-lap-function, comp-run-async-workers): Likewise.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise.
* test/src/comp-tests.el (comp-tests-bootstrap): Likewise.
2021-05-06 17:16:07 +02:00
Andrea Corallo
43f29696ad Rename comp-speed -> native-comp-speed
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
comp-speed -> native-comp-speed.
* lisp/emacs-lisp/comp.el (native-comp-speed, comp-ctxt, comp-func,
comp-spill-lap-function, comp-trampoline-compile,
comp-run-async-workers): Likewise.
* src/comp.c (emit_ctxt_code, load_comp_unit, syms_of_comp): Likewise.
* test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1)
(comp-tests-check-ret-type-spec, comp-tests-pure): Likewise.
2021-05-06 17:16:07 +02:00
Eli Zaretskii
7f317868c5 ; * src/doc.c (syms_of_doc): Fix last change. 2021-05-06 18:08:53 +03:00
Stefan Kangas
74a4f3e043 Improve formatting in text-quoting-style docstring
* src/doc.c (syms_of_doc) <text-quoting-style>: Doc fix; improve
formatting for readability.
2021-05-06 16:31:20 +02:00
Yuuki Harano
ff3d7190bb Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk 2021-05-06 21:47:23 +09:00
Alan Mackenzie
c873d16af6 Fix wrong handling of minibuffers when frames get iconified/made invisible
This should fix bug #47766.

* lisp/window.el (window-deletable-p): Add a quote where it was missing from
minibuffer-follows-selected-frame.

* src/frame.c (check_minibuf_window): Delete the function.
(delete_frame): In place of calling check_minibuf_window, call
move_minibuffers_onto_frame, possibly to move minibuffers onto the new current
frame.
(Fmake_frame_invisible, Ficonify_frame): Remove calls to check_minibuf_window.

* src/minibuf.c (Factive_minibuffer_window): Search the frames for the active
minibuffer rather than just assuming minibuf_window has been correctly
updated.
2021-05-06 10:48:14 +00:00
Andrea Corallo
40736357b8 Rename feature nativecomp' into native-compile'
* test/src/comp-tests.el : Rename feature `nativecomp' into
	`native-compile'.
	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise.
	* src/comp.c (syms_of_comp): Likewise.
	* lisp/startup.el (normal-top-level): Likewise.
	* lisp/loadup.el: Likewise.
	* lisp/help.el (help-function-arglist): Likewise.
	* lisp/emacs-lisp/package.el (package--native-compile-async)
	(package--delete-directory): Likewise.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise.
	* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
2021-05-05 22:27:29 +02:00
Martin Rudalics
e9baa733b8 Fix setting of 'width' and 'height' frame parameters
* src/frame.c (Fframe_parameters): Fix bogus setting of 'height'
and 'width' parameters.
2021-05-05 18:36:00 +02:00
Yuuki Harano
5b97b98daa Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk 2021-05-05 19:00:37 +09:00
Martin Rudalics
483c5e953c Fix two GTK3 event handling issues
* src/xterm.c (handle_one_xevent): For GTK3 PropertyNotify and
MapNotify events explicitly request the stored frame sizes when
the frame changes from iconified to a non-hidden state
(Bug#24526).  For Expose events do not change the frame's
visibility or iconified state.  For FocusIn events on GTK3 do
not apply the fix for Bug#42655.  The latter two changes are to
avoid that plain invisible frames get reported as iconified.
2021-05-05 10:26:32 +02:00
Lars Ingebrigtsen
203ee33980 Make the ELC+ELN lines line up with the other lines 2021-05-05 09:41:49 +02:00
Eli Zaretskii
c36df52ff5 Fix infloop in lsp-mode
* src/indent.c (line_number_display_width): Make sure the selected
window's buffer is current before using display code on it:
redisplay assumes that the window's buffer is current at all
times.  Reported by Evgeny Kurnevsky via lsp-mode's issue 1621,
https://github.com/emacs-lsp/lsp-mode/issues/1621.
2021-05-04 20:37:33 +03:00
Glenn Morris
6a030deb3d Merge from origin/emacs-27
101a049f55 Improve doc string of 'tab-width'.
43c154404e * lisp/emacs-lisp/elp.el: Doc fixes.
1984213f62 * lisp/emacs-lisp/pp.el: Doc fixes.
6486c9dc73 * admin/make-tarball.txt: Note to update more files on web...
2021-05-04 07:50:25 -07:00
Basil L. Contovounesios
b8f88d76ea Remove as of recently unused GDK macro
Its only use was removed in the recent change of 2021-04-27 "Major
rewrite of adjust_frame_size", announced in the following thread:
https://lists.gnu.org/r/emacs-devel/2021-04/msg01162.html

* src/gtkutil.c [USE_GTK && !HAVE_GTK3] (gdk_window_get_geometry):
Remove unused macro to pacify -Wunused-macros build warning.
2021-05-04 15:19:29 +01:00
Martin Rudalics
8a4bb6b056 Fix a problem with x_set_tab_bar_lines (Bug#46827)
* src/xfns.c (x_set_tab_bar_lines): Call
x_change_tab_bar_height only if the number of tab bar lines
changed from or to zero (Bug#46827).
* src/xterm.c (x_make_frame_visible): Make frame_size_history
update less noisy by doing it only if the frame wasn't visible
before.
2021-05-04 09:17:11 +02:00