OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 2 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
3 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. | 3 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 1245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1256 static_cast<WebFrameImpl*>(GetView()->GetMainFrame()); | 1256 static_cast<WebFrameImpl*>(GetView()->GetMainFrame()); |
1257 | 1257 |
1258 if (this == main_frame_impl->active_match_frame() && | 1258 if (this == main_frame_impl->active_match_frame() && |
1259 active_match_.get()) { | 1259 active_match_.get()) { |
1260 // If the user has set the selection since the match was found, we | 1260 // If the user has set the selection since the match was found, we |
1261 // don't focus anything. | 1261 // don't focus anything. |
1262 VisibleSelection selection(frame()->selection()->selection()); | 1262 VisibleSelection selection(frame()->selection()->selection()); |
1263 if (!selection.isNone()) | 1263 if (!selection.isNone()) |
1264 return; | 1264 return; |
1265 | 1265 |
1266 // We will be setting focus ourselves, so we want the view to forget its | |
1267 // stored focus node so that it won't change it after we are done. | |
1268 static_cast<WebViewImpl*>(GetView())->ReleaseFocusReferences(); | |
1269 | |
1270 // Try to find the first focusable node up the chain, which will, for | 1266 // Try to find the first focusable node up the chain, which will, for |
1271 // example, focus links if we have found text within the link. | 1267 // example, focus links if we have found text within the link. |
1272 Node* node = active_match_->firstNode(); | 1268 Node* node = active_match_->firstNode(); |
1273 while (node && !node->isFocusable() && node != frame()->document()) | 1269 while (node && !node->isFocusable() && node != frame()->document()) |
1274 node = node->parent(); | 1270 node = node->parent(); |
1275 | 1271 |
1276 if (node && node != frame()->document()) { | 1272 if (node && node != frame()->document()) { |
1277 // Found a focusable parent node. Set focus to it. | 1273 // Found a focusable parent node. Set focus to it. |
1278 frame()->document()->setFocusedNode(node); | 1274 frame()->document()->setFocusedNode(node); |
1279 } else { | 1275 } else { |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1820 | 1816 |
1821 SecurityOrigin* security_origin = frame_->document()->securityOrigin(); | 1817 SecurityOrigin* security_origin = frame_->document()->securityOrigin(); |
1822 | 1818 |
1823 if (!frame_->loader()->isScheduledLocationChangePending()) { | 1819 if (!frame_->loader()->isScheduledLocationChangePending()) { |
1824 frame_->loader()->stopAllLoaders(); | 1820 frame_->loader()->stopAllLoaders(); |
1825 frame_->loader()->begin(frame_->loader()->url(), true, security_origin); | 1821 frame_->loader()->begin(frame_->loader()->url(), true, security_origin); |
1826 frame_->loader()->write(script_result); | 1822 frame_->loader()->write(script_result); |
1827 frame_->loader()->end(); | 1823 frame_->loader()->end(); |
1828 } | 1824 } |
1829 } | 1825 } |
OLD | NEW |