Debugged this today thoroughly. It seems I am getting repeated draw signals from GTK. i.e. my expose method is being called repeatedly by GTK. I am not constantly queuing draw calls as first suspected. Will try to initially fix this from the GTK side, if all else fails I will try to attempt to ignore the irrelevant expose calls.
When there is album art expose is called excessively too but I filter/ignore a large set of these by comparing the album art path with what is current on display.
When there is no album art everytime a new image is prepared using pango => expensive.
Debugged this today thoroughly. It seems I am getting repeated draw signals from GTK. i.e. my expose method is being called repeatedly by GTK. I am not constantly queuing draw calls as first suspected. Will try to initially fix this from the GTK side, if all else fails I will try to attempt to ignore the irrelevant expose calls.
When there is album art expose is called excessively too but I filter/ignore a large set of these by comparing the album art path with what is current on display.
When there is no album art everytime a new image is prepared using pango => expensive.