shading works from epist
Dana Jansens danakj@orodu.net
2 files changed,
17 insertions(+),
13 deletions(-)
M
src/client.cc
→
src/client.cc
@@ -551,6 +551,7 @@
void OBClient::setState(StateAction action, long data1, long data2) { const otk::OBProperty *property = Openbox::instance->property(); + bool restack = false, shadestate = _shaded; if (!(action == State_Add || action == State_Remove || action == State_Toggle))@@ -606,8 +607,8 @@ // XXX: resize the window etc
} else if (state == property->atom(otk::OBProperty::net_wm_state_shaded)) { if (_shaded) continue; - _shaded = true; - // XXX: hide the client window + // shade when we're all thru here + shadestate = true; } else if (state == property->atom(otk::OBProperty::net_wm_state_skip_taskbar)) { _skip_taskbar = true;@@ -618,17 +619,17 @@ } else if (state ==
property->atom(otk::OBProperty::net_wm_state_fullscreen)) { if (_fullscreen) continue; _fullscreen = true; - // XXX: raise the window n shit + restack = false; } else if (state == property->atom(otk::OBProperty::net_wm_state_above)) { if (_above) continue; _above = true; - // XXX: raise the window n shit + restack = true; } else if (state == property->atom(otk::OBProperty::net_wm_state_below)) { if (_below) continue; _below = true; - // XXX: lower the window n shit + restack = true; } } else { // action == State_Remove@@ -648,8 +649,8 @@ // XXX: resize the window etc
} else if (state == property->atom(otk::OBProperty::net_wm_state_shaded)) { if (!_shaded) continue; - _shaded = false; - // XXX: show the client window + // unshade when we're all thru here + shadestate = false; } else if (state == property->atom(otk::OBProperty::net_wm_state_skip_taskbar)) { _skip_taskbar = false;@@ -660,22 +661,26 @@ } else if (state ==
property->atom(otk::OBProperty::net_wm_state_fullscreen)) { if (!_fullscreen) continue; _fullscreen = false; - // XXX: lower the window to its proper layer + restack = true; } else if (state == property->atom(otk::OBProperty::net_wm_state_above)) { if (!_above) continue; _above = false; - // XXX: lower the window to its proper layer + restack = true; } else if (state == property->atom(otk::OBProperty::net_wm_state_below)) { if (!_below) continue; _below = false; - // XXX: raise the window to its proper layer + restack = true; } } } - calcLayer(); - Openbox::instance->screen(_screen)->restack(true, this); // raise + if (shadestate != _shaded) + shade(shadestate); + if (restack) { + calcLayer(); + Openbox::instance->screen(_screen)->restack(true, this); // raise + } }
M
src/frame.cc
→
src/frame.cc
@@ -126,7 +126,6 @@ void OBFrame::adjustSize()
{ // XXX: only if not overridden or something!!! MORE LOGIC HERE!! _decorations = _client->decorations(); - _decorations = 0xffffffff; // true/false for whether to show each element of the titlebar bool tit_i = false, tit_m = false, tit_s = false, tit_c = false;