aboutsummaryrefslogtreecommitdiff
path: root/modules/benchmark/guibench.c
diff options
context:
space:
mode:
authorhwspeedy <ns@bigbear.dk>2024-05-28 05:02:14 +0200
committerhwspeedy <ns@bigbear.dk>2024-05-28 05:03:37 +0200
commit51a1e4707843169876bade6c62452ba9772ff1c9 (patch)
tree4f1f9486b7f98931b91bb4d496a9796f36e53030 /modules/benchmark/guibench.c
parent56c2e4fc893004cfad1b9776544b6644e724c96e (diff)
FIX Improve dark - detect by background, support native dark setup for fedora/debian/ubuntu + branches
Diffstat (limited to 'modules/benchmark/guibench.c')
-rw-r--r--modules/benchmark/guibench.c22
1 files changed, 7 insertions, 15 deletions
diff --git a/modules/benchmark/guibench.c b/modules/benchmark/guibench.c
index 09dba879..8db38ffa 100644
--- a/modules/benchmark/guibench.c
+++ b/modules/benchmark/guibench.c
@@ -132,21 +132,6 @@ double guibench(double *frameTime, int *frameCount)
{
GtkWindow * window;
- //Get DarkMode state from system
- //get darkmode via gtk-theme has (d/D)ark as part of theme name from gsettings
-#if GTK_CHECK_VERSION(3,0,0)
- GSettings *settings=g_settings_new("org.gnome.desktop.interface");
- char *theme=g_settings_get_string(settings,"gtk-theme");
- darkmode=0;
- if(strstr(theme,"Dark")||strstr(theme,"dark")) darkmode=1;
- g_free(theme);
- g_object_unref(settings);
-#endif
- //get darkmode override from gtk-3.0/settings.ini - gtksettings
- gint dark=-1;
- g_object_get(gtk_settings_get_default(), "gtk-application-prefer-dark-theme", &dark, NULL);
- if(dark==1) darkmode=1;
- //if(dark==0) darkmode=0;
frametime=frameTime;
framecount=frameCount;
@@ -165,6 +150,13 @@ double guibench(double *frameTime, int *frameCount)
gtk_window_set_title (window, "GPU Benchmarking...");
g_signal_connect(window, "destroy", gtk_main_quit, NULL);
+ //Get DarkMode state from system
+ GtkStyleContext *sctx=gtk_widget_get_style_context(GTK_WIDGET(window));
+ GdkRGBA color;
+ gtk_style_context_lookup_color(sctx, "theme_bg_color", &color);
+ darkmode=0;
+ if((color.red+color.green+color.blue)<=1.5) darkmode=1;
+
// create the are we can draw in
GtkDrawingArea* drawingArea;
drawingArea = (GtkDrawingArea*) gtk_drawing_area_new();