mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-01 06:07:59 +00:00
UI/Qt: Enable basic IME keyboard input for WebContentView
This makes dead keys work (e.g. typing ' and e results in é).
This commit is contained in:
committed by
Tim Ledbetter
parent
4a42c97f4d
commit
7e57cc7b09
@@ -36,7 +36,6 @@
|
|||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QMimeData>
|
#include <QMimeData>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPaintEvent>
|
#include <QPaintEvent>
|
||||||
@@ -60,6 +59,7 @@ WebContentView::WebContentView(QWidget* window, RefPtr<WebView::WebContentClient
|
|||||||
m_client_state.client = parent_client;
|
m_client_state.client = parent_client;
|
||||||
m_client_state.page_index = page_index;
|
m_client_state.page_index = page_index;
|
||||||
|
|
||||||
|
setAttribute(Qt::WA_InputMethodEnabled, true);
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
|
|
||||||
@@ -346,6 +346,20 @@ void WebContentView::keyReleaseEvent(QKeyEvent* event)
|
|||||||
enqueue_native_event(Web::KeyEvent::Type::KeyUp, *event);
|
enqueue_native_event(Web::KeyEvent::Type::KeyUp, *event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebContentView::inputMethodEvent(QInputMethodEvent* event)
|
||||||
|
{
|
||||||
|
if (!event->commitString().isEmpty()) {
|
||||||
|
QKeyEvent keyEvent(QEvent::KeyPress, 0, Qt::NoModifier, event->commitString());
|
||||||
|
keyPressEvent(&keyEvent);
|
||||||
|
}
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant WebContentView::inputMethodQuery(Qt::InputMethodQuery) const
|
||||||
|
{
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
void WebContentView::mouseMoveEvent(QMouseEvent* event)
|
void WebContentView::mouseMoveEvent(QMouseEvent* event)
|
||||||
{
|
{
|
||||||
if (!m_tooltip_override) {
|
if (!m_tooltip_override) {
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ public:
|
|||||||
virtual void dropEvent(QDropEvent*) override;
|
virtual void dropEvent(QDropEvent*) override;
|
||||||
virtual void keyPressEvent(QKeyEvent* event) override;
|
virtual void keyPressEvent(QKeyEvent* event) override;
|
||||||
virtual void keyReleaseEvent(QKeyEvent* event) override;
|
virtual void keyReleaseEvent(QKeyEvent* event) override;
|
||||||
|
virtual void inputMethodEvent(QInputMethodEvent*) override;
|
||||||
|
virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const override;
|
||||||
virtual void showEvent(QShowEvent*) override;
|
virtual void showEvent(QShowEvent*) override;
|
||||||
virtual void hideEvent(QHideEvent*) override;
|
virtual void hideEvent(QHideEvent*) override;
|
||||||
virtual void focusInEvent(QFocusEvent*) override;
|
virtual void focusInEvent(QFocusEvent*) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user