awesome

Welcome to awesome bug tracking system.
Tasklist

FS#289 - statusbar not updated after awesome-client

Attached to Project: awesome
Opened by flitsch (flitsch) - Tuesday, 26 August 2008, 08:58 GMT
Last edited by Julien Danjou (jd) - Tuesday, 26 August 2008, 17:37 GMT
Task Type Bug Report
Category Statusbars
Status Closed
Assigned To Julien Danjou (jd)
Operating System All
Severity Low
Priority Normal
Reported Version git/master
Due in Version 3.0
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

When I do a
echo 'awful.tag.viewprev()' | awesome-client
from a console, then everything is fine: previous tag is viewed and the statusbar is updated correctly. However when I run the same command from another program (which is controlled by a joystick, by the way) *or* when I run
(sleep 1; echo 'awful.tag.viewprev()' | awesome-client) &
from a console, then the previous tag is shown correctly, but the statusbar is not updated.
Appending empty lines in the 'echo' did not fix the problem.

(actually I tried only 3.0-rc2, since Gentoo has cmake-2.6 hard masked)
This task depends upon

Closed by  Julien Danjou (jd)
Tuesday, 26 August 2008, 17:37 GMT
Reason for closing:  Fixed
Additional comments about closing:  commit 87a89b6aa1c45a80f41e6284a7f99ea7ee3e84d8
Author: Julien Danjou <julien@danjou.info>
Date: Tue Aug 26 19:35:37 2008 +0200

use xcb_flush; move refresh stuff in common function

Signed-off-by: Julien Danjou <julien@danjou.info>

Comment by Julien Danjou (jd) - Tuesday, 26 August 2008, 09:04 GMT
I'm sorry, but this has no sense. awesome-client is just sending your string to awesome, and running it from a terminal or from anything else can't make a such difference.

Can you investigate a bit further?
Comment by flitsch (flitsch) - Tuesday, 26 August 2008, 14:54 GMT
Does that mean that the following command works for you, when run in a console?
(sleep 1; echo 'awful.tag.viewprev()' | awesome-client) &
Maybe my description was a bit misleading: this is not a problem of the other program as the above command fails to update the statusbar even when run from an ordinary console window.

I ran this command from an X console (rxvt-unicode) as well as a "real" console (with a bit longer sleep so that I could switch back to X before the awesome-client runs). Both showed the described effect.
When I move the mouse over the statusbar after running the above command, the statusbar is then redrawn correctly. Also when the mouse is moved over to another window of the new tag.
I just tested the default config: When hook_timer is disabled, then the problem persists. Otherwise the statusbar is redrawn because the hook changes text on it.

Looking at the source code (of awesome-client), it also did not make sense to me, too. Could it be that it has something to do with the statusbar->need_update? At the moment I don't have much time to experiment with the sources. Do you have something concrete in mind with "investigate" (other things to test, positions in the sources)?
Comment by Julien Danjou (jd) - Tuesday, 26 August 2008, 15:10 GMT
Ok, I get what you meant. I found the culprit. Trying to get the right fix.

Loading...