]> Dogcows Code - chaz/openbox/blobdiff - src/screen.cc
use otk objects in the ob scripts by importing otk
[chaz/openbox] / src / screen.cc
index 6525150bc478e4af53ea5cc07cde2908c5f835d2..6c1551b5153dd0ef0990b7992859441895656c1a 100644 (file)
@@ -134,7 +134,7 @@ Screen::Screen(int screen)
   openbox->registerHandler(_info->rootWindow(), this);
 
   // call the python Startup callbacks
-  EventData data(_number, 0, EventShutdown, 0);
+  EventData data(_number, 0, EventAction::Shutdown, 0);
   openbox->bindings()->fireEvent(&data);
 }
 
@@ -150,7 +150,7 @@ Screen::~Screen()
     unmanageWindow(clients.front());
 
   // call the python Shutdown callbacks
-  EventData data(_number, 0, EventShutdown, 0);
+  EventData data(_number, 0, EventAction::Shutdown, 0);
   openbox->bindings()->fireEvent(&data);
 
   XDestroyWindow(**otk::display, _focuswindow);
@@ -261,7 +261,7 @@ void Screen::calcArea()
 #endif // XINERAMA
 */
   
-  if (old_area != _area)
+  //if (old_area != _area)
     // XXX: re-maximize windows
 
   changeWorkArea();
@@ -498,7 +498,7 @@ void Screen::manageWindow(Window window)
         client->positionRequested())) {
     // position the window intelligenty .. hopefully :)
     // call the python PLACEWINDOW binding
-    EventData data(_number, client, EventPlaceWindow, 0);
+    EventData data(_number, client, EventAction::PlaceWindow, 0);
     openbox->bindings()->fireEvent(&data);
   }
 
@@ -523,11 +523,12 @@ void Screen::manageWindow(Window window)
   openbox->bindings()->grabButtons(true, client);
 
   // call the python NEWWINDOW binding
-  EventData data(_number, client, EventNewWindow, 0);
+  EventData data(_number, client, EventAction::NewWindow, 0);
   openbox->bindings()->fireEvent(&data);
 
 #ifdef DEBUG
-  printf("Managed window 0x%lx\n", window);
+  printf("Managed window 0x%lx frame 0x%lx\n",
+         window, client->frame->window());
 #endif
 }
 
@@ -537,7 +538,7 @@ void Screen::unmanageWindow(Client *client)
   Frame *frame = client->frame;
 
   // call the python CLOSEWINDOW binding 
-  EventData data(_number, client, EventCloseWindow, 0);
+  EventData data(_number, client, EventAction::CloseWindow, 0);
   openbox->bindings()->fireEvent(&data);
 
   openbox->bindings()->grabButtons(false, client);
@@ -572,6 +573,9 @@ void Screen::unmanageWindow(Client *client)
   // reparent the window out of the frame
   frame->releaseClient();
 
+#ifdef DEBUG
+  Window framewin = client->frame->window();
+#endif
   delete client->frame;
   client->frame = 0;
 
@@ -585,7 +589,7 @@ void Screen::unmanageWindow(Client *client)
   client->unfocus();
 
 #ifdef DEBUG
-  printf("Unmanaged window 0x%lx\n", client->window());
+  printf("Unmanaged window 0x%lx frame 0x%lx\n", client->window(), framewin);
 #endif
   
   delete client;
@@ -771,7 +775,13 @@ void Screen::mapRequestHandler(const XMapRequestEvent &e)
   printf("MapRequest for 0x%lx\n", e.window);
 #endif // DEBUG
 
-  manageWindow(e.window);
+  Client *c = openbox->findClient(e.window);
+  if (c) {
+#ifdef DEBUG
+    printf("DEBUG: MAP REQUEST CAUGHT IN SCREEN. IGNORED.\n");
+#endif
+  } else
+    manageWindow(e.window);
 }
 
 }
This page took 0.025453 seconds and 4 git commands to generate.