From be0a2597ae0d9eb0b8a8a2fc9ae1784faa929844 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 9 May 2019 13:50:16 +0200 Subject: patch 8.1.1303: not possible to hide a balloon Problem: Not possible to hide a balloon. Solution: Hide the balloon when balloon_show() is called with an empty string or list. Add balloon_gettext(). --- src/gui_beval.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/gui_beval.c') diff --git a/src/gui_beval.c b/src/gui_beval.c index e1e093f375..f4309b8c33 100644 --- a/src/gui_beval.c +++ b/src/gui_beval.c @@ -117,7 +117,8 @@ gui_mch_create_beval_area( beval->appContext = XtWidgetToApplicationContext((Widget)target); #endif beval->showState = ShS_NEUTRAL; - beval->msg = mesg; + vim_free(beval->msg); + beval->msg = mesg == NULL ? NULL : vim_strsave(mesg); beval->msgCB = mesgCB; beval->clientData = clientData; @@ -208,8 +209,9 @@ gui_mch_currently_showing_beval(void) void gui_mch_post_balloon(BalloonEval *beval, char_u *mesg) { - beval->msg = mesg; - if (mesg != NULL) + vim_free(beval->msg); + beval->msg = mesg == NULL ? NULL : vim_strsave(mesg); + if (beval->msg != NULL) drawBalloon(beval); else undrawBalloon(beval); @@ -225,6 +227,7 @@ gui_mch_post_balloon(BalloonEval *beval, char_u *mesg) void gui_mch_unpost_balloon(BalloonEval *beval) { + VIM_CLEAR(beval->msg); undrawBalloon(beval); } #endif @@ -975,6 +978,7 @@ drawBalloon(BalloonEval *beval) gtk_widget_show(beval->balloonShell); beval->showState = ShS_SHOWING; + gui_mch_update(); } } -- cgit v1.2.3