• Jan-Marek Glogowski's avatar
    Qt5 IM handle (spurious?) all-empty IM events · c1bcdf9a
    Jan-Marek Glogowski yazdı
    2nd attempt to fix the bug described in commit 00221089 ("Qt5
    IM allow committing empty strings") and various siblings of it.
    This also reverts it.
    
    What I see is calls with "all-empty" events (preedit, commit and
    replacementLength() == 0; no QInputMethodEvent::Attribute), some
    from QIBusPlatformInputContext::updatePreeditText.
    
    There are various Writer document edit states with (selected)
    text, undo, cursor position and focus changes to other windows via
    Ctrl+Tab, which will result in inputMethodEvent calls totally in
    contrast to the expected text state, all somehow always related to
    all-empty events. They currently result in wrongly deleted
    selected text, change of selection, cursor movement or general
    change of text from old preedit. Most time on focus out / window
    change, some times at first meta-key press after focus in.
    
    This patch tries hard not to corrupt Writers edit state with these
    all-empty events. No idea if this is some bug on LO's qt5 side or
    expected, but KDE kate and VCL gtk3 and gen work fine, so I assume
    Qt's behaviour is correct. FWIW gtk3 also does some extended IM
    handling with focus, so probably this is the Qt equivalent of it.
    But then I couldn't find some eqivalent code in Qt's source code.
    I actually expected an even more complex solution (if this really
    fixes all cases).
    
    Works for a multitude of tests I tried to come up with, but is
    quite probably not the final fix to this, as qt5 current doesn't
    handle replacementStart() and replacementLength() at all.
    Also never saw a call to Qt5Frame::EndExtTextInput.
    
    Change-Id: I4210e0588041cfb4d80dbdfdb937e430a5f7cbfb
    Reviewed-on: https://gerrit.libreoffice.org/71988
    Tested-by: Jenkins
    Reviewed-by: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
    c1bcdf9a
Adı
Son kayıt (commit)
Son güncelleme
..
android Loading commit data...
backendtest Loading commit data...
headless Loading commit data...
inc Loading commit data...
ios Loading commit data...
null Loading commit data...
opengl Loading commit data...
osx Loading commit data...
qa Loading commit data...
qt5 Loading commit data...
quartz Loading commit data...
source Loading commit data...
uiconfig Loading commit data...
unx Loading commit data...
win Loading commit data...
workben Loading commit data...
AllLangMoTarget_vcl.mk Loading commit data...
CppunitTest_vcl_apitests.mk Loading commit data...
CppunitTest_vcl_app_test.mk Loading commit data...
CppunitTest_vcl_backend_test.mk Loading commit data...
CppunitTest_vcl_bitmap_render_test.mk Loading commit data...
CppunitTest_vcl_bitmap_test.mk Loading commit data...
CppunitTest_vcl_bitmapprocessor_test.mk Loading commit data...
CppunitTest_vcl_blocklistparser_test.mk Loading commit data...
CppunitTest_vcl_complextext.mk Loading commit data...
CppunitTest_vcl_dialogs_test.mk Loading commit data...
CppunitTest_vcl_errorhandler.mk Loading commit data...
CppunitTest_vcl_filters_test.mk Loading commit data...
CppunitTest_vcl_font.mk Loading commit data...
CppunitTest_vcl_fontcharmap.mk Loading commit data...
CppunitTest_vcl_fontfeature.mk Loading commit data...
CppunitTest_vcl_fontmetric.mk Loading commit data...
CppunitTest_vcl_gen.mk Loading commit data...
CppunitTest_vcl_graphic_test.mk Loading commit data...
CppunitTest_vcl_jpeg_read_write_test.mk Loading commit data...
CppunitTest_vcl_lifecycle.mk Loading commit data...
CppunitTest_vcl_mnemonic.mk Loading commit data...
CppunitTest_vcl_outdev.mk Loading commit data...
CppunitTest_vcl_pdfexport.mk Loading commit data...
CppunitTest_vcl_png_test.mk Loading commit data...
CppunitTest_vcl_svm_test.mk Loading commit data...
CppunitTest_vcl_timer.mk Loading commit data...
CppunitTest_vcl_widget_definition_reader_test.mk Loading commit data...
CustomTarget_gtk3_kde5_moc.mk Loading commit data...
CustomTarget_kde5_moc.mk Loading commit data...
CustomTarget_nativecalc.mk Loading commit data...
CustomTarget_nativecore.mk Loading commit data...
CustomTarget_nativedraw.mk Loading commit data...
CustomTarget_nativemath.mk Loading commit data...
CustomTarget_nativewriter.mk Loading commit data...
CustomTarget_qt5_moc.mk Loading commit data...
Executable_602fuzzer.mk Loading commit data...
Executable_bmpfuzzer.mk Loading commit data...
Executable_cgmfuzzer.mk Loading commit data...
Executable_diffuzzer.mk Loading commit data...
Executable_docxfuzzer.mk Loading commit data...
Executable_dxffuzzer.mk Loading commit data...
Executable_epsfuzzer.mk Loading commit data...
Executable_fftester.mk Loading commit data...
Executable_fodpfuzzer.mk Loading commit data...
Executable_fodsfuzzer.mk Loading commit data...
Executable_fodtfuzzer.mk Loading commit data...
Executable_giffuzzer.mk Loading commit data...
Executable_htmlfuzzer.mk Loading commit data...
Executable_hwpfuzzer.mk Loading commit data...
Executable_icontest.mk Loading commit data...
Executable_jpgfuzzer.mk Loading commit data...
Executable_lo_kde5filepicker.mk Loading commit data...
Executable_lwpfuzzer.mk Loading commit data...
Executable_metfuzzer.mk Loading commit data...
Executable_mmlfuzzer.mk Loading commit data...
Executable_mtfdemo.mk Loading commit data...
Executable_mtpfuzzer.mk Loading commit data...
Executable_olefuzzer.mk Loading commit data...
Executable_outdevgrind.mk Loading commit data...
Executable_pcdfuzzer.mk Loading commit data...
Executable_pctfuzzer.mk Loading commit data...
Executable_pcxfuzzer.mk Loading commit data...
Executable_pngfuzzer.mk Loading commit data...
Executable_ppmfuzzer.mk Loading commit data...
Executable_pptfuzzer.mk Loading commit data...
Executable_pptxfuzzer.mk Loading commit data...
Executable_psdfuzzer.mk Loading commit data...
Executable_qpwfuzzer.mk Loading commit data...
Executable_rasfuzzer.mk Loading commit data...
Executable_rtffuzzer.mk Loading commit data...
Executable_scrtffuzzer.mk Loading commit data...
Executable_sftfuzzer.mk Loading commit data...
Executable_slkfuzzer.mk Loading commit data...
Executable_svdemo.mk Loading commit data...
Executable_svmfuzzer.mk Loading commit data...
Executable_svpclient.mk Loading commit data...
Executable_svptest.mk Loading commit data...
Executable_tgafuzzer.mk Loading commit data...
Executable_tiffuzzer.mk Loading commit data...
Executable_ui-previewer.mk Loading commit data...
Executable_vcldemo.mk Loading commit data...
Executable_visualbackendtest.mk Loading commit data...
Executable_wksfuzzer.mk Loading commit data...
Executable_wmffuzzer.mk Loading commit data...
Executable_ww2fuzzer.mk Loading commit data...
Executable_ww6fuzzer.mk Loading commit data...
Executable_ww8fuzzer.mk Loading commit data...
Executable_xbmfuzzer.mk Loading commit data...
Executable_xid_fullscreen_on_all_monitors.mk Loading commit data...
Executable_xlsfuzzer.mk Loading commit data...
Executable_xlsxfuzzer.mk Loading commit data...
Executable_xpmfuzzer.mk Loading commit data...
Library_desktop_detector.mk Loading commit data...
Library_vcl.mk Loading commit data...
Library_vclplug_gen.mk Loading commit data...
Library_vclplug_gtk.mk Loading commit data...
Library_vclplug_gtk3.mk Loading commit data...
Library_vclplug_gtk3_kde5.mk Loading commit data...
Library_vclplug_kde5.mk Loading commit data...
Library_vclplug_osx.mk Loading commit data...
Library_vclplug_qt5.mk Loading commit data...
Library_vclplug_win.mk Loading commit data...
Makefile Loading commit data...
Module_vcl.mk Loading commit data...
Package_fontunxppds.mk Loading commit data...
Package_fontunxpsprint.mk Loading commit data...
Package_opengl_blacklist.mk Loading commit data...
Package_opengl_shader.mk Loading commit data...
Package_osxres.mk Loading commit data...
Package_theme_definitions.mk Loading commit data...
Package_tipoftheday.mk Loading commit data...
README Loading commit data...
README.GDIMetaFile Loading commit data...
README.lifecycle Loading commit data...
README.scheduler Loading commit data...
README.vars Loading commit data...
StaticLibrary_fuzzer_calc.mk Loading commit data...
StaticLibrary_fuzzer_core.mk Loading commit data...
StaticLibrary_fuzzer_draw.mk Loading commit data...
StaticLibrary_fuzzer_math.mk Loading commit data...
StaticLibrary_fuzzer_writer.mk Loading commit data...
StaticLibrary_fuzzerstubs.mk Loading commit data...
StaticLibrary_glxtest.mk Loading commit data...
StaticLibrary_vclmain.mk Loading commit data...
UIConfig_vcl.mk Loading commit data...
WinResTarget_vcl.mk Loading commit data...
commonfuzzer.mk Loading commit data...
vcl.android.component Loading commit data...
vcl.common.component Loading commit data...
vcl.headless.component Loading commit data...
vcl.ios.component Loading commit data...
vcl.macosx.component Loading commit data...
vcl.unx.component Loading commit data...
vcl.windows.component Loading commit data...