]> Dogcows Code - chaz/openbox/blobdiff - src/screen.cc
maximizing without bugs! can it be? i think so!
[chaz/openbox] / src / screen.cc
index e2bab5c8efa48796b3071cb03a9f0cfa56f16bcd..72a33b41fd4f8a571647794115145bdd28172937 100644 (file)
@@ -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();
 
This page took 0.026213 seconds and 4 git commands to generate.