summaryrefslogtreecommitdiff
path: root/src/xwidget.h
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-12-29 09:53:42 +0800
committerPo Lu <luangruo@yahoo.com>2021-12-29 09:59:30 +0800
commit9249365837c33e18f8504dcbf12b8c3d217f0d43 (patch)
tree7ead38d4557c0818b02172e82bfa9b4103022ae6 /src/xwidget.h
parent1e6c7cfd0beed5937dfb1ba4ad805666b19ea23e (diff)
downloademacs-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.h11
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 *,