diff options
-rw-r--r-- | src/BaseDisplay.cc | 29 | ||||
-rw-r--r-- | src/BaseDisplay.hh | 6 |
2 files changed, 18 insertions, 17 deletions
diff --git a/src/BaseDisplay.cc b/src/BaseDisplay.cc index d38e2e9..d945af6 100644 --- a/src/BaseDisplay.cc +++ b/src/BaseDisplay.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: BaseDisplay.cc,v 1.19 2002/08/17 22:11:23 fluxgen Exp $ | 25 | // $Id: BaseDisplay.cc,v 1.20 2002/08/30 12:57:41 fluxgen Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | 28 | ||
@@ -136,6 +136,7 @@ void bexec(const char *command, char *displaystring) { | |||
136 | 136 | ||
137 | 137 | ||
138 | BaseDisplay *BaseDisplay::s_singleton = 0; | 138 | BaseDisplay *BaseDisplay::s_singleton = 0; |
139 | Display *BaseDisplay::s_display = 0; | ||
139 | 140 | ||
140 | BaseDisplay::BaseDisplay(const char *app_name, const char *dpy_name): | 141 | BaseDisplay::BaseDisplay(const char *app_name, const char *dpy_name): |
141 | m_startup(true), m_shutdown(false), | 142 | m_startup(true), m_shutdown(false), |
@@ -150,7 +151,7 @@ m_server_grabs(0) | |||
150 | last_bad_window = None; | 151 | last_bad_window = None; |
151 | I18n *i18n = I18n::instance(); | 152 | I18n *i18n = I18n::instance(); |
152 | 153 | ||
153 | if (! (m_display = XOpenDisplay(dpy_name))) { | 154 | if (! (s_display = XOpenDisplay(dpy_name))) { |
154 | fprintf(stderr, | 155 | fprintf(stderr, |
155 | i18n-> | 156 | i18n-> |
156 | getMessage( | 157 | getMessage( |
@@ -158,7 +159,7 @@ m_server_grabs(0) | |||
158 | "BaseDisplay::BaseDisplay: connection to X server failed.\n")); | 159 | "BaseDisplay::BaseDisplay: connection to X server failed.\n")); |
159 | 160 | ||
160 | throw static_cast<int>(2); //throw error 2 | 161 | throw static_cast<int>(2); //throw error 2 |
161 | } else if (fcntl(ConnectionNumber(m_display), F_SETFD, 1) == -1) { | 162 | } else if (fcntl(ConnectionNumber(s_display), F_SETFD, 1) == -1) { |
162 | fprintf(stderr, | 163 | fprintf(stderr, |
163 | i18n-> | 164 | i18n-> |
164 | getMessage( | 165 | getMessage( |
@@ -169,10 +170,10 @@ m_server_grabs(0) | |||
169 | } | 170 | } |
170 | 171 | ||
171 | 172 | ||
172 | number_of_screens = ScreenCount(m_display); | 173 | number_of_screens = ScreenCount(s_display); |
173 | 174 | ||
174 | #ifdef SHAPE | 175 | #ifdef SHAPE |
175 | shape.extensions = XShapeQueryExtension(m_display, &shape.event_basep, | 176 | shape.extensions = XShapeQueryExtension(s_display, &shape.event_basep, |
176 | &shape.error_basep); | 177 | &shape.error_basep); |
177 | #else // !SHAPE | 178 | #else // !SHAPE |
178 | shape.extensions = False; | 179 | shape.extensions = False; |
@@ -196,8 +197,8 @@ BaseDisplay::~BaseDisplay() { | |||
196 | delete (*it); | 197 | delete (*it); |
197 | } | 198 | } |
198 | 199 | ||
199 | XCloseDisplay(m_display); | 200 | XCloseDisplay(s_display); |
200 | 201 | s_display = 0; | |
201 | s_singleton = 0; | 202 | s_singleton = 0; |
202 | } | 203 | } |
203 | 204 | ||
@@ -212,9 +213,9 @@ void BaseDisplay::eventLoop() { | |||
212 | run(); | 213 | run(); |
213 | 214 | ||
214 | while ((! m_shutdown) && (! internal_error)) { | 215 | while ((! m_shutdown) && (! internal_error)) { |
215 | if (XPending(m_display)) { | 216 | if (XPending(s_display)) { |
216 | XEvent e; | 217 | XEvent e; |
217 | XNextEvent(m_display, &e); | 218 | XNextEvent(s_display, &e); |
218 | 219 | ||
219 | if (last_bad_window != None && e.xany.window == last_bad_window) { | 220 | if (last_bad_window != None && e.xany.window == last_bad_window) { |
220 | #ifdef DEBUG | 221 | #ifdef DEBUG |
@@ -230,7 +231,7 @@ void BaseDisplay::eventLoop() { | |||
230 | handleEvent(&e); | 231 | handleEvent(&e); |
231 | } | 232 | } |
232 | } else { | 233 | } else { |
233 | BTimer::updateTimers(ConnectionNumber(m_display)); //handle all timers | 234 | BTimer::updateTimers(ConnectionNumber(s_display)); //handle all timers |
234 | } | 235 | } |
235 | } | 236 | } |
236 | } | 237 | } |
@@ -238,8 +239,8 @@ void BaseDisplay::eventLoop() { | |||
238 | 239 | ||
239 | bool BaseDisplay::validateWindow(Window window) { | 240 | bool BaseDisplay::validateWindow(Window window) { |
240 | XEvent event; | 241 | XEvent event; |
241 | if (XCheckTypedWindowEvent(m_display, window, DestroyNotify, &event)) { | 242 | if (XCheckTypedWindowEvent(s_display, window, DestroyNotify, &event)) { |
242 | XPutBackEvent(m_display, &event); | 243 | XPutBackEvent(s_display, &event); |
243 | return false; | 244 | return false; |
244 | } | 245 | } |
245 | 246 | ||
@@ -249,13 +250,13 @@ bool BaseDisplay::validateWindow(Window window) { | |||
249 | 250 | ||
250 | void BaseDisplay::grab() { | 251 | void BaseDisplay::grab() { |
251 | if (! m_server_grabs++) | 252 | if (! m_server_grabs++) |
252 | XGrabServer(m_display); | 253 | XGrabServer(s_display); |
253 | } | 254 | } |
254 | 255 | ||
255 | 256 | ||
256 | void BaseDisplay::ungrab() { | 257 | void BaseDisplay::ungrab() { |
257 | if (! --m_server_grabs) | 258 | if (! --m_server_grabs) |
258 | XUngrabServer(m_display); | 259 | XUngrabServer(s_display); |
259 | if (m_server_grabs < 0) | 260 | if (m_server_grabs < 0) |
260 | m_server_grabs = 0; | 261 | m_server_grabs = 0; |
261 | } | 262 | } |
diff --git a/src/BaseDisplay.hh b/src/BaseDisplay.hh index 1624a05..0a35dd1 100644 --- a/src/BaseDisplay.hh +++ b/src/BaseDisplay.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: BaseDisplay.hh,v 1.26 2002/08/17 22:10:03 fluxgen Exp $ | 25 | // $Id: BaseDisplay.hh,v 1.27 2002/08/30 12:58:08 fluxgen Exp $ |
26 | 26 | ||
27 | #ifndef BASEDISPLAY_HH | 27 | #ifndef BASEDISPLAY_HH |
28 | #define BASEDISPLAY_HH | 28 | #define BASEDISPLAY_HH |
@@ -92,7 +92,7 @@ public: | |||
92 | inline bool isStartup() const { return m_startup; } | 92 | inline bool isStartup() const { return m_startup; } |
93 | 93 | ||
94 | 94 | ||
95 | inline Display *getXDisplay() { return m_display; } | 95 | static Display *getXDisplay() { return s_display; } |
96 | 96 | ||
97 | inline const char *getXDisplayName() const { return m_display_name; } | 97 | inline const char *getXDisplayName() const { return m_display_name; } |
98 | inline const char *getApplicationName() const { return m_app_name; } | 98 | inline const char *getApplicationName() const { return m_app_name; } |
@@ -128,7 +128,7 @@ private: | |||
128 | } shape; | 128 | } shape; |
129 | 129 | ||
130 | bool m_startup, m_shutdown; | 130 | bool m_startup, m_shutdown; |
131 | Display *m_display; | 131 | static Display *s_display; |
132 | 132 | ||
133 | typedef std::vector<ScreenInfo *> ScreenInfoList; | 133 | typedef std::vector<ScreenInfo *> ScreenInfoList; |
134 | ScreenInfoList screenInfoList; | 134 | ScreenInfoList screenInfoList; |