From 09d44b280426fa0033bd97ec34b0ecbf49cb7bf1 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Sun, 6 Aug 2023 15:47:50 -0400 Subject: [PATCH 01/12] small forge compat change, unsure exactly how necessary it'll be, but I'm putting it here incase --- .../handler/CefResourceHandlerAdapter.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/java/org/cef/handler/CefResourceHandlerAdapter.java b/java/org/cef/handler/CefResourceHandlerAdapter.java index 9458bb2b..7e6e7261 100644 --- a/java/org/cef/handler/CefResourceHandlerAdapter.java +++ b/java/org/cef/handler/CefResourceHandlerAdapter.java @@ -5,6 +5,7 @@ package org.cef.handler; import org.cef.callback.CefCallback; +import org.cef.misc.BoolRef; import org.cef.misc.IntRef; import org.cef.misc.StringRef; import org.cef.network.CefCookie; @@ -17,8 +18,38 @@ * This class exists as convenience for creating handler objects. */ public abstract class CefResourceHandlerAdapter implements CefResourceHandler { + // forge causes some problems without this + private static final ClassLoader clr; + + static { + try { + // reason: prevent class loading issues with forge + Class[] LOADER = new Class[] { + IntRef.class, + BoolRef.class, + CefRequest.class, + StringRef.class, + Class.forName("org.cef.callback.CefCallback_N"), + Class.forName("org.cef.network.CefResponse_N") + }; + } catch (Throwable err) { + } + + ClassLoader c = Thread.currentThread().getContextClassLoader(); + if (c == null) c = CefResourceHandlerAdapter.class.getClassLoader(); + clr = c; + } + + /** + * override {@link CefResourceHandlerAdapter#handleRequest(CefRequest, CefCallback)} instead + */ @Override - public boolean processRequest(CefRequest request, CefCallback callback) { + public final boolean processRequest(CefRequest request, CefCallback callback) { + Thread.currentThread().setContextClassLoader(clr); // reason: prevent class loading issues with forge + return handleRequest(request, callback); + } + + public boolean handleRequest(CefRequest request, CefCallback callback) { return false; } From e4dbdea0cb8bc9f4b9c4b8c0508b8ed394f09187 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Sun, 6 Aug 2023 23:06:22 -0400 Subject: [PATCH 02/12] start migrating off awt --- java/org/cef/util/CefKeyEvent.java | 32 ++++++++++++++++++++++++++++++ native/CefBrowser_N.cpp | 14 +++++++------ 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 java/org/cef/util/CefKeyEvent.java diff --git a/java/org/cef/util/CefKeyEvent.java b/java/org/cef/util/CefKeyEvent.java new file mode 100644 index 00000000..1d073756 --- /dev/null +++ b/java/org/cef/util/CefKeyEvent.java @@ -0,0 +1,32 @@ +package org.cef.util; + +public class CefKeyEvent { + public int keyCode; + public int id; + public int modifiersEx; + public char keyChar; + public long scancode; + + public CefKeyEvent(int keyCode, int id, int modifiersEx, char keyChar) { + this.keyCode = keyCode; + this.id = id; + this.modifiersEx = modifiersEx; + this.keyChar = keyChar; + } + + public int getID() { + return id; + } + + public int getModifiersEx() { + return modifiersEx; + } + + public char getKeyChar() { + return keyChar; + } + + public int getKeyCode() { + return keyCode; + } +} diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index d3ece28a..5ffc3c11 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -12,6 +12,7 @@ #include "browser_process_handler.h" #include "client_handler.h" #include "critical_wait.h" +#include "jni_scoped_helpers.h" #include "jni_util.h" #include "life_span_handler.h" #include "pdf_print_callback.h" @@ -1600,7 +1601,8 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, jobject obj, jobject key_event) { CefRefPtr browser = JNI_GET_BROWSER_OR_RETURN(env, obj); - ScopedJNIClass cls(env, env->GetObjectClass(key_event)); + ScopedJNIClass cls(env, "java/awt/event/KeyEvent"); + ScopedJNIClass objClass = ScopedJNIClass(env, env->GetObjectClass(key_event)); if (!cls) return; @@ -1610,9 +1612,9 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, int event_type, modifiers; char16 key_char; - if (!CallJNIMethodI_V(env, cls, key_event, "getID", &event_type) || - !CallJNIMethodC_V(env, cls, key_event, "getKeyChar", &key_char) || - !CallJNIMethodI_V(env, cls, key_event, "getModifiersEx", &modifiers)) { + if (!CallJNIMethodI_V(env, objClass, key_event, "getID", &event_type) || + !CallJNIMethodC_V(env, objClass, key_event, "getKeyChar", &key_char) || + !CallJNIMethodI_V(env, objClass, key_event, "getModifiersEx", &modifiers)) { return; } @@ -1622,13 +1624,13 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, #if defined(OS_WIN) jlong scanCode = 0; - GetJNIFieldLong(env, cls, key_event, "scancode", &scanCode); + GetJNIFieldLong(env, objClass, key_event, "scancode", &scanCode); BYTE VkCode = LOBYTE(MapVirtualKey(scanCode, MAPVK_VSC_TO_VK)); cef_event.native_key_code = (scanCode << 16) | // key scan code 1; // key repeat count #elif defined(OS_LINUX) || defined(OS_MACOSX) int key_code; - if (!CallJNIMethodI_V(env, cls, key_event, "getKeyCode", &key_code)) { + if (!CallJNIMethodI_V(env, objClass, key_event, "getKeyCode", &key_code)) { return; } From 9f3ae054c757bc7d36ca998480f853f54498dd34 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 15:26:21 -0400 Subject: [PATCH 03/12] more glfw porting --- native/CefBrowser_N.cpp | 104 ++++++++++++++++++++++++++-------------- 1 file changed, 68 insertions(+), 36 deletions(-) diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index 5ffc3c11..cf79f743 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -39,6 +39,8 @@ #undef MOUSE_MOVED #endif +#include + namespace { int GetCefModifiers(JNIEnv* env, jclass cls, int modifiers) { @@ -69,6 +71,36 @@ int GetCefModifiers(JNIEnv* env, jclass cls, int modifiers) { return cef_modifiers; } +int GetCefModifiersGlfw(JNIEnv* env, jclass cls, int modifiers) { + JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_ALT, 0); + // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON1_DOWN_MASK, 0); + // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON2_DOWN_MASK, 0); + // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON3_DOWN_MASK, 0); + JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_CONTROL, 0); + JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_SUPER, 0); + JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_SHIFT, 0); + + int cef_modifiers = 0; + if (modifiers & JNI_STATIC(GLFW_MOD_ALT)) + cef_modifiers |= EVENTFLAG_ALT_DOWN; + // if (modifiers & JNI_STATIC(BUTTON1_DOWN_MASK)) + // cef_modifiers |= EVENTFLAG_LEFT_MOUSE_BUTTON; + // if (modifiers & JNI_STATIC(BUTTON2_DOWN_MASK)) + // cef_modifiers |= EVENTFLAG_MIDDLE_MOUSE_BUTTON; + // if (modifiers & JNI_STATIC(BUTTON3_DOWN_MASK)) + // cef_modifiers |= EVENTFLAG_RIGHT_MOUSE_BUTTON; + if (modifiers & JNI_STATIC(GLFW_MOD_CONTROL)) + cef_modifiers |= EVENTFLAG_CONTROL_DOWN; + if (modifiers & JNI_STATIC(GLFW_MOD_SUPER)) + cef_modifiers |= EVENTFLAG_COMMAND_DOWN; + if (modifiers & JNI_STATIC(GLFW_MOD_SHIFT)) + cef_modifiers |= EVENTFLAG_SHIFT_DOWN; + + std::cout << modifiers << ", " << cef_modifiers << "\n" << std::flush; + + return cef_modifiers; +} + #if defined(OS_LINUX) // From ui/events/keycodes/keyboard_codes_posix.h. @@ -1601,14 +1633,14 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, jobject obj, jobject key_event) { CefRefPtr browser = JNI_GET_BROWSER_OR_RETURN(env, obj); - ScopedJNIClass cls(env, "java/awt/event/KeyEvent"); + ScopedJNIClass cls(env, "org/lwjgl/glfw/GLFW"); ScopedJNIClass objClass = ScopedJNIClass(env, env->GetObjectClass(key_event)); - if (!cls) + if (!cls || !objClass) return; - JNI_STATIC_DEFINE_INT(env, cls, KEY_PRESSED); - JNI_STATIC_DEFINE_INT(env, cls, KEY_RELEASED); - JNI_STATIC_DEFINE_INT(env, cls, KEY_TYPED); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_PRESS); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_RELEASE); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_REPEAT); int event_type, modifiers; char16 key_char; @@ -1619,7 +1651,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, } CefKeyEvent cef_event; - cef_event.modifiers = GetCefModifiers(env, cls, modifiers); + cef_event.modifiers = GetCefModifiersGlfw(env, cls, modifiers); #if defined(OS_WIN) @@ -1634,34 +1666,34 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, return; } - JNI_STATIC_DEFINE_INT(env, cls, VK_BACK_SPACE); - JNI_STATIC_DEFINE_INT(env, cls, VK_DELETE); - JNI_STATIC_DEFINE_INT(env, cls, VK_DOWN); - JNI_STATIC_DEFINE_INT(env, cls, VK_ENTER); - JNI_STATIC_DEFINE_INT(env, cls, VK_ESCAPE); - JNI_STATIC_DEFINE_INT(env, cls, VK_LEFT); - JNI_STATIC_DEFINE_INT(env, cls, VK_RIGHT); - JNI_STATIC_DEFINE_INT(env, cls, VK_TAB); - JNI_STATIC_DEFINE_INT(env, cls, VK_UP); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_BACKSPACE); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_DELETE); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_DOWN); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_ENTER); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_ESCAPE); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_LEFT); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_RIGHT); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_TAB); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_KEY_UP); #if defined(OS_LINUX) - if (key_code == JNI_STATIC(VK_BACK_SPACE)) + if (key_code == JNI_STATIC(GLFW_KEY_BACKSPACE)) cef_event.native_key_code = XK_BackSpace; - else if (key_code == JNI_STATIC(VK_DELETE)) + else if (key_code == JNI_STATIC(GLFW_KEY_DELETE)) cef_event.native_key_code = XK_Delete; - else if (key_code == JNI_STATIC(VK_DOWN)) + else if (key_code == JNI_STATIC(GLFW_KEY_DOWN)) cef_event.native_key_code = XK_Down; - else if (key_code == JNI_STATIC(VK_ENTER)) + else if (key_code == JNI_STATIC(GLFW_KEY_ENTER)) cef_event.native_key_code = XK_Return; - else if (key_code == JNI_STATIC(VK_ESCAPE)) + else if (key_code == JNI_STATIC(GLFW_KEY_ESCAPE)) cef_event.native_key_code = XK_Escape; - else if (key_code == JNI_STATIC(VK_LEFT)) + else if (key_code == JNI_STATIC(GLFW_KEY_LEFT)) cef_event.native_key_code = XK_Left; - else if (key_code == JNI_STATIC(VK_RIGHT)) + else if (key_code == JNI_STATIC(GLFW_KEY_RIGHT)) cef_event.native_key_code = XK_Right; - else if (key_code == JNI_STATIC(VK_TAB)) + else if (key_code == JNI_STATIC(GLFW_KEY_TAB)) cef_event.native_key_code = XK_Tab; - else if (key_code == JNI_STATIC(VK_UP)) + else if (key_code == JNI_STATIC(GLFW_KEY_UP)) cef_event.native_key_code = XK_Up; else cef_event.native_key_code = key_char; @@ -1690,31 +1722,31 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, cef_event.character = cef_event.unmodified_character; } #elif defined(OS_MACOSX) - if (key_code == JNI_STATIC(VK_BACK_SPACE)) { + if (key_code == JNI_STATIC(GLFW_KEY_BACKSPACE)) { cef_event.native_key_code = kVK_Delete; cef_event.unmodified_character = kBackspaceCharCode; - } else if (key_code == JNI_STATIC(VK_DELETE)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_DELETE)) { cef_event.native_key_code = kVK_ForwardDelete; cef_event.unmodified_character = kDeleteCharCode; - } else if (key_code == JNI_STATIC(VK_DOWN)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_DOWN)) { cef_event.native_key_code = kVK_DownArrow; cef_event.unmodified_character = /* NSDownArrowFunctionKey */ 0xF701; - } else if (key_code == JNI_STATIC(VK_ENTER)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_ENTER)) { cef_event.native_key_code = kVK_Return; cef_event.unmodified_character = kReturnCharCode; - } else if (key_code == JNI_STATIC(VK_ESCAPE)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_ESCAPE)) { cef_event.native_key_code = kVK_Escape; cef_event.unmodified_character = kEscapeCharCode; - } else if (key_code == JNI_STATIC(VK_LEFT)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_LEFT)) { cef_event.native_key_code = kVK_LeftArrow; cef_event.unmodified_character = /* NSLeftArrowFunctionKey */ 0xF702; - } else if (key_code == JNI_STATIC(VK_RIGHT)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_RIGHT)) { cef_event.native_key_code = kVK_RightArrow; cef_event.unmodified_character = /* NSRightArrowFunctionKey */ 0xF703; - } else if (key_code == JNI_STATIC(VK_TAB)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_TAB)) { cef_event.native_key_code = kVK_Tab; cef_event.unmodified_character = kTabCharCode; - } else if (key_code == JNI_STATIC(VK_UP)) { + } else if (key_code == JNI_STATIC(GLFW_KEY_UP)) { cef_event.native_key_code = kVK_UpArrow; cef_event.unmodified_character = /* NSUpArrowFunctionKey */ 0xF700; } else { @@ -1788,19 +1820,19 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, #endif // defined(OS_MACOSX) #endif // defined(OS_LINUX) || defined(OS_MACOSX) - if (event_type == JNI_STATIC(KEY_PRESSED)) { + if (event_type == JNI_STATIC(GLFW_PRESS)) { #if defined(OS_WIN) cef_event.windows_key_code = VkCode; #endif cef_event.type = KEYEVENT_RAWKEYDOWN; - } else if (event_type == JNI_STATIC(KEY_RELEASED)) { + } else if (event_type == JNI_STATIC(GLFW_RELEASE)) { #if defined(OS_WIN) cef_event.windows_key_code = VkCode; // bits 30 and 31 should always be 1 for WM_KEYUP cef_event.native_key_code |= 0xC0000000; #endif cef_event.type = KEYEVENT_KEYUP; - } else if (event_type == JNI_STATIC(KEY_TYPED)) { + } else if (event_type == JNI_STATIC(GLFW_REPEAT)) { #if defined(OS_WIN) cef_event.windows_key_code = key_char; #endif From 1038540403d3e76fa2b7b7acdde78469723ba4de Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 16:44:55 -0400 Subject: [PATCH 04/12] glfw-ify mouse events --- native/CefBrowser_N.cpp | 76 ++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index cf79f743..a7bac25f 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -73,9 +73,6 @@ int GetCefModifiers(JNIEnv* env, jclass cls, int modifiers) { int GetCefModifiersGlfw(JNIEnv* env, jclass cls, int modifiers) { JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_ALT, 0); - // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON1_DOWN_MASK, 0); - // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON2_DOWN_MASK, 0); - // JNI_STATIC_DEFINE_INT_RV(env, cls, BUTTON3_DOWN_MASK, 0); JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_CONTROL, 0); JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_SUPER, 0); JNI_STATIC_DEFINE_INT_RV(env, cls, GLFW_MOD_SHIFT, 0); @@ -83,12 +80,12 @@ int GetCefModifiersGlfw(JNIEnv* env, jclass cls, int modifiers) { int cef_modifiers = 0; if (modifiers & JNI_STATIC(GLFW_MOD_ALT)) cef_modifiers |= EVENTFLAG_ALT_DOWN; - // if (modifiers & JNI_STATIC(BUTTON1_DOWN_MASK)) - // cef_modifiers |= EVENTFLAG_LEFT_MOUSE_BUTTON; - // if (modifiers & JNI_STATIC(BUTTON2_DOWN_MASK)) - // cef_modifiers |= EVENTFLAG_MIDDLE_MOUSE_BUTTON; - // if (modifiers & JNI_STATIC(BUTTON3_DOWN_MASK)) - // cef_modifiers |= EVENTFLAG_RIGHT_MOUSE_BUTTON; + if (modifiers & 0x10) // BUTTON1_MASK + cef_modifiers |= EVENTFLAG_LEFT_MOUSE_BUTTON; + if (modifiers & 0x20) // BUTTON2_MASK + cef_modifiers |= EVENTFLAG_MIDDLE_MOUSE_BUTTON; + if (modifiers & 0x40) // BUTTON3_MASK + cef_modifiers |= EVENTFLAG_RIGHT_MOUSE_BUTTON; if (modifiers & JNI_STATIC(GLFW_MOD_CONTROL)) cef_modifiers |= EVENTFLAG_CONTROL_DOWN; if (modifiers & JNI_STATIC(GLFW_MOD_SUPER)) @@ -96,7 +93,7 @@ int GetCefModifiersGlfw(JNIEnv* env, jclass cls, int modifiers) { if (modifiers & JNI_STATIC(GLFW_MOD_SHIFT)) cef_modifiers |= EVENTFLAG_SHIFT_DOWN; - std::cout << modifiers << ", " << cef_modifiers << "\n" << std::flush; + std::cout << "mcef " << modifiers << "\ncef " << cef_modifiers << "\n" << std::flush; return cef_modifiers; } @@ -1849,25 +1846,22 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseEvent(JNIEnv* env, jobject obj, jobject mouse_event) { CefRefPtr browser = JNI_GET_BROWSER_OR_RETURN(env, obj); - ScopedJNIClass cls(env, env->GetObjectClass(mouse_event)); - if (!cls) + ScopedJNIClass cls(env, "org/lwjgl/glfw/GLFW"); + ScopedJNIClass objClass = ScopedJNIClass(env, env->GetObjectClass(mouse_event)); + if (!cls || !objClass) return; - JNI_STATIC_DEFINE_INT(env, cls, BUTTON1); - JNI_STATIC_DEFINE_INT(env, cls, BUTTON2); - JNI_STATIC_DEFINE_INT(env, cls, BUTTON3); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_DRAGGED); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_ENTERED); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_EXITED); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_MOVED); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_PRESSED); - JNI_STATIC_DEFINE_INT(env, cls, MOUSE_RELEASED); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_MOUSE_BUTTON_1); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_MOUSE_BUTTON_2); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_MOUSE_BUTTON_3); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_PRESS); + JNI_STATIC_DEFINE_INT(env, cls, GLFW_RELEASE); int event_type, x, y, modifiers; - if (!CallJNIMethodI_V(env, cls, mouse_event, "getID", &event_type) || - !CallJNIMethodI_V(env, cls, mouse_event, "getX", &x) || - !CallJNIMethodI_V(env, cls, mouse_event, "getY", &y) || - !CallJNIMethodI_V(env, cls, mouse_event, "getModifiersEx", &modifiers)) { + if (!CallJNIMethodI_V(env, objClass, mouse_event, "getID", &event_type) || + !CallJNIMethodI_V(env, objClass, mouse_event, "getX", &x) || + !CallJNIMethodI_V(env, objClass, mouse_event, "getY", &y) || + !CallJNIMethodI_V(env, objClass, mouse_event, "getModifiersEx", &modifiers)) { return; } @@ -1875,36 +1869,40 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseEvent(JNIEnv* env, cef_event.x = x; cef_event.y = y; - cef_event.modifiers = GetCefModifiers(env, cls, modifiers); + cef_event.modifiers = GetCefModifiersGlfw(env, cls, modifiers); - if (event_type == JNI_STATIC(MOUSE_PRESSED) || - event_type == JNI_STATIC(MOUSE_RELEASED)) { + if (event_type == JNI_STATIC(GLFW_PRESS) || + event_type == JNI_STATIC(GLFW_RELEASE)) { int click_count, button; - if (!CallJNIMethodI_V(env, cls, mouse_event, "getClickCount", + if (!CallJNIMethodI_V(env, objClass, mouse_event, "getClickCount", &click_count) || - !CallJNIMethodI_V(env, cls, mouse_event, "getButton", &button)) { + !CallJNIMethodI_V(env, objClass, mouse_event, "getButton", &button)) { return; } +std::cout << "glfw button: " << button << "\n" << std::flush; + CefBrowserHost::MouseButtonType cef_mbt; - if (button == JNI_STATIC(BUTTON1)) + if (button == JNI_STATIC(GLFW_MOUSE_BUTTON_1)) cef_mbt = MBT_LEFT; - else if (button == JNI_STATIC(BUTTON2)) + else if (button == JNI_STATIC(GLFW_MOUSE_BUTTON_2)) cef_mbt = MBT_MIDDLE; - else if (button == JNI_STATIC(BUTTON3)) + else if (button == JNI_STATIC(GLFW_MOUSE_BUTTON_3)) cef_mbt = MBT_RIGHT; else return; +std::cout << "cef button: " << cef_mbt << "\n" << std::flush; + browser->GetHost()->SendMouseClickEvent( - cef_event, cef_mbt, (event_type == JNI_STATIC(MOUSE_RELEASED)), + cef_event, cef_mbt, (event_type == JNI_STATIC(GLFW_RELEASE)), click_count); - } else if (event_type == JNI_STATIC(MOUSE_MOVED) || - event_type == JNI_STATIC(MOUSE_DRAGGED) || - event_type == JNI_STATIC(MOUSE_ENTERED) || - event_type == JNI_STATIC(MOUSE_EXITED)) { + } else if (event_type == 503 || // MOUSE_MOVED + event_type == 506 || // MOUSE_DRAGGED + event_type == 504 || // MOUSE_ENTERED + event_type == 505) { // MOUSE_EXITED browser->GetHost()->SendMouseMoveEvent( - cef_event, (event_type == JNI_STATIC(MOUSE_EXITED))); + cef_event, (event_type == 505)); // MOUSE_EXITED } } From 9f7881590ac67ce60bd8e0577a45c34daff8286c Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 18:56:13 -0400 Subject: [PATCH 05/12] should be done with the events may be a good idea to remove some awt references in setup and drag&drop --- java/org/cef/browser/CefBrowser_N.java | 19 ++++---- java/org/cef/{util => event}/CefKeyEvent.java | 2 +- java/org/cef/event/CefMouseEvent.java | 48 +++++++++++++++++++ java/org/cef/event/CefMouseWheelEvent.java | 41 ++++++++++++++++ native/CefBrowser_N.cpp | 32 +++++-------- 5 files changed, 111 insertions(+), 31 deletions(-) rename java/org/cef/{util => event}/CefKeyEvent.java (96%) create mode 100644 java/org/cef/event/CefMouseEvent.java create mode 100644 java/org/cef/event/CefMouseWheelEvent.java diff --git a/java/org/cef/browser/CefBrowser_N.java b/java/org/cef/browser/CefBrowser_N.java index cebcaa75..f3ad8f9f 100644 --- a/java/org/cef/browser/CefBrowser_N.java +++ b/java/org/cef/browser/CefBrowser_N.java @@ -11,6 +11,9 @@ import org.cef.callback.CefPdfPrintCallback; import org.cef.callback.CefRunFileDialogCallback; import org.cef.callback.CefStringVisitor; +import org.cef.event.CefKeyEvent; +import org.cef.event.CefMouseEvent; +import org.cef.event.CefMouseWheelEvent; import org.cef.handler.CefClientHandler; import org.cef.handler.CefDialogHandler.FileDialogMode; import org.cef.handler.CefRenderHandler; @@ -18,14 +21,10 @@ import org.cef.misc.CefPdfPrintSettings; import org.cef.network.CefRequest; -import java.awt.Canvas; import java.awt.Component; import java.awt.Point; import java.awt.Rectangle; import java.awt.Window; -import java.awt.event.KeyEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; import java.awt.event.WindowEvent; import java.util.Vector; @@ -595,7 +594,7 @@ protected final void invalidate() { * Send a key event. * @param e The event to send. */ - protected final void sendKeyEvent(KeyEvent e) { + protected final void sendKeyEvent(CefKeyEvent e) { try { N_SendKeyEvent(e); } catch (UnsatisfiedLinkError ule) { @@ -607,7 +606,7 @@ protected final void sendKeyEvent(KeyEvent e) { * Send a mouse event. * @param e The event to send. */ - protected final void sendMouseEvent(MouseEvent e) { + protected final void sendMouseEvent(CefMouseEvent e) { try { N_SendMouseEvent(e); } catch (UnsatisfiedLinkError ule) { @@ -619,7 +618,7 @@ protected final void sendMouseEvent(MouseEvent e) { * Send a mouse wheel event. * @param e The event to send. */ - protected final void sendMouseWheelEvent(MouseWheelEvent e) { + protected final void sendMouseWheelEvent(CefMouseWheelEvent e) { try { N_SendMouseWheelEvent(e); } catch (UnsatisfiedLinkError ule) { @@ -801,9 +800,9 @@ private final native void N_Find( private final native void N_ReplaceMisspelling(String word); private final native void N_WasResized(int width, int height); private final native void N_Invalidate(); - private final native void N_SendKeyEvent(KeyEvent e); - private final native void N_SendMouseEvent(MouseEvent e); - private final native void N_SendMouseWheelEvent(MouseWheelEvent e); + private final native void N_SendKeyEvent(CefKeyEvent e); + private final native void N_SendMouseEvent(CefMouseEvent e); + private final native void N_SendMouseWheelEvent(CefMouseWheelEvent e); private final native void N_DragTargetDragEnter( CefDragData dragData, Point pos, int modifiers, int allowed_ops); private final native void N_DragTargetDragOver(Point pos, int modifiers, int allowed_ops); diff --git a/java/org/cef/util/CefKeyEvent.java b/java/org/cef/event/CefKeyEvent.java similarity index 96% rename from java/org/cef/util/CefKeyEvent.java rename to java/org/cef/event/CefKeyEvent.java index 1d073756..4eabd5a7 100644 --- a/java/org/cef/util/CefKeyEvent.java +++ b/java/org/cef/event/CefKeyEvent.java @@ -1,4 +1,4 @@ -package org.cef.util; +package org.cef.event; public class CefKeyEvent { public int keyCode; diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java new file mode 100644 index 00000000..86cffbb2 --- /dev/null +++ b/java/org/cef/event/CefMouseEvent.java @@ -0,0 +1,48 @@ +package org.cef.event; + +public class CefMouseEvent { + public static final int MOUSE_MOVED = 502; + public static final int BUTTON1_MASK = 0x10; + public static final int BUTTON2_MASK = 0x20; + public static final int BUTTON3_MASK = 0x40; + + public int id; + public int x; + public int y; + public int modifs; + public int clickCount; + public int button; + + public CefMouseEvent(int id, int x, int y, int modifs, int clickCount, int button) { + this.id = id; + this.x = x; + this.y = y; + this.modifs = modifs; + this.clickCount = clickCount; + this.button = button; + } + + public int getID() { + return id; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public int getModifiersEx() { + return modifs; + } + + public int getClickCount() { + return clickCount; + } + + public int getButton() { + return button; + } +} diff --git a/java/org/cef/event/CefMouseWheelEvent.java b/java/org/cef/event/CefMouseWheelEvent.java new file mode 100644 index 00000000..14cc5bac --- /dev/null +++ b/java/org/cef/event/CefMouseWheelEvent.java @@ -0,0 +1,41 @@ +package org.cef.event; + +public class CefMouseWheelEvent { + public static final int WHEEL_UNIT_SCROLL = 0; + public static final int WHEEL_BLOCK_SCROLL = 1; + + int id, delta, x, y, modifiers; + int amount = 32; // TODO: might want to make this change dependent on system? + + public CefMouseWheelEvent(int id, int delta, int x, int y, int modifiers) { + this.id = id; + this.delta = delta; + this.x = x; + this.y = y; + this.modifiers = modifiers; + } + + public int getScrollType() { + return id; + } + + public int getWheelRotation() { + return delta; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public int getModifiersEx() { + return modifiers; + } + + public int getUnitsToScroll() { + return amount * delta; + } +} diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index a7bac25f..6067e192 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -39,8 +39,6 @@ #undef MOUSE_MOVED #endif -#include - namespace { int GetCefModifiers(JNIEnv* env, jclass cls, int modifiers) { @@ -93,8 +91,6 @@ int GetCefModifiersGlfw(JNIEnv* env, jclass cls, int modifiers) { if (modifiers & JNI_STATIC(GLFW_MOD_SHIFT)) cef_modifiers |= EVENTFLAG_SHIFT_DOWN; - std::cout << "mcef " << modifiers << "\ncef " << cef_modifiers << "\n" << std::flush; - return cef_modifiers; } @@ -1651,7 +1647,6 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, cef_event.modifiers = GetCefModifiersGlfw(env, cls, modifiers); #if defined(OS_WIN) - jlong scanCode = 0; GetJNIFieldLong(env, objClass, key_event, "scancode", &scanCode); BYTE VkCode = LOBYTE(MapVirtualKey(scanCode, MAPVK_VSC_TO_VK)); @@ -1880,8 +1875,6 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseEvent(JNIEnv* env, return; } -std::cout << "glfw button: " << button << "\n" << std::flush; - CefBrowserHost::MouseButtonType cef_mbt; if (button == JNI_STATIC(GLFW_MOUSE_BUTTON_1)) cef_mbt = MBT_LEFT; @@ -1892,8 +1885,6 @@ std::cout << "glfw button: " << button << "\n" << std::flush; else return; -std::cout << "cef button: " << cef_mbt << "\n" << std::flush; - browser->GetHost()->SendMouseClickEvent( cef_event, cef_mbt, (event_type == JNI_STATIC(GLFW_RELEASE)), click_count); @@ -1912,20 +1903,21 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseWheelEvent( jobject obj, jobject mouse_wheel_event) { CefRefPtr browser = JNI_GET_BROWSER_OR_RETURN(env, obj); - ScopedJNIClass cls(env, env->GetObjectClass(mouse_wheel_event)); - if (!cls) + ScopedJNIClass cls(env, "org/lwjgl/glfw/GLFW"); + ScopedJNIClass objClass = ScopedJNIClass(env, env->GetObjectClass(mouse_wheel_event)); + if (!cls || !objClass) return; - JNI_STATIC_DEFINE_INT(env, cls, WHEEL_UNIT_SCROLL); + JNI_STATIC_DEFINE_INT(env, objClass, WHEEL_UNIT_SCROLL); int scroll_type, delta, x, y, modifiers; - if (!CallJNIMethodI_V(env, cls, mouse_wheel_event, "getScrollType", + if (!CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getScrollType", &scroll_type) || - !CallJNIMethodI_V(env, cls, mouse_wheel_event, "getWheelRotation", + !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getWheelRotation", &delta) || - !CallJNIMethodI_V(env, cls, mouse_wheel_event, "getX", &x) || - !CallJNIMethodI_V(env, cls, mouse_wheel_event, "getY", &y) || - !CallJNIMethodI_V(env, cls, mouse_wheel_event, "getModifiersEx", + !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getX", &x) || + !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getY", &y) || + !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getModifiersEx", &modifiers)) { return; } @@ -1934,11 +1926,11 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseWheelEvent( cef_event.x = x; cef_event.y = y; - cef_event.modifiers = GetCefModifiers(env, cls, modifiers); + cef_event.modifiers = GetCefModifiersGlfw(env, cls, modifiers); - if (scroll_type == JNI_STATIC(WHEEL_UNIT_SCROLL)) { + if (scroll_type == 0) { // Use the smarter version that considers platform settings. - CallJNIMethodI_V(env, cls, mouse_wheel_event, "getUnitsToScroll", &delta); + CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getUnitsToScroll", &delta); } double deltaX = 0, deltaY = 0; From 63ee43e4985335c1b193b639a684e5af3fcccea9 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 18:57:49 -0400 Subject: [PATCH 06/12] actually, I'll undo this for now --- .../handler/CefResourceHandlerAdapter.java | 32 +------------------ 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/java/org/cef/handler/CefResourceHandlerAdapter.java b/java/org/cef/handler/CefResourceHandlerAdapter.java index 7e6e7261..916cf52a 100644 --- a/java/org/cef/handler/CefResourceHandlerAdapter.java +++ b/java/org/cef/handler/CefResourceHandlerAdapter.java @@ -18,38 +18,8 @@ * This class exists as convenience for creating handler objects. */ public abstract class CefResourceHandlerAdapter implements CefResourceHandler { - // forge causes some problems without this - private static final ClassLoader clr; - - static { - try { - // reason: prevent class loading issues with forge - Class[] LOADER = new Class[] { - IntRef.class, - BoolRef.class, - CefRequest.class, - StringRef.class, - Class.forName("org.cef.callback.CefCallback_N"), - Class.forName("org.cef.network.CefResponse_N") - }; - } catch (Throwable err) { - } - - ClassLoader c = Thread.currentThread().getContextClassLoader(); - if (c == null) c = CefResourceHandlerAdapter.class.getClassLoader(); - clr = c; - } - - /** - * override {@link CefResourceHandlerAdapter#handleRequest(CefRequest, CefCallback)} instead - */ @Override - public final boolean processRequest(CefRequest request, CefCallback callback) { - Thread.currentThread().setContextClassLoader(clr); // reason: prevent class loading issues with forge - return handleRequest(request, callback); - } - - public boolean handleRequest(CefRequest request, CefCallback callback) { + public boolean processRequest(CefRequest request, CefCallback callback) { return false; } From ebf4292289d6bc5faa11053ccc4f6875cb93024e Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 20:32:44 -0400 Subject: [PATCH 07/12] realized this is useful --- java/org/cef/event/CefMouseEvent.java | 1 + 1 file changed, 1 insertion(+) diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java index 86cffbb2..40214cef 100644 --- a/java/org/cef/event/CefMouseEvent.java +++ b/java/org/cef/event/CefMouseEvent.java @@ -2,6 +2,7 @@ public class CefMouseEvent { public static final int MOUSE_MOVED = 502; + public static final int MOUSE_DRAGGED = 506; public static final int BUTTON1_MASK = 0x10; public static final int BUTTON2_MASK = 0x20; public static final int BUTTON3_MASK = 0x40; From 719493d0be904b2e54062d285c7410111fc4bf29 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 20:37:39 -0400 Subject: [PATCH 08/12] realized that only mouse exit and mouse move is meaningful --- java/org/cef/event/CefMouseEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java index 40214cef..c071cbdd 100644 --- a/java/org/cef/event/CefMouseEvent.java +++ b/java/org/cef/event/CefMouseEvent.java @@ -2,7 +2,7 @@ public class CefMouseEvent { public static final int MOUSE_MOVED = 502; - public static final int MOUSE_DRAGGED = 506; + public static final int MOUSE_EXIT = 505; public static final int BUTTON1_MASK = 0x10; public static final int BUTTON2_MASK = 0x20; public static final int BUTTON3_MASK = 0x40; From 97173bb0cef11faf64eabc954b41e836f5e6c3a9 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 20:49:28 -0400 Subject: [PATCH 09/12] variables for key constants, add basic notes on what the constants are --- java/org/cef/event/CefKeyEvent.java | 5 +++++ java/org/cef/event/CefMouseEvent.java | 2 ++ java/org/cef/event/CefMouseWheelEvent.java | 1 + 3 files changed, 8 insertions(+) diff --git a/java/org/cef/event/CefKeyEvent.java b/java/org/cef/event/CefKeyEvent.java index 4eabd5a7..ed0b5688 100644 --- a/java/org/cef/event/CefKeyEvent.java +++ b/java/org/cef/event/CefKeyEvent.java @@ -1,6 +1,11 @@ package org.cef.event; public class CefKeyEvent { + /* id constants */ + public static final int KEY_PRESS = 1; + public static final int KEY_RELEASE = 0; + public static final int KEY_TYPE = 2; + public int keyCode; public int id; public int modifiersEx; diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java index c071cbdd..f7c074f6 100644 --- a/java/org/cef/event/CefMouseEvent.java +++ b/java/org/cef/event/CefMouseEvent.java @@ -1,8 +1,10 @@ package org.cef.event; public class CefMouseEvent { + /* id constants */ public static final int MOUSE_MOVED = 502; public static final int MOUSE_EXIT = 505; + /* modifier constants */ public static final int BUTTON1_MASK = 0x10; public static final int BUTTON2_MASK = 0x20; public static final int BUTTON3_MASK = 0x40; diff --git a/java/org/cef/event/CefMouseWheelEvent.java b/java/org/cef/event/CefMouseWheelEvent.java index 14cc5bac..54e32867 100644 --- a/java/org/cef/event/CefMouseWheelEvent.java +++ b/java/org/cef/event/CefMouseWheelEvent.java @@ -1,6 +1,7 @@ package org.cef.event; public class CefMouseWheelEvent { + /* id constants */ public static final int WHEEL_UNIT_SCROLL = 0; public static final int WHEEL_BLOCK_SCROLL = 1; From ab05420d120ee2d6905c14ef2152ec8daa6daf64 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 21:38:18 -0400 Subject: [PATCH 10/12] apparently I messed this number up --- java/org/cef/event/CefMouseEvent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java index f7c074f6..a16f358c 100644 --- a/java/org/cef/event/CefMouseEvent.java +++ b/java/org/cef/event/CefMouseEvent.java @@ -2,7 +2,7 @@ public class CefMouseEvent { /* id constants */ - public static final int MOUSE_MOVED = 502; + public static final int MOUSE_MOVED = 503; public static final int MOUSE_EXIT = 505; /* modifier constants */ public static final int BUTTON1_MASK = 0x10; From e86d2640635440c580602835d5bee5c0838a2caf Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Mon, 7 Aug 2023 22:38:11 -0400 Subject: [PATCH 11/12] follow ds's comments --- java/org/cef/event/CefKeyEvent.java | 15 +++++++++------ java/org/cef/event/CefMouseEvent.java | 13 ++++++++----- java/org/cef/event/CefMouseWheelEvent.java | 19 +++++++++++++------ native/CefBrowser_N.cpp | 6 +++--- 4 files changed, 33 insertions(+), 20 deletions(-) diff --git a/java/org/cef/event/CefKeyEvent.java b/java/org/cef/event/CefKeyEvent.java index ed0b5688..eda2a84c 100644 --- a/java/org/cef/event/CefKeyEvent.java +++ b/java/org/cef/event/CefKeyEvent.java @@ -6,25 +6,28 @@ public class CefKeyEvent { public static final int KEY_RELEASE = 0; public static final int KEY_TYPE = 2; + // intentionally leaving these public for now + // may remove the getters, or maybe add setters, or maybe move to private + // not sure yet public int keyCode; public int id; - public int modifiersEx; + public int modifiers; public char keyChar; public long scancode; - public CefKeyEvent(int keyCode, int id, int modifiersEx, char keyChar) { - this.keyCode = keyCode; + public CefKeyEvent(int id, int keyCode, char keyChar, int modifiers) { this.id = id; - this.modifiersEx = modifiersEx; + this.keyCode = keyCode; this.keyChar = keyChar; + this.modifiers = modifiers; } public int getID() { return id; } - public int getModifiersEx() { - return modifiersEx; + public int getModifiers() { + return modifiers; } public char getKeyChar() { diff --git a/java/org/cef/event/CefMouseEvent.java b/java/org/cef/event/CefMouseEvent.java index a16f358c..23840478 100644 --- a/java/org/cef/event/CefMouseEvent.java +++ b/java/org/cef/event/CefMouseEvent.java @@ -9,20 +9,23 @@ public class CefMouseEvent { public static final int BUTTON2_MASK = 0x20; public static final int BUTTON3_MASK = 0x40; + // intentionally leaving these public for now + // may remove the getters, or maybe add setters, or maybe move to private + // not sure yet public int id; public int x; public int y; - public int modifs; + public int modifiers; public int clickCount; public int button; - public CefMouseEvent(int id, int x, int y, int modifs, int clickCount, int button) { + public CefMouseEvent(int id, int x, int y, int clickCount, int button, int modifiers) { this.id = id; this.x = x; this.y = y; - this.modifs = modifs; this.clickCount = clickCount; this.button = button; + this.modifiers = modifiers; } public int getID() { @@ -37,8 +40,8 @@ public int getY() { return y; } - public int getModifiersEx() { - return modifs; + public int getModifiers() { + return modifiers; } public int getClickCount() { diff --git a/java/org/cef/event/CefMouseWheelEvent.java b/java/org/cef/event/CefMouseWheelEvent.java index 54e32867..54a46f23 100644 --- a/java/org/cef/event/CefMouseWheelEvent.java +++ b/java/org/cef/event/CefMouseWheelEvent.java @@ -5,14 +5,21 @@ public class CefMouseWheelEvent { public static final int WHEEL_UNIT_SCROLL = 0; public static final int WHEEL_BLOCK_SCROLL = 1; - int id, delta, x, y, modifiers; - int amount = 32; // TODO: might want to make this change dependent on system? - - public CefMouseWheelEvent(int id, int delta, int x, int y, int modifiers) { + // intentionally leaving these public for now + // may remove the getters, or maybe add setters, or maybe move to private + // not sure yet + public int id; + public int delta; + public int x; + public int y; + public int modifiers; + public int amount = 32; // TODO: might want to make this change dependent on system? + + public CefMouseWheelEvent(int id, int x, int y, int delta, int modifiers) { this.id = id; - this.delta = delta; this.x = x; this.y = y; + this.delta = delta; this.modifiers = modifiers; } @@ -32,7 +39,7 @@ public int getY() { return y; } - public int getModifiersEx() { + public int getModifiers() { return modifiers; } diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index 6067e192..c57b0d6c 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -1639,7 +1639,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendKeyEvent(JNIEnv* env, char16 key_char; if (!CallJNIMethodI_V(env, objClass, key_event, "getID", &event_type) || !CallJNIMethodC_V(env, objClass, key_event, "getKeyChar", &key_char) || - !CallJNIMethodI_V(env, objClass, key_event, "getModifiersEx", &modifiers)) { + !CallJNIMethodI_V(env, objClass, key_event, "getModifiers", &modifiers)) { return; } @@ -1856,7 +1856,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseEvent(JNIEnv* env, if (!CallJNIMethodI_V(env, objClass, mouse_event, "getID", &event_type) || !CallJNIMethodI_V(env, objClass, mouse_event, "getX", &x) || !CallJNIMethodI_V(env, objClass, mouse_event, "getY", &y) || - !CallJNIMethodI_V(env, objClass, mouse_event, "getModifiersEx", &modifiers)) { + !CallJNIMethodI_V(env, objClass, mouse_event, "getModifiers", &modifiers)) { return; } @@ -1917,7 +1917,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseWheelEvent( &delta) || !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getX", &x) || !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getY", &y) || - !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getModifiersEx", + !CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getModifiers", &modifiers)) { return; } From 2fddac22c7dc8cca78303422aa3b0fc976f6b890 Mon Sep 17 00:00:00 2001 From: GiantLuigi4 <49770992+GiantLuigi4@users.noreply.github.com> Date: Tue, 8 Aug 2023 12:31:41 -0400 Subject: [PATCH 12/12] cleanup --- java/org/cef/handler/CefResourceHandlerAdapter.java | 2 -- native/CefBrowser_N.cpp | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/java/org/cef/handler/CefResourceHandlerAdapter.java b/java/org/cef/handler/CefResourceHandlerAdapter.java index 916cf52a..9c349f6e 100644 --- a/java/org/cef/handler/CefResourceHandlerAdapter.java +++ b/java/org/cef/handler/CefResourceHandlerAdapter.java @@ -5,10 +5,8 @@ package org.cef.handler; import org.cef.callback.CefCallback; -import org.cef.misc.BoolRef; import org.cef.misc.IntRef; import org.cef.misc.StringRef; -import org.cef.network.CefCookie; import org.cef.network.CefRequest; import org.cef.network.CefResponse; diff --git a/native/CefBrowser_N.cpp b/native/CefBrowser_N.cpp index c57b0d6c..c5716b89 100644 --- a/native/CefBrowser_N.cpp +++ b/native/CefBrowser_N.cpp @@ -12,7 +12,6 @@ #include "browser_process_handler.h" #include "client_handler.h" #include "critical_wait.h" -#include "jni_scoped_helpers.h" #include "jni_util.h" #include "life_span_handler.h" #include "pdf_print_callback.h" @@ -1928,7 +1927,7 @@ Java_org_cef_browser_CefBrowser_1N_N_1SendMouseWheelEvent( cef_event.modifiers = GetCefModifiersGlfw(env, cls, modifiers); - if (scroll_type == 0) { + if (scroll_type == 0) { // WHEEL_UNIT_SCROLL // Use the smarter version that considers platform settings. CallJNIMethodI_V(env, objClass, mouse_wheel_event, "getUnitsToScroll", &delta); }