From 2a229f495fe5c8be84b3c5718f87d86c8d06a644 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 21 Jun 2019 09:25:47 +0900 Subject: Fix blank tooltips on cairo (Bug#36298) * src/xterm.h (x_cr_update_surface_desired_size) [USE_CAIRO]: Add extern. * src/xterm.c (x_cr_update_surface_desired_size) [USE_CAIRO]: Make non-static. * src/xfns.c (Fx_show_tip) [USE_CAIRO]: Call x_cr_update_surface_desired_size. --- src/xfns.c | 4 ++++ src/xterm.c | 2 +- src/xterm.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/xfns.c b/src/xfns.c index c9fe3e11f2d..6d14fecde15 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -6956,6 +6956,10 @@ Text larger than the specified size is clipped. */) XMapRaised (FRAME_X_DISPLAY (tip_f), FRAME_X_WINDOW (tip_f)); unblock_input (); +#ifdef USE_CAIRO + x_cr_update_surface_desired_size (tip_f, width, height); +#endif /* USE_CAIRO */ + w->must_be_updated_p = true; update_single_window (w); set_buffer_internal_1 (old_buffer); diff --git a/src/xterm.c b/src/xterm.c index 9bb0b83916c..38bf0a224d4 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -345,7 +345,7 @@ x_cr_destroy_frame_context (struct frame *f) } } -static void +void x_cr_update_surface_desired_size (struct frame *f, int width, int height) { if (FRAME_CR_SURFACE_DESIRED_WIDTH (f) != width diff --git a/src/xterm.h b/src/xterm.h index 2bd2c0105f6..985648a1d98 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1109,6 +1109,7 @@ extern int x_dispatch_event (XEvent *, Display *); extern int x_x_to_emacs_modifiers (struct x_display_info *, int); #ifdef USE_CAIRO extern void x_cr_destroy_frame_context (struct frame *); +extern void x_cr_update_surface_desired_size (struct frame *, int, int); extern cairo_t *x_begin_cr_clip (struct frame *, GC); extern void x_end_cr_clip (struct frame *); extern void x_set_cr_source_with_gc_foreground (struct frame *, GC); -- cgit v1.2.1