When CSS on screen has effect?

Hello
I have set some CSS at screen level but they don’t act immediately, but only at the second run (sometimes at the third).
This happens both in Julia command line and in Visual Studio.
Thanks

Hi! Can you share the code you’re using to set the CSS?

Yes lb90, but is a Julia program, therefore most statement are call to GTK3.

using GTK3_jll
const libgtk = libgtk3
const libgdk = libgdk3
using Gtk, Gtk.ShortNames
function fg_set_CSS(css::String)
    provider = convert(GObject,ccall((:gtk_css_provider_new, libgtk), Ptr{GObject},()))
    display = convert(GObject,ccall((:gdk_display_get_default,libgdk), Ptr{GObject}, ()))
    screen = convert(GObject,ccall((:gdk_display_get_default_screen,libgdk),Ptr{GObject},(Ptr{GObject},),display))
    ccall((:gtk_style_context_add_provider_for_screen,libgtk),Cvoid,(Ptr{GObject},Ptr{GObject}),screen,provider)
    ccall((:gtk_css_provider_load_from_data,libgtk),Bool,(Ptr{GObject}, Ptr{UInt8}, Clong, Ptr{C_NULL}),
    provider, css,-1, Ptr{Ptr{Cchar}}())
    return provider
end
function fg_reset_CSS(provider)
  display = convert(GObject,ccall((:gdk_display_get_default,libgdk), Ptr{GObject}, ()))
  screen = convert(GObject,ccall((:gdk_display_get_default_screen,libgdk),Ptr{GObject},(Ptr{GObject},),display))
  ccall((:gtk_style_context_remove_provider_for_screen,libgtk),Cvoid,(Ptr{GObject},Ptr{GObject}),screen,provider)
end
CSSStyles = """
#fg_btn {background-image: image(#aaa);font: 20px \"sans\";color:red}
#fg_btn:hover {background-image: image(#eee)}
#fg_btn:active {background-image: image(#ddd)}
#fg_window {background: navy}
#sld {min-width: 180px;}
"""
pr = fg_set_CSS(CSSStyles)
g = GtkGrid()
fg_win = GtkWindow("Minimal example")
set_gtk_property!(fg_win, :name,"fg_window")
g[1,1] = GtkButton("\u22EF\u22EF")
set_gtk_property!(g[1,1], :name,"fg_btn")
sld = GtkScale(false, 0:30)
set_gtk_property!(sld, :value_pos, 1)
set_gtk_property!(sld, :name, "sld")
set_gtk_property!(sld, :digits, 3)
g[1,4] = sld
push!(fg_win,g)
#showall(fg_win)
@idle_add showall(fg_win)
signal_connect(fg_win, :destroy) do widget
  fg_reset_CSS(pr)   # remove screen styles
  Gtk.gtk_quit()
  println("See you later alligator")
end

Hi
I think the problem depends on Julia in Windows, in fact I tried the same program in Ubuntu (under Virtual Box) and everything works well and fast.
Best regards
Giovanni Rossati

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.