Commit f0b3942b authored by Anton Tarasov's avatar Anton Tarasov Committed by intellij-monorepo-bot
Browse files

IDEA-CR-65080: Fix JBCefBrowser.myCefClient.addKeyboardHandler

1. remove the handler on dispose
2. replace onPreKeyEvent (not getting called with CEF ver. 81) with onKeyEvent

(cherry picked from commit ffc440e8394b77e45b8087e0535c1036029ba4aa)
(cherry picked from commit a41401296f629f4937ccdc96dc664a91dd30e7fb)

GitOrigin-RevId: f540459a857d318048d3ad853b68f27b70ec56b7
parent cf5a80f0
Branches unavailable Tags unavailable
No related merge requests found
Showing with 4 additions and 2 deletions
+4 -2
......@@ -49,6 +49,7 @@ public class JBCefBrowser implements JBCefDisposable {
@Nullable private volatile JBCefCookieManager myJBCefCookieManager;
@NotNull private final CefFocusHandler myCefFocusHandler;
@Nullable private final CefLifeSpanHandler myLifeSpanHandler;
@NotNull private final CefKeyboardHandler myKeyboardHandler;
@NotNull private final DisposeHelper myDisposeHelper = new DisposeHelper();
private final boolean myIsDefaultClient;
......@@ -203,9 +204,9 @@ public class JBCefBrowser implements JBCefDisposable {
});
}
myCefClient.addKeyboardHandler(new CefKeyboardHandlerAdapter() {
myCefClient.addKeyboardHandler(myKeyboardHandler = new CefKeyboardHandlerAdapter() {
@Override
public boolean onPreKeyEvent(CefBrowser browser, CefKeyEvent cefKeyEvent, BoolRef is_keyboard_shortcut) {
public boolean onKeyEvent(CefBrowser browser, CefKeyEvent cefKeyEvent) {
Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
boolean consume = focusOwner != browser.getUIComponent();
if (consume && SystemInfoRt.isMac && isUpDownKeyEvent(cefKeyEvent)) return true; // consume
......@@ -366,6 +367,7 @@ public class JBCefBrowser implements JBCefDisposable {
public void dispose() {
myDisposeHelper.dispose(() -> {
myCefClient.removeFocusHandler(myCefFocusHandler, myCefBrowser);
myCefClient.removeKeyboardHandler(myKeyboardHandler, myCefBrowser);
if (myLifeSpanHandler != null) myCefClient.removeLifeSpanHandler(myLifeSpanHandler, myCefBrowser);
myCefBrowser.stopLoad();
myCefBrowser.close(false);
......
Supports Markdown
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