aboutsummaryrefslogtreecommitdiff
path: root/src/Gnome.cc
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-06-23 14:16:05 (GMT)
committerrathnor <rathnor>2003-06-23 14:16:05 (GMT)
commit09a5c23c5b099af531842ae7868e98bc8d717dac (patch)
treecf5ea34c09ee3d16ddc2e9abfc1bd2880a94067d /src/Gnome.cc
parent2e6baffb9bf988901f9fa02f651efc9b2528d7b5 (diff)
downloadfluxbox-09a5c23c5b099af531842ae7868e98bc8d717dac.zip
fluxbox-09a5c23c5b099af531842ae7868e98bc8d717dac.tar.bz2
fix grouping to persist over restart, plus various related bugs.
Also move a large proportion of window initialisation from FluxboxWindow to WinClient
Diffstat (limited to 'src/Gnome.cc')
-rw-r--r--src/Gnome.cc31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/Gnome.cc b/src/Gnome.cc
index 6eef315..2b12b7f 100644
--- a/src/Gnome.cc
+++ b/src/Gnome.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: Gnome.cc,v 1.26 2003/06/12 14:28:00 fluxgen Exp $ 22// $Id: Gnome.cc,v 1.27 2003/06/23 14:16:04 rathnor Exp $
23 23
24#include "Gnome.hh" 24#include "Gnome.hh"
25 25
@@ -223,9 +223,13 @@ void Gnome::updateWorkspace(FluxboxWindow &win) {
223 cerr<<__FILE__<<"("<<__LINE__<<"): setting workspace("<<val<< 223 cerr<<__FILE__<<"("<<__LINE__<<"): setting workspace("<<val<<
224 ") for window("<<&win<<")"<<endl; 224 ") for window("<<&win<<")"<<endl;
225#endif // DEBUG 225#endif // DEBUG
226 win.winClient().changeProperty(m_gnome_wm_win_workspace, 226
227 XA_CARDINAL, 32, PropModeReplace, 227 FluxboxWindow::ClientList::iterator client_it = win.clientList().begin();
228 (unsigned char *)&val, 1); 228 FluxboxWindow::ClientList::iterator client_it_end = win.clientList().end();
229 for (; client_it != client_it_end; ++client_it)
230 (*client_it)->changeProperty(m_gnome_wm_win_workspace,
231 XA_CARDINAL, 32, PropModeReplace,
232 (unsigned char *)&val, 1);
229} 233}
230 234
231void Gnome::updateState(FluxboxWindow &win) { 235void Gnome::updateState(FluxboxWindow &win) {
@@ -238,18 +242,25 @@ void Gnome::updateState(FluxboxWindow &win) {
238 if (win.isShaded()) 242 if (win.isShaded())
239 state |= WIN_STATE_SHADED; 243 state |= WIN_STATE_SHADED;
240 244
241 win.winClient().changeProperty(m_gnome_wm_win_state, 245 FluxboxWindow::ClientList::iterator client_it = win.clientList().begin();
242 XA_CARDINAL, 32, 246 FluxboxWindow::ClientList::iterator client_it_end = win.clientList().end();
243 PropModeReplace, (unsigned char *)&state, 1); 247 for (; client_it != client_it_end; ++client_it)
248 (*client_it)->changeProperty(m_gnome_wm_win_state,
249 XA_CARDINAL, 32,
250 PropModeReplace, (unsigned char *)&state, 1);
244} 251}
245 252
246void Gnome::updateLayer(FluxboxWindow &win) { 253void Gnome::updateLayer(FluxboxWindow &win) {
247 //TODO - map from flux layers to gnome ones 254 //TODO - map from flux layers to gnome ones
248 // our layers are in the opposite direction to GNOME 255 // our layers are in the opposite direction to GNOME
249 int layernum = Fluxbox::instance()->getDesktopLayer() - win.layerNum(); 256 int layernum = Fluxbox::instance()->getDesktopLayer() - win.layerNum();
250 win.winClient().changeProperty(m_gnome_wm_win_layer, 257
251 XA_CARDINAL, 32, PropModeReplace, 258 FluxboxWindow::ClientList::iterator client_it = win.clientList().begin();
252 (unsigned char *)&layernum, 1); 259 FluxboxWindow::ClientList::iterator client_it_end = win.clientList().end();
260 for (; client_it != client_it_end; ++client_it)
261 (*client_it)->changeProperty(m_gnome_wm_win_layer,
262 XA_CARDINAL, 32, PropModeReplace,
263 (unsigned char *)&layernum, 1);
253 264
254} 265}
255 266