void OnEntryChanged (object sender, EventArgs args)
{
if (entry_changed_timeout == null) {
entry_changed_timeout = new InterruptableTimeout ();
entry_changed_timeout.Timeout += EntryChangedTimeout;
}
if (SearchText == null) {
clear_search_button.Sensitive = false;
PerformSearch ();
} else {
entry_changed_timeout.Reset (500);
clear_search_button.Sensitive = true;
}
RestoreMatchesWindow ();
}