Commit c1ecc592 authored by Scott Violet's avatar Scott Violet Committed by Commit Bot

keyboard: make KeyboardController remove pre-target handler

KeyboardController adds a pre-target handler, but it never removes it.
I'm going to add some DCHECKs to ensure there are no pre-target handlers when
an object is destroyed, so this needs to be fixed.

BUG=867035
TEST=none

Change-Id: Ic8700f1b2433380afaa0fbdff428baf51bfda49b
Reviewed-on: https://chromium-review.googlesource.com/c/1281163Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599756}
parent 9174ce4e
......@@ -270,9 +270,13 @@ void KeyboardController::DeactivateKeyboard() {
// Ensure the keyboard is not visible before deactivating it.
HideKeyboardExplicitlyBySystem();
if (GetKeyboardWindow() && GetKeyboardWindow()->parent()) {
DCHECK_EQ(parent_container_, GetKeyboardWindow()->parent());
parent_container_->RemoveChild(GetKeyboardWindow());
aura::Window* keyboard_window = GetKeyboardWindow();
if (keyboard_window) {
keyboard_window->RemovePreTargetHandler(&event_filter_);
if (keyboard_window->parent()) {
DCHECK_EQ(parent_container_, keyboard_window->parent());
parent_container_->RemoveChild(keyboard_window);
}
}
parent_container_->GetRootWindow()->RemoveObserver(this);
parent_container_ = nullptr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment