diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2021-11-16 13:38:42 +0100 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2021-11-16 14:57:02 +0100 |
commit | c4d58cb9ad154f536447f842d0f3026af3e4c976 (patch) | |
tree | 238aedebaf8ab62102c40efa00ceeac0b10628d0 | |
parent | 9bebb0a3fecb8fa8bca102f48d10e09e494a6b4d (diff) | |
download | fiv-c4d58cb9ad154f536447f842d0f3026af3e4c976.tar.gz fiv-c4d58cb9ad154f536447f842d0f3026af3e4c976.tar.xz fiv-c4d58cb9ad154f536447f842d0f3026af3e4c976.zip |
Prefer the dark theme variant
-rw-r--r-- | fastiv-view.c | 10 | ||||
-rw-r--r-- | fastiv.c | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/fastiv-view.c b/fastiv-view.c index f55fd49..9ed93f8 100644 --- a/fastiv-view.c +++ b/fastiv-view.c @@ -188,8 +188,16 @@ fastiv_view_realize(GtkWidget *widget) &attributes, GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL); // Without the following call, or the rendering mode set to "recording", - // RGB30 degrades to RGB24. It completely breaks the Quartz backend. + // RGB30 degrades to RGB24, because gdk_window_begin_paint_internal() + // creates backing stores using cairo_content_t constants. + // + // It completely breaks the Quartz backend, so limit it to X11. #ifdef GDK_WINDOWING_X11 + // FIXME: This causes some flicker while scrolling, because it disables + // double buffering, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2560 + // + // If GTK+'s OpenGL integration fails to deliver, we need to use the window + // directly, sidestepping the toolkit entirely. if (GDK_IS_X11_WINDOW(window)) gdk_window_ensure_native(window); #endif // GDK_WINDOWING_X11 @@ -394,6 +394,12 @@ main(int argc, char *argv[]) gtk_container_add(GTK_CONTAINER(g.view_scroller), g.view); gtk_widget_show_all(g.view_scroller); + // Maybe our custom widgets should derive colours from the theme instead. + gtk_scrolled_window_set_overlay_scrolling( + GTK_SCROLLED_WINDOW(g.view_scroller), FALSE); + g_object_set(gtk_settings_get_default(), + "gtk-application-prefer-dark-theme", TRUE, NULL); + g.browser_scroller = gtk_scrolled_window_new(NULL, NULL); g.browser = g_object_new(FASTIV_TYPE_BROWSER, NULL); gtk_widget_set_vexpand(g.browser, TRUE); |