From: Omri Litov Date: Thu, 7 Jan 2016 20:38:35 +0000 (+0200) Subject: Added getNativeWindowHandle X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3f0c00757806d2bf50027c140a64d5aed96afb30;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Added getNativeWindowHandle --- diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 222f2ca..c9410d1 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -594,6 +594,11 @@ void Window::SetAspectRatio(double aspect_ratio, mate::Arguments* args) { window_->SetAspectRatio(aspect_ratio, extra_size); } +v8::Local Window::GetNativeWindowHandle() { + gfx::AcceleratedWidget handle = window_->GetAcceleratedWidget(); + return ToBuffer(isolate(), static_cast(&handle), sizeof(gfx::AcceleratedWidget)); +} + void Window::SetVisibleOnAllWorkspaces(bool visible) { return window_->SetVisibleOnAllWorkspaces(visible); } @@ -634,6 +639,7 @@ void Window::BuildPrototype(v8::Isolate* isolate, .SetMethod("setFullScreen", &Window::SetFullScreen) .SetMethod("isFullScreen", &Window::IsFullscreen) .SetMethod("setAspectRatio", &Window::SetAspectRatio) + .SetMethod("getNativeWindowHandle", &Window::GetNativeWindowHandle) .SetMethod("getBounds", &Window::GetBounds) .SetMethod("setBounds", &Window::SetBounds) .SetMethod("getSize", &Window::GetSize) diff --git a/atom/browser/api/atom_api_window.h b/atom/browser/api/atom_api_window.h index 9297b2f..fe9a7e8 100644 --- a/atom/browser/api/atom_api_window.h +++ b/atom/browser/api/atom_api_window.h @@ -137,6 +137,7 @@ class Window : public mate::TrackableObject, void SetMenuBarVisibility(bool visible); bool IsMenuBarVisible(); void SetAspectRatio(double aspect_ratio, mate::Arguments* args); + v8::Local GetNativeWindowHandle(); #if defined(OS_WIN) typedef base::Callback, diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index c60c0dd..a11be26 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -143,6 +143,7 @@ class NativeWindow : public base::SupportsUserData, virtual void SetMenu(ui::MenuModel* menu); virtual bool HasModalDialog(); virtual gfx::NativeWindow GetNativeWindow() = 0; + virtual gfx::AcceleratedWidget GetAcceleratedWidget() = 0; // Taskbar/Dock APIs. virtual void SetProgressBar(double progress) = 0; diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index 23f210d..d1703ac 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -65,6 +65,7 @@ class NativeWindowMac : public NativeWindow { void SetIgnoreMouseEvents(bool ignore) override; bool HasModalDialog() override; gfx::NativeWindow GetNativeWindow() override; + gfx::AcceleratedWidget GetAcceleratedWidget() override; void SetProgressBar(double progress) override; void SetOverlayIcon(const gfx::Image& overlay, const std::string& description) override; diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 3735772..4340677 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -731,6 +731,10 @@ gfx::NativeWindow NativeWindowMac::GetNativeWindow() { return window_; } +gfx::AcceleratedWidget NativeWindowMac::GetAcceleratedWidget() { + return window_; +} + void NativeWindowMac::SetProgressBar(double progress) { NSDockTile* dock_tile = [NSApp dockTile]; diff --git a/atom/browser/native_window_views.h b/atom/browser/native_window_views.h index 6c47c74..125cd47 100644 --- a/atom/browser/native_window_views.h +++ b/atom/browser/native_window_views.h @@ -90,7 +90,7 @@ class NativeWindowViews : public NativeWindow, void SetVisibleOnAllWorkspaces(bool visible) override; bool IsVisibleOnAllWorkspaces() override; - gfx::AcceleratedWidget GetAcceleratedWidget(); + gfx::AcceleratedWidget GetAcceleratedWidget() override; views::Widget* widget() const { return window_.get(); }