make all parents/transients that are related have the same sticky state.
This commit is contained in:
parent
20bac0772c
commit
4e0fde35ac
2 changed files with 18 additions and 1 deletions
|
@ -254,6 +254,11 @@ BlackboxWindow::BlackboxWindow(Blackbox *b, Window w, BScreen *s) {
|
||||||
frame.rect.width(), frame.rect.height());
|
frame.rect.width(), frame.rect.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get sticky state from our parent window if we've got one
|
||||||
|
if (isTransient() && client.transient_for != (BlackboxWindow *) ~0ul &&
|
||||||
|
client.transient_for->isStuck() != flags.stuck)
|
||||||
|
stick();
|
||||||
|
|
||||||
if (flags.shaded) {
|
if (flags.shaded) {
|
||||||
flags.shaded = False;
|
flags.shaded = False;
|
||||||
shade();
|
shade();
|
||||||
|
@ -1609,6 +1614,9 @@ void BlackboxWindow::shade(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (Un)Sticks a window and its relatives.
|
||||||
|
*/
|
||||||
void BlackboxWindow::stick(void) {
|
void BlackboxWindow::stick(void) {
|
||||||
if (flags.stuck) {
|
if (flags.stuck) {
|
||||||
blackbox_attrib.flags ^= AttribOmnipresent;
|
blackbox_attrib.flags ^= AttribOmnipresent;
|
||||||
|
@ -1628,6 +1636,16 @@ void BlackboxWindow::stick(void) {
|
||||||
|
|
||||||
setState(current_state);
|
setState(current_state);
|
||||||
}
|
}
|
||||||
|
// go up the chain
|
||||||
|
if (isTransient() && client.transient_for != (BlackboxWindow *) ~0ul &&
|
||||||
|
client.transient_for->isStuck() != flags.stuck)
|
||||||
|
client.transient_for->stick();
|
||||||
|
// go down the chain
|
||||||
|
BlackboxWindowList::iterator it;
|
||||||
|
const BlackboxWindowList::iterator end = client.transientList.end();
|
||||||
|
for (it = client.transientList.begin(); it != end; ++it)
|
||||||
|
if ((*it)->isStuck() != flags.stuck)
|
||||||
|
(*it)->stick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -331,7 +331,6 @@ public:
|
||||||
void remaximize(void);
|
void remaximize(void);
|
||||||
void shade(void);
|
void shade(void);
|
||||||
void stick(void);
|
void stick(void);
|
||||||
void unstick(void);
|
|
||||||
void reconfigure(void);
|
void reconfigure(void);
|
||||||
void updateFocusModel(void);
|
void updateFocusModel(void);
|
||||||
void installColormap(bool install);
|
void installColormap(bool install);
|
||||||
|
|
Loading…
Reference in a new issue