diff options
author | Po Lu <luangruo@yahoo.com> | 2021-12-29 09:53:42 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-12-29 09:59:30 +0800 |
commit | 9249365837c33e18f8504dcbf12b8c3d217f0d43 (patch) | |
tree | 7ead38d4557c0818b02172e82bfa9b4103022ae6 /src/xwidget.h | |
parent | 1e6c7cfd0beed5937dfb1ba4ad805666b19ea23e (diff) | |
download | emacs-9249365837c33e18f8504dcbf12b8c3d217f0d43.tar.gz |
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.
Diffstat (limited to 'src/xwidget.h')
-rw-r--r-- | src/xwidget.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/xwidget.h b/src/xwidget.h index a03006fde9a..ef56dfa7c5a 100644 --- a/src/xwidget.h +++ b/src/xwidget.h @@ -32,8 +32,12 @@ struct window; #if defined (USE_GTK) #include <gtk/gtk.h> +#ifndef HAVE_PGTK #include <X11/Xlib.h> #include "xterm.h" +#else +#include "pgtkterm.h" +#endif #elif defined (NS_IMPL_COCOA) && defined (__OBJC__) #import <AppKit/NSView.h> #import "nsxwidget.h" @@ -107,8 +111,13 @@ struct xwidget_view enum glyph_row_area area; #if defined (USE_GTK) +#ifndef HAVE_PGTK Display *dpy; Window wdesc; +#else + struct pgtk_display_info *dpyinfo; + GtkWidget *widget; +#endif Emacs_Cursor cursor; struct frame *frame; @@ -190,7 +199,9 @@ extern struct xwidget *xwidget_from_id (uint32_t id); struct xwidget_view *xwidget_view_from_window (Window wdesc); void xwidget_expose (struct xwidget_view *xv); extern void lower_frame_xwidget_views (struct frame *f); +#endif extern void kill_frame_xwidget_views (struct frame *f); +#ifdef HAVE_X_WINDOWS extern void xwidget_button (struct xwidget_view *, bool, int, int, int, int, Time); extern void xwidget_motion_or_crossing (struct xwidget_view *, |