From 3d06d8b6dd1a26c26f34816a347524aeff3430b2 Mon Sep 17 00:00:00 2001 From: lukefromdc Date: Fri, 15 Dec 2023 02:06:53 -0500 Subject: Manage desktop backgrounds when running in wayland *Draw the background on the desktop window, using the same code as on navigation windows to bypass the no-root-window issue. *Works from caja's "Change Desktop Background" menu item, from caja-extensions "set as wallpaper" and with changing the background in dconf-editor. *All background options available in x11 supported in wayland, UI is new for wayland *Apply changes immediately, keep the dialog open until closed by user *Let users see changes in realtime while keeping the dialog open *Preview both colors and pictures *Add ability to apply changes from either combobox including using any image saved from when dialog was opened *Add tooltips to the buttons, filepicker, and comboboxes --- src/caja-desktop-window.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/caja-desktop-window.c') diff --git a/src/caja-desktop-window.c b/src/caja-desktop-window.c index 6188fa63..662c2472 100644 --- a/src/caja-desktop-window.c +++ b/src/caja-desktop-window.c @@ -390,10 +390,12 @@ realize (GtkWidget *widget) G_CALLBACK (caja_desktop_window_screen_size_changed), window); } +/* Should only reached in x11*/ static gboolean draw (GtkWidget *widget, cairo_t *cr) { + g_assert (GDK_IS_X11_DISPLAY (gdk_display_get_default())); eel_background_draw (widget, cr); return GTK_WIDGET_CLASS (caja_desktop_window_parent_class)->draw (widget, cr); } @@ -415,6 +417,9 @@ caja_desktop_window_class_init (CajaDesktopWindowClass *klass) wclass->realize = realize; wclass->unrealize = unrealize; wclass->map = map; + /*Drawing the desktop background from here gives a black background in wayland + *So manage desktop background from the icon container as in navigation windows + */ if (GDK_IS_X11_DISPLAY (gdk_display_get_default())) wclass->draw = draw; -- cgit v1.2.1