core & ui_qt: reimplement text interaction (move / select)