aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2007-10-11 22:09:51 +0800
committerMilan Crha <mcrha@src.gnome.org>2007-10-11 22:09:51 +0800
commite20645bcc7d05e0cd251e7f422f9ac185cd003d3 (patch)
tree3109aaa2b777d93c91ddd3633b2b6c30b0c150f9
parenteeb89358f6f3aa8f211b33c23842a8deb08171a8 (diff)
downloadgsoc2013-evolution-e20645bcc7d05e0cd251e7f422f9ac185cd003d3.tar.gz
gsoc2013-evolution-e20645bcc7d05e0cd251e7f422f9ac185cd003d3.tar.zst
gsoc2013-evolution-e20645bcc7d05e0cd251e7f422f9ac185cd003d3.zip
** Fix for bug #412360
2007-10-11 Milan Crha <mcrha@redhat.com> ** Fix for bug #412360 * e-msg-composer-hdrs.c: (entry_query_tooltip): New callback to query tooltip over GtkEntry. * e-msg-composer-hdrs.c: (connect_entry_for_tooltip): New function to connect GtkEntry to previous function and let it works. * e-msg-composer-hdrs.c: (create_addressbook_entry), (create_headers): Connect entries for tooltips. svn path=/trunk/; revision=34375
-rw-r--r--composer/ChangeLog11
-rw-r--r--composer/e-msg-composer-hdrs.c45
2 files changed, 54 insertions, 2 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index e544968ed9..69262acb33 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,14 @@
+2007-10-11 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #412360
+
+ * e-msg-composer-hdrs.c: (entry_query_tooltip):
+ New callback to query tooltip over GtkEntry.
+ * e-msg-composer-hdrs.c: (connect_entry_for_tooltip):
+ New function to connect GtkEntry to previous function and let it works.
+ * e-msg-composer-hdrs.c: (create_addressbook_entry), (create_headers):
+ Connect entries for tooltips.
+
2007-10-03 Matthew Barnes <mbarnes@redhat.com>
* e-msg-cmposer.c:
diff --git a/composer/e-msg-composer-hdrs.c b/composer/e-msg-composer-hdrs.c
index 144b9bd1b2..83a5cc3046 100644
--- a/composer/e-msg-composer-hdrs.c
+++ b/composer/e-msg-composer-hdrs.c
@@ -477,6 +477,44 @@ addressbook_entry_changed (GtkWidget *entry,
g_signal_emit (hdrs, signals[HDRS_CHANGED], 0);
}
+static gboolean
+entry_query_tooltip (GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data)
+{
+ const char *text;
+
+ g_return_val_if_fail (widget != NULL, FALSE);
+ g_return_val_if_fail (GTK_IS_ENTRY (widget), FALSE);
+ g_return_val_if_fail (tooltip != NULL, FALSE);
+
+ if (keyboard_mode)
+ return FALSE;
+
+ text = gtk_entry_get_text (GTK_ENTRY (widget));
+
+ if (!text || !*text)
+ return FALSE;
+
+ gtk_tooltip_set_text (tooltip, text);
+
+ return TRUE;
+}
+
+/**
+ * connect_entry_for_tooltip
+ * This connects "tooltip" callback to entry.
+ * If entry has tooltip depends on the length of the text inside it.
+ * @param entry GtkEntry widget, to connect to.
+ **/
+static void
+connect_entry_for_tooltip (GtkWidget *entry)
+{
+ g_return_if_fail (entry != NULL);
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+
+ g_signal_connect (G_OBJECT (entry), "query-tooltip", G_CALLBACK (entry_query_tooltip), NULL);
+ gtk_widget_set_has_tooltip (entry, TRUE);
+}
+
static GtkWidget *
create_addressbook_entry (EMsgComposerHdrs *hdrs, const char *name)
{
@@ -490,8 +528,8 @@ create_addressbook_entry (EMsgComposerHdrs *hdrs, const char *name)
e_name_selector_model_add_section (name_selector_model, name, name, NULL);
name_selector_entry = (ENameSelectorEntry *)e_name_selector_peek_section_list (priv->name_selector, name);
- g_signal_connect (name_selector_entry, "changed",
- G_CALLBACK (addressbook_entry_changed), hdrs);
+ g_signal_connect (name_selector_entry, "changed", G_CALLBACK (addressbook_entry_changed), hdrs);
+ connect_entry_for_tooltip (GTK_WIDGET (name_selector_entry));
e_name_selector_entry_set_contact_editor_func (name_selector_entry, e_contact_editor_new);
e_name_selector_entry_set_contact_list_editor_func (name_selector_entry, e_contact_list_editor_new);
@@ -649,6 +687,7 @@ create_headers (EMsgComposerHdrs *hdrs)
priv->subject.entry = gtk_entry_new ();
gtk_label_set_mnemonic_widget((GtkLabel *)priv->subject.label, priv->subject.entry);
g_signal_connect(priv->subject.entry, "changed", G_CALLBACK(entry_changed), hdrs);
+ connect_entry_for_tooltip (priv->subject.entry);
/*
* To, CC, and Bcc
@@ -684,6 +723,8 @@ create_headers (EMsgComposerHdrs *hdrs)
g_signal_connect(priv->post_to.entry, "changed",
G_CALLBACK (post_entry_changed_cb), hdrs);
+
+ connect_entry_for_tooltip (priv->post_to.entry);
}
static void