Modified: trunk/Tools/ChangeLog (240842 => 240843)
--- trunk/Tools/ChangeLog 2019-02-01 14:15:09 UTC (rev 240842)
+++ trunk/Tools/ChangeLog 2019-02-01 14:27:35 UTC (rev 240843)
@@ -1,3 +1,16 @@
+2019-02-01 Carlos Garcia Campos <cgar...@igalia.com>
+
+ [WPE] MiniBrowser: add ky bindings for back/forward navigation
+ https://bugs.webkit.org/show_bug.cgi?id=194151
+
+ Reviewed by Žan Doberšek.
+
+ ALT + <- go back
+ ALT + -> go forward
+
+ * MiniBrowser/wpe/main.cpp:
+ (main):
+
2019-02-01 Zalan Bujtas <za...@apple.com>
[LFC] Set intrinsic size on Layout::Replaced
Modified: trunk/Tools/MiniBrowser/wpe/main.cpp (240842 => 240843)
--- trunk/Tools/MiniBrowser/wpe/main.cpp 2019-02-01 14:15:09 UTC (rev 240842)
+++ trunk/Tools/MiniBrowser/wpe/main.cpp 2019-02-01 14:27:35 UTC (rev 240843)
@@ -59,23 +59,40 @@
class InputClient final : public WPEToolingBackends::ViewBackend::InputClient {
public:
- InputClient(GMainLoop* loop)
+ InputClient(GMainLoop* loop, WebKitWebView* webView)
: m_loop(loop)
+ , m_webView(webView)
{
}
bool dispatchKeyboardEvent(struct wpe_input_keyboard_event* event) override
{
- if (event->pressed && event->modifiers & wpe_input_keyboard_modifier_control && event->key_code == WPE_KEY_q) {
+ if (!event->pressed)
+ return false;
+
+ if (event->modifiers & wpe_input_keyboard_modifier_control && event->key_code == WPE_KEY_q) {
g_main_loop_quit(m_loop);
return true;
}
+ if (event->modifiers & wpe_input_keyboard_modifier_alt) {
+ if ((event->key_code == WPE_KEY_Left || event->key_code == WPE_KEY_KP_Left) && webkit_web_view_can_go_back(m_webView)) {
+ webkit_web_view_go_back(m_webView);
+ return true;
+ }
+
+ if ((event->key_code == WPE_KEY_Right || event->key_code == WPE_KEY_KP_Right) && webkit_web_view_can_go_forward(m_webView)) {
+ webkit_web_view_go_forward(m_webView);
+ return true;
+ }
+ }
+
return false;
}
private:
GMainLoop* m_loop { nullptr };
+ WebKitWebView* m_webView { nullptr };
};
static WebKitWebView* createWebViewForAutomationCallback(WebKitAutomationSession*, WebKitWebView* view)
@@ -140,12 +157,6 @@
return 1;
}
- backend->setInputClient(std::make_unique<InputClient>(loop));
-
- auto* viewBackend = webkit_web_view_backend_new(wpeBackend, [](gpointer data) {
- delete static_cast<WPEToolingBackends::ViewBackend*>(data);
- }, backend.release());
-
auto* webContext = (privateMode || automationMode) ? webkit_web_context_new_ephemeral() : webkit_web_context_get_default();
if (cookiesPolicy) {
@@ -180,6 +191,11 @@
"enable-encrypted-media", TRUE,
nullptr);
+ auto* backendPtr = backend.get();
+ auto* viewBackend = webkit_web_view_backend_new(wpeBackend, [](gpointer data) {
+ delete static_cast<WPEToolingBackends::ViewBackend*>(data);
+ }, backend.release());
+
auto* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW,
"backend", viewBackend,
"web-context", webContext,
@@ -188,6 +204,8 @@
nullptr));
g_object_unref(settings);
+ backendPtr->setInputClient(std::make_unique<InputClient>(loop, webView));
+
webkit_web_context_set_automation_allowed(webContext, automationMode);
g_signal_connect(webContext, "automation-started", G_CALLBACK(automationStartedCallback), webView);
g_signal_connect(webView, "permission-request", G_CALLBACK(decidePermissionRequest), NULL);