]> Dogcows Code - chaz/openbox/commitdiff
sync with bb cvs
authorDana Jansens <danakj@orodu.net>
Thu, 30 May 2002 04:35:22 +0000 (04:35 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 30 May 2002 04:35:22 +0000 (04:35 +0000)
src/BaseDisplay.cc
src/Window.cc
src/Windowmenu.cc
src/Workspace.cc

index 0fde13d721caad7ee28f6d3322746c1e1c5b2fc0..5c34a727133aa07733a26530ebabc8e770b2dcd7 100644 (file)
@@ -91,12 +91,11 @@ using std::string;
 // X error handler to handle any and all X errors while the application is
 // running
 static bool internal_error = False;
-static Window last_bad_window = None;
 
 BaseDisplay *base_display;
 
-#ifdef    DEBUG
 static int handleXErrors(Display *d, XErrorEvent *e) {
+#ifdef    DEBUG
   char errtxt[128];
 
   XGetErrorText(d, e->error_code, errtxt, 128);
@@ -106,10 +105,11 @@ static int handleXErrors(Display *d, XErrorEvent *e) {
           base_display->getApplicationName(), errtxt, e->error_code,
           e->request_code, e->minor_code, e->resourceid);
 #else
-static int handleXErrors(Display *, XErrorEvent *e) {
+  // shutup gcc
+  (void) d;
+  (void) e;
 #endif // DEBUG
 
-  if (e->error_code == BadWindow) last_bad_window = e->resourceid;
   if (internal_error) abort();
 
   return(False);
@@ -179,7 +179,6 @@ BaseDisplay::BaseDisplay(const char *app_name, const char *dpy_name) {
   application_name = app_name;
 
   run_state = STARTUP;
-  last_bad_window = None;
 
   ::base_display = this;
 
@@ -302,11 +301,6 @@ void BaseDisplay::eventLoop(void) {
     if (XPending(display)) {
       XEvent e;
       XNextEvent(display, &e);
-
-      if (last_bad_window != None && e.xany.window == last_bad_window)
-        continue;
-
-      last_bad_window = None;
       process_event(&e);
     } else {
       fd_set rfds;
index 3aabad5268a1caa050e52077de8bc15fd69aa5ea..a90e5183e36a4b56ce8654dfe27373d7c7a7a8a2 100644 (file)
@@ -1881,11 +1881,13 @@ void BlackboxWindow::setGravityOffsets(void) {
   // x coordinates for each gravity type
   const int x_west = client.rect.x();
   const int x_east = client.rect.right() - frame.inside_w + 1;
-  const int x_center = client.rect.right() - (frame.rect.width()/2) + 1;
+  const int x_center = client.rect.left() +
+    ((client.rect.width() - frame.rect.width()) / 2);
   // y coordinates for each gravity type
   const int y_north = client.rect.y();
   const int y_south = client.rect.bottom() - frame.inside_h + 1;
-  const int y_center = client.rect.bottom() - (frame.rect.height()/2) + 1;
+  const int y_center = client.rect.top() +
+    ((client.rect.height() - frame.rect.height()) / 2);
 
   switch (client.win_gravity) {
   default:
@@ -1916,13 +1918,13 @@ void BlackboxWindow::restoreGravity(void) {
   // x coordinates for each gravity type
   const int x_west = frame.rect.x();
   const int x_east = frame.rect.x() + frame.inside_w - client.rect.width();
-  const int x_center = frame.rect.x() + (frame.rect.width()/2) -
-                       client.rect.width();
+  const int x_center = frame.rect.x() -
+    ((client.rect.width() - frame.rect.width()) / 2);
   // y coordinates for each gravity type
   const int y_north = frame.rect.y();
   const int y_south = frame.rect.y() + frame.inside_h - client.rect.height();
-  const int y_center = frame.rect.y() + (frame.rect.height()/2) -
-                       client.rect.height();
+  const int y_center = frame.rect.y() -
+    ((client.rect.height() - frame.rect.height()) / 2);
 
   switch(client.win_gravity) {
   default:
@@ -2381,7 +2383,7 @@ void BlackboxWindow::buttonPressEvent(XButtonEvent *be) {
     // snap the window menu into a corner if necessary - we check the
     // position of the menu with the coordinates of the client to
     // make the comparisions easier.
-    // ### this needs some work!
+    // XXX: this needs some work!
     if (mx > client.rect.right() -
         static_cast<signed>(windowmenu->getWidth()))
       mx = frame.rect.right() - windowmenu->getWidth() - frame.border_w + 1;
index 089cce575cb5e5564ff5dcd7c1a67925c2bc223f..bfe1a1e5461aac124498e7eb1a067d5a0392d8a9 100644 (file)
@@ -192,8 +192,8 @@ void Windowmenu::SendtoWorkspacemenu::update(void) {
       ++r;
     } else {
       changeItemLabel(i, getScreen()->getWorkspace(i)->getName());
+      setItemEnabled(i, i != getScreen()->getCurrentWorkspaceID());
     }
-    setItemEnabled(i, i != getScreen()->getCurrentWorkspaceID());
   }
 
   Basemenu::update();
index 91bc141958865f3d706091bd1ee215c4db1840d1..c21f329389340a51dbf3e21e210ae11c60db4f97 100644 (file)
@@ -488,11 +488,14 @@ bool Workspace::smartPlacement(Rect& win, const Rect& availableArea) {
   spaces.push_back(availableArea); //initially the entire screen is free
 
   //Find Free Spaces
-  BlackboxWindowList::iterator wit = windowList.begin(),
-                               end = windowList.end();
+  BlackboxWindowList::const_iterator wit = windowList.begin(),
+    end = windowList.end();
   Rect tmp;
   for (; wit != end; ++wit) {
     const BlackboxWindow* const curr = *wit;
+
+    if (curr->isShaded()) continue;
+
     tmp.setRect(curr->frameRect().x(), curr->frameRect().y(),
                 curr->frameRect().width() + screen->getBorderWidth(),
                 curr->frameRect().height() + screen->getBorderWidth());
This page took 0.034885 seconds and 4 git commands to generate.