summaryrefslogtreecommitdiffstats
path: root/src/gui_beval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-05-09 13:50:16 +0200
committerBram Moolenaar <Bram@vim.org>2019-05-09 13:50:16 +0200
commitbe0a2597ae0d9eb0b8a8a2fc9ae1784faa929844 (patch)
tree29c80c119b12d1004fd287f0b63525a931ec59cd /src/gui_beval.c
parent06bd824869b1cb7a85e64ec94135a35698be5b7f (diff)
patch 8.1.1303: not possible to hide a balloonv8.1.1303
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().
Diffstat (limited to 'src/gui_beval.c')
-rw-r--r--src/gui_beval.c10
1 files changed, 7 insertions, 3 deletions
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();
}
}