Author: leavengood Date: Wed Dec 29 23:51:13 2010 New Revision: 563 URL: http://webpositive.haiku-os.org/changeset/563 Log: Restore the original URL text when the escape key is pressed. Modified: webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.cpp webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.h Modified: webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.cpp ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.cpp Wed Dec 29 23:08:08 2010 (r562) +++ webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.cpp Wed Dec 29 23:51:13 2010 (r563) @@ -73,7 +73,8 @@ new BDefaultChoiceView(), patternSelector), BMessageFilter(B_KEY_DOWN), fTextView(textView), - fModificationsReported(false) + fModificationsReported(false), + fOriginalTextSaved(false) { fTextView->AddFilter(this); } @@ -102,6 +103,11 @@ filter_result TextViewCompleter::Filter(BMessage* message, BHandler** target) { + if (!fOriginalTextSaved) { + fOriginalText = fTextView->Text(); + fOriginalTextSaved = true; + } + const char* bytes; int32 modifiers; if (!target || message->FindString("bytes", &bytes) != B_OK @@ -140,7 +146,13 @@ } case B_ESCAPE: - CancelChoice(); + if (fOriginalText != fTextView->Text()) { + fModificationsReported = false; + fTextView->SetText(fOriginalText.String()); + fTextView->SelectAll(); + fModificationsReported = true; + CancelChoice(); + } return B_SKIP_MESSAGE; case B_RETURN: if (IsChoiceSelected()) { Modified: webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.h ============================================================================== --- webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.h Wed Dec 29 23:08:08 2010 (r562) +++ webkit/trunk/WebKit/haiku/WebPositive/autocompletion/TextViewCompleter.h Wed Dec 29 23:51:13 2010 (r563) @@ -43,6 +43,8 @@ private: BTextView* fTextView; bool fModificationsReported; + BString fOriginalText; + bool fOriginalTextSaved; }; #endif // TEXT_CONTROL_COMPLETER_H