This commit adds sample code to test sync screenshot API in ubrowser.
Reference:
https://review.tizen.org/gerrit/298956
Change-Id: I9781243ac601361437d6330035f93a2d53aa9776
Signed-off-by: Manjeet <manjeet.1@partner.samsung.com>
(sizeof(rots) / sizeof(int)));
}
-void Window::TakeScreenshotAsync() {
+void Window::TakeScreenshot(bool sync) {
log_trace("%s", __PRETTY_FUNCTION__);
Eina_Rectangle rect;
EINA_RECTANGLE_SET(&rect, 0, 0, 400, 400);
- ewk_view_screenshot_contents_get_async(web_view_, rect, 1.0,
- evas_object_evas_get(web_view_),
- &Window::OnScreenshotCaptured, NULL);
+ if (!sync) {
+ ewk_view_screenshot_contents_get_async(web_view_, rect, 1.0,
+ evas_object_evas_get(web_view_),
+ &Window::OnScreenshotCaptured, NULL);
+ return;
+ }
+
+ Evas_Object* snapshot = ewk_view_screenshot_contents_get(
+ web_view_, rect, 1.0, evas_object_evas_get(web_view_));
+ if (!snapshot) {
+ fprintf(stderr, "Failed to get snapshot sync\n");
+ return;
+ }
+ OnScreenshotCaptured(snapshot, NULL);
}
#if BUILDFLAG(IS_TIZEN_TV)
void ShowInspectorURL(const char* url);
void SetGoogleDataProxyHeaders() const;
void SetAutoRotate();
- void TakeScreenshotAsync();
+ void TakeScreenshot(bool sync);
void Exit() const;
IdType Id() const;
elm_ctxpopup_item_append(menu_, "Take screenshot async", NULL,
&WindowUI::OnTakeScreenshotAsync, this);
+ elm_ctxpopup_item_append(menu_, "Take screenshot sync", NULL,
+ &WindowUI::OnTakeScreenshotSync, this);
+
elm_ctxpopup_item_append(menu_, "Quit", NULL, &WindowUI::Exit, this);
return menu_;
void WindowUI::OnTakeScreenshotAsync(void* data, Evas_Object* obj, void*) {
log_trace("%s", __PRETTY_FUNCTION__);
WindowUI* thiz = static_cast<WindowUI*>(data);
- thiz->window_.TakeScreenshotAsync();
+ thiz->window_.TakeScreenshot(false);
+ thiz->CloseMenu();
+}
+
+void WindowUI::OnTakeScreenshotSync(void* data, Evas_Object* obj, void*) {
+ log_trace("%s", __PRETTY_FUNCTION__);
+ WindowUI* thiz = static_cast<WindowUI*>(data);
+ thiz->window_.TakeScreenshot(true);
thiz->CloseMenu();
}
static void ClosePopup(void* data, Evas_Object*, void*);
static void OnShowZoomPopup(void* data, Evas_Object*, void*);
static void OnTakeScreenshotAsync(void* data, Evas_Object*, void*);
+ static void OnTakeScreenshotSync(void* data, Evas_Object*, void*);
static void OnZoomChanged(void* data, Evas_Object*, void*);
static void OnRememberFormDataChange(void* data, Evas_Object*, void*);
static void OnRememberPasswordChange(void* data, Evas_Object*, void*);