From 7fe73f1990a361a3c794ef5517e2cb4d3188466e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 23 Jan 2003 00:34:12 +0000 Subject: Fix autocompletion to not show duped entries. Complete print preview impl. 2003-01-23 Marco Pesenti Gritti * TODO: * lib/ephy-autocompletion.c: (ephy_autocompletion_reset), (ephy_autocompletion_set_key), (ephy_autocompletion_update_matches_full): * lib/widgets/ephy-location-entry.c: (get_editable_number_of_chars), (position_is_at_end), (ephy_location_entry_key_press_event_cb): * src/ephy-favicon-action.c: (ephy_favicon_action_finalize): * src/ephy-favorites-menu.c: (ephy_favorites_menu_finalize_impl), (ephy_favorites_menu_rebuild): * src/ephy-window.c: (add_widget), (setup_window), (ephy_window_finalize), (ephy_window_set_chrome): * src/ppview-toolbar.c: (toolbar_update_sensitivity), (ppview_toolbar_set_window), (toolbar_cmd_ppv_close): * src/toolbar.c: (toolbar_setup_widgets), (toolbar_finalize): Fix autocompletion to not show duped entries. Complete print preview impl. Fix actions referencing, a bug in egg still blocking it though. --- lib/widgets/ephy-location-entry.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'lib/widgets/ephy-location-entry.c') diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c index 5a947a7b2..545c3bcaa 100644 --- a/lib/widgets/ephy-location-entry.c +++ b/lib/widgets/ephy-location-entry.c @@ -338,6 +338,27 @@ ephy_location_entry_autocompletion_to (EphyLocationEntry *w) return FALSE; } +static int +get_editable_number_of_chars (GtkEditable *editable) +{ + char *text; + int length; + + text = gtk_editable_get_chars (editable, 0, -1); + length = g_utf8_strlen (text, -1); + g_free (text); + return length; +} + +static gboolean +position_is_at_end (GtkEditable *editable) +{ + int end; + + end = get_editable_number_of_chars (editable); + return gtk_editable_get_position (editable) == end; +} + /* this is from the old location entry, need to do the autocompletion before implementing this */ static gboolean ephy_location_entry_key_press_event_cb (GtkWidget *entry, GdkEventKey *event, EphyLocationEntry *w) @@ -466,7 +487,8 @@ ephy_location_entry_key_press_event_cb (GtkWidget *entry, GdkEventKey *event, Ep break; default: ephy_location_entry_autocompletion_unselect_alternatives (w); - if ((event->string[0] > 32) && (event->string[0] < 126)) + if ((event->string[0] > 32) && (event->string[0] < 126) && + position_is_at_end (GTK_EDITABLE (entry))) { p->show_alternatives_timeout = g_timeout_add (SHOW_ALTERNATIVES_DELAY, -- cgit v1.2.3