summaryrefslogtreecommitdiff
path: root/src/SourceX11.cxx
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2013-01-13 11:47:13 +0100
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2013-01-13 11:47:28 +0100
commitdfc0e4c663922b462f9a75833a594561e7dc4efa (patch)
tree1b811cf6d5ea9877a21ab8425797d1274b91cefd /src/SourceX11.cxx
parent194b63c424cf280dee3c53099affdb11ade6ce3c (diff)
downloadpluggit-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.cxx10
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)