On Tue, 27 Oct 2009 18:04:59 -0300
Luiz Pedro <[email protected]> wrote:

> I had a similar problem. Debugging wmaker, I discovered that this 
> happens when the option SmoothWorkspaceBack is true. I turned it to 
> false, and the wmaker returned to normal.
> Try this, maybe it's the same problem...
> 
> Valmor de Almeida escreveu:
> > Hello,
> >
> > I am currently unable to have my workspaces using different background
> > images. The problem seems to be this line in the
> > ~/GNUstep/Defaults/WindowMaker file
> >
> > WorkspaceSpecificBack = ((spixmap, thetismoon2k721600.jpg, white));
> >
> > It causes wmaker to issue a Fatal Error: Window Maker received signal 6.
> >  The line
> >
> > WorkspaceBack = (spixmap, "macosx-gentoo-1600x1200.jpg", white);
> >
> > does work and puts the same image in all workspaces.
> >
> > Does anyone know what is going on. This problem appeared after an
> > upgrade from xorg 1.5 to 1.6. There was also an upgrade on windowmaker
> > but I am not sure about the changes. I use gentoo with its ebuild of
> > windowmaker.
> >
> > Thanks for any inputs.
> >
> > --
> > Valmor
> >
> > PS: btw I use wmakerconf to setup the workspace pixmap background.
> >
> >
> >   
> 
> 
> -- 
> To unsubscribe, send mail to [email protected].

I've tried to duplicate this problem on my system and am unable to do so. I've 
tried with both
SmoothWorkspaceBack = YES
SmoothWorkspaceBack = NO
and even when using an image much larger than my screen -still no problems.

Are you both sure you are using the proper syntax in your ~/GNUstep/WindowMaker 
file?
You must have Workspaceback set to something, as well as have entries for each 
extra workspace, something like this:
WorkspaceBack = (solid, red);
WorkspaceSpecificBack = ((cpixmap, GERBER.jpg, gray), ());
(The empty parentheses for the second wrokspace mean to use what is set for 
WorkspaceBack.

If that still doesn't work, then maybe this small patch will help. I should 
explain that I am using my own source tree of wmaker which does not include all 
of the changes from Carlos branch. Specifically, I have not made the 
coding-style changes.
On comparing the code in my tree with that from Carlos tree, I was able to find 
a very small difference in a couple of files which are related to the 
WorkspaceBack and WorkspaceSpecificBack. the files affected are src/defaults.c 
and src/workspace.c
In both cases there is a slight difference in the syntax for addition. To be 
honest, it doesn't really look like it would make a difference, but I don't 
have any other clue so you might try applying the attached patch and see if 
that fixes it.
The same bug was reported since several years ago and had been fixed in 
src/misc.c, but that fix conflicts with a buffer-overflow patch which both 
Carlos and I use in our sources, so that would not seems to be the answer.

Here is the patch in-line, but I am attaching it also:
--- ./src/defaults.c.01 2009-09-09 14:29:33.000000000 +0200
+++ ./src/defaults.c    2009-10-28 19:53:13.000000000 +0100
@@ -2982,11 +2982,11 @@
                if (val && WMIsPLArray(val) && WMGetPropListItemCount(val) > 0) 
{
                        str = WMGetPropListDescription(val, False);
 
-                       SendHelperMessage(scr, 'S', i + 1, str);
+                       SendHelperMessage(scr, 'S', i+1, str);
 
                        wfree(str);
                } else {
-                       SendHelperMessage(scr, 'U', i + 1, NULL);
+                       SendHelperMessage(scr, 'U', i+1, NULL);
                }
        }
        sleep(1);
@@ -3008,7 +3008,7 @@
                        if (str) {
                                SendHelperMessage(scr, 'S', 0, str);
                                wfree(str);
-                               SendHelperMessage(scr, 'C', 
scr->current_workspace + 1, NULL);
+                               SendHelperMessage(scr, 'C', 
scr->current_workspace+1, NULL);
                        } else {
                                SendHelperMessage(scr, 'U', 0, NULL);
                        }
--- ./src/workspace.c.01        2009-09-09 14:29:33.000000000 +0200
+++ ./src/workspace.c   2009-10-28 19:51:59.000000000 +0100
@@ -448,9 +448,9 @@
        if (workspace >= MAX_WORKSPACES || workspace < 0)
                return;
 
-       SendHelperMessage(scr, 'C', workspace + 1, NULL);
+       SendHelperMessage(scr, 'C', workspace+1, NULL);
 
-       if (workspace > scr->workspace_count - 1) {
+       if (workspace > scr->workspace_count-1) {
                wWorkspaceMake(scr, workspace - scr->workspace_count + 1);
        }
 

The only difference is a bit of whitespace, but its' worth a try. No problems 
here...
Gilbert Ashley

Attachment: WorkspaceSpecificBack-fix.diff
Description: Binary data

Reply via email to