really fix placement when head is remembered but not position
markt markt
8 files changed,
13 insertions(+),
6 deletions(-)
M
src/CascadePlacement.cc
→
src/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.cc
→
src/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.cc
→
src/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.cc
→
src/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.cc
→
src/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.cc
→
src/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.cc
→
src/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.hh
→
src/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);