diff options
author | gspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 17:26:49 +0000 |
---|---|---|
committer | gspencer@chromium.org <gspencer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 17:26:49 +0000 |
commit | d65adb173f09a837c96f96fc24a258f439e46e58 (patch) | |
tree | 43605ab367e97389930c518c4e94bd3da5f20080 /app/x11_util.cc | |
parent | 7cea56d943924d0c2196bdf4049f592b6182992c (diff) | |
download | chromium_src-d65adb173f09a837c96f96fc24a258f439e46e58.zip chromium_src-d65adb173f09a837c96f96fc24a258f439e46e58.tar.gz chromium_src-d65adb173f09a837c96f96fc24a258f439e46e58.tar.bz2 |
This adds in the ability for Chrome to generate windows with snapshots
of all currently open tabs in all browsers.
This is needed for overview mode on ChromeOS.
BUG=http://code.google.com/p/chromium-os/issues/detail?id=1170
TEST=Ran Chrome under ChromeOS with updated window manager.
Review URL: http://codereview.chromium.org/661237
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45824 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app/x11_util.cc')
-rw-r--r-- | app/x11_util.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/x11_util.cc b/app/x11_util.cc index 38799ad..b6b63b3 100644 --- a/app/x11_util.cc +++ b/app/x11_util.cc @@ -229,6 +229,44 @@ bool GetIntProperty(XID window, const std::string& property_name, int* value) { return true; } +bool GetIntArrayProperty(XID window, + const std::string& property_name, + std::vector<int>* value) { + Atom property_atom = gdk_x11_get_xatom_by_name_for_display( + gdk_display_get_default(), property_name.c_str()); + + Atom type = None; + int format = 0; // size in bits of each item in 'property' + long unsigned int num_items = 0, remaining_bytes = 0; + unsigned char* properties = NULL; + + int result = XGetWindowProperty(GetXDisplay(), + window, + property_atom, + 0, // offset into property data to read + (~0L), // max length to get (all of them) + False, // deleted + AnyPropertyType, + &type, + &format, + &num_items, + &remaining_bytes, + &properties); + if (result != Success) + return false; + + if (format != 32) { + XFree(properties); + return false; + } + + int* int_properties = reinterpret_cast<int*>(properties); + value->clear(); + value->insert(value->begin(), int_properties, int_properties + num_items); + XFree(properties); + return true; +} + bool GetStringProperty( XID window, const std::string& property_name, std::string* value) { Atom property_atom = gdk_x11_get_xatom_by_name_for_display( |