[WK2][GTK] FullScreen signals
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Apr 2012 07:40:42 +0000 (07:40 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Apr 2012 07:40:42 +0000 (07:40 +0000)
commit4b3e81e7c1b5776f4b997d86880db4d912cba31c
treebf5a06cf356c9d4e21730fc84eaba9184066f2b9
parent98e1b2003fa68e2086f96d0812bd0866983b3e0e
[WK2][GTK] FullScreen signals
https://bugs.webkit.org/show_bug.cgi?id=76166

Reviewed by Gustavo Noronha Silva.

* GNUmakefile.am: Add new files to compilation.
* UIProcess/API/C/gtk/WKFullScreenClientGtk.cpp:
(WKViewSetFullScreenClientGtk): Initialize WebKitWebViewBase
fullscreen client.
* UIProcess/API/C/gtk/WKFullScreenClientGtk.h:
* UIProcess/API/gtk/WebKitFullscreenClient.cpp: Added.
(willEnterFullScreen): Call webkitWebViewEnterFullScreen().
(willExitFullScreen): Call webkitWebViewLeaveFullScreen().
(attachFullScreenClientToView): Initialize FullScreenClient adding
implementations for willEnterFullScreen and willExitFullScreen callbacks.
* UIProcess/API/gtk/WebKitFullscreenClient.h: Added.
* UIProcess/API/gtk/WebKitPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewConstructed): Attach fullscreen client to view.
(webkit_web_view_class_init): Add WebKitWebView::enter-fullscreen
and WebKitWebView::leave-fullscreen signals.
(webkitWebViewEnterFullScreen): Emit
WebKitWebView::enter-fullscreen signal.
(webkitWebViewLeaveFullScreen): Emit
WebKitWebView::leave-fullscreen signal.
* UIProcess/API/gtk/WebKitWebView.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseKeyPressEvent): Only return early when leaving
fullscreen, otherwise let the view process the key pressed.
(webkitWebViewBaseEnterFullScreen): Return early if
willEnterFullScreen callback is handled and returns false.
(webkitWebViewBaseExitFullScreen): Return early if
willExitFullScreen callback is handled and returns false.
(webkitWebViewBaseInitializeFullScreenClient): Initialize the
fullscreen client.
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
* UIProcess/API/gtk/WebKitWebViewPrivate.h:
* UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
(testWebViewFullScreen):
(beforeAll):
* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::keyStroke): Helper function to synthesize key
press/release events.
* UIProcess/API/gtk/tests/WebViewTest.h:
* UIProcess/API/gtk/webkit2marshal.list:
* UIProcess/gtk/WebFullScreenClientGtk.cpp:
(WebKit::WebFullScreenClientGtk::willEnterFullScreen): Call
willEnterFullScreen callback if defined.
(WebKit::WebFullScreenClientGtk::willExitFullScreen): Call
willExitFullScreen callback if defined.
* UIProcess/gtk/WebFullScreenClientGtk.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
18 files changed:
Source/WebKit2/ChangeLog
Source/WebKit2/GNUmakefile.am
Source/WebKit2/UIProcess/API/C/gtk/WKFullScreenClientGtk.cpp [new file with mode: 0644]
Source/WebKit2/UIProcess/API/C/gtk/WKFullScreenClientGtk.h [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/WebKitFullscreenClient.cpp [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/WebKitFullscreenClient.h [new file with mode: 0644]
Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewPrivate.h
Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp
Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h
Source/WebKit2/UIProcess/API/gtk/webkit2marshal.list
Source/WebKit2/UIProcess/gtk/WebFullScreenClientGtk.cpp [new file with mode: 0644]
Source/WebKit2/UIProcess/gtk/WebFullScreenClientGtk.h [new file with mode: 0644]