X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fscreen.cc;h=6bc04ad133382f3cb93109ee23d32a9ef7aac668;hb=b99508df011eaf8a264bf5725ac8849f0782ec7b;hp=1033f8d8ac822bba34472406d71beb0ee90fded2;hpb=48741b97c229dc6515fcf8e06bc4da47f9abab72;p=chaz%2Fopenbox diff --git a/src/screen.cc b/src/screen.cc index 1033f8d8..6bc04ad1 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, @@ -474,14 +471,6 @@ void Screen::manageWindow(Window window) // create the decoration frame for the client window client->frame = new Frame(client, &_style); - if (!(openbox->state() == Openbox::State_Starting || - client->positionRequested())) { - // position the window intelligenty .. hopefully :) - // call the python PLACEWINDOW binding - EventData data(_number, client, EventPlaceWindow, 0); - openbox->bindings()->fireEvent(&data); - } - // add to the wm's map openbox->addClient(client->frame->window(), client); openbox->addClient(client->frame->plate(), client); @@ -498,13 +487,21 @@ void Screen::manageWindow(Window window) // reparent the client to the frame client->frame->grabClient(); + if (!(openbox->state() == Openbox::State_Starting || + client->positionRequested())) { + // position the window intelligenty .. hopefully :) + // call the python PLACEWINDOW binding + EventData data(_number, client, EventPlaceWindow, 0); + openbox->bindings()->fireEvent(&data); + } + // if on the current desktop.. (or all desktops) if (client->desktop() == _desktop || client->desktop() == (signed)0xffffffff) { client->frame->show(); } - - // XXX: handle any requested states such as maximized + + client->applyStartupState(); otk::display->ungrab();