Comment 27 for bug 150690

Revision history for this message
Marcus Carlson (0-launchpad-mejlamej-nu) wrote : Re: Compiz Gutsy : Can't drag a window to another workspace

Hi folks,

I've been doing some investigating and maybe you already know this but in libwnck in screen.c the function update_workspace_list this always sets n_space to 1 without printing my warning. From my understanding this goes all the way to compiz land which hacks the workspaces to always be set to one.

  n_spaces = 0;
  if (!_wnck_get_cardinal (screen->priv->xroot,
                           _wnck_atom_get ("_NET_NUMBER_OF_DESKTOPS"),
                           &n_spaces)) {
    fprintf(stderr, "WARNING WARNING could not get Atom _NET_NUMBER_OF_DESKTOPS, setting n_spaces to 1\n");
    n_spaces = 1;
  }

Because of this the method wnck_screen_get_workspace_count will always return 1 and therefore also workspace_at_point will return 1 and the move will then fail because we're moving from workspace 1 to workspace 1.
What I can understand this is the same reason bug #150443 fails.

The strange thing is that the drawer somehow can figure out how many workspaces there really is - why this is so I couldn't find but I suspect that it checks some gconf values because of the rows thing.

Maybe someone who knows a little bit more about compiz internal can explain why _NET_NUMBER_OF_DESKTOPS is set to 1?