summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-05-04 21:57:11 +0000
committerBram Moolenaar <Bram@vim.org>2006-05-04 21:57:11 +0000
commit54a709eb08f28b890f11b5ff44c260cc39502ee0 (patch)
tree0b22ef2850d3ae220b83642e4f3ab60ae6585327 /src
parent14716817266007c373d5cc6ee2294416e3132be6 (diff)
downloadvim-git-54a709eb08f28b890f11b5ff44c260cc39502ee0.tar.gz
updated for version 7.0g03v7.0g03
Diffstat (limited to 'src')
-rw-r--r--src/gui_beval.c11
-rw-r--r--src/gui_gtk_x11.c1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/gui_beval.c b/src/gui_beval.c
index 077991d5a..655d5aedc 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -33,13 +33,19 @@ general_beval_cb(beval, state)
#ifdef FEAT_WINDOWS
win_T *cw;
#endif
-
+ static int recursive = FALSE;
/* Don't do anything when 'ballooneval' is off, messages scrolled the
* windows up or we have no beval area. */
if (!p_beval || balloonEval == NULL || msg_scrolled > 0)
return;
+ /* Don't do this recursively. Happens when the expression evaluation
+ * takes a long time and invokes something that checks for CTRL-C typed. */
+ if (recursive)
+ return;
+ recursive = TRUE;
+
#ifdef FEAT_EVAL
if (get_beval_info(balloonEval, TRUE, &wp, &lnum, &text, &col) == OK)
{
@@ -84,6 +90,7 @@ general_beval_cb(beval, state)
if (result != NULL && result[0] != NUL)
{
gui_mch_post_balloon(beval, result);
+ recursive = FALSE;
return;
}
}
@@ -97,6 +104,8 @@ general_beval_cb(beval, state)
if (bevalServers & BEVAL_WORKSHOP)
workshop_beval_cb(beval, state);
#endif
+
+ recursive = FALSE;
}
/* on Win32 only get_beval_info() is required */
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index c6b093f26..36688ea07 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -3691,6 +3691,7 @@ gui_mch_init(void)
gtk_container_add(GTK_CONTAINER(event_box), label);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, event_box);
}
+
gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page",
GTK_SIGNAL_FUNC(on_select_tab), NULL);