summaryrefslogtreecommitdiff
path: root/src/SourceX11.cxx
diff options
context:
space:
mode:
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)