X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fscreen.cc;h=0bbcebc6d8d694de53f06a283ef53b7147e75d23;hb=5b52a8f5610d3cc0a39ecb6b341e69596d892099;hp=498c9c86a9791823469ff296a7f5f0fe1871ac3d;hpb=af1ac846ccb5fab8a3c83d8688db3d3f96f5a98b;p=chaz%2Fopenbox diff --git a/src/screen.cc b/src/screen.cc index 498c9c86..0bbcebc6 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -328,16 +328,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, @@ -471,14 +473,6 @@ void Screen::manageWindow(Window window) // reparented back to root automatically XChangeSaveSet(**otk::display, window, SetModeInsert); - 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); - } - // create the decoration frame for the client window client->frame = new Frame(client, &_style); @@ -498,13 +492,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();