* \return <code>0</code> if entry appended successfully, or <code>-1</code>
* if failure.
*/
-static gint add_address(const gchar *name, const gchar *address, const gchar *alias)
+static gint add_address(const gchar *name, const gchar *address,
+ const gchar *nick, const gchar *alias)
{
address_entry *ae;
add_address1(name, ae);
add_address1(address, ae);
- add_address1(alias, ae);
+
+ if (nick != NULL)
+ add_address1(nick, ae);
+
+ if ( alias != NULL ) {
+ add_address1(alias, ae);
+ }
return 0;
}
/* Adjust window height to available screen space */
if( ( y + r.height ) > gdk_screen_height() ) {
- gtk_window_set_policy( GTK_WINDOW( cw->window ), TRUE, FALSE, FALSE );
+ gtk_window_set_resizable(GTK_WINDOW(cw->window), FALSE);
gtk_widget_set_size_request( cw->window, width, gdk_screen_height() - y );
} else
gtk_widget_set_size_request(cw->window, width, r.height);
/* add keypress event */
g_signal_connect_closure
- (GTK_OBJECT(entry), "key_press_event",
+ (G_OBJECT(entry), "key_press_event",
g_cclosure_new(G_CALLBACK(address_completion_entry_key_pressed),
COMPLETION_UNIQUE_DATA,
NULL),
entry_obj = g_object_get_data(G_OBJECT(entry), ENTRY_DATA_TAB_HOOK);
g_return_if_fail(entry_obj);
- g_return_if_fail(entry_obj == GTK_OBJECT(entry));
+ g_return_if_fail(entry_obj == G_OBJECT(entry));
/* has the hooked property? */
g_object_set_data(G_OBJECT(entry), ENTRY_DATA_TAB_HOOK, NULL);
g_free( new );
}
+ /* Select the address if there is only one match */
+ if (ncount == 2) {
+ /* Display selected address in entry field */
+ gchar *addr = get_complete_address(1);
+
+ if (addr) {
+ replace_address_in_edit(entry, addr, cursor_pos);
+ g_free(addr);
+ }
+
+ /* Discard the window */
+ clear_completion_cache();
+ }
/* Make sure that drop-down appears uniform! */
- if( ncount == 0 ) {
+ else if( ncount == 0 ) {
addrcompl_add_queue( g_strdup( searchTerm ) );
}
g_free( searchTerm );