- Openbox::instance->addClient(client->frame->window(), client);
- Openbox::instance->addClient(client->frame->plate(), client);
- Openbox::instance->addClient(client->frame->titlebar(), client);
- Openbox::instance->addClient(client->frame->label(), client);
- Openbox::instance->addClient(client->frame->button_max(), client);
- Openbox::instance->addClient(client->frame->button_iconify(), client);
- Openbox::instance->addClient(client->frame->button_stick(), client);
- Openbox::instance->addClient(client->frame->button_close(), client);
- Openbox::instance->addClient(client->frame->handle(), client);
- Openbox::instance->addClient(client->frame->grip_left(), client);
- Openbox::instance->addClient(client->frame->grip_right(), client);
-
- // XXX: if on the current desktop..
- client->frame->show();
-
- // XXX: handle any requested states such as maximized
+ openbox->addClient(client->frame->window(), client);
+ openbox->addClient(client->frame->plate(), client);
+ openbox->addClient(client->frame->titlebar(), client);
+ 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_alldesk(), client);
+ openbox->addClient(client->frame->button_close(), client);
+ openbox->addClient(client->frame->handle(), client);
+ openbox->addClient(client->frame->grip_left(), client);
+ openbox->addClient(client->frame->grip_right(), client);
+
+ // reparent the client to the frame
+ client->frame->grabClient();
+
+ if (openbox->state() != Openbox::State_Starting) {
+ // position the window intelligenty .. hopefully :)
+ // call the python PLACEWINDOW binding
+ EventData data(_number, client, EventAction::PlaceWindow, 0);
+ openbox->bindings()->fireEvent(&data);
+ }
+
+ EventData ddata(_number, client, EventAction::DisplayingWindow, 0);
+ openbox->bindings()->fireEvent(&ddata);
+
+ // if on the current desktop.. (or all desktops)
+ if (client->desktop() == _desktop ||
+ client->desktop() == (signed)0xffffffff) {
+ client->frame->show();
+ }
+
+ client->applyStartupState();