summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-05-30 04:35:22 +0000
committerDana Jansens <danakj@orodu.net>2002-05-30 04:35:22 +0000
commit23640740ca6659ee4effb9e5c040900e0bbdeb59 (patch)
treec738aeaec1d4948abf982e367a48f270ab3528fa
parent478771552533b63ff6c0dda136bca5e6b1701c91 (diff)
sync with bb cvs
-rw-r--r--src/BaseDisplay.cc14
-rw-r--r--src/Window.cc16
-rw-r--r--src/Windowmenu.cc2
-rw-r--r--src/Workspace.cc7
4 files changed, 19 insertions, 20 deletions
diff --git a/src/BaseDisplay.cc b/src/BaseDisplay.cc
index 0fde13d7..5c34a727 100644
--- a/src/BaseDisplay.cc
+++ b/src/BaseDisplay.cc
@@ -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;
diff --git a/src/Window.cc b/src/Window.cc
index 3aabad52..a90e5183 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -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;
diff --git a/src/Windowmenu.cc b/src/Windowmenu.cc
index 089cce57..bfe1a1e5 100644
--- a/src/Windowmenu.cc
+++ b/src/Windowmenu.cc
@@ -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();
diff --git a/src/Workspace.cc b/src/Workspace.cc
index 91bc1419..c21f3293 100644
--- a/src/Workspace.cc
+++ b/src/Workspace.cc
@@ -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());