X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fscreen.cc;h=1de4f72abb2fd29225ba636e1c6ed62a9a651f7b;hb=312db4ca9ac0b3b488236404230e13e24d01d40a;hp=b95c1908a1b8aae6e51cc5ffb5a47dd53c13202b;hpb=5cc40ecc8f4ae3c875d61b3e844c22c89c019c58;p=chaz%2Fopenbox diff --git a/src/screen.cc b/src/screen.cc index b95c1908..1de4f72a 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -48,7 +48,8 @@ namespace ob { Screen::Screen(int screen) : WidgetBase(WidgetBase::Type_Root), - _number(screen) + _number(screen), + _style(screen, "") { assert(screen >= 0); assert(screen < ScreenCount(**otk::display)); _info = otk::display->screenInfo(screen); @@ -73,13 +74,8 @@ Screen::Screen(int screen) XDefineCursor(**otk::display, _info->rootWindow(), openbox->cursors().session); - // initialize the shit that is used for all drawing on the screen - _image_control = new otk::ImageControl(_info, true); - _image_control->installRootColormap(); - _root_cmap_installed = True; - - // initialize the screen's style - _style.setImageControl(_image_control); + // XXX: initialize the screen's style + /* otk::ustring stylepath; python_get_string("theme", &stylepath); otk::Configuration sconfig(false); @@ -92,6 +88,7 @@ Screen::Screen(int screen) } } _style.load(sconfig); + */ // set up notification of netwm support changeSupportedAtoms(); @@ -157,8 +154,6 @@ Screen::~Screen() XDestroyWindow(**otk::display, _focuswindow); XDestroyWindow(**otk::display, _supportwindow); - - delete _image_control; } @@ -328,16 +323,18 @@ void Screen::changeSupportedAtoms() otk::Property::atoms.net_wm_moveresize_size_bottomright, otk::Property::atoms.net_wm_moveresize_move, */ -/* otk::Property::atoms.net_wm_allowed_actions, otk::Property::atoms.net_wm_action_move, otk::Property::atoms.net_wm_action_resize, + otk::Property::atoms.net_wm_action_minimize, otk::Property::atoms.net_wm_action_shade, +/* otk::Property::atoms.net_wm_action_stick,*/ otk::Property::atoms.net_wm_action_maximize_horz, otk::Property::atoms.net_wm_action_maximize_vert, + otk::Property::atoms.net_wm_action_fullscreen, otk::Property::atoms.net_wm_action_change_desktop, otk::Property::atoms.net_wm_action_close, -*/ + otk::Property::atoms.net_wm_state, otk::Property::atoms.net_wm_state_modal, otk::Property::atoms.net_wm_state_maximized_vert, @@ -481,7 +478,7 @@ void Screen::manageWindow(Window window) openbox->addClient(client->frame->label(), client); openbox->addClient(client->frame->button_max(), client); openbox->addClient(client->frame->button_iconify(), client); - openbox->addClient(client->frame->button_stick(), client); + openbox->addClient(client->frame->button_alldesk(), client); openbox->addClient(client->frame->button_close(), client); openbox->addClient(client->frame->handle(), client); openbox->addClient(client->frame->grip_left(), client); @@ -503,8 +500,8 @@ void Screen::manageWindow(Window window) client->desktop() == (signed)0xffffffff) { client->frame->show(); } - - // XXX: handle any requested states such as maximized + + client->applyStartupState(); otk::display->ungrab(); @@ -546,7 +543,7 @@ void Screen::unmanageWindow(Client *client) openbox->removeClient(frame->label()); openbox->removeClient(frame->button_max()); openbox->removeClient(frame->button_iconify()); - openbox->removeClient(frame->button_stick()); + openbox->removeClient(frame->button_alldesk()); openbox->removeClient(frame->button_close()); openbox->removeClient(frame->handle()); openbox->removeClient(frame->grip_left()); @@ -597,7 +594,7 @@ void Screen::lowerWindow(Client *client) assert(!_stacking.empty()); // this would be bad Client::List::iterator it = --_stacking.end(); - Client::List::const_iterator end = _stacking.begin(); + const Client::List::iterator end = _stacking.begin(); for (; it != end && (*it)->layer() < client->layer(); --it); if (*it == client) return; // already the bottom, return @@ -622,7 +619,7 @@ void Screen::raiseWindow(Client *client) _stacking.remove(client); Client::List::iterator it = _stacking.begin(); - Client::List::const_iterator end = _stacking.end(); + const Client::List::iterator end = _stacking.end(); // the stacking list is from highest to lowest for (; it != end && (*it)->layer() > client->layer(); ++it);