awn does not update itself when glass colors change in gconf
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Awn |
Fix Released
|
Low
|
haytjes |
Bug Description
The AWN bar does not redraw itself when the gconf keys /apps/avant-
Tested in current PPA (avant-
Why I know: I'm making an utility which automatically changes the background to a random image, updating the theme colors as it goes. It does so by analyzing the background image to find dominant colors, then writing to the appropriate gconf keys. With awn, the changes do not show immediately; I am writing to the rounded_corners key (which does force an update, even if its value does not change) as a workaround.
Changed in awn: | |
assignee: | nobody → h4writer |
milestone: | none → 0.3.2 |
status: | New → Confirmed |
Changed in awn: | |
status: | Fix Committed → Fix Released |
I think the problem is: notify_ add to that key
- All these settings are in AwnSettings and get updated when in AwnSettings itself when it change in GKeyFile or Gconf.
- To know if the bar should repainted there is another awn_config_
- The function of the last awn_config_add get's first launched
- Then AwnSettings get the his notify that it should update the key.
So the bar gets repainted with the old values.
There are several ways to fix it, but in general the value should first get updated and afterwards the bar should repaint. notify_ add gets called first. (So FIFO). Because now it is LIFO. Should solve this problem, because the awn_config_ notify_ add in AwnSettings are added first. notify_ add, but ask AwnSettings to notify if a key is updated in AwnSettings. That way the values are already updated before the notifies in AwnSettings get called.
- In the request to repaint the bar also adjust the value in AwnSettings. This sounds rather ugly, because the value gets set two times.
- Make sure the function first added in awn_config_
- Make a notify system in AwnSettings. That way you don't use awn_config_
More input from the devs is required to solve this bug...