1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 07:11:34 -08:00
Commit graph

35 commits

Author SHA1 Message Date
Paul Eggert
76342efe9d Pacify GCC in pgtkselect malloc alignment
This is a better fix for Bug#76414.
* src/pgtkselect.c (pgtk_nalloc): New function.
(pgtk_get_window_property, lisp_data_to_selection_data): Use it.
2025-03-02 15:58:04 -08:00
Paul Eggert
f12fbed4c1 Revert “Pacify GCC in pgtkselect malloc alignment”
Problem reported by the wurfkreuz (Bug#76414).
* src/pgtkselect.c: Revert my commit
ff65cc9944 dated Sun Jan 26 22:15:49
2025 -0800 for now.  I may come up with a better commit later.
2025-02-22 23:54:22 -07:00
Paul Eggert
ff65cc9944 Pacify GCC in pgtkselect malloc alignment
* src/pgtkselect.c (pgtk_size_for_format): Remove.
(pgtk_get_window_property): Third arg is now void **, not unsigned
char **.  Omit last arg.  All callers changed.  Simplify
allocation to pacify GCC 14.2.1 complaint about malloc size
mismatching size of array: there’s no need for an extra byte when
converting from ldata to idata.
(selection_data_to_lisp_data): Third arg is now void const *,
not unsigned char const *.  All callers changed.
Omit unnecessary casts.  Make some locals more local.
2025-01-26 23:05:53 -08:00
Stefan Kangas
251e3d2654 Replace call[1-8] with calln
Since the introduction of the 'calln' macro, the 'call1', 'call2', ...,
'call8' macros are just aliases for the former.  This is slightly
misleading and potentially unhelpful.  The number of arguments N can
also easily go out-of-synch with the used alias callN.  There is no
reason not to replace these aliases with using 'calln' directly.

To reduce the risk for mistakes, the tool Coccinelle was used to make
these changes.  See <https://coccinelle.gitlabpages.inria.fr/website/>.

* src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c:
* src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c:
* src/chartab.c, src/cmds.c, src/coding.c, src/composite.c:
* src/data.c, src/dbusbind.c, src/dired.c, src/doc.c:
* src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c:
* src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c:
* src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c:
* src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c:
* src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c:
* src/pgtkselect.c, src/print.c, src/process.c, src/sort.c:
* src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c:
* src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c:
* src/xmenu.c, src/xselect.c, src/xterm.c:
Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'.
2025-01-19 14:29:41 +01:00
Paul Eggert
4da38c6321 Update copyright year to 2025
Run "TZ=UTC0 admin/update-copyright".
2025-01-01 07:39:17 +00:00
Eli Zaretskii
0cf9886cdf Merge from origin/emacs-30
d509a35699 Fix regression in widget-move (bug#72995)
ef0276de82 ; * lisp/cus-edit.el (setopt): Doc fix.  (Bug#73098)
b115c2d5eb ; * lisp/minibuffer.el (completion-pcm--merge-completions...
3cda1fdc3b Correctly include fixed strings before a prefix wildcard ...
57d93d0259 ; * lisp/treesit.el (treesit-major-mode-setup): Doc fix.
ad289f364e ; Improve documentation of 'easy-menu-define'
3cad7cc8dc Set treesit-primary-parser for c and elixir ts mode
2f243fb91d ; Minor doc fix in treesit.el
6a6d7925c9 Fix range handling so it works for multibyte buffer (bug#...
76faf7e609 Revert "Read more on each call to treesit's buffer reader"
c70bd0e3fe Fix tree-sitter indent preset prev-adaptive-prefix
272df33fb8 ; * CONTRIBUTE: Minor copyedits.
8e1187e336 Improve NEWS entries
ca3932121a Don't fail uniquify-tests in non-version-controlled sourc...
79f68597ab ; * etc/ORG-NEWS: Fix typo.
d66b70f360 * doc/misc/auth.texi: Minor copy edits.
2c6b7b2da9 ; * admin/MAINTAINERS: Remove some entries for Artur Mala...
11e7ae3964 Fix bug#72254

# Conflicts:
#	etc/NEWS
2024-09-14 07:55:01 -04:00
Po Lu
11e7ae3964 Fix bug#72254
* src/pgtkselect.c (Fpgtk_get_selection_internal): If requesting
TARGETS with just one result, return it as a vector.
(bug#72254)
2024-09-12 08:23:13 +08:00
Paul Eggert
101ec14301 SAFE_ALLOCA fixes
* src/comp.c (declare_imported_func, emit_simple_limple_call)
(declare_lex_function, compile_function):
* src/emacs-module.c (funcall_module):
* src/fns.c (Fstring_distance):
* src/font.c (font_sort_entities):
* src/haikumenu.c (digest_menu_items, haiku_menu_show):
* src/pgtkselect.c (Fpgtk_register_dnd_targets):
* src/xfns.c (Fx_begin_drag):
* src/xmenu.c (x_menu_show):
* src/xterm.c (x_dnd_compute_toplevels, handle_one_xevent)
(x_term_init):
Prefer SAFE_NALLOCA to doing size multiplication by hand, to catch
unlikely integer overflows.
* src/comp.c (emit_simple_limple_call): Fix bug where
SAFE_FREE was called too early, leading to unlikely
use of freed storage.
* src/xterm.c (handle_one_xevent): Remove side effects
from SAFE_ALLOCA args, as the args are evaluated twice.
2024-07-20 08:55:08 -07:00
Paul Eggert
99a5c75f3b Pacify gcc -Wmissing-variable-declarations
This is a new warning diagnostic in GCC 14.
* lib-src/etags.c (mercury_heuristics_ratio):
* src/pgtkselect.c, src/xselect.c (selection_request_stack):
* src/xselect.c (outstanding_transfers):
* src/xterm.c (pending_selection_requests)
(x_dnd_waiting_for_motif_finish_display):
Now static.
* lib-src/make-docfile.c (close_emacs_globals):
Arrange for lispsym to be declared with extern first,
when compiling lread.c.
* src/alloc.c (gdb_make_enums_visible) [__GNUC__]:
* src/emacs.c (RCS_Id):
* src/keyboard.c (stop_character):
* src/print.c (print_output_debug_flag):
Now declared with extern first.
* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN) [MAIN_PROGRAM]:
Arrange for ID to be declared extern first.
* src/lisp.h (garbage_collection_inhibited):
* src/xterm.h (x_frame_parm_handlers):
Declare here, so that its interface is properly checked.  Other decls
removed.
2024-05-11 18:46:27 -07:00
Po Lu
8e1c56ae46 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
Eli Zaretskii
cae528457c ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Mattias Engdegård
f33a429a53 Copy-edit doc strings and comments wrt bignum and fixnum
Don't say that a value is a fixnum if small enough and a bignum
otherwise, because that is now how Lisp integers always work,
and we generally don't expose the fixnum/bignum difference to the user
unless really necessary.

* src/charset.c (Fencode_char):
* src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid)
(Fgroup_real_gid, Femacs_pid):
* src/font.c (Ffont_variation_glyphs):
* src/process.c (Fprocess_id):
Edit doc strings.
* src/pgtkselect.c:
* src/xselect.c: Edit comments.
2022-08-18 17:10:46 +02:00
Po Lu
1fa5f0428f Fix selection disowning upon frame deletion on Wayland
* src/pgtkselect.c (pgtk_clear_frame_selections): Manually
disown cleared selections.  (bug#56434)
2022-07-07 21:15:29 +08:00
Po Lu
1003f36feb Minor fixes to last change
* src/pgtkselect.c (pgtk_get_window_property): Add 1 to xdata
when it is GdkAtom.
* src/pgtkterm.c (drag_leave): Initialize inev.ie.
2022-06-23 13:58:38 +08:00
Po Lu
0b4db66a9d Allow dropping more data types on PGTK
* lisp/loadup.el (featurep): Load `pgtk-dnd'.
* lisp/pgtk-dnd.el: New file.
(pgtk-dnd-test-function, pgtk-dnd-types-alist)
(pgtk-dnd-known-types, pgtk-dnd-use-offix-drop)
(pgtk-dnd-current-state, pgtk-get-selection-internal)
(pgtk-register-dnd-targets, pgtk-dnd-empty-state)
(pgtk-dnd-init-frame, pgtk-dnd-get-state-cons-for-frame)
(pgtk-dnd-get-state-for-frame, pgtk-dnd-default-test-function)
(pgtk-dnd-current-type, pgtk-dnd-forget-drop)
(pgtk-dnd-maybe-call-test-function, pgtk-dnd-save-state)
(pgtk-dnd-handle-moz-url, pgtk-dnd-insert-utf8-text)
(pgtk-dnd-insert-utf16-text, pgtk-dnd-insert-ctext)
(pgtk-dnd-handle-uri-list, pgtk-dnd-handle-file-name)
(pgtk-dnd-choose-type, pgtk-dnd-drop-data)
(pgtk-dnd-handle-drag-n-drop-event, pgtk-update-drop-status)
(pgtk-drop-finish, pgtk-dnd-handle-gdk, pgtk-dnd): New variables
and functions and library.

* lisp/term/pgtk-win.el (special-event-map): Load
`drag-n-drop-event'.
(after-make-frame-functions): Register DND after make frame
functions.

* src/emacs.c (main): Stop calling empty init_pgtkterm function.

* src/pgtkselect.c (Fpgtk_register_dnd_targets, Fpgtk_drop_finish)
(Fpgtk_update_drop_status): New functions.
(syms_of_pgtkselect): Register new functions.
* src/pgtkterm.c (struct event_queue_t): Fix coding style of
definition.
(symbol_to_drag_action, drag_action_to_symbol)
(pgtk_update_drop_status, pgtk_finish_drop): New functions.
(drag_data_received): Delete function.
(pgtk_set_event_handler): Register for DND correctly.
(syms_of_pgtkterm): New defsyms for DND types.
(init_pgtkterm): Delete function.

* src/pgtkterm.h: Update prototypes, fix prototype coding style.
2022-06-23 13:58:38 +08:00
Po Lu
ff20b0192c Port x-selection-timeout to PGTK
* src/pgtkselect.c (pgtk_own_selection): Fix comment.
(wait_for_property_change, pgtk_get_foreign_selection): Respect
selection timeout.
(syms_of_pgtkselect): New variable `pgtk-selection-timeout'.
2022-06-22 10:02:09 +08:00
Po Lu
be35c92c90 Rewrite PGTK selection code from scratch
* src/frame.c (delete_frame): Clear selections and swallow
special events.

* src/keyboard.c (kbd_buffer_get_event, process_special_events):
Also handle selection events on PGTK.

* src/keyboard.h (union buffered_input_event): Include selection
events on PGTK.

* src/pgtkselect.c (symbol_to_gtk_clipboard, LOCAL_SELECTION):
New functions and macros.
(selection_type_to_quarks, get_func, clear_func): Delete
functions.
(pgtk_selection_init, pgtk_selection_lost):
(pgtk_selection_usable): New functions.
(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
(Fpgtk_get_selection_internal): Complete rewrite.
(syms_of_pgtkselect): Update defsyms and add more hooks.

* src/pgtkselect.h: Delete file.

* src/pgtkterm.c (evq_enqueue): Set last user time based on the
event.
(pgtk_any_window_to_frame, button_event): Fix coding style.
(pgtk_set_event_handler): Add selection events.
(pgtk_find_selection_owner, pgtk_selection_event): New
functions.
(pgtk_term_init): Remove call to `pgtk_selection_init'.

* src/pgtkterm.h (struct pgtk_display_info): New field
`display'.
(enum selection_input_event): New struct.  New macros for
accessing its fields.
2022-06-21 22:05:21 +08:00
Mattias Engdegård
bab1d41280 Use BASE_EQ when comparing with Qunbound
Qunbound is uninterned and can therefore never be EQ to any symbol
with position.

* src/buffer.c (Fbuffer_local_value, buffer_lisp_local_variables)
(buffer_local_variables_1):
* src/bytecode.c (exec_byte_code):
* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
* src/composite.c (composition_gstring_cache_clear_font):
* src/data.c (Fboundp, Fsymbol_value, set_internal)
(Fdefault_boundp, Fdefault_value, Fmake_variable_buffer_local):
* src/emacs-module.c (module_global_reference_p):
* src/eval.c (Fdefault_toplevel_value, defvar)
(run_hook_with_args):
* src/fns.c (hash_put, Fmaphash):
* src/font.c (font_put_extra):
* src/frame.c (gui_set_frame_parameters)
(gui_frame_get_and_record_arg, gui_default_parameter)
(gui_figure_window_size):
* src/haikufns.c (get_geometry_from_preferences)
(haiku_create_frame, haiku_create_tip_frame):
* src/haikuterm.c (haiku_draw_text_decoration)
(haiku_default_font_parameter):
* src/json.c (lisp_to_json_nonscalar_1):
* src/keymap.c (access_keymap_1, access_keymap, current_minor_maps):
* src/lread.c (readevalloop, define_symbol):
* src/minibuf.c (read_minibuf, Ftry_completion):
(Fall_completions, Ftest_completion):
* src/pgtkfns.c (pgtk_default_font_parameter, Fx_create_frame)
(x_create_tip_frame):
* src/pgtkselect.c (Fpgtk_own_selection_internal):
* src/print.c (print):
* src/profiler.c (evict_lower_half, record_backtrace):
* src/terminal.c (create_terminal):
* src/textprop.c (set_properties):
* src/w32fns.c (my_create_window, w32_icon)
(w32_default_font_parameter, Fx_create_frame)
(w32_create_tip_frame):
* src/w32term.c (w32_draw_glyph_string):
* src/xdisp.c (handle_single_display_spec)
(cursor_row_fully_visible_p, calc_pixel_width_or_height):
* src/xfns.c (x_default_scroll_bar_color_parameter, x_icon_verify)
(x_icon, x_default_font_parameter, Fx_create_frame)
(x_create_tip_frame):
* src/xselect.c (x_handle_selection_request):
* src/xterm.c (x_draw_glyph_string, x_term_init):
Use BASE_EQ instead of EQ when comparing with Qunbound.
2022-06-12 12:42:35 +02:00
Po Lu
c6ea0772ec Remove more code mindlessly copied from NS
* src/pgtkfns.c (Fx_open_connection):
* src/pgtkselect.c (nxatoms_of_pgtkselect):
* src/pgtkselect.h:
* src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'.
2022-04-07 11:44:59 +08:00
Po Lu
62eb57f438 Clean up more PGTK code
* lisp/term/pgtk-win.el (featurep):
(pgtk):
(pgtk-use-im-context):
(pgtk-handle-nxopen):
(pgtk-handle-nxopentemp):
(pgtk-ignore-1-arg):
([C-drag-n-drop]):
([M-drag-n-drop]):
([C-M-drag-n-drop]):
(pgtk-alternate-modifier):
(pgtk-right-alternate-modifier):
(pgtk-right-command-modifier):
(pgtk-right-control-modifier):
(pgtk-do-hide-emacs):
(pgtk-hide-others):
(pgtk-do-hide-others):
(pgtk-emacs-info-panel):
(pgtk-do-emacs-info-panel):
(pgtk-next-frame):
(pgtk-prev-frame):
(after-make-frame-functions):
(tool-bar-mode):
(pgtk-toggle-toolbar):
(pgtk-print-buffer):
(scalable-fonts-allowed):
(pgtk-standard-fontset-spec):
(pgtk-store-cut-buffer-internal):
(pgtk-copy-including-secondary):
(pgtk-paste-secondary):
(pgtk-suspend-error):
(window-system-initialization):
(after-init-hook): Remove code mindlessly copied from ns-win.el,
delete unused custom group, write doc strings and rename
variables duplicated from X to their names on X.  Also reformat
comments and code.
(pgtk-use-im-context-handler): New function.

* src/pgtkfns.c (syms_of_pgtkfns): Delete useless
AppleScript (!) code copied from NS.
* src/pgtkselect.c: Write FIXME about selection API usage.

* src/pgtkterm.c (get_keysym_name): Implement correctly instead
of sprintf'ing the numeric value of the keysym into a static
buffer.
(pgtk_set_window_size):
(xg_scroll_callback): Delete code that was #if 0'd out and
doesn't make sense on PGTK.
(pgtk_delete_terminal): Remove misleading comment.
2022-04-06 12:27:57 +08:00
Po Lu
e9217d0f34 Clean up more code from PGTK port
* lisp/term/pgtk-win.el (pgtk-disown-selection-internal)
(pgtk-get-selection-internal): Fix declarations for new calling
conventions.
* src/gtkutil.c (xg_frame_set_char_size, x_wm_set_size_hint):
Clean up meaningless variables on PGTK.
* src/pgtkfns.c (Fx_create_frame, syms_of_pgtkfns): Clean up
meaningless variables and fix copied doc strings to use "skip".
* src/pgtkim.c (im_context_commit_cb)
(im_context_retrieve_surrounding_cb)
(im_context_delete_surrounding_cb, make_color_string)
(im_context_preedit_changed_cb, im_context_preedit_end_cb)
(im_context_preedit_start_cb): Fix coding style.
* src/pgtkselect.c (pgtk_selection_usable)
(Fpgtk_disown_selection_internal, Fpgtk_get_selection_internal):
Remove unused arguments.
(syms_of_pgtkselect): Fix doc strings and old style variable
declarations.
* src/pgtkterm.c (x_set_offset, x_set_parent_frame)
(syms_of_pgtkterm): Clean up doc strings and remove meaningless
variables.
2022-02-07 10:38:15 +08:00
Po Lu
b38c0d6a2f Clean up lots of #ifdef'd out code in PGTK files
Most of them are either relics from X or from the NS code
pgtkfns.c was copied from whole.

* src/pgtkfns.c (x_icon):
(pgtk_set_scroll_bar_foreground):
(pgtk_set_scroll_bar_background):
(Fx_create_frame):
(pgtk_window_is_ancestor):
(x_create_tip_frame):
* src/pgtkselect.c (syms_of_pgtkselect):
* src/pgtkterm.c (pgtk_iconify_frame):
(x_set_frame_alpha):
(button_event): Remove defined out code that cannot make sense.

* src/pgtkmenu.c (show_help_event): Remove ifdef'd out code and
reword comment.
2022-02-06 09:18:59 +08:00
Eli Zaretskii
823b6b8d26 ; Add 2022 to copyright years. 2022-01-01 07:07:15 -05:00
Po Lu
1f34f072be Fix copyright dates in some files belonging to the pgtk port
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Fix copyright dates to say '2021'.
2021-12-31 21:08:23 +08:00
Yuuki Harano
901938109f Remove PGTK_DEBUG stuff
* src/gtkutil.c:
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(x_wm_set_size_hint):
(xg_set_toolkit_scroll_bar_thumb):
* src/pgtkfns.c (x_set_background_color):
(pgtk_set_name):
(x_explicitly_set_name):
(pgtk_implicitly_set_name):
(x_set_title):
(Fx_create_frame):
(Fpgtk_set_mouse_absolute_pixel_position):
(pgtk_log):
(pgtk_backtrace):
* src/pgtkselect.c (get_func):
(clear_func):
(pgtk_selection_lost):
(Fpgtk_own_selection_internal):
(Fpgtk_disown_selection_internal):
(Fpgtk_selection_exists_p):
(Fpgtk_selection_owner_p):
(nxatoms_of_pgtkselect):
(syms_of_pgtkselect):
* src/pgtkterm.c (flip_cr_context):
(get_keysym_name):
(frame_set_mouse_pixel_position):
(x_free_frame_resources):
(x_destroy_window):
(x_set_offset):
(pgtk_set_window_size):
(pgtk_iconify_frame):
(pgtk_make_frame_visible):
(pgtk_make_frame_invisible):
(pgtk_new_font):
(x_display_pixel_height):
(x_display_pixel_width):
(x_set_no_focus_on_map):
(x_set_no_accept_focus):
(x_set_z_group):
(x_set_cursor_gc):
(x_set_glyph_string_gc):
(x_set_glyph_string_clipping):
(x_draw_glyph_string_background):
(pgtk_draw_glyph_string):
(pgtk_after_update_window_line):
(pgtk_clear_frame_area):
(pgtk_draw_window_cursor):
(pgtk_copy_bits):
(pgtk_cr_draw_image):
(pgtk_draw_fringe_bitmap):
(pgtk_redraw_scroll_bars):
(pgtk_clear_frame):
(pgtk_read_socket):
(pgtk_select):
(xg_scroll_callback):
(xg_end_scroll_callback):
(pgtk_set_vertical_scroll_bar):
(set_fullscreen_state):
(pgtk_fullscreen_hook):
(pgtk_handle_event):
(pgtk_fill_rectangle):
(pgtk_clear_under_internal_border):
(print_widget_tree_recursive):
(print_widget_tree):
(pgtk_handle_draw):
(size_allocate):
(key_press_event):
(key_release_event):
(map_event):
(delete_event):
(enter_notify_event):
(leave_notify_event):
(focus_in_event):
(focus_out_event):
(motion_notify_event):
(button_event):
(scroll_event):
(drag_data_received):
(pgtk_xlfd_to_fontname):
(pgtk_defined_color):
(pgtk_parse_color):
(pgtk_query_colors):
(pgtk_query_color):
(pgtk_clear_area):
(pgtk_cr_update_surface_desired_size):
(pgtk_begin_cr_clip):
(pgtk_end_cr_clip):
(pgtk_set_cr_source_with_gc_foreground):
(pgtk_set_cr_source_with_gc_background):
(pgtk_set_cr_source_with_color):
(pgtk_cr_draw_frame):
(pgtk_cr_destroy_frame_context):
* src/pgtkterm.h:
2021-11-24 00:32:57 +09:00
Yuuki Harano
30a00f14c8 Fix coding style
Especially, insert a space between function name and paren.

* src/alloc.c (garbage_collect):
* src/font.h:
* src/frame.h:
* src/fringe.c:
* src/gtkutil.c (xg_set_screen):
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(xg_get_file_name):
(xg_get_font):
(xg_update_scrollbar_pos):
* src/image.c (image_create_bitmap_from_file):
(xpm_load_image):
* src/pgtkfns.c (pgtk_get_monitor_scale_factor):
(is_wayland_display):
(pgtk_display_info_for_name):
(INSTALL_CURSOR):
(Fx_create_frame):
(Fx_display_mm_height):
(Fx_display_mm_width):
(Fx_display_pixel_width):
(Fx_display_pixel_height):
* src/pgtkselect.c (pgtk_selection_usable):
(Fpgtk_own_selection_internal):
(Fpgtk_get_selection_internal):
* src/pgtkterm.c:
(x_set_parent_frame):
(pgtk_draw_fringe_bitmap):
(pgtk_handle_draw):
(scroll_event):
(pgtk_text_scaling_factor):
(pgtk_term_init):
* src/pgtkterm.h:
* src/window.h:
* src/xdisp.c (redisplay_internal):
(draw_glyphs_debug):
(draw_glyphs):
(note_mouse_highlight):
2021-11-14 20:27:31 +09:00
Jindřich Makovička
7673b6b9eb * src/pgtkselect.c: Avoid Glib assertion warnings
Do not call g_object_get_qdata, when the clipboard has no owner,
and obj is NULL. Just return Qnil immediately.
2021-06-09 00:28:33 +09: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
Yuuki Harano
565995d408 Fix unicode strings can't be pasted correctly
* lisp/select.el (x-select-request-type): Use text/plain;charset=utf-8
instead.
(gui--selection-value-internal): same.
(gui-get-selection): Treat text/plain;charset=utf-8 as utf-8.
* src/pgtkselect.c (Fpgtk_get_selection_internal): Support
text/plain;charset=utf-8 as foreign-selection.
(syms_of_pgtkselect): Add new symbol.
2021-03-02 22:44:42 +09:00
Yuuki Harano
949d3e50ec Work around I can't copy and paste unicode string to wayland chromium
* src/pgtkselect.c (Fpgtk_own_selection_internal):
Remove text/plain, since unicode strings are not correctly
encoded/decoded between Gtk and chromium(wayland) with it.
2021-02-20 17:48:11 +09:00
Yuuki Harano
ef76e64427 Support getting a image from clipboard
* src/pgtkselect.c (Fpgtk_get_selection_internal): Reimplement
referring selection_data_to_lisp_data in xselect.c
(syms_of_pgtkselect): Add symbols.
2021-02-11 19:30:01 +09:00
Jeff Walsh
886fcb237d Update copyright dates for PGTK files
* src/pgtkfns.c:
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Update copyright dates - No Funtional Changes
2020-11-24 12:24:40 +11:00
Yuuki Harano
72f79d820d * src/pgtkselect.c: change coding style 2020-11-24 12:24:40 +11:00
Yuuki Harano
bc35a1e1d5 Make multipdisplay work by limiting selection while enabed
* src/pgtkterm.c (pgtk_mouse_position):

* src/pgtkselect.c (pgtk_selection_usable): new function
(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
(Fpgtk_get_selection_internal): check usable selection

multi-display で落ちる理由を一つ潰した。

まだまだありそう。

multi-display 時は selection を使えないようにした。
2020-11-22 14:46:56 +11:00
Yuuki Harano
f6d8c5939b Introduce Pure GTK3 port
* src/xsettings.h:

* src/xsettings.c:
(dpyinfo_valid, store_tool_bar_style_changed)
(XSETTINGS_FONT_NAME, get_prop_window, read_settings)
(apply_xft_settings, read_and_apply_settings)
(xft_settings_event, init_xsettings, xsettings_initialize):

* src/xfaces.c:
(x_create_gc, x_free_gc):

* src/xdisp.c (redisplay_tool_bar, redisplay_internal)
(draw_glyphs_debug, draw_glyphs, mouse_face_from_buffer_pos)
(note_mouse_highlight):

* src/terminal.c (Fterminal_live_p):

* src/termhooks.h (enum output_method, GCALIGNED_STRUCT)
(TERMINAL_FONT_CACHE):

* src/process.c (wait_reading_process_output):

* src/pgtkterm.h:

* src/pgtkterm.c:

* src/pgtkselect.h:

* src/pgtkselect.c:

* src/pgtkgui.h:

* src/pgtkfns.c:

* src/image.c:
(XGetPixel, XPutPixel, image_create_bitmap_from_data)
(image_create_bitmap_from_file, free_bitmap_record)
(image_destroy_x_image, gui_put_x_image, image_get_x_image)
(Create_Pixmap_From_Bitmap_Data, xbm_load_image, )
(xpm_load_image, lookup_rgb_color, image_disable_image)
(image_build_heuristic_mask, imagemagick_load_image):

* src/gtkutil.h:

* src/gtkutil.c (PGTK_TRACE, xg_set_screen, xg_display_open)
(xg_display_close, xg_create_default_cursor)
(xg_get_pixbuf_from_pix_and_mask, xg_check_special_colors)
(qttip_cb, hierarchy_ch_cb, xg_prepare_tooltip, )
(xg_show_tooltip, xg_hide_tooltip, xg_frame_resized)
(xg_frame_set_char_size, xg_height_or_width_changed)
(xg_set_widget_bg, style_changed_cb, xg_create_frame_widgets)
(xg_free_frame_widgets, x_wm_set_size_hint, xg_frame_restack)
(xg_mark_data, xg_update_frame_menubar, free_frame_menubar)
(xg_update_submenu, xg_finish_scroll_bar_creation)
(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos)
(xg_set_toolkit_scroll_bar_thumb, xg_event_is_for_scrollbar)
(draw_page, xg_pack_tool_bar, xg_create_tool_bar)
(xg_update_tool_bar_sizes, update_frame_tool_bar)
(free_frame_tool_bar, xg_change_toolbar_position):

* src/ftcrfont.c:
(ftcrfont_draw):

* src/fringe.c:
(init_fringe_bitmap):

* src/frame.h (GCALIGNED_STRUCT, FRAME_WINDOW_P):

* src/frame.c (Fframep):

* src/font.h:

* src/font.c (syms_of_font):

* src/emacsgtkfixed.c:
(emacs_fixed_get_preferred_width)
(emacs_fixed_get_preferred_height, XSetWMSizeHints):

* src/emacs.c (main):

* src/dispnew.c (init_display_interactive):

* src/dispextern.h:

* src/alloc.c:
(garbage_collect):

* src/Makefile.in (PGTK_OBJ, PGTK_LIBS, base_obj, LIBES):

* src/.gdbinit:

* lisp/url/url-privacy.el (url-setup-privacy-info):

* lisp/term/pgtk-win.el (featurep):

* lisp/startup.el (command-line, fancy-splash-frame):

* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select):

* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):

* lisp/loadup.el (featurep):

* lisp/international/mule-cmds.el (set-coding-system-map):

* lisp/frame.el (pgtk-frame-geometry, frame-geometry)
(w32-frame-edges, frame-edges)
(pgtk-mouse-absolute-pixel-position)
(mouse-absolute-pixel-position)
(pgtk-set-mouse-absolute-pixel-position)
(pgtk-frame-list-z-order, frame-list-z-order)
(pgtk-frame-restack, frame-restack, display-mouse-p)
(display-graphic-p, display-symbol-keys-p, )
(display-pixel-height, display-mm-height, display-mm-width)
(display-backing-store, display-save-under, display-color-cells)
(display-planes, display-visual-class)
(pgtk-display-monitor-attributes-list)
(display-monitor-attributes-list):

* lisp/faces.el (face-spec-set-match-display, tool-bar):

* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-pressed, custom-display):

* configure.ac (AUTO_DEPEND, XARGS_LIMIT, XWIDGETS_OBJ):
2020-11-22 14:46:55 +11:00