]> git.eshelyaron.com Git - emacs.git/commit
Add support for xwidgets to the PGTK port
authorPo Lu <luangruo@yahoo.com>
Wed, 29 Dec 2021 01:53:42 +0000 (09:53 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 29 Dec 2021 01:59:30 +0000 (09:59 +0800)
commit9249365837c33e18f8504dcbf12b8c3d217f0d43
tree7ead38d4557c0818b02172e82bfa9b4103022ae6
parent1e6c7cfd0beed5937dfb1ba4ad805666b19ea23e
Add support for xwidgets to the PGTK port

* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS): New function.
(struct GtkFixedPrivateL): New struct.
(emacs_fixed_gtk_widget_size_allocate):
(emacs_fixed_class_init): New functions.

* src/keyboard.h: Declare lispy_function_keys also when
HAVE_PGTK.

* src/pgtkterm.c (x_free_frame_resources): Destroy all xwidget
views.
(pgtk_scroll_run): Move xwidget views that overlap with the
scrolled area.
(pgtk_emacs_to_gtk_modifiers): Expose function.

* src/pgtkterm.h: Wrap in include guard.
(pgtk_emacs_to_gtk_modifiers): New prototype.

* src/xwidget.c (xw_forward_event_translate):
(xw_forward_event_from_view): New functions.
(Fmake_xwidget): Remove obsolete PGTK specific code.
(Fxwidget_perform_lispy_event): Convert modifiers correctly on
PGTK.
(define_cursors): Use GDK functions to define cursors on PGTK.
(xwidget_view_from_window): Disable on non-PGTK builds.
(xwidget_show_view):
(xwidget_hide_view): Implement on PGTK.
(xv_do_draw): Disable on non-PGTK builds.
(offscreen_damage_event): Queue xwidget views for draw.
(xwidget_expose): Disable on non-PGTK builds.
(xwidget_init_view):
(x_draw_xwidget_glyph_string):
(Fdelete_xwidget_view): Implement for PGTK.
(syms_of_xwidget): Don't initialize XID to widget table on PGTK.
(lower_frame_xwidget_views): Disable on PGTK.
* src/xwidget.h (struct xwidget_view): New fields for PGTK
builds.
(kill_frame_xwidget_views): Enable on PGTK.
src/emacsgtkfixed.c
src/keyboard.h
src/pgtkterm.c
src/pgtkterm.h
src/xwidget.c
src/xwidget.h