all repos — openbox @ d9e7a7b8cd667cc6e11add9062d3c12ef21b6fda

openbox fork - make it a bit more like ryudo

shading works from epist
Dana Jansens danakj@orodu.net
commit

d9e7a7b8cd667cc6e11add9062d3c12ef21b6fda

parent

5f34069a3c6e9c0ecdf38c9f885438aaa2d8d12c

2 files changed, 17 insertions(+), 13 deletions(-)

jump to
M src/client.ccsrc/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.ccsrc/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;