diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 2785eab067..9381ecb6e7 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -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 diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp index 8ee773b060..9dd87d1393 100644 --- a/src/gtk/webview_webkit2.cpp +++ b/src/gtk/webview_webkit2.cpp @@ -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),