diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-01-13 11:47:13 +0100 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2013-01-13 11:47:28 +0100 |
commit | dfc0e4c663922b462f9a75833a594561e7dc4efa (patch) | |
tree | 1b811cf6d5ea9877a21ab8425797d1274b91cefd /src/SourceX11.cxx | |
parent | 194b63c424cf280dee3c53099affdb11ade6ce3c (diff) | |
download | pluggit-dfc0e4c663922b462f9a75833a594561e7dc4efa.tar.gz pluggit-dfc0e4c663922b462f9a75833a594561e7dc4efa.tar.bz2 pluggit-dfc0e4c663922b462f9a75833a594561e7dc4efa.zip |
SourceX11: Implement window picking by ID
Diffstat (limited to 'src/SourceX11.cxx')
-rw-r--r-- | src/SourceX11.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/SourceX11.cxx b/src/SourceX11.cxx index eaa347d..dc60e4b 100644 --- a/src/SourceX11.cxx +++ b/src/SourceX11.cxx @@ -43,16 +43,19 @@ class SourceX11 extends Source, Runnable public typedef enum { WINDOW_SELECTION_NONE, WINDOW_SELECTION_TITLE, + WINDOW_SELECTION_ID, WINDOW_SELECTION_INTERACTIVE } WindowSelection; private WindowSelection m_selection; private std::string m_title; + private long m_window; - public Config( WindowSelection selection, const std::string &title = std::string() ) { + public Config( WindowSelection selection, const std::string &title = std::string(), long window = 0) { m_selection = selection; m_title = title; + m_window = window; } }; @@ -76,6 +79,11 @@ class SourceX11 extends Source, Runnable m_window = m_root; break; + case Config::WINDOW_SELECTION_ID: + m_window = (Window)config.m_window; + if (m_window == None) + throw new Exception( "Invalid Window id: %ld\n", config.m_window ); + break; case Config::WINDOW_SELECTION_TITLE: m_window = findWindow( config.m_title ); if (m_window == None) |