[Xfce4-commits] [xfce/xfdesktop] 01/01: Add Next Background option (Bug #12261)
noreply at xfce.org
noreply at xfce.org
Sun May 19 19:59:11 CEST 2019
This is an automated email from the git hooks/post-receive script.
a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository xfce/xfdesktop.
commit 1967da03f68984dcf3e24e51df4e0005f37b162e
Author: Theo Linkspfeifer <lastonestanding at tutanota.com>
Date: Sun May 19 14:58:37 2019 -0300
Add Next Background option (Bug #12261)
---
src/xfce-desktop.c | 26 +++++++++++++++++++++-----
src/xfce-desktop.h | 2 ++
src/xfdesktop-file-icon-manager.c | 24 ++++++++++++++++++++++++
3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/src/xfce-desktop.c b/src/xfce-desktop.c
index 1ca426c..099efc0 100644
--- a/src/xfce-desktop.c
+++ b/src/xfce-desktop.c
@@ -1935,13 +1935,10 @@ xfce_desktop_refresh(XfceDesktop *desktop, gboolean advance_wallpaper)
backdrop_changed_cb(backdrop, desktop);
}
}
-
- /* If we're only advancing the wallpaper we can exit here */
- if(advance_wallpaper)
- return;
}
-void xfce_desktop_arrange_icons(XfceDesktop *desktop)
+void
+xfce_desktop_arrange_icons(XfceDesktop *desktop)
{
g_return_if_fail(XFCE_IS_DESKTOP(desktop));
@@ -1951,3 +1948,22 @@ void xfce_desktop_arrange_icons(XfceDesktop *desktop)
xfdesktop_icon_view_sort_icons(XFDESKTOP_ICON_VIEW(desktop->priv->icon_view));
#endif
}
+
+gboolean
+xfce_desktop_get_cycle_backdrop(XfceDesktop *desktop)
+{
+ gint monitor;
+ XfceWorkspace *workspace;
+ XfceBackdrop *backdrop;
+
+ g_return_val_if_fail(XFCE_IS_DESKTOP(desktop), FALSE);
+
+ xfce_gdk_screen_get_active(&monitor);
+ if(&monitor == NULL)
+ return FALSE;
+
+ workspace = desktop->priv->workspaces[desktop->priv->current_workspace];
+ backdrop = xfce_workspace_get_backdrop(workspace, monitor);
+
+ return xfce_backdrop_get_cycle_backdrop(backdrop);
+}
diff --git a/src/xfce-desktop.h b/src/xfce-desktop.h
index a624fd8..509ff6a 100644
--- a/src/xfce-desktop.h
+++ b/src/xfce-desktop.h
@@ -115,6 +115,8 @@ void xfce_desktop_refresh(XfceDesktop *desktop, gboolean advance_wallpaper);
void xfce_desktop_arrange_icons(XfceDesktop *desktop);
+gboolean xfce_desktop_get_cycle_backdrop(XfceDesktop *desktop);
+
G_END_DECLS
#endif
diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c
index cda73b1..22ff35c 100644
--- a/src/xfdesktop-file-icon-manager.c
+++ b/src/xfdesktop-file-icon-manager.c
@@ -967,6 +967,14 @@ xfdesktop_file_icon_menu_arrange_icons(GtkWidget *widget,
}
static void
+xfdesktop_file_icon_menu_next_background(GtkWidget *widget,
+ gpointer user_data)
+{
+ XfdesktopFileIconManager *fmanager = XFDESKTOP_FILE_ICON_MANAGER(user_data);
+ xfce_desktop_refresh(XFCE_DESKTOP(fmanager->priv->desktop), TRUE);
+}
+
+static void
xfdesktop_file_icon_menu_properties(GtkWidget *widget,
gpointer user_data)
{
@@ -1844,6 +1852,17 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
G_CALLBACK(xfdesktop_file_icon_menu_arrange_icons),
fmanager);
+ if(xfce_desktop_get_cycle_backdrop(XFCE_DESKTOP(fmanager->priv->desktop))) {
+ /* show next background option */
+ img = gtk_image_new_from_icon_name("go-next", GTK_ICON_SIZE_MENU);
+ mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Next Background"), img);
+ gtk_widget_show(mi);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+ g_signal_connect(G_OBJECT(mi), "activate",
+ G_CALLBACK(xfdesktop_file_icon_menu_next_background),
+ fmanager);
+ }
+
/* Desktop settings window */
img = gtk_image_new_from_icon_name("preferences-desktop-wallpaper", GTK_ICON_SIZE_MENU);
mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Desktop _Settings..."), img);
@@ -1851,6 +1870,11 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
g_signal_connect(G_OBJECT(mi), "activate",
G_CALLBACK(xfdesktop_settings_launch), fmanager);
+
+ /* Separator */
+ mi = gtk_separator_menu_item_new();
+ gtk_widget_show(mi);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
}
/* Properties - applies to desktop window or an icon on the desktop */
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list