summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-16 03:50:55 +0000
committerDana Jansens <danakj@orodu.net>2002-07-16 03:50:55 +0000
commit1d4391b09c12a0615bb6be65f9af514db4eed709 (patch)
tree6fc4c3d2bd9b189f885d4bc6c571107434e8c962 /src
parentfb613db29ffcf1539c91f0ac0ca5d25cb4e593b5 (diff)
dont reposition non-normal/dialog windows when they get focus, such as kde's kicker, if they are off screen. they are special and may be doing this on purpose
Diffstat (limited to 'src')
-rw-r--r--src/Window.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/Window.cc b/src/Window.cc
index 017093e6..23bc9800 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1579,12 +1579,18 @@ bool BlackboxWindow::setInputFocus(void) {
return True;
}
#endif
- if (! frame.rect.intersects(screen->getRect())) {
- // client is outside the screen, move it to the center
- configure((screen->getWidth() - frame.rect.width()) / 2,
- (screen->getHeight() - frame.rect.height()) / 2,
- frame.rect.width(), frame.rect.height());
- }
+ /*
+ We only do this check for normal windows and dialogs because other windows
+ do this on purpose, such as kde's kicker, and we don't want to go moving
+ it.
+ */
+ if (window_type == Type_Normal || window_type == Type_Dialog)
+ if (! frame.rect.intersects(screen->getRect())) {
+ // client is outside the screen, move it to the center
+ configure((screen->getWidth() - frame.rect.width()) / 2,
+ (screen->getHeight() - frame.rect.height()) / 2,
+ frame.rect.width(), frame.rect.height());
+ }
if (client.transientList.size() > 0) {
// transfer focus to any modal transients