all repos — fluxbox @ b504021145c9d79759c3809c4001ee2acdf4a5aa

custom fork of the fluxbox windowmanager

really fix placement when head is remembered but not position
markt markt
commit

b504021145c9d79759c3809c4001ee2acdf4a5aa

parent

42ace977752c4e2dc9e77794d0f9ac73c53437ef

M src/CascadePlacement.ccsrc/CascadePlacement.cc

@@ -46,7 +46,7 @@ bool CascadePlacement::placeWindow(const std::list<FluxboxWindow *> &windowlist,

const FluxboxWindow &win, int &place_x, int &place_y) { - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/ColSmartPlacement.ccsrc/ColSmartPlacement.cc

@@ -32,7 +32,7 @@ const FluxboxWindow &win,

int &place_x, int &place_y) { // xinerama head constraints - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/MinOverlapPlacement.ccsrc/MinOverlapPlacement.cc

@@ -39,7 +39,7 @@ const std::list<FluxboxWindow *> &windowlist,

const FluxboxWindow &win, int &place_x, int &place_y) { // view (screen + head) constraints - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/RowSmartPlacement.ccsrc/RowSmartPlacement.cc

@@ -35,7 +35,7 @@ bool placed = false;

int next_x, next_y; // view (screen + head) constraints - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/ScreenPlacement.ccsrc/ScreenPlacement.cc

@@ -88,7 +88,7 @@ }

} // view (screen + head) constraints - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/UnderMousePlacement.ccsrc/UnderMousePlacement.cc

@@ -51,7 +51,7 @@ int test_x = root_x - (win_w / 2);

int test_y = root_y - (win_h / 2); // keep the window inside the screen - int head = (signed) win.screen().getCurrHead(); + int head = (signed) win.getOnHead(); int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head);
M src/Window.ccsrc/Window.cc

@@ -480,6 +480,8 @@ real_x <= (signed) screen().width() &&

real_y <= (signed) screen().height()) m_placed = true; + } else if (!m_placed) { + setOnHead(screen().getCurrHead()); } /* if (wattrib.width <= 0)

@@ -4094,6 +4096,10 @@ if (str_label.size() > 1 && str_label[0] == '0' && str_label[1] == 'x' ||

str_label.size() > 0 && isdigit(str_label[0])) mask = strtol(str_label.c_str(), NULL, 0); return mask; +} + +int FluxboxWindow::getOnHead() const { + return screen().getHead(fbWindow()); } void FluxboxWindow::setOnHead(int head) {
M src/Window.hhsrc/Window.hh

@@ -306,6 +306,7 @@ void raiseLayer();

void lowerLayer(); /// moves the window to a new layer void moveToLayer(int layernum, bool force = false); + int getOnHead() const; void setOnHead(int head); /// sets the window focus hidden state void setFocusHidden(bool value);