[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