linux: Implement win.disable/enable/isEnabled() API
This commit is contained in:
parent
074903ca33
commit
9aa7291627
5 changed files with 77 additions and 2 deletions
|
@ -37,6 +37,7 @@
|
|||
#include "atom/browser/ui/views/global_menu_bar_x11.h"
|
||||
#include "atom/browser/ui/views/frameless_view.h"
|
||||
#include "atom/browser/ui/views/native_frame_view.h"
|
||||
#include "atom/browser/ui/x/event_disabler.h"
|
||||
#include "atom/browser/ui/x/window_state_watcher.h"
|
||||
#include "atom/browser/ui/x/x_window_utils.h"
|
||||
#include "base/strings/string_util.h"
|
||||
|
@ -385,6 +386,10 @@ void NativeWindowViews::Disable() {
|
|||
#if defined(OS_WIN)
|
||||
::EnableWindow(GetAcceleratedWidget(), FALSE);
|
||||
#elif defined(USE_X11)
|
||||
event_disabler_.reset(new EventDisabler);
|
||||
views::DesktopWindowTreeHostX11* tree_host =
|
||||
views::DesktopWindowTreeHostX11::GetHostForXID(GetAcceleratedWidget());
|
||||
tree_host->AddEventRewriter(event_disabler_.get());
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -392,14 +397,18 @@ void NativeWindowViews::Enable() {
|
|||
#if defined(OS_WIN)
|
||||
::EnableWindow(GetAcceleratedWidget(), TRUE);
|
||||
#elif defined(USE_X11)
|
||||
views::DesktopWindowTreeHostX11* tree_host =
|
||||
views::DesktopWindowTreeHostX11::GetHostForXID(GetAcceleratedWidget());
|
||||
tree_host->RemoveEventRewriter(event_disabler_.get());
|
||||
event_disabler_.reset();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool NativeWindowViews::IsEnabled() {
|
||||
#if defined(OS_WIN)
|
||||
return ::IsWindowEnabled(GetAcceleratedWidget());
|
||||
#else
|
||||
return false;
|
||||
#elif defined(USE_X11)
|
||||
return !event_disabler_.get();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue