ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / ui / base / idle / idle_query_x11.cc
blob30bdeb6542a315c1f95cc1377a4ac1d998ac606f
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/base/idle/idle_query_x11.h"
7 #include <X11/extensions/scrnsaver.h>
9 #include "ui/gfx/x/x11_types.h"
11 namespace ui {
13 class IdleData {
14 public:
15 IdleData() {
16 int event_base;
17 int error_base;
18 if (XScreenSaverQueryExtension(gfx::GetXDisplay(), &event_base,
19 &error_base)) {
20 mit_info = XScreenSaverAllocInfo();
21 } else {
22 mit_info = NULL;
26 ~IdleData() {
27 if (mit_info)
28 XFree(mit_info);
31 XScreenSaverInfo *mit_info;
34 IdleQueryX11::IdleQueryX11() : idle_data_(new IdleData()) {}
36 IdleQueryX11::~IdleQueryX11() {}
38 int IdleQueryX11::IdleTime() {
39 if (!idle_data_->mit_info)
40 return 0;
42 if (XScreenSaverQueryInfo(gfx::GetXDisplay(),
43 RootWindow(gfx::GetXDisplay(), 0),
44 idle_data_->mit_info)) {
45 return (idle_data_->mit_info->idle) / 1000;
46 } else {
47 return 0;
51 } // namespace ui