Re: forcing style relayout



On 2 August 2012 23:51, Amy C <mathematical coffee gmail com> wrote:
> I'm patching in a new stylesheet via
>
> theme.unload_stylesheet(oldstylesheet);
> theme.load_stylesheet(newstylesheet);
>
> These affect a St.Bin with St.BoxLayout inside with St.Buttons inside
> (style affects them all).
>
> When I perform this the elements do not update their style straight
> away - when I start the looking glass though, they seem to realise
> their style has changed and reload it.
>
> How can I force this when I load the new stylesheet?

Any ideas on this? I've noticed that on unloading the old
sheet/loading the new one, when I run my mouse pointer over the
elements in question the new style is loaded (prior to that the old
style remains).

This is the new list of things I've done to try force the elements to
re-style, all without success:
* queue_redraw of both the Bin, BoxLayout, & buttons
* ensure_style of the above
* sending a fake pointer event (like in overview.js) over each of the
buttons' positions
* themeContext.set_theme(theme) where theme is the same as the old
one, but with the old stylesheet unloaded and the current one loaded.
* calling widget.style='background-color: red' (e.g.) to force a style
change (didn't work)

What else can I try? I know starting looking glass will also force the
relayout (as well as moving my pointer over the elements, perhaps
triggering the :hover pseudo style class), so I know it is possible
somehow!


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]