[gnumeric] try to show the function name completion tooltip whenever it is appropriate but not more often
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] try to show the function name completion tooltip whenever it is appropriate but not more often
- Date: Mon, 20 Sep 2010 17:02:42 +0000 (UTC)
commit d008d122e23f8f16da9143ab8fe7a4c7f6978831
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Mon Sep 20 11:00:44 2010 -0600
try to show the function name completion tooltip whenever it is appropriate but not more often
2010-09-20 Andreas J. Guelzow <aguelzow pyrshep ca>
* gnumeric-expr-entry.c (gee_update_lexer_items): we need to lex even
if it isn't an expression, but remember whether we have one!
(gee_check_tooltip): check whether itis sensible to create a tooltip
(gnm_expr_entry_find_range): check for null pointer
src/widgets/ChangeLog | 7 +++++++
src/widgets/gnumeric-expr-entry.c | 11 +++++++----
2 files changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 206eccb..18ece84 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,5 +1,12 @@
2010-09-20 Andreas J. Guelzow <aguelzow pyrshep ca>
+ * gnumeric-expr-entry.c (gee_update_lexer_items): we need to lex even
+ if it isn't an expression, but remember whether we have one!
+ (gee_check_tooltip): check whether itis sensible to create a tooltip
+ (gnm_expr_entry_find_range): check for null pointer
+
+2010-09-20 Andreas J. Guelzow <aguelzow pyrshep ca>
+
* gnumeric-expr-entry.c (gee_update_lexer_items): don't bother to lex
if it isn't an expression
diff --git a/src/widgets/gnumeric-expr-entry.c b/src/widgets/gnumeric-expr-entry.c
index a967e7d..d4b4d9e 100644
--- a/src/widgets/gnumeric-expr-entry.c
+++ b/src/widgets/gnumeric-expr-entry.c
@@ -121,6 +121,7 @@ struct _GnmExprEntry {
gboolean had_stuff;
gulong handlerid;
gboolean enabled;
+ gboolean is_expr;
gboolean completion_se_valid;
gchar *completion;
guint completion_start;
@@ -885,8 +886,8 @@ gee_update_lexer_items (GnmExprEntry *gee)
sheet_get_conventions (sheet), NULL);
}
- if ((NULL != gnm_expr_char_start_p (str) || gee->is_cell_renderer)
- && !(gee->flags & GNM_EE_SINGLE_RANGE)) {
+ gee->tooltip.is_expr = (NULL != gnm_expr_char_start_p (str));
+ if (!(gee->flags & GNM_EE_SINGLE_RANGE)) {
gee->lexer_items = gnm_expr_lex_all
(str, &gee->pp,
GNM_EXPR_PARSE_UNKNOWN_NAMES_ARE_STRINGS,
@@ -921,7 +922,8 @@ gee_check_tooltip (GnmExprEntry *gee)
gboolean stuff = FALSE, completion_se_set = FALSE;
GnmLexerItem *gli, *gli_c;
- if (gee->lexer_items == NULL) {
+ if (gee->lexer_items == NULL || !gee->tooltip.enabled ||
+ (!gee->tooltip.is_expr && !gee->is_cell_renderer)) {
gee_delete_tooltip (gee, TRUE);
return;
}
@@ -961,7 +963,7 @@ gee_check_tooltip (GnmExprEntry *gee)
gli--;
/* This creates the completion tooltip */
- if (!stuff && gli->start > 0 && gli->token == STRING) {
+ if (!stuff && gli->token == STRING) {
guint start_t = gli->start;
char *prefix;
GSList *list;
@@ -1798,6 +1800,7 @@ gnm_expr_entry_find_range (GnmExprEntry *gee)
if (gee->lexer_items == NULL)
gee_update_lexer_items (gee);
+ g_return_val_if_fail (gee->lexer_items != NULL, FALSE);
gli = gee->lexer_items;
while (gli->token != 0 && gli->start < (guint) (ptr - text))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]