@@ -1787,158 +1787,62 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
17871787 jobject obj,
17881788 jobject key_event) {
17891789
1790- fprintf (stderr, " [DEBUG] === SendKeyEvent called ===\n " );
1791- fflush (stderr);
1792-
17931790 // Get the CEF browser instance
17941791 CefRefPtr<CefBrowser> browser = JNI_GET_BROWSER_OR_RETURN (env, obj);
17951792 if (!browser) {
1796- fprintf (stderr, " [ERROR] Failed to get browser\n " );
1797- fflush (stderr);
17981793 return ;
17991794 }
1800- fprintf (stderr, " [DEBUG] Got browser successfully\n " );
1801- fflush (stderr);
18021795
18031796 // Get the KeyEvent class
18041797 ScopedJNIClass cls (env, env->GetObjectClass (key_event));
18051798 if (!cls) {
1806- fprintf (stderr, " [ERROR] Failed to get KeyEvent class\n " );
1807- fflush (stderr);
18081799 return ;
18091800 }
1810- fprintf (stderr, " [DEBUG] Got KeyEvent class\n " );
1811- fflush (stderr);
18121801
18131802 // Get method IDs for JavaFX KeyEvent
18141803 jmethodID getEventType_mid = env->GetMethodID (cls, " getEventType" , " ()Ljavafx/event/EventType;" );
1815-
1816- if (!getEventType_mid) {
1817- fprintf (stderr, " [ERROR] Failed to get getEventType method\n " );
1818- fflush (stderr);
1819- return ;
1820- }
1821- fprintf (stderr, " [DEBUG] Got getEventType method\n " );
1822- fflush (stderr);
1823-
1824- jmethodID getCode_mid =
1825- env->GetMethodID (cls, " getCode" , " ()Ljavafx/scene/input/KeyCode;" );
1826- if (!getCode_mid) {
1827- fprintf (stderr, " [ERROR] Failed to get getCode method\n " );
1828- fflush (stderr);
1829- return ;
1830- }
1831- fprintf (stderr, " [DEBUG] Got getCode method\n " );
1832- fflush (stderr);
1833-
1834- jmethodID getCharacter_mid =
1835- env->GetMethodID (cls, " getCharacter" , " ()Ljava/lang/String;" );
1836- if (!getCharacter_mid) {
1837- fprintf (stderr, " [ERROR] Failed to get getCharacter method\n " );
1838- fflush (stderr);
1839- return ;
1840- }
1841- fprintf (stderr, " [DEBUG] Got getCharacter method\n " );
1842- fflush (stderr);
1843-
1804+ jmethodID getCode_mid = env->GetMethodID (cls, " getCode" , " ()Ljavafx/scene/input/KeyCode;" );
1805+ jmethodID getCharacter_mid = env->GetMethodID (cls, " getCharacter" , " ()Ljava/lang/String;" );
18441806 jmethodID isControlDown_mid = env->GetMethodID (cls, " isControlDown" , " ()Z" );
1845- if (!isControlDown_mid) {
1846- fprintf (stderr, " [ERROR] Failed to get isControlDown method\n " );
1847- fflush (stderr);
1848- return ;
1849- }
1850-
18511807 jmethodID isShiftDown_mid = env->GetMethodID (cls, " isShiftDown" , " ()Z" );
1852- if (!isShiftDown_mid) {
1853- fprintf (stderr, " [ERROR] Failed to get isShiftDown method\n " );
1854- fflush (stderr);
1855- return ;
1856- }
1857-
18581808 jmethodID isAltDown_mid = env->GetMethodID (cls, " isAltDown" , " ()Z" );
1859- if (!isAltDown_mid) {
1860- fprintf (stderr, " [ERROR] Failed to get isAltDown method\n " );
1861- fflush (stderr);
1862- return ;
1863- }
1864-
18651809 jmethodID isMetaDown_mid = env->GetMethodID (cls, " isMetaDown" , " ()Z" );
1866- if (!isMetaDown_mid) {
1867- fprintf (stderr, " [ERROR] Failed to get isMetaDown method\n " );
1868- fflush (stderr);
1869- return ;
1870- }
1871-
1872- fprintf (stderr, " [DEBUG] Got all method IDs successfully\n " );
1873- fflush (stderr);
18741810
18751811 // Get the event type object
18761812 jobject event_type_obj = env->CallObjectMethod (key_event, getEventType_mid);
1877- if (!event_type_obj) {
1878- fprintf (stderr, " [ERROR] Failed to call getEventType()\n " );
1879- fflush (stderr);
1880- return ;
1881- }
1882- fprintf (stderr, " [DEBUG] Got event type object\n " );
1883- fflush (stderr);
1884-
18851813 // Get static EventType fields from KeyEvent class
18861814 jclass key_event_class = env->FindClass (" javafx/scene/input/KeyEvent" );
18871815 if (!key_event_class) {
1888- fprintf (stderr, " [ERROR] Failed to find KeyEvent class\n " );
1889- fflush (stderr);
18901816 env->DeleteLocalRef (event_type_obj);
18911817 return ;
18921818 }
1893- fprintf (stderr, " [DEBUG] Found KeyEvent class for static fields\n " );
1894- fflush (stderr);
18951819
18961820 // Get static field IDs for KEY_PRESSED, KEY_RELEASED, KEY_TYPED
1897- jfieldID key_pressed_fid =
1898- env->GetStaticFieldID (key_event_class, " KEY_PRESSED" ,
1899- " Ljavafx/event/EventType;" );
1900- jfieldID key_released_fid =
1901- env->GetStaticFieldID (key_event_class, " KEY_RELEASED" ,
1902- " Ljavafx/event/EventType;" );
1903- jfieldID key_typed_fid =
1904- env->GetStaticFieldID (key_event_class, " KEY_TYPED" ,
1905- " Ljavafx/event/EventType;" );
1821+ jfieldID key_pressed_fid = env->GetStaticFieldID (key_event_class, " KEY_PRESSED" , " Ljavafx/event/EventType;" );
1822+ jfieldID key_released_fid = env->GetStaticFieldID (key_event_class, " KEY_RELEASED" , " Ljavafx/event/EventType;" );
1823+ jfieldID key_typed_fid = env->GetStaticFieldID (key_event_class, " KEY_TYPED" , " Ljavafx/event/EventType;" );
19061824
19071825 if (!key_pressed_fid || !key_released_fid || !key_typed_fid) {
1908- fprintf (stderr, " [ERROR] Failed to get EventType static fields\n " );
1909- fflush (stderr);
19101826 env->DeleteLocalRef (event_type_obj);
19111827 env->DeleteLocalRef (key_event_class);
19121828 return ;
19131829 }
1914- fprintf (stderr, " [DEBUG] Got all EventType static fields\n " );
1915- fflush (stderr);
19161830
19171831 // Get the actual static objects
1918- jobject key_pressed_obj =
1919- env->GetStaticObjectField (key_event_class, key_pressed_fid);
1920- jobject key_released_obj =
1921- env->GetStaticObjectField (key_event_class, key_released_fid);
1832+ jobject key_pressed_obj = env->GetStaticObjectField (key_event_class, key_pressed_fid);
1833+ jobject key_released_obj = env->GetStaticObjectField (key_event_class, key_released_fid);
19221834 jobject key_typed_obj = env->GetStaticObjectField (key_event_class, key_typed_fid);
19231835
19241836 // Determine the CEF event type based on the JavaFX event type
19251837 cef_key_event_type_t cef_event_type = KEYEVENT_RAWKEYDOWN ;
19261838
19271839 if (env->IsSameObject (event_type_obj, key_pressed_obj)) {
19281840 cef_event_type = KEYEVENT_RAWKEYDOWN ;
1929- fprintf (stderr, " [DEBUG] Event type: KEY_PRESSED\n " );
1930- fflush (stderr);
19311841 } else if (env->IsSameObject (event_type_obj, key_released_obj)) {
19321842 cef_event_type = KEYEVENT_KEYUP ;
1933- fprintf (stderr, " [DEBUG] Event type: KEY_RELEASED\n " );
1934- fflush (stderr);
19351843 } else if (env->IsSameObject (event_type_obj, key_typed_obj)) {
19361844 cef_event_type = KEYEVENT_CHAR ;
1937- fprintf (stderr, " [DEBUG] Event type: KEY_TYPED\n " );
1938- fflush (stderr);
19391845 } else {
1940- fprintf (stderr, " [ERROR] Unknown event type\n " );
1941- fflush (stderr);
19421846 env->DeleteLocalRef (event_type_obj);
19431847 env->DeleteLocalRef (key_pressed_obj);
19441848 env->DeleteLocalRef (key_released_obj);
@@ -1950,23 +1854,17 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
19501854 // Get KeyCode enum object
19511855 jobject key_code_obj = env->CallObjectMethod (key_event, getCode_mid);
19521856 if (!key_code_obj) {
1953- fprintf (stderr, " [ERROR] Failed to call getCode()\n " );
1954- fflush (stderr);
19551857 env->DeleteLocalRef (event_type_obj);
19561858 env->DeleteLocalRef (key_pressed_obj);
19571859 env->DeleteLocalRef (key_released_obj);
19581860 env->DeleteLocalRef (key_typed_obj);
19591861 env->DeleteLocalRef (key_event_class);
19601862 return ;
19611863 }
1962- fprintf (stderr, " [DEBUG] Got KeyCode object\n " );
1963- fflush (stderr);
19641864
19651865 // Get the KeyCode class
19661866 ScopedJNIClass key_code_cls (env, env->GetObjectClass (key_code_obj));
19671867 if (!key_code_cls) {
1968- fprintf (stderr, " [ERROR] Failed to get KeyCode class\n " );
1969- fflush (stderr);
19701868 env->DeleteLocalRef (event_type_obj);
19711869 env->DeleteLocalRef (key_pressed_obj);
19721870 env->DeleteLocalRef (key_released_obj);
@@ -1980,8 +1878,6 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
19801878 jmethodID key_code_get_code_mid =
19811879 env->GetMethodID (key_code_cls, " getCode" , " ()I" );
19821880 if (!key_code_get_code_mid) {
1983- fprintf (stderr, " [ERROR] Failed to get getCode() method on KeyCode\n " );
1984- fflush (stderr);
19851881 env->DeleteLocalRef (event_type_obj);
19861882 env->DeleteLocalRef (key_pressed_obj);
19871883 env->DeleteLocalRef (key_released_obj);
@@ -1992,11 +1888,7 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
19921888 }
19931889
19941890 // Call getCode() to get the JavaFX KeyCode value
1995- int javafx_key_code =
1996- env->CallIntMethod (key_code_obj, key_code_get_code_mid);
1997- fprintf (stderr, " [DEBUG] JavaFX KeyCode: 0x%04X (%d)\n " , javafx_key_code,
1998- javafx_key_code);
1999- fflush (stderr);
1891+ int javafx_key_code = env->CallIntMethod (key_code_obj, key_code_get_code_mid);
20001892
20011893 // Get the character string from the key event
20021894 jstring character_str =
@@ -2007,9 +1899,6 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
20071899 const jchar* chars = env->GetStringChars (character_str, nullptr );
20081900 if (chars && env->GetStringLength (character_str) > 0 ) {
20091901 key_char = chars[0 ];
2010- fprintf (stderr, " [DEBUG] Key character: '%c' (0x%04X)\n " , (char )key_char,
2011- key_char);
2012- fflush (stderr);
20131902 env->ReleaseStringChars (character_str, chars);
20141903 }
20151904 env->DeleteLocalRef (character_str);
@@ -2021,11 +1910,6 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
20211910 jboolean is_alt_down = env->CallBooleanMethod (key_event, isAltDown_mid);
20221911 jboolean is_meta_down = env->CallBooleanMethod (key_event, isMetaDown_mid);
20231912
2024- fprintf (stderr,
2025- " [DEBUG] Modifiers: Ctrl=%d, Shift=%d, Alt=%d, Meta=%d\n " ,
2026- is_ctrl_down, is_shift_down, is_alt_down, is_meta_down);
2027- fflush (stderr);
2028-
20291913 // Build CEF modifiers from JavaFX modifiers
20301914 int cef_modifiers = 0 ;
20311915 if (is_ctrl_down)
@@ -2037,24 +1921,15 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
20371921 if (is_meta_down)
20381922 cef_modifiers |= EVENTFLAG_COMMAND_DOWN ;
20391923
2040- fprintf (stderr, " [DEBUG] CEF modifiers: 0x%08X\n " , cef_modifiers);
2041- fflush (stderr);
2042-
20431924 // Create CEF key event
20441925 CefKeyEvent cef_event;
20451926 cef_event.type = cef_event_type;
20461927 cef_event.modifiers = cef_modifiers;
20471928
20481929#if defined(OS_WIN)
2049- fprintf (stderr, " [DEBUG] Platform: Windows\n " );
2050- fflush (stderr);
20511930
20521931 // Map JavaFX KeyCode to Windows virtual key code
2053- cef_event.windows_key_code =
2054- JavaFXKeyCodeToWindowsKeyCode (javafx_key_code);
2055- fprintf (stderr, " [DEBUG] Windows key code: 0x%04X\n " ,
2056- cef_event.windows_key_code );
2057- fflush (stderr);
1932+ cef_event.windows_key_code = JavaFXKeyCodeToWindowsKeyCode (javafx_key_code);
20581933
20591934 // For KEY_PRESSED and KEY_RELEASED, include scan code
20601935 if (cef_event_type == KEYEVENT_RAWKEYDOWN ||
@@ -2067,32 +1942,18 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
20671942 if (cef_event_type == KEYEVENT_KEYUP ) {
20681943 cef_event.native_key_code |= 0xC0000000 ;
20691944 }
2070- fprintf (stderr, " [DEBUG] Native key code: 0x%08X\n " ,
2071- cef_event.native_key_code );
2072- fflush (stderr);
20731945 } else if (cef_event_type == KEYEVENT_CHAR ) {
20741946 cef_event.windows_key_code = key_char;
20751947 }
20761948
20771949#elif defined(OS_LINUX)
2078- fprintf (stderr, " [DEBUG] Platform: Linux\n " );
2079- fflush (stderr);
2080-
20811950 // Map JavaFX KeyCode to X11 keysym
20821951 unsigned int x11_keysym = JavaFXKeyCodeToXKeysym (javafx_key_code);
20831952 cef_event.native_key_code = x11_keysym;
2084- fprintf (stderr, " [DEBUG] X11 keysym: 0x%08X\n " , x11_keysym);
2085- fflush (stderr);
20861953
20871954 // Convert X11 keysym to Windows key code for CEF
2088- KeyboardCode windows_key_code =
2089- KeyboardCodeFromXKeysym (cef_event.native_key_code );
2090- cef_event.windows_key_code =
2091- GetWindowsKeyCodeWithoutLocation (windows_key_code);
2092-
2093- fprintf (stderr, " [DEBUG] Windows key code: 0x%04X\n " ,
2094- cef_event.windows_key_code );
2095- fflush (stderr);
1955+ KeyboardCode windows_key_code = KeyboardCodeFromXKeysym (cef_event.native_key_code );
1956+ cef_event.windows_key_code = GetWindowsKeyCodeWithoutLocation (windows_key_code);
20961957
20971958 // Set system key flag for Alt
20981959 if (cef_event.modifiers & EVENTFLAG_ALT_DOWN )
@@ -2108,28 +1969,14 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
21081969
21091970 // Handle control characters
21101971 if (cef_event.modifiers & EVENTFLAG_CONTROL_DOWN ) {
2111- cef_event.character = GetControlCharacter (
2112- windows_key_code, cef_event.modifiers & EVENTFLAG_SHIFT_DOWN );
1972+ cef_event.character = GetControlCharacter (windows_key_code, cef_event.modifiers & EVENTFLAG_SHIFT_DOWN );
21131973 } else {
21141974 cef_event.character = cef_event.unmodified_character ;
21151975 }
21161976
2117- fprintf (stderr,
2118- " [DEBUG] Character: 0x%02X, Unmodified: 0x%02X, Is system key: %d\n " ,
2119- cef_event.character , cef_event.unmodified_character ,
2120- cef_event.is_system_key );
2121- fflush (stderr);
2122-
21231977#elif defined(OS_MACOSX)
2124- fprintf (stderr, " [DEBUG] Platform: macOS\n " );
2125- fflush (stderr);
2126-
21271978 // Map JavaFX KeyCode to Mac key code
21281979 cef_event.native_key_code = JavaFXKeyCodeToMacKeyCode (javafx_key_code);
2129- fprintf (stderr, " [DEBUG] macOS key code: 0x%04X\n " ,
2130- cef_event.native_key_code );
2131- fflush (stderr);
2132-
21331980 cef_event.unmodified_character = key_char;
21341981 cef_event.character = key_char;
21351982
@@ -2154,23 +2001,9 @@ Java_com_techsenger_ceffx_core_browser_CefBrowser_1N_N_1SendKeyEvent(
21542001 cef_event.character = GetMacControlCharacter (cef_event.native_key_code );
21552002 }
21562003#endif
2157-
2158- // Log the final event details
2159- fprintf (stderr, " [DEBUG] Sending key event to browser...\n " );
2160- fflush (stderr);
2161- fprintf (stderr,
2162- " [DEBUG] Final event: type=%d, keyCode=%d, nativeCode=0x%X, "
2163- " char=0x%02X, modifiers=0x%X\n " ,
2164- cef_event.type , cef_event.windows_key_code ,
2165- cef_event.native_key_code , cef_event.character , cef_event.modifiers );
2166- fflush (stderr);
2167-
21682004 // Send the key event to the browser
21692005 browser->GetHost ()->SendKeyEvent (cef_event);
21702006
2171- fprintf (stderr, " [DEBUG] Key event sent successfully\n " );
2172- fflush (stderr);
2173-
21742007 // Clean up all local JNI references
21752008 env->DeleteLocalRef (event_type_obj);
21762009 env->DeleteLocalRef (key_pressed_obj);
0 commit comments