make sure that the only time Click-to-place kicks in is when initially placing/mapping the window

This commit is contained in:
Dana Jansens 2002-04-30 07:46:46 +00:00
parent 5705ea3613
commit f4d29bb737
2 changed files with 6 additions and 5 deletions

View file

@ -1452,7 +1452,7 @@ void OpenboxWindow::iconify(void) {
} }
void OpenboxWindow::deiconify(Bool reassoc, Bool raise) { void OpenboxWindow::deiconify(bool reassoc, bool raise, bool initial) {
if (flags.iconic || reassoc) if (flags.iconic || reassoc)
screen->reassociateWindow(this, -1, False); screen->reassociateWindow(this, -1, False);
else if (workspace_number != screen->getCurrentWorkspace()->getWorkspaceID()) else if (workspace_number != screen->getCurrentWorkspace()->getWorkspaceID())
@ -1470,8 +1470,8 @@ void OpenboxWindow::deiconify(Bool reassoc, Bool raise) {
// if we're using the click to place placement type, then immediately // if we're using the click to place placement type, then immediately
// after the window is mapped, we need to start interactively moving it // after the window is mapped, we need to start interactively moving it
if (screen->placementPolicy() == BScreen::ClickMousePlacement && if (initial && place_window &&
place_window && !(flags.iconic || reassoc)) { screen->placementPolicy() == BScreen::ClickMousePlacement) {
// if the last window wasn't placed yet, or we're just moving a window // if the last window wasn't placed yet, or we're just moving a window
// already, finish off that move cleanly // already, finish off that move cleanly
OpenboxWindow *w = openbox.getFocusedWindow(); OpenboxWindow *w = openbox.getFocusedWindow();
@ -2243,7 +2243,8 @@ void OpenboxWindow::mapRequestEvent(XMapRequestEvent *re) {
case InactiveState: case InactiveState:
case ZoomState: case ZoomState:
default: default:
deiconify(False); deiconify(False, True, True); // specify that we're initializing the
// window
break; break;
} }

View file

@ -321,7 +321,7 @@ public:
void setFocusFlag(Bool); void setFocusFlag(Bool);
void iconify(); void iconify();
void deiconify(Bool reassoc = True, Bool raise = True); void deiconify(bool reassoc = true, bool raise = true, bool initial = false);
void close(); void close();
void withdraw(); void withdraw();
void maximize(unsigned int button); void maximize(unsigned int button);