diff options
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 44 |
1 files changed, 11 insertions, 33 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 67e954b..8372f0f 100644 --- a/src/Screen.cc +++ b/src/Screen.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: Screen.cc,v 1.288 2004/09/06 13:17:56 akir Exp $ | 25 | // $Id: Screen.cc,v 1.289 2004/09/09 14:29:03 akir Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | #include "Screen.hh" | 28 | #include "Screen.hh" |
@@ -231,7 +231,8 @@ BScreen::BScreen(FbTk::ResourceManager &rm, | |||
231 | m_shutdown(false) { | 231 | m_shutdown(false) { |
232 | 232 | ||
233 | 233 | ||
234 | Display *disp = FbTk::App::instance()->display(); | 234 | Fluxbox *fluxbox = Fluxbox::instance(); |
235 | Display *disp = fluxbox->display(); | ||
235 | 236 | ||
236 | initXinerama(); | 237 | initXinerama(); |
237 | 238 | ||
@@ -242,7 +243,7 @@ BScreen::BScreen(FbTk::ResourceManager &rm, | |||
242 | SubstructureRedirectMask | KeyPressMask | KeyReleaseMask | | 243 | SubstructureRedirectMask | KeyPressMask | KeyReleaseMask | |
243 | ButtonPressMask | ButtonReleaseMask| SubstructureNotifyMask); | 244 | ButtonPressMask | ButtonReleaseMask| SubstructureNotifyMask); |
244 | 245 | ||
245 | FbTk::App::instance()->sync(false); | 246 | fluxbox->sync(false); |
246 | 247 | ||
247 | XSetErrorHandler((XErrorHandler) old); | 248 | XSetErrorHandler((XErrorHandler) old); |
248 | 249 | ||
@@ -263,7 +264,6 @@ BScreen::BScreen(FbTk::ResourceManager &rm, | |||
263 | 264 | ||
264 | rootWindow().setCursor(XCreateFontCursor(disp, XC_left_ptr)); | 265 | rootWindow().setCursor(XCreateFontCursor(disp, XC_left_ptr)); |
265 | 266 | ||
266 | Fluxbox *fluxbox = Fluxbox::instance(); | ||
267 | // load this screens resources | 267 | // load this screens resources |
268 | fluxbox->load_rc(*this); | 268 | fluxbox->load_rc(*this); |
269 | 269 | ||
@@ -378,7 +378,7 @@ BScreen::BScreen(FbTk::ResourceManager &rm, | |||
378 | // So we lock root theme temporary so it doesn't uses RootTheme::reconfigTheme | 378 | // So we lock root theme temporary so it doesn't uses RootTheme::reconfigTheme |
379 | // This must be fixed in the future. | 379 | // This must be fixed in the future. |
380 | m_root_theme->lock(true); | 380 | m_root_theme->lock(true); |
381 | FbTk::ThemeManager::instance().load(Fluxbox::instance()->getStyleFilename()); | 381 | FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename()); |
382 | m_root_theme->lock(false); | 382 | m_root_theme->lock(false); |
383 | m_root_theme->setLineAttributes(*resource.gc_line_width, | 383 | m_root_theme->setLineAttributes(*resource.gc_line_width, |
384 | *resource.gc_line_style, | 384 | *resource.gc_line_style, |
@@ -386,8 +386,8 @@ BScreen::BScreen(FbTk::ResourceManager &rm, | |||
386 | *resource.gc_join_style); | 386 | *resource.gc_join_style); |
387 | 387 | ||
388 | #ifdef SLIT | 388 | #ifdef SLIT |
389 | m_slit.reset(new Slit(*this, *layerManager().getLayer(Fluxbox::instance()->getDesktopLayer()), | 389 | m_slit.reset(new Slit(*this, *layerManager().getLayer(fluxbox->getDesktopLayer()), |
390 | Fluxbox::instance()->getSlitlistFilename().c_str())); | 390 | fluxbox->getSlitlistFilename().c_str())); |
391 | #endif // SLIT | 391 | #endif // SLIT |
392 | 392 | ||
393 | rm.unlock(); | 393 | rm.unlock(); |
@@ -445,7 +445,7 @@ void BScreen::initWindows() { | |||
445 | Fluxbox *fluxbox = Fluxbox::instance(); | 445 | Fluxbox *fluxbox = Fluxbox::instance(); |
446 | 446 | ||
447 | // preen the window list of all icon windows... for better dockapp support | 447 | // preen the window list of all icon windows... for better dockapp support |
448 | for (int i = 0; i < (int) nchild; i++) { | 448 | for (unsigned int i = 0; i < nchild; i++) { |
449 | 449 | ||
450 | if (children[i] == None) | 450 | if (children[i] == None) |
451 | continue; | 451 | continue; |
@@ -455,7 +455,7 @@ void BScreen::initWindows() { | |||
455 | if (wmhints) { | 455 | if (wmhints) { |
456 | if ((wmhints->flags & IconWindowHint) && | 456 | if ((wmhints->flags & IconWindowHint) && |
457 | (wmhints->icon_window != children[i])) | 457 | (wmhints->icon_window != children[i])) |
458 | for (int j = 0; j < (int) nchild; j++) { | 458 | for (unsigned int j = 0; j < nchild; j++) { |
459 | if (children[j] == wmhints->icon_window) { | 459 | if (children[j] == wmhints->icon_window) { |
460 | #ifdef DEBUG | 460 | #ifdef DEBUG |
461 | cerr<<"BScreen::initWindows(): children[j] = 0x"<<hex<<children[j]<<dec<<endl; | 461 | cerr<<"BScreen::initWindows(): children[j] = 0x"<<hex<<children[j]<<dec<<endl; |
@@ -474,7 +474,7 @@ void BScreen::initWindows() { | |||
474 | // complexity: O(n^2) if we have lots of transients to transient_for | 474 | // complexity: O(n^2) if we have lots of transients to transient_for |
475 | // but usually O(n) | 475 | // but usually O(n) |
476 | Window transient_for = 0; | 476 | Window transient_for = 0; |
477 | for (int i = 0; i < (int) nchild; ++i) { | 477 | for (unsigned int i = 0; i < nchild; ++i) { |
478 | if (children[i] == None) | 478 | if (children[i] == None) |
479 | continue; | 479 | continue; |
480 | else if (!fluxbox->validateWindow(children[i])) { | 480 | else if (!fluxbox->validateWindow(children[i])) { |
@@ -493,7 +493,7 @@ void BScreen::initWindows() { | |||
493 | fluxbox->searchWindow(transient_for) == 0) { | 493 | fluxbox->searchWindow(transient_for) == 0) { |
494 | // search forward for transient_for | 494 | // search forward for transient_for |
495 | // and swap place with it so it gets created first | 495 | // and swap place with it so it gets created first |
496 | int j = i + 1; | 496 | unsigned int j = i + 1; |
497 | for (; j < nchild; ++j) { | 497 | for (; j < nchild; ++j) { |
498 | if (children[j] == transient_for) { | 498 | if (children[j] == transient_for) { |
499 | swap(children[i], children[j]); | 499 | swap(children[i], children[j]); |
@@ -548,28 +548,6 @@ unsigned int BScreen::currentWorkspaceID() const { | |||
548 | return m_current_workspace->workspaceID(); | 548 | return m_current_workspace->workspaceID(); |
549 | } | 549 | } |
550 | 550 | ||
551 | Pixmap BScreen::rootPixmap() const { | ||
552 | |||
553 | Pixmap root_pm = 0; | ||
554 | Display *disp = FbTk::App::instance()->display(); | ||
555 | Atom real_type; | ||
556 | int real_format; | ||
557 | unsigned long items_read, items_left; | ||
558 | unsigned int *data; | ||
559 | if (rootWindow().property(XInternAtom(disp, "_XROOTPMAP_ID", false), | ||
560 | 0L, 1L, | ||
561 | false, XA_PIXMAP, &real_type, | ||
562 | &real_format, &items_read, &items_left, | ||
563 | (unsigned char **) &data) && | ||
564 | items_read) { | ||
565 | root_pm = (Pixmap) (*data); | ||
566 | XFree(data); | ||
567 | } | ||
568 | |||
569 | return root_pm; | ||
570 | |||
571 | } | ||
572 | |||
573 | unsigned int BScreen::maxLeft(int head) const { | 551 | unsigned int BScreen::maxLeft(int head) const { |
574 | // we ignore strut if we're doing full maximization | 552 | // we ignore strut if we're doing full maximization |
575 | if (hasXinerama()) | 553 | if (hasXinerama()) |