]> Dogcows Code - chaz/openbox/blobdiff - src/screen.cc
rm a XXX.. comment it out :)
[chaz/openbox] / src / screen.cc
index 60208ef0aa9d4215d7ec0e3a2335a4d584772115..adcae6d9eabe9da4e8d575ffb001c0e55c46fab2 100644 (file)
@@ -134,7 +134,7 @@ Screen::Screen(int screen)
   openbox->registerHandler(_info->rootWindow(), this);
 
   // call the python Startup callbacks
-  EventData data(_number, 0, EventAction::Shutdown, 0);
+  EventData data(_number, 0, EventAction::Startup, 0);
   openbox->bindings()->fireEvent(&data);
 }
 
@@ -224,7 +224,7 @@ void Screen::updateStrut()
 
 void Screen::calcArea()
 {
-//  otk::Rect old_area = _area;
+  otk::Rect old_area = _area;
 
 /*
 #ifdef    XINERAMA
@@ -260,9 +260,13 @@ void Screen::calcArea()
   }
 #endif // XINERAMA
 */
-  
-  //if (old_area != _area)
-    // XXX: re-maximize windows
+  if (old_area != _area) {
+    // the area has changed, adjust all the maximized windows
+    Client::List::iterator it, end = clients.end();
+    for (it = clients.begin(); it != end; ++it)
+      (*it)->remaximize();
+  }
 
   changeWorkArea();
 }
@@ -512,8 +516,7 @@ void Screen::manageWindow(Window window)
   // reparent the client to the frame
   client->frame->grabClient();
 
-  if (!(openbox->state() == Openbox::State_Starting ||
-        client->positionRequested())) {
+  if (openbox->state() != Openbox::State_Starting) {
     // position the window intelligenty .. hopefully :)
     // call the python PLACEWINDOW binding
     EventData data(_number, client, EventAction::PlaceWindow, 0);
@@ -536,7 +539,7 @@ 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
+  // 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);
This page took 0.027511 seconds and 4 git commands to generate.