summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2006-07-13 21:28:07 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2006-07-13 21:28:07 +0000
commit652f594cbba02b7f64edb3a02499344c3ece295f (patch)
tree946fa580a816496902832a47355ad6dd5a572031 /riscos
parent1fcceb72f680eb9963b519c4b27f89a0977247d5 (diff)
downloadnetsurf-652f594cbba02b7f64edb3a02499344c3ece295f.tar.gz
netsurf-652f594cbba02b7f64edb3a02499344c3ece295f.tar.bz2
Further url completion fixes
svn path=/trunk/netsurf/; revision=2744
Diffstat (limited to 'riscos')
-rw-r--r--riscos/url_complete.c17
-rw-r--r--riscos/window.c30
2 files changed, 24 insertions, 23 deletions
diff --git a/riscos/url_complete.c b/riscos/url_complete.c
index cd7e932f5..e23d8cdbf 100644
--- a/riscos/url_complete.c
+++ b/riscos/url_complete.c
@@ -86,7 +86,6 @@ bool ro_gui_url_complete_keypress(struct gui_window *g, int key)
char *url;
int i, lines;
int old_selection;
- bool ignore_changes = false;
int height;
os_error *error;
bool currently_open;
@@ -126,15 +125,9 @@ bool ro_gui_url_complete_keypress(struct gui_window *g, int key)
return false;
}
- /* check if we should ignore text changes */
- if ((url_complete_keypress_selection >= 0) && (url_complete_matches))
- ignore_changes = !strcmp(url,
- url_complete_matches[
- url_complete_keypress_selection]);
-
/* if the text to match has changed then update it */
- if (!ignore_changes && ((!url_complete_matched_string) ||
- (strcmp(match_url, url_complete_matched_string)))) {
+ if ((!url_complete_matched_string) ||
+ (strcmp(match_url, url_complete_matched_string))) {
/* memorize the current matches */
lines = MAXIMUM_VISIBLE_LINES;
@@ -181,7 +174,8 @@ bool ro_gui_url_complete_keypress(struct gui_window *g, int key)
urldb_iterate_entries(url_complete_callback);
else
urldb_iterate_partial(match_url, url_complete_callback);
- if (url_complete_memory_exhausted) {
+ if ((url_complete_memory_exhausted) ||
+ (url_complete_matches_available == 0)) {
ro_gui_url_complete_close(NULL, 0);
return false;
}
@@ -295,6 +289,9 @@ bool ro_gui_url_complete_keypress(struct gui_window *g, int key)
ICON_TOOLBAR_URL,
url_complete_matches[
url_complete_matches_selection]);
+ free(url_complete_matched_string);
+ url_complete_matched_string = strdup(url_complete_matches[
+ url_complete_matches_selection]);
}
url_complete_keypress_selection = url_complete_matches_selection;
diff --git a/riscos/window.c b/riscos/window.c
index 78532da91..6dd21536b 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -2118,20 +2118,24 @@ bool ro_gui_window_keypress(struct gui_window *g, int key, bool toolbar)
BROWSER_NAVIGATE_STOP, false);
case 8: /* CTRL+H / Backspace */
- if (!ro_gui_ctrl_pressed() && !toolbar) {
- /* Backspace */
- if (ro_gui_shift_pressed()) {
- return ro_gui_menu_handle_action(
- g->window,
- BROWSER_NAVIGATE_FORWARD,
- false);
- }
- else {
- return ro_gui_menu_handle_action(
- g->window,
- BROWSER_NAVIGATE_BACK,
- false);
+ if (!toolbar) {
+ if (!ro_gui_ctrl_pressed()) {
+ /* Backspace */
+ if (ro_gui_shift_pressed()) {
+ return ro_gui_menu_handle_action(
+ g->window,
+ BROWSER_NAVIGATE_FORWARD,
+ false);
+ }
+ else {
+ return ro_gui_menu_handle_action(
+ g->window,
+ BROWSER_NAVIGATE_BACK,
+ false);
+ }
}
+ } else {
+ return ro_gui_url_complete_keypress(g, key);
}
break;