X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fscreen.cc;h=72a33b41fd4f8a571647794115145bdd28172937;hb=3cca07840b571a18e599d66b4108626cbd48788d;hp=e2bab5c8efa48796b3071cb03a9f0cfa56f16bcd;hpb=6c5c7fd04b2f9aca24b4ff7ee1db86064dcc63ef;p=chaz%2Fopenbox diff --git a/src/screen.cc b/src/screen.cc index e2bab5c8..72a33b41 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -520,6 +520,9 @@ void Screen::manageWindow(Window window) 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) { @@ -532,6 +535,9 @@ void Screen::manageWindow(Window window) // add to the screen's list clients.push_back(client); + // once the client is in the list, update our strut to include the new + // client's (it is good that this happens after window placement!) + updateStrut(); // this puts into the stacking order, then raises it _stacking.push_back(client); raiseWindow(client); @@ -540,9 +546,8 @@ void Screen::manageWindow(Window window) openbox->bindings()->grabButtons(true, client); - // call the python NEWWINDOW binding - EventData data(_number, client, EventAction::NewWindow, 0); - openbox->bindings()->fireEvent(&data); + EventData ndata(_number, client, EventAction::NewWindow, 0); + openbox->bindings()->fireEvent(&ndata); #ifdef DEBUG printf("Managed window 0x%lx frame 0x%lx\n", @@ -603,6 +608,10 @@ void Screen::unmanageWindow(Client *client) // remove from the screen's list clients.remove(client); + // once the client is out of the list, update our strut to remove it's + // influence + updateStrut(); + // unfocus the client (calls the focus callbacks) client->unfocus();