diff options
| author | Joakim Verona | 2016-01-19 20:27:12 +0100 |
|---|---|---|
| committer | Joakim Verona | 2016-01-19 20:58:22 +0100 |
| commit | 7c1f66a94bf236a427606ef537b4629a48a1665b (patch) | |
| tree | 8661f512f7bcf35bfb1e7d915e5b6ef8df6229d8 /src/xterm.c | |
| parent | 663d379bbc2fde5e9bded157365e9d48ea01c027 (diff) | |
| download | emacs-7c1f66a94bf236a427606ef537b4629a48a1665b.tar.gz emacs-7c1f66a94bf236a427606ef537b4629a48a1665b.zip | |
Support for the new Xwidget feature.
* configure.ac:
(HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES):
* xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
* xdisp.c:
(handle_display_spec, handle_single_display_spec, push_it)
(pop_it, set_iterator_to_next, dump_glyph)
(calc_pixel_width_or_height, fill_xwidget_glyph_string)
(BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS)
(produce_xwidget_glyph, x_produce_glyphs)
(get_window_cursor_type):
* window.c (Fdelete_window_internal):
* termhooks.h (e):
* print.c (print_object):
* lisp.h (ptrdiff_t):
* keyboard.c (kbd_buffer_get_event, make_lispy_event)
(syms_of_keyboard):
* emacs.c (main):
* dispnew.c (update_window, scrolling_window):
* dispextern.h (g, i):
* Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS)
(GIR_LIBS, ALL_CFLAGS, base_obj, LIBES):
* keyboard.c (kbd_buffer_get_event):
* emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate)
(emacs_fixed_class_init): Add case for an xwidget view.
* xwidget.c, xwidget.h, xwidget.el: New files for xwidgets
Co-authored-by: Grégoire Jadi <daimrod@gmail.com>
Various improvements to the Xwidget feature.
* xwidgets.c:
* emacsgtkfixed.c:
* xwidget.el:
Diffstat (limited to 'src/xterm.c')
| -rw-r--r-- | src/xterm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c index 5a6d643bad4..44eed22d2ec 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -62,6 +62,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 62 | #include "composite.h" | 62 | #include "composite.h" |
| 63 | #include "frame.h" | 63 | #include "frame.h" |
| 64 | #include "dispextern.h" | 64 | #include "dispextern.h" |
| 65 | #ifdef HAVE_XWIDGETS | ||
| 66 | # include "xwidget.h" | ||
| 67 | #endif | ||
| 65 | #include "fontset.h" | 68 | #include "fontset.h" |
| 66 | #include "termhooks.h" | 69 | #include "termhooks.h" |
| 67 | #include "termopts.h" | 70 | #include "termopts.h" |
| @@ -3511,6 +3514,12 @@ x_draw_glyph_string (struct glyph_string *s) | |||
| 3511 | x_draw_image_glyph_string (s); | 3514 | x_draw_image_glyph_string (s); |
| 3512 | break; | 3515 | break; |
| 3513 | 3516 | ||
| 3517 | #ifdef HAVE_XWIDGETS | ||
| 3518 | case XWIDGET_GLYPH: | ||
| 3519 | x_draw_xwidget_glyph_string (s); | ||
| 3520 | break; | ||
| 3521 | #endif | ||
| 3522 | |||
| 3514 | case STRETCH_GLYPH: | 3523 | case STRETCH_GLYPH: |
| 3515 | x_draw_stretch_glyph_string (s); | 3524 | x_draw_stretch_glyph_string (s); |
| 3516 | break; | 3525 | break; |
| @@ -8920,6 +8929,11 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text | |||
| 8920 | if (cursor_glyph == NULL) | 8929 | if (cursor_glyph == NULL) |
| 8921 | return; | 8930 | return; |
| 8922 | 8931 | ||
| 8932 | #ifdef HAVE_XWIDGETS | ||
| 8933 | if (cursor_glyph->type == XWIDGET_GLYPH) | ||
| 8934 | return; // Experimental avoidance of cursor on xwidget. | ||
| 8935 | #endif | ||
| 8936 | |||
| 8923 | /* If on an image, draw like a normal cursor. That's usually better | 8937 | /* If on an image, draw like a normal cursor. That's usually better |
| 8924 | visible than drawing a bar, esp. if the image is large so that | 8938 | visible than drawing a bar, esp. if the image is large so that |
| 8925 | the bar might not be in the window. */ | 8939 | the bar might not be in the window. */ |