don't click-to-place windows when they specify a position
Dana Jansens danakj@orodu.net
2 files changed,
5 insertions(+),
4 deletions(-)
M
src/Window.cc
→
src/Window.cc
@@ -216,7 +216,7 @@ functions.resize = functions.maximize = False;
} upsize(); - Bool place_window = True; + place_window = true; if (openbox.isStartup() || flags.transient || client.normal_hint_flags & (PPosition|USPosition)) { setGravityOffsets();@@ -226,7 +226,7 @@ (frame.x >= 0 &&
(signed) (frame.y + frame.y_border) >= 0 && frame.x <= (signed) screen->size().w() && frame.y <= (signed) screen->size().h())) - place_window = False; + place_window = false; } frame.window = createToplevelWindow(frame.x, frame.y, frame.width,@@ -1467,8 +1467,8 @@ XMapWindow(display, frame.window);
// if we're using the click to place placement type, then immediately // after the window is mapped, we need to start interactively moving it - if (!(flags.iconic || reassoc) && - screen->placementPolicy() == BScreen::ClickMousePlacement) { + if (screen->placementPolicy() == BScreen::ClickMousePlacement && + place_window && !(flags.iconic || reassoc)) { // if the last window wasn't placed yet, or we're just moving a window // already, finish off that move cleanly OpenboxWindow *w = openbox.getFocusedWindow();
M
src/Window.h
→
src/Window.h
@@ -78,6 +78,7 @@ Windowmenu *windowmenu;
int window_number, workspace_number; unsigned long current_state; + bool place_window; // place the window ourselves when mapped enum FocusMode { F_NoInput = 0, F_Passive, F_LocallyActive, F_GloballyActive };