From 3e1ac648d0f9dfe060091dc1f0c6e654064f4f7f Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Sat, 10 May 2003 22:59:32 +0000
Subject: using FbRootWindow

---
 src/Ewmh.cc      | 16 ++++++++--------
 src/Gnome.cc     | 16 ++++++++--------
 src/IconBar.cc   |  9 +++++----
 src/Screen.cc    | 30 ++++++++++++++----------------
 src/Slit.cc      | 10 +++++-----
 src/WinClient.cc |  4 ++--
 6 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/src/Ewmh.cc b/src/Ewmh.cc
index 2349d8a..c4349b9 100644
--- a/src/Ewmh.cc
+++ b/src/Ewmh.cc
@@ -19,7 +19,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Ewmh.cc,v 1.20 2003/05/10 13:21:36 fluxgen Exp $
+// $Id: Ewmh.cc,v 1.21 2003/05/10 22:56:48 fluxgen Exp $
 
 #include "Ewmh.hh" 
 
@@ -50,13 +50,13 @@ void Ewmh::initForScreen(BScreen &screen) {
 
 
     Window wincheck = XCreateSimpleWindow(disp,
-                                          screen.getRootWindow(), 
+                                          screen.rootWindow().window(), 
                                           0, 0, 5, 5, 0, 0, 0);
 
     if (wincheck != None) {
         m_windows.push_back(wincheck);
 		
-        XChangeProperty(disp, screen.getRootWindow(), m_net_supporting_wm_check, XA_WINDOW, 32,
+        XChangeProperty(disp, screen.rootWindow().window(), m_net_supporting_wm_check, XA_WINDOW, 32,
 			PropModeReplace, (unsigned char *) &wincheck, 1);
         XChangeProperty(disp, wincheck, m_net_supporting_wm_check, XA_WINDOW, 32,
 			PropModeReplace, (unsigned char *) &wincheck, 1);
@@ -86,7 +86,7 @@ void Ewmh::initForScreen(BScreen &screen) {
         m_net_supporting_wm_check		
     };
 
-    XChangeProperty(disp, screen.getRootWindow(), 
+    XChangeProperty(disp, screen.rootWindow().window(), 
                     m_net_supported, XA_ATOM, 32,
                     PropModeReplace, 
                     (unsigned char *) &atomsupported, 
@@ -193,7 +193,7 @@ void Ewmh::updateClientList(BScreen &screen) {
     //number of windows to show in client list
     num = win;
     XChangeProperty(FbTk::App::instance()->display(), 
-                    screen.getRootWindow(), 
+                    screen.rootWindow().window(), 
                     m_net_client_list, 
                     XA_CARDINAL, 32,
                     PropModeReplace, (unsigned char *)wl, num);
@@ -213,7 +213,7 @@ void Ewmh::updateWorkspaceNames(BScreen &screen) {
     }
 	
     if (XStringListToTextProperty(names, number_of_desks, &text)) {
-        XSetTextProperty(FbTk::App::instance()->display(), screen.getRootWindow(),
+        XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
 			 &text, m_net_desktop_names);
         XFree(text.value);
     }
@@ -225,7 +225,7 @@ void Ewmh::updateWorkspaceNames(BScreen &screen) {
 void Ewmh::updateCurrentWorkspace(BScreen &screen) {
     size_t workspace = screen.getCurrentWorkspaceID();
     XChangeProperty(FbTk::App::instance()->display(), 
-                    screen.getRootWindow(),
+                    screen.rootWindow().window(),
                     m_net_current_desktop, XA_CARDINAL, 32, PropModeReplace,
                     (unsigned char *)&workspace, 1);
 
@@ -233,7 +233,7 @@ void Ewmh::updateCurrentWorkspace(BScreen &screen) {
 
 void Ewmh::updateWorkspaceCount(BScreen &screen) {
     size_t numworkspaces = screen.getCount();
-    XChangeProperty(FbTk::App::instance()->display(), screen.getRootWindow(),
+    XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
                     m_net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace,
                     (unsigned char *)&numworkspaces, 1);
 }
diff --git a/src/Gnome.cc b/src/Gnome.cc
index f90fa9e..11cce0d 100644
--- a/src/Gnome.cc
+++ b/src/Gnome.cc
@@ -19,7 +19,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Gnome.cc,v 1.19 2003/05/08 02:50:38 rathnor Exp $
+// $Id: Gnome.cc,v 1.20 2003/05/10 22:57:37 fluxgen Exp $
 
 #include "Gnome.hh"
 
@@ -51,9 +51,9 @@ void Gnome::initForScreen(BScreen &screen) {
     Display *disp = FbTk::App::instance()->display();
     // create the GNOME window
     Window gnome_win = XCreateSimpleWindow(disp,
-                                           screen.getRootWindow(), 0, 0, 5, 5, 0, 0, 0);
+                                           screen.rootWindow().window(), 0, 0, 5, 5, 0, 0, 0);
     // supported WM check
-    XChangeProperty(disp, screen.getRootWindow(), 
+    XChangeProperty(disp, screen.rootWindow().window(), 
                     m_gnome_wm_supporting_wm_check, 
                     XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &gnome_win, 1);
 
@@ -71,7 +71,7 @@ void Gnome::initForScreen(BScreen &screen) {
     };
 
     //list atoms that we support
-    XChangeProperty(disp, screen.getRootWindow(), 
+    XChangeProperty(disp, screen.rootWindow().window(), 
                     m_gnome_wm_prot, XA_ATOM, 32, PropModeReplace,
                     (unsigned char *)gnomeatomlist, (sizeof gnomeatomlist)/sizeof gnomeatomlist[0]);
 
@@ -173,7 +173,7 @@ void Gnome::updateClientList(BScreen &screen) {
     //number of windows to show in client list
     num = win;
     XChangeProperty(FbTk::App::instance()->display(), 
-                    screen.getRootWindow(), 
+                    screen.rootWindow().window(), 
                     m_gnome_wm_win_client_list, 
                     XA_CARDINAL, 32,
                     PropModeReplace, (unsigned char *)wl, num);
@@ -195,7 +195,7 @@ void Gnome::updateWorkspaceNames(BScreen &screen) {
     }
 	
     if (XStringListToTextProperty(names, number_of_desks, &text)) {
-        XSetTextProperty(FbTk::App::instance()->display(), screen.getRootWindow(),
+        XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
 			 &text, m_gnome_wm_win_workspace_names);
         XFree(text.value);
     }
@@ -207,7 +207,7 @@ void Gnome::updateWorkspaceNames(BScreen &screen) {
 void Gnome::updateCurrentWorkspace(BScreen &screen) {
     int workspace = screen.getCurrentWorkspaceID();
     XChangeProperty(FbTk::App::instance()->display(), 
-                    screen.getRootWindow(),
+                    screen.rootWindow().window(),
                     m_gnome_wm_win_workspace, XA_CARDINAL, 32, PropModeReplace,
                     (unsigned char *)&workspace, 1);
 
@@ -216,7 +216,7 @@ void Gnome::updateCurrentWorkspace(BScreen &screen) {
 
 void Gnome::updateWorkspaceCount(BScreen &screen) {
     int numworkspaces = screen.getCount();
-    XChangeProperty(FbTk::App::instance()->display(), screen.getRootWindow(),
+    XChangeProperty(FbTk::App::instance()->display(), screen.rootWindow().window(),
                     m_gnome_wm_win_workspace_count, XA_CARDINAL, 32, PropModeReplace,
                     (unsigned char *)&numworkspaces, 1);
 }
diff --git a/src/IconBar.cc b/src/IconBar.cc
index 8e28f2a..d6e6d88 100644
--- a/src/IconBar.cc
+++ b/src/IconBar.cc
@@ -19,7 +19,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: IconBar.cc,v 1.32 2003/04/28 16:48:22 rathnor Exp $
+// $Id: IconBar.cc,v 1.33 2003/05/10 22:55:10 fluxgen Exp $
 
 #include "IconBar.hh"
 
@@ -294,15 +294,16 @@ Window IconBar::createIconWindow(FluxboxWindow *fluxboxwin, Window parent) {
     attrib.background_pixel = attrib.border_pixel =
         BlackPixel(m_display,
                    screen().getScreenNumber());
-    //        fluxboxwin->getScreen().getWindowStyle()->tab.border_color.pixel();
-    attrib.colormap = fluxboxwin->getScreen().colormap();
+    //        fluxboxwin->screen().getWindowStyle()->tab.border_color.pixel();
+    attrib.colormap = fluxboxwin->screen().rootWindow().colormap();
     attrib.override_redirect = True;
     attrib.event_mask = ButtonPressMask | ButtonReleaseMask |
         ButtonMotionMask | ExposureMask | EnterWindowMask;
 											
     //create iconwindow
     Window iconwin = XCreateWindow(m_display, parent, 0, 0, 1, 1, 0,
-                                   fluxboxwin->getScreen().getDepth(), InputOutput, fluxboxwin->getScreen().getVisual(),
+                                   fluxboxwin->screen().rootWindow().depth(), 
+                                   InputOutput, fluxboxwin->screen().rootWindow().visual(),
                                    attrib_mask, &attrib);
 		
     return iconwin;
diff --git a/src/Screen.cc b/src/Screen.cc
index b85c3b4..1b27ff3 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -22,7 +22,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Screen.cc,v 1.151 2003/05/10 18:15:23 fluxgen Exp $
+// $Id: Screen.cc,v 1.152 2003/05/10 22:52:44 fluxgen Exp $
 
 
 #include "Screen.hh"
@@ -512,6 +512,7 @@ BScreen::BScreen(ResourceManager &rm,
     m_root_theme(new 
                  RootTheme(scrn, 
                            *resource.rootcommand)),
+    m_root_window(scrn),
     resource(rm, screenname, altscreenname),
     m_toolbarhandler(0) {
 
@@ -523,7 +524,7 @@ BScreen::BScreen(ResourceManager &rm,
         ButtonPressMask | ButtonReleaseMask| SubstructureNotifyMask;
 
     XErrorHandler old = XSetErrorHandler((XErrorHandler) anotherWMRunning);
-    XSelectInput(disp, getRootWindow(), event_mask);
+    rootWindow().setEventMask(event_mask);
     XSync(disp, False);
     XSetErrorHandler((XErrorHandler) old);
 
@@ -539,14 +540,14 @@ BScreen::BScreen(ResourceManager &rm,
                        FBNLS::ScreenSet, FBNLS::ScreenManagingScreen,
                        "BScreen::BScreen: managing screen %d "
                        "using visual 0x%lx, depth %d\n"),
-            getScreenNumber(), XVisualIDFromVisual(getVisual()),
-            getDepth());
+            getScreenNumber(), XVisualIDFromVisual(rootWindow().visual()),
+            rootWindow().depth());
 
     Fluxbox * const fluxbox = Fluxbox::instance();
 #ifdef HAVE_GETPID
     pid_t bpid = getpid();
 
-    XChangeProperty(disp, getRootWindow(),
+    XChangeProperty(disp, rootWindow().window(),
                     Fluxbox::instance()->getFluxboxPidAtom(), XA_CARDINAL,
                     sizeof(pid_t) * 8, PropModeReplace,
                     (unsigned char *) &bpid, 1);
@@ -555,7 +556,7 @@ BScreen::BScreen(ResourceManager &rm,
 
     cycling_window = focused_list.end();
 
-    XDefineCursor(disp, getRootWindow(), fluxbox->getSessionCursor());
+    XDefineCursor(disp, rootWindow().window(), fluxbox->getSessionCursor());
 
     image_control =
         new FbTk::ImageControl(scrn, true, fluxbox->colorsPerChannel(),
@@ -591,13 +592,13 @@ BScreen::BScreen(ResourceManager &rm,
     XSetWindowAttributes attrib;
     unsigned long mask = CWBorderPixel | CWColormap | CWSaveUnder;
     attrib.border_pixel = m_root_theme->borderColor().pixel();
-    attrib.colormap = colormap();
+    attrib.colormap = rootWindow().colormap();
     attrib.save_under = true;
 
     geom_window = 
-        XCreateWindow(disp, getRootWindow(),
-                      0, 0, geom_w, geom_h, rootTheme().borderWidth(), getDepth(),
-                      InputOutput, getVisual(), mask, &attrib);
+        XCreateWindow(disp, rootWindow().window(),
+                      0, 0, geom_w, geom_h, rootTheme().borderWidth(), rootWindow().depth(),
+                      InputOutput, rootWindow().visual(), mask, &attrib);
     geom_visible = false;
 
     if (winFrameTheme().labelFocusTexture().type() & FbTk::Texture::PARENTRELATIVE) {
@@ -675,7 +676,7 @@ BScreen::BScreen(ResourceManager &rm,
     int i;
     unsigned int nchild;
     Window r, p, *children;
-    XQueryTree(disp, getRootWindow(), &r, &p, &children, &nchild);
+    XQueryTree(disp, rootWindow().window(), &r, &p, &children, &nchild);
 
     // preen the window list of all icon windows... for better dockapp support
     for (i = 0; i < (int) nchild; i++) {
@@ -787,7 +788,7 @@ Pixmap BScreen::rootPixmap() const {
     int real_format;
     unsigned long items_read, items_left;
     unsigned int *data;
-    if (XGetWindowProperty(disp, getRootWindow(),
+    if (XGetWindowProperty(disp, rootWindow().window(),
                            XInternAtom(disp, "_XROOTPMAP_ID", false),
                            0L, 1L, 
                            false, XA_PIXMAP, &real_type,
@@ -2270,16 +2271,13 @@ void BScreen::createStyleMenu(FbTk::Menu &menu,
 
 void BScreen::shutdown() {
     Display *disp = FbTk::App::instance()->display();
-    XSelectInput(disp, getRootWindow(), NoEventMask);
+    rootWindow().setEventMask(NoEventMask);
     XSync(disp, False);
 
     for_each(workspacesList.begin(),
              workspacesList.end(),
              mem_fun(&Workspace::shutdown));
 
-
-
-
 #ifdef SLIT
     if (m_slit.get())
         m_slit->shutdown();
diff --git a/src/Slit.cc b/src/Slit.cc
index 86648af..1f4e4cc 100644
--- a/src/Slit.cc
+++ b/src/Slit.cc
@@ -22,7 +22,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: Slit.cc,v 1.47 2003/05/07 22:52:36 fluxgen Exp $
+// $Id: Slit.cc,v 1.48 2003/05/10 22:53:57 fluxgen Exp $
 
 #include "Slit.hh"
 
@@ -297,7 +297,7 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
     attrib.background_pixmap = None;
     attrib.background_pixel = attrib.border_pixel =
         screen().rootTheme().borderColor().pixel();
-    attrib.colormap = screen().colormap();
+    attrib.colormap = screen().rootWindow().colormap();
     attrib.override_redirect = True;
     attrib.event_mask = SubstructureRedirectMask | ButtonPressMask |
         EnterWindowMask | LeaveWindowMask;
@@ -306,9 +306,9 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
     frame.width = frame.height = 1;
     Display *disp = FbTk::App::instance()->display();
     frame.window =
-        XCreateWindow(disp, screen().getRootWindow(), frame.x, frame.y,
+        XCreateWindow(disp, screen().rootWindow().window(), frame.x, frame.y,
                       frame.width, frame.height, screen().rootTheme().borderWidth(),
-                      screen().getDepth(), InputOutput, screen().getVisual(),
+                      screen().rootWindow().depth(), InputOutput, screen().rootWindow().visual(),
                       create_mask, &attrib);
 
     FbTk::EventManager::instance()->add(*this, frame.window);
@@ -518,7 +518,7 @@ void Slit::removeClient(SlitClient *client, bool remap, bool destroy) {
         client->disableEvents();
         // stop events to frame.window temporarly
         frame.window.setEventMask(NoEventMask);
-        XReparentWindow(disp, client->window, screen().getRootWindow(),
+        XReparentWindow(disp, client->window, screen().rootWindow().window(),
 			client->x, client->y);
         XChangeSaveSet(disp, client->window, SetModeDelete);
         // reactivate events to frame.window
diff --git a/src/WinClient.cc b/src/WinClient.cc
index 1b468d1..77cc31f 100644
--- a/src/WinClient.cc
+++ b/src/WinClient.cc
@@ -19,7 +19,7 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// $Id: WinClient.cc,v 1.7 2003/05/07 16:21:26 rathnor Exp $
+// $Id: WinClient.cc,v 1.8 2003/05/10 22:59:32 fluxgen Exp $
 
 #include "WinClient.hh"
 
@@ -194,7 +194,7 @@ void WinClient::updateTransientInfo() {
     if (win == window())
         return;
 	
-    if (win != None && m_win->getScreen().getRootWindow() == win) {
+    if (win != None && m_win->screen().rootWindow() == win) {
         modal = true;
         return; // transient for root window...
     }
-- 
cgit v0.11.2