Implement wxEVT_WEBVIEW_FULLSCREEN_CHANGED in GTK

This commit is contained in:
Tobias Taschner
2021-02-09 21:48:00 +01:00
parent 1aad333ab9
commit a3f85e9cd5
2 changed files with 35 additions and 1 deletions

View File

@@ -431,7 +431,7 @@ public:
@event{EVT_WEBVIEW_FULL_SCREEN_CHANGED(id, func)}
Process a @c EVT_WEBVIEW_FULL_SCREEN_CHANGED event, generated when
the page wants to enter or leave fullscreen. Use GetInt to get the status.
Currently only implemented for the edge backend.
Currently only implemented for the edge and WebKit2GTK+ backend.
@endEventTable
@since 2.9.3

View File

@@ -253,6 +253,34 @@ wxgtk_webview_webkit_new_window(WebKitPolicyDecision *decision,
return TRUE;
}
static gboolean
wxgtk_webview_webkit_enter_fullscreen(WebKitWebView *WXUNUSED(web_view),
wxWebViewWebKit *webKitCtrl)
{
wxWebViewEvent event(wxEVT_WEBVIEW_FULLSCREEN_CHANGED,
webKitCtrl->GetId(),
wxString(),
wxString());
event.SetInt(1);
webKitCtrl->HandleWindowEvent(event);
return FALSE;
}
static gboolean
wxgtk_webview_webkit_leave_fullscreen(WebKitWebView *WXUNUSED(web_view),
wxWebViewWebKit *webKitCtrl)
{
wxWebViewEvent event(wxEVT_WEBVIEW_FULLSCREEN_CHANGED,
webKitCtrl->GetId(),
wxString(),
wxString());
event.SetInt(0);
webKitCtrl->HandleWindowEvent(event);
return FALSE;
}
static gboolean
wxgtk_webview_webkit_decide_policy(WebKitWebView *web_view,
WebKitPolicyDecision *decision,
@@ -583,6 +611,12 @@ bool wxWebViewWebKit::Create(wxWindow *parent,
g_signal_connect(m_web_view, "create",
G_CALLBACK(wxgtk_webview_webkit_create_webview), this);
g_signal_connect(m_web_view, "enter-fullscreen",
G_CALLBACK(wxgtk_webview_webkit_enter_fullscreen), this);
g_signal_connect(m_web_view, "leave-fullscreen",
G_CALLBACK(wxgtk_webview_webkit_leave_fullscreen), this);
WebKitFindController* findctrl = webkit_web_view_get_find_controller(m_web_view);
g_signal_connect(findctrl, "counted-matches",
G_CALLBACK(wxgtk_webview_webkit_counted_matches),