From dfc0e4c663922b462f9a75833a594561e7dc4efa Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Sun, 13 Jan 2013 11:47:13 +0100 Subject: SourceX11: Implement window picking by ID --- src/SourceX11.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/SourceX11.cxx') 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) -- cgit