Skip to content

Commit

Permalink
Add dark mode support
Browse files Browse the repository at this point in the history
This was previously done via a plugin. It is now controlled via
libxapp/xdg-desktop-portal-xapp.
  • Loading branch information
clefebvre committed May 30, 2023
1 parent 00eb314 commit 0b31bd9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 12 deletions.
4 changes: 2 additions & 2 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Build-Depends: debhelper-compat (= 12),
liblcms2-dev,
libpeas-dev (>= 0.7.4),
librsvg2-dev (>= 2.36.2),
libxapp-dev (>= 1.9.0),
libxapp-dev (>= 2.5.0),
libxml2-dev (>= 2.0),
meson (>= 0.49.0),
shared-mime-info (>= 0.20),
Expand All @@ -33,7 +33,7 @@ Architecture: any
Depends: gir1.2-peas-1.0,
gsettings-desktop-schemas (>= 2.91.92),
shared-mime-info (>= 0.20),
xapps-common (>= 2.2.7),
xapps-common (>= 2.5.0),
${misc:Depends},
${shlibs:Depends}
Recommends: librsvg2-common, webp-pixbuf-loader, heif-gdk-pixbuf, yelp
Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ pixbuf = dependency('gdk-pixbuf-2.0', version: '>= 2.19.1')
X11 = dependency('x11')
zlib = dependency('zlib')
cinnamon_desktop = dependency('cinnamon-desktop', version: '>= 3.2.0')
xapp = dependency('xapp', version: '>= 1.9.0')
xapp = dependency('xapp', version: '>= 2.5.0')

cc = meson.get_compiler('c')

Expand Down
3 changes: 3 additions & 0 deletions src/xviewer-application-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <glib-object.h>

#include <libpeas/peas-extension-set.h>
#include <libxapp/xapp-dark-mode-manager.h>

#include "xviewer-application.h"
#include "xviewer-plugin-engine.h"
Expand All @@ -43,6 +44,8 @@ struct _XviewerApplicationPrivate {

GSettings *ui_settings;

XAppDarkModeManager *dark_mode_manager;

PeasExtensionSet *extensions;
};

Expand Down
21 changes: 12 additions & 9 deletions src/xviewer-application.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include <glib/gstdio.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <libxapp/xapp-dark-mode-manager.h>

#if HAVE_EXEMPI
#include <exempi/xmp.h>
Expand Down Expand Up @@ -254,7 +255,6 @@ xviewer_application_startup (GApplication *application)
XviewerApplication *app = XVIEWER_APPLICATION (application);
GError *error = NULL;
GFile *css_file;
GtkSettings *settings;
GtkCssProvider *provider;
gboolean shows_app_menu;
gboolean shows_menubar;
Expand Down Expand Up @@ -292,14 +292,6 @@ xviewer_application_startup (GApplication *application)
gtk_window_set_default_icon_name ("xviewer");
g_set_application_name (_("Image Viewer"));

settings = gtk_settings_get_default ();

if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "XFCE") != 0) {
g_object_set (G_OBJECT (settings),
"gtk-application-prefer-dark-theme", TRUE,
NULL);
}

g_object_get (gtk_settings_get_default (),
"gtk-shell-shows-app-menu", &shows_app_menu,
"gtk-shell-shows-menubar", &shows_menubar,
Expand Down Expand Up @@ -371,6 +363,10 @@ xviewer_application_finalize (GObject *object)

g_clear_object (&priv->ui_settings);

if (priv->dark_mode_manager) {
g_clear_object (&priv->dark_mode_manager);
}

xviewer_application_save_accelerators ();
}

Expand Down Expand Up @@ -445,6 +441,13 @@ xviewer_application_init (XviewerApplication *xviewer_application)
priv->ui_settings = g_settings_new (XVIEWER_CONF_UI);

xviewer_application_load_accelerators ();

if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "XFCE") != 0) {
priv->dark_mode_manager = xapp_dark_mode_manager_new (TRUE);
}
else {
priv->dark_mode_manager = NULL;
}
}

/**
Expand Down

0 comments on commit 0b31bd9

Please sign in to comment.