diff options
author | Photon89 | 2022-12-25 20:34:35 +0100 |
---|---|---|
committer | Photon89 | 2022-12-25 20:34:35 +0100 |
commit | 2487bcbbe2f2be5e149d93cf9b78c3726f7ffdbc (patch) | |
tree | 0c1b340adf14079c3a9c383c775c96792011d50b | |
parent | d573743f1a0ef405f2fbae3aefd8bb5c2aec44fd (diff) | |
download | aur-2487bcbbe2f2be5e149d93cf9b78c3726f7ffdbc.tar.gz |
Update to 4.18
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 17 | ||||
-rw-r--r-- | xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch | 698 | ||||
-rw-r--r-- | xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch | 116 | ||||
-rw-r--r-- | xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch | 265 |
5 files changed, 277 insertions, 833 deletions
@@ -1,6 +1,6 @@ pkgbase = xfce4-panel-compiz pkgdesc = Panel for the Xfce desktop environment with fixes for Compiz - pkgver = 4.16.4 + pkgver = 4.18.0 pkgrel = 1 url = https://www.xfce.org/ arch = i686 @@ -19,13 +19,11 @@ pkgbase = xfce4-panel-compiz depends = libdbusmenu-gtk3 depends = hicolor-icon-theme depends = desktop-file-utils - provides = xfce4-panel=4.16.4 + provides = xfce4-panel=4.18.0 conflicts = xfce4-panel - source = https://archive.xfce.org/src/xfce/xfce4-panel/4.16/xfce4-panel-4.16.4.tar.bz2 - source = xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch - source = xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch - sha256sums = 1faf51a81a655244dba4c6ac9dd33e3ab0d78a9ee096c218b38fed6642c9cd84 - sha256sums = 1bf92366667f38197ae882c011f2b0380c4548278b419fd004f9c21aab1a587e - sha256sums = c01adcba7bfe94e84253c5748dcab6c9e2b0d5da7d6c7aab64114a70513eafbf + source = https://archive.xfce.org/src/xfce/xfce4-panel/4.18/xfce4-panel-4.18.0.tar.bz2 + source = xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch + sha256sums = be80023fd546587831bab25ded15ae4c9e346289a75744b6ba4cf4ee53794710 + sha256sums = b88569bba5cb5b26c6347d3f0e211244e83868622d1495068bfcf4c9f38cc332 pkgname = xfce4-panel-compiz @@ -5,7 +5,7 @@ pkgname=xfce4-panel-compiz _realname=xfce4-panel -pkgver=4.16.4 +pkgver=4.18.0 pkgrel=1 pkgdesc="Panel for the Xfce desktop environment with fixes for Compiz" arch=('i686' 'x86_64') @@ -18,21 +18,16 @@ makedepends=('intltool' 'gobject-introspection' 'vala' 'xfce4-dev-tools') provides=("$_realname=$pkgver") conflicts=("$_realname") source=("https://archive.xfce.org/src/xfce/$_realname/${pkgver%.*}/$_realname-$pkgver.tar.bz2" - "xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch" - "xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch") -sha256sums=('1faf51a81a655244dba4c6ac9dd33e3ab0d78a9ee096c218b38fed6642c9cd84' - '1bf92366667f38197ae882c011f2b0380c4548278b419fd004f9c21aab1a587e' - 'c01adcba7bfe94e84253c5748dcab6c9e2b0d5da7d6c7aab64114a70513eafbf') - + "xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch") +sha256sums=('be80023fd546587831bab25ded15ae4c9e346289a75744b6ba4cf4ee53794710' + 'b88569bba5cb5b26c6347d3f0e211244e83868622d1495068bfcf4c9f38cc332') + prepare() { cd "$srcdir/$_realname-$pkgver" # See https://gitlab.xfce.org/xfce/xfwm4/-/issues/6#note_23168 echo "Applying xfce4-panel-$pkgver-invert_scroll_workspaces-1.patch:" - patch -p1 -i "$srcdir/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch" - - echo "Applying xfce4-panel-$pkgver-wrap_workspaces_ui-1.patch:" - patch -p1 -i "$srcdir/xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch" + patch -p1 -i "$srcdir/xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch" } build() { diff --git a/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch b/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch deleted file mode 100644 index 282abd41ca0e..000000000000 --- a/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch +++ /dev/null @@ -1,698 +0,0 @@ -diff -Naur xfce4-panel-4.16.1-orig/plugins/pager/Makefile.in xfce4-panel-4.16.1/plugins/pager/Makefile.in ---- xfce4-panel-4.16.1-orig/plugins/pager/Makefile.in 2021-01-27 08:30:01.000000000 +0100 -+++ xfce4-panel-4.16.1/plugins/pager/Makefile.in 2021-01-31 22:53:25.997466370 +0100 -@@ -894,8 +894,8 @@ - - @INTLTOOL_DESKTOP_RULE@ - --@MAINTAINER_MODE_TRUE@pager-dialog_ui.h: pager-dialog.glade --@MAINTAINER_MODE_TRUE@ $(AM_V_GEN) xdt-csource --static --strip-comments --strip-content --name=pager_dialog_ui $< >$@ -+pager-dialog_ui.h: pager-dialog.glade -+ $(AM_V_GEN) xdt-csource --static --strip-comments --strip-content --name=pager_dialog_ui $< >$@ - - # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: - -diff -Naur xfce4-panel-4.16.1-orig/plugins/pager/pager.c xfce4-panel-4.16.1/plugins/pager/pager.c ---- xfce4-panel-4.16.1-orig/plugins/pager/pager.c 2021-01-27 08:21:23.000000000 +0100 -+++ xfce4-panel-4.16.1/plugins/pager/pager.c 2021-01-31 22:53:26.001466391 +0100 -@@ -53,8 +53,11 @@ - guint prop_id, - const GValue *value, - GParamSpec *pspec); --static gboolean pager_plugin_scroll_event (GtkWidget *widget, -+static gboolean pager_buttons_scroll_event (GtkWidget *widget, - GdkEventScroll *event); -+static gboolean pager_plugin_scroll_event (GtkWidget *widget, -+ GdkEventScroll *event, -+ gpointer user_data); - static void pager_plugin_drag_begin_event (GtkWidget *widget, - GdkDragContext *context, - gpointer user_data); -@@ -74,6 +77,7 @@ - static void pager_plugin_configure_workspace_settings (GtkWidget *button); - static void pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin); - static void pager_plugin_screen_layout_changed (PagerPlugin *plugin); -+static void pager_plugin_get_ratio (PagerPlugin *plugin); - static void pager_plugin_get_preferred_width (GtkWidget *widget, - gint *minimum_width, - gint *natural_width); -@@ -101,15 +105,15 @@ - XfcePanelPlugin __parent__; - - GtkWidget *pager; -- GObject *numbering_switch; -- GObject *numbering_label; -- GObject *scrolling_switch; -- GObject *scrolling_label; -+ GObject *numbering_toggle; -+ GObject *scrolling_toggle; -+ GObject *invert_scrolling_toggle; - - WnckScreen *wnck_screen; - - /* settings */ - guint scrolling : 1; -+ guint invert_scrolling : 1; - guint wrap_workspaces : 1; - guint miniature_view : 1; - gint rows; -@@ -121,6 +125,7 @@ - { - PROP_0, - PROP_WORKSPACE_SCROLLING, -+ PROP_INVERT_WORKSPACE_SCROLLING, - PROP_WRAP_WORKSPACES, - PROP_MINIATURE_VIEW, - PROP_ROWS, -@@ -147,7 +152,7 @@ - gobject_class->set_property = pager_plugin_set_property; - - widget_class = GTK_WIDGET_CLASS (klass); -- widget_class->scroll_event = pager_plugin_scroll_event; -+ widget_class->scroll_event = pager_buttons_scroll_event; - widget_class->get_preferred_width = pager_plugin_get_preferred_width; - widget_class->get_preferred_width_for_height = pager_plugin_get_preferred_width_for_height; - widget_class->get_preferred_height = pager_plugin_get_preferred_height; -@@ -175,6 +180,13 @@ - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property (gobject_class, -+ PROP_INVERT_WORKSPACE_SCROLLING, -+ g_param_spec_boolean ("workspace-invert-scrolling", -+ NULL, NULL, -+ TRUE, -+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -+ -+ g_object_class_install_property (gobject_class, - PROP_MINIATURE_VIEW, - g_param_spec_boolean ("miniature-view", - NULL, NULL, -@@ -203,6 +215,7 @@ - { - plugin->wnck_screen = NULL; - plugin->scrolling = TRUE; -+ plugin->invert_scrolling = FALSE; - plugin->wrap_workspaces = FALSE; - plugin->miniature_view = TRUE; - plugin->rows = 1; -@@ -225,6 +238,12 @@ - { - case PROP_WORKSPACE_SCROLLING: - g_value_set_boolean (value, plugin->scrolling); -+ -+ pager_plugin_screen_layout_changed (plugin); -+ break; -+ -+ case PROP_INVERT_WORKSPACE_SCROLLING: -+ g_value_set_boolean (value, plugin->invert_scrolling); - break; - - case PROP_WRAP_WORKSPACES: -@@ -267,6 +286,10 @@ - plugin->scrolling = g_value_get_boolean (value); - break; - -+ case PROP_INVERT_WORKSPACE_SCROLLING: -+ plugin->invert_scrolling = g_value_get_boolean (value); -+ break; -+ - case PROP_WRAP_WORKSPACES: - plugin->wrap_workspaces = g_value_get_boolean (value); - break; -@@ -346,10 +369,20 @@ - - - static gboolean -+pager_buttons_scroll_event (GtkWidget *widget, -+ GdkEventScroll *event) -+{ -+ pager_plugin_scroll_event(widget, event, XFCE_PAGER_PLUGIN (widget)); -+} -+ -+ -+ -+static gboolean - pager_plugin_scroll_event (GtkWidget *widget, -- GdkEventScroll *event) -+ GdkEventScroll *event, -+ gpointer user_data) - { -- PagerPlugin *plugin = XFCE_PAGER_PLUGIN (widget); -+ PagerPlugin *plugin = user_data; - WnckWorkspace *active_ws; - WnckWorkspace *new_ws; - gint active_n; -@@ -381,31 +414,91 @@ - active_ws = wnck_screen_get_active_workspace (plugin->wnck_screen); - active_n = wnck_workspace_get_number (active_ws); - -- if (scrolling_direction == GDK_SCROLL_UP -- || scrolling_direction == GDK_SCROLL_LEFT) -- active_n--; -- else -- active_n++; -- - n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen) - 1; - -- if (plugin->wrap_workspaces == TRUE) -+ if (n_workspaces == 0) - { -- /* wrap around */ -- if (active_n < 0) -- active_n = n_workspaces; -- else if (active_n > n_workspaces) -- active_n = 0; -+ /* do we have only one workspace or are we in viewport mode (compiz) */ -+ if (wnck_workspace_is_virtual (active_ws)) -+ { -+ /* viewport mode */ -+ int viewport_x; -+ int viewport_y; -+ int screen_width, screen_height; -+ int workspace_width, workspace_height; -+ int scroll_direction; -+ -+ /* total workspacesize, e.g. 5120x1024 (5120=4x1280) */ -+ workspace_width = wnck_workspace_get_width (active_ws); -+ workspace_height = wnck_workspace_get_height (active_ws); -+ /* current screensize, e.g. 1280x1024 */ -+ screen_width = wnck_screen_get_width (plugin->wnck_screen); -+ screen_height = wnck_screen_get_height (plugin->wnck_screen); -+ /* current viewportcoordinates, e.g. 0,0 or 1280,0 */ -+ viewport_x = wnck_workspace_get_viewport_x (active_ws); -+ viewport_y = wnck_workspace_get_viewport_y (active_ws); -+ -+ if (scrolling_direction == GDK_SCROLL_UP -+ || scrolling_direction == GDK_SCROLL_LEFT) -+ scroll_direction = (plugin->invert_scrolling ? +1 : -1); -+ else -+ scroll_direction = (plugin->invert_scrolling ? -1 : +1); -+ -+ /* viewportscroll is only in x-direction */ -+ viewport_x = viewport_x + (scroll_direction * screen_width); -+ -+ if (plugin->wrap_workspaces == TRUE) -+ { -+ /* wrap if needed */ -+ if (viewport_x > workspace_width) -+ viewport_x = 0; -+ if (viewport_x < 0) -+ viewport_x = workspace_width - screen_width; -+ } -+ else if (viewport_x < 0 || viewport_x >= workspace_width) -+ { -+ /* we do not need to do anything */ -+ return TRUE; -+ } -+ -+ wnck_screen_move_viewport (plugin->wnck_screen, -+ viewport_x, viewport_y); -+ } -+ else -+ { -+ /* only one workspace, no need to do anything */ -+ return TRUE; -+ } -+ -+ - } -- else if (active_n < 0 || active_n > n_workspaces ) -+ else - { -- /* we do not need to do anything */ -- return TRUE; -- } -+ /* real workspaces */ -+ if (scrolling_direction == GDK_SCROLL_UP -+ || scrolling_direction == GDK_SCROLL_LEFT) -+ active_n = active_n + (plugin->invert_scrolling ? +1 : -1); -+ else -+ active_n = active_n + (plugin->invert_scrolling ? -1 : +1); -+ -+ if (plugin->wrap_workspaces == TRUE) -+ { -+ /* wrap around */ -+ if (active_n < 0) -+ active_n = n_workspaces; -+ else if (active_n > n_workspaces) -+ active_n = 0; -+ } -+ else if (active_n < 0 || active_n > n_workspaces ) -+ { -+ /* we do not need to do anything */ -+ return TRUE; -+ } - -- new_ws = wnck_screen_get_workspace (plugin->wnck_screen, active_n); -- if (new_ws != NULL && active_ws != new_ws) -- wnck_workspace_activate (new_ws, event->time); -+ new_ws = wnck_screen_get_workspace (plugin->wnck_screen, active_n); -+ if (new_ws != NULL && active_ws != new_ws) -+ wnck_workspace_activate (new_ws, event->time); -+ } - - return TRUE; - } -@@ -466,13 +559,13 @@ - g_message ("Setting the pager rows returned false. Maybe the setting is not applied."); - - wnck_pager_set_orientation (WNCK_PAGER (plugin->pager), orientation); --G_GNUC_BEGIN_IGNORE_DEPRECATIONS -- plugin->ratio = (gfloat) gdk_screen_width () / (gfloat) gdk_screen_height (); --G_GNUC_END_IGNORE_DEPRECATIONS - g_signal_connect_after (G_OBJECT (plugin->pager), "drag-begin", - G_CALLBACK (pager_plugin_drag_begin_event), plugin); - g_signal_connect_after (G_OBJECT (plugin->pager), "drag-end", - G_CALLBACK (pager_plugin_drag_end_event), plugin); -+ /* overwrite default WnckPager widget scroll-event */ -+ g_signal_connect(G_OBJECT(plugin->pager), "scroll-event", -+ G_CALLBACK(pager_plugin_scroll_event), plugin); - } - else - { -@@ -528,6 +621,7 @@ - const PanelProperty properties[] = - { - { "workspace-scrolling", G_TYPE_BOOLEAN }, -+ { "workspace-invert-scrolling", G_TYPE_BOOLEAN }, - { "wrap-workspaces", G_TYPE_BOOLEAN }, - { "miniature-view", G_TYPE_BOOLEAN }, - { "rows", G_TYPE_UINT }, -@@ -681,6 +775,14 @@ - - - static void -+workspace_scrolling_toggled (GtkWidget *widget, GtkWidget *invert) -+{ -+ gtk_widget_set_sensitive (invert, gtk_toggle_button_get_active GTK_TOGGLE_BUTTON (widget)); -+} -+ -+ -+ -+static void - pager_plugin_configure_plugin (XfcePanelPlugin *panel_plugin) - { - PagerPlugin *plugin = XFCE_PAGER_PLUGIN (panel_plugin); -@@ -720,30 +822,28 @@ - G_OBJECT (object), "value", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - -- plugin->scrolling_label = gtk_builder_get_object (builder, "workspace-scrolling-label"); -- g_object_bind_property (G_OBJECT (plugin), "miniature-view", -- G_OBJECT (plugin->scrolling_label), "visible", -- G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT | G_BINDING_INVERT_BOOLEAN); -- plugin->scrolling_switch = gtk_builder_get_object (builder, "workspace-scrolling"); -- panel_return_if_fail (GTK_IS_SWITCH (plugin->scrolling_switch)); -+ plugin->numbering_toggle = gtk_builder_get_object (builder, "numbering"); -+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (plugin->numbering_toggle)); - g_object_bind_property (G_OBJECT (plugin), "miniature-view", -- G_OBJECT (plugin->scrolling_switch), "visible", -+ G_OBJECT (plugin->numbering_toggle), "sensitive", - G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT | G_BINDING_INVERT_BOOLEAN); -+ g_object_bind_property (G_OBJECT (plugin), "numbering", -+ G_OBJECT (plugin->numbering_toggle), "active", -+ G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); -+ -+ plugin->scrolling_toggle = gtk_builder_get_object (builder, "workspace-scrolling"); -+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (plugin->scrolling_toggle)); - g_object_bind_property (G_OBJECT (plugin), "workspace-scrolling", -- G_OBJECT (plugin->scrolling_switch), "active", -+ G_OBJECT (plugin->scrolling_toggle), "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - -- plugin->numbering_label = gtk_builder_get_object (builder, "numbering-label"); -- g_object_bind_property (G_OBJECT (plugin), "miniature-view", -- G_OBJECT (plugin->numbering_label), "visible", -- G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT | G_BINDING_INVERT_BOOLEAN); -- plugin->numbering_switch = gtk_builder_get_object (builder, "numbering"); -- panel_return_if_fail (GTK_IS_SWITCH (plugin->numbering_switch)); -- g_object_bind_property (G_OBJECT (plugin), "miniature-view", -- G_OBJECT (plugin->numbering_switch), "visible", -- G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT | G_BINDING_INVERT_BOOLEAN); -- g_object_bind_property (G_OBJECT (plugin), "numbering", -- G_OBJECT (plugin->numbering_switch), "active", -+ plugin->invert_scrolling_toggle = gtk_builder_get_object (builder, "workspace-invert-scrolling"); -+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (plugin->invert_scrolling_toggle)); -+ g_object_bind_property (G_OBJECT (plugin), "workspace-scrolling", -+ G_OBJECT (plugin->invert_scrolling_toggle), "sensitive", -+ G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT); -+ g_object_bind_property (G_OBJECT (plugin), "workspace-invert-scrolling", -+ G_OBJECT (plugin->invert_scrolling_toggle), "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - /* update the rows limit */ -@@ -753,6 +853,35 @@ - } - - -+ -+static void -+pager_plugin_get_ratio (PagerPlugin *plugin) -+{ -+ WnckWorkspace *active_ws; -+ GdkRectangle geometry = {0}; -+ -+ panel_return_if_fail (XFCE_IS_PAGER_PLUGIN (plugin)); -+ panel_return_if_fail (WNCK_IS_SCREEN (plugin->wnck_screen)); -+ -+ /* Check if we ware in viewport mode */ -+ active_ws = wnck_screen_get_active_workspace (plugin->wnck_screen); -+ if (wnck_screen_get_workspace_count (plugin->wnck_screen) == 1 && -+ wnck_workspace_is_virtual (active_ws)) -+ { -+ /* Calculate the ratio for a virtual workspace as used by Compiz */ -+ plugin->ratio = (gfloat) wnck_workspace_get_width (active_ws) / -+ (gfloat) wnck_workspace_get_height (active_ws); -+ } -+ else -+ { -+ /* Calculate the ratio for a non-virtual workspace */ -+ gdk_monitor_get_geometry(gdk_display_get_primary_monitor(gdk_display_get_default()), &geometry); -+ plugin->ratio = (gfloat) geometry.width / (gfloat) geometry.height; -+ } -+} -+ -+ -+ - static void - pager_plugin_get_preferred_width (GtkWidget *widget, - gint *minimum_width, -@@ -775,6 +904,9 @@ - { - n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen); - n_cols = MAX (1, (n_workspaces + plugin->rows - 1) / plugin->rows); -+ -+ pager_plugin_get_ratio(plugin); -+ - min_width = nat_width = (gint) (xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin)) / plugin->rows * plugin->ratio * n_cols); - } - -@@ -806,6 +938,9 @@ - { - n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen); - n_cols = MAX (1, (n_workspaces + plugin->rows - 1) / plugin->rows); -+ -+ pager_plugin_get_ratio(plugin); -+ - if (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL) - min_height = nat_height = (gint) (xfce_panel_plugin_get_size (XFCE_PANEL_PLUGIN (plugin)) / plugin->rows / plugin->ratio * n_cols); - else /* (mode == XFCE_PANEL_PLUGIN_MODE_DESKBAR) */ -diff -Naur xfce4-panel-4.16.1-orig/plugins/pager/pager-dialog.glade xfce4-panel-4.16.1/plugins/pager/pager-dialog.glade ---- xfce4-panel-4.16.1-orig/plugins/pager/pager-dialog.glade 2021-01-27 08:20:48.000000000 +0100 -+++ xfce4-panel-4.16.1/plugins/pager/pager-dialog.glade 2021-01-31 22:53:26.001466391 +0100 -@@ -115,111 +115,64 @@ - <property name="position">0</property> - </packing> - </child> -+ -+ <!-- Switcher options --> - <child> -- <object class="GtkGrid"> -+ <object class="GtkBox"> - <property name="visible">True</property> - <property name="can_focus">False</property> -+ <property name="spacing">6</property> -+ <property name="orientation">vertical</property> - <property name="border_width">6</property> -- <property name="row_spacing">6</property> -- <property name="column_spacing">12</property> -+ -+ <!-- Appearance label --> - <child> -- <object class="GtkLabel" id="label4"> -+ <object class="GtkLabel" id="label5"> - <property name="visible">True</property> - <property name="can_focus">False</property> -- <property name="margin_left">12</property> -- <property name="label" translatable="yes">Number of _rows:</property> -- <property name="use_underline">True</property> -- <property name="xalign">0</property> -- </object> -- <packing> -- <property name="left_attach">0</property> -- <property name="top_attach">1</property> -- </packing> -- </child> -- <child> -- <object class="GtkSpinButton" id="spin1"> -- <property name="visible">True</property> -- <property name="can_focus">True</property> -- <property name="halign">end</property> -- <property name="adjustment">rows</property> -- <property name="snap_to_ticks">True</property> -- <property name="numeric">True</property> -- <property name="update_policy">if-valid</property> -- </object> -- <packing> -- <property name="left_attach">1</property> -- <property name="top_attach">1</property> -- </packing> -- </child> -- <child> -- <object class="GtkSwitch" id="numbering"> -- <property name="visible">True</property> -- <property name="can_focus">True</property> -- <property name="halign">end</property> -- <property name="valign">center</property> -- </object> -- <packing> -- <property name="left_attach">1</property> -- <property name="top_attach">2</property> -- </packing> -- </child> -- <child> -- <object class="GtkSwitch" id="workspace-scrolling"> -- <property name="visible">True</property> -- <property name="can_focus">True</property> -- <property name="halign">end</property> -- <property name="valign">center</property> -- </object> -- <packing> -- <property name="left_attach">1</property> -- <property name="top_attach">3</property> -- </packing> -- </child> -- <child> -- <object class="GtkLabel" id="numbering-label"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="margin_left">12</property> -- <property name="label" translatable="yes">Show workspace number</property> -- <property name="xalign">0</property> -- </object> -- <packing> -- <property name="left_attach">0</property> -- <property name="top_attach">2</property> -- </packing> -- </child> -- <child> -- <object class="GtkLabel" id="workspace-scrolling-label"> -- <property name="visible">True</property> -- <property name="can_focus">False</property> -- <property name="margin_left">12</property> -- <property name="label" translatable="yes">Switch workspaces using the mouse wheel</property> -+ <property name="label" translatable="yes"><b>Appearance</b></property> -+ <property name="use_markup">True</property> - <property name="xalign">0</property> -+ <property name="margin_left">6</property> -+ <property name="margin_top">6</property> - </object> - <packing> -- <property name="left_attach">0</property> -- <property name="top_attach">3</property> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">0</property> - </packing> - </child> -+ -+ <!-- Grid for combobox and spinbox --> - <child> -- <object class="GtkBox"> -+ <object class="GtkGrid"> - <property name="visible">True</property> - <property name="can_focus">False</property> -- <property name="spacing">12</property> -+ <property name="border_width">6</property> -+ <property name="row_spacing">6</property> -+ <property name="column_spacing">12</property> -+ <property name="margin_left">6</property> -+ -+ <!-- Mode label --> - <child> -- <object class="GtkLabel" id="label5"> -+ <object class="GtkLabel" id="appearance-label"> - <property name="visible">True</property> - <property name="can_focus">False</property> -- <property name="label" translatable="yes"><b>Appearance</b></property> -+ <property name="label" translatable="yes">Mode:</property> -+ <property name="tooltip_text" translatable="yes">Switch between different workspace switcher layouts</property> - <property name="use_markup">True</property> -+ <property name="margin_left">6</property> - <property name="xalign">0</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> -- <property name="position">0</property> -+ <property name="left_attach">0</property> -+ <property name="top_attach">0</property> - </packing> - </child> -+ -+ <!-- Mode combobox --> - <child> - <object class="GtkComboBox" id="appearance"> - <property name="visible">True</property> -@@ -229,6 +182,7 @@ - <property name="model">appearance-model</property> - <property name="active">0</property> - <property name="id_column">1</property> -+ <property name="tooltip_text" translatable="yes">Switch between different workspace switcher layouts</property> - <child> - <object class="GtkCellRendererText" id="renderer"/> - <attributes> -@@ -239,25 +193,134 @@ - <packing> - <property name="expand">False</property> - <property name="fill">True</property> -- <property name="position">1</property> -+ <property name="left_attach">1</property> -+ <property name="top_attach">0</property> -+ </packing> -+ </child> -+ -+ <!-- Number of rows label --> -+ <child> -+ <object class="GtkLabel" id="label4"> -+ <property name="visible">True</property> -+ <property name="can_focus">False</property> -+ <property name="margin_left">6</property> -+ <property name="label" translatable="yes">Number of _rows:</property> -+ <property name="tooltip_text" translatable="yes">Number of rows in the workspace switcher</property> -+ <property name="use_underline">True</property> -+ <property name="xalign">0</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="left_attach">0</property> -+ <property name="top_attach">1</property> -+ </packing> -+ </child> -+ -+ <!-- Number of rows spinbutton --> -+ <child> -+ <object class="GtkSpinButton" id="spin1"> -+ <property name="visible">True</property> -+ <property name="can_focus">True</property> -+ <property name="halign">end</property> -+ <property name="adjustment">rows</property> -+ <property name="snap_to_ticks">True</property> -+ <property name="numeric">True</property> -+ <property name="update_policy">if-valid</property> -+ <property name="tooltip_text" translatable="yes">Number of rows in the workspace switcher</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="left_attach">1</property> -+ <property name="top_attach">1</property> - </packing> - </child> - </object> - <packing> -- <property name="left_attach">0</property> -- <property name="top_attach">0</property> -- <property name="width">2</property> -+ <property name="expand">True</property> -+ <property name="fill">True</property> -+ <property name="position">1</property> -+ </packing> -+ </child> -+ -+ <!-- Show workspace number toggle --> -+ <child> -+ <object class="GtkCheckButton" id="numbering"> -+ <property name="label" translatable="yes">Show workspace _number</property> -+ <property name="tooltip_text" translatable="yes">Show the workspace number in the button</property> -+ <property name="visible">True</property> -+ <property name="can_focus">True</property> -+ <property name="margin_left">12</property> -+ <property name="receives_default">False</property> -+ <property name="use_underline">True</property> -+ </object> -+ <packing> -+ <property name="expand">True</property> -+ <property name="fill">True</property> -+ <property name="position">2</property> -+ </packing> -+ </child> -+ -+ <!-- Behaviour label --> -+ <child> -+ <object class="GtkLabel" id="behaviour-label"> -+ <property name="visible">True</property> -+ <property name="can_focus">False</property> -+ <property name="label" translatable="yes"><b>Behaviour</b></property> -+ <property name="use_markup">True</property> -+ <property name="xalign">0</property> -+ <property name="margin_left">6</property> -+ <property name="margin_top">6</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">3</property> -+ </packing> -+ </child> -+ -+ <!-- Scrolling behaviour toggle --> -+ <child> -+ <object class="GtkCheckButton" id="workspace-scrolling"> -+ <property name="label" translatable="yes">Switch _workspaces using the mouse wheel</property> -+ <property name="tooltip_text" translatable="yes">Switch workspaces using the mouse wheel on the workspace switcher</property> -+ <property name="visible">True</property> -+ <property name="can_focus">True</property> -+ <property name="margin_left">12</property> -+ <property name="receives_default">False</property> -+ <property name="use_underline">True</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">4</property> -+ </packing> -+ </child> -+ -+ <!-- Invert scrolling toggle --> -+ <child> -+ <object class="GtkCheckButton" id="workspace-invert-scrolling"> -+ <property name="label" translatable="yes">_Invert mouse wheel workspace switching direction</property> -+ <property name="tooltip_text" translatable="yes">Invert the direction in which the workspaces are switched</property> -+ <property name="visible">True</property> -+ <property name="can_focus">True</property> -+ <property name="margin_left">24</property> -+ <property name="receives_default">False</property> -+ <property name="use_underline">True</property> -+ <property name="draw_indicator">True</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">5</property> - </packing> - </child> - </object> -- <packing> -- <property name="expand">True</property> -- <property name="fill">True</property> -- <property name="position">1</property> -- </packing> - </child> - </object> - </child> -+ - <action-widgets> - <action-widget response="0">help-button</action-widget> - <action-widget response="0">close-button</action-widget> diff --git a/xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch b/xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch deleted file mode 100644 index 25fb4d9b69c5..000000000000 --- a/xfce4-panel-4.16.1-wrap_workspaces_ui-1.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff -Naur xfce4-panel-4.16.1-orig/plugins/pager/pager.c xfce4-panel-4.16.1/plugins/pager/pager.c ---- xfce4-panel-4.16.1-orig/plugins/pager/pager.c 2021-01-31 22:04:20.023870874 +0100 -+++ xfce4-panel-4.16.1/plugins/pager/pager.c 2021-01-31 22:18:17.964139544 +0100 -@@ -107,7 +107,7 @@ - GtkWidget *pager; - GObject *numbering_toggle; - GObject *scrolling_toggle; -- GObject *invert_scrolling_toggle; -+ GObject *scroll_options_box; - - WnckScreen *wnck_screen; - -@@ -837,13 +837,23 @@ - G_OBJECT (plugin->scrolling_toggle), "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - -- plugin->invert_scrolling_toggle = gtk_builder_get_object (builder, "workspace-invert-scrolling"); -- panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (plugin->invert_scrolling_toggle)); -+ plugin->scroll_options_box = gtk_builder_get_object (builder, "scroll-options"); -+ panel_return_if_fail (GTK_IS_BOX (plugin->scroll_options_box)); - g_object_bind_property (G_OBJECT (plugin), "workspace-scrolling", -- G_OBJECT (plugin->invert_scrolling_toggle), "sensitive", -+ G_OBJECT (plugin->scroll_options_box), "sensitive", - G_BINDING_SYNC_CREATE | G_BINDING_DEFAULT); -+ -+ -+ object = gtk_builder_get_object (builder, "workspace-invert-scrolling"); -+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (object)); - g_object_bind_property (G_OBJECT (plugin), "workspace-invert-scrolling", -- G_OBJECT (plugin->invert_scrolling_toggle), "active", -+ G_OBJECT (object), "active", -+ G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); -+ -+ object = gtk_builder_get_object (builder, "wrap-workspaces"); -+ panel_return_if_fail (GTK_IS_TOGGLE_BUTTON (object)); -+ g_object_bind_property (G_OBJECT (plugin), "wrap-workspaces", -+ G_OBJECT (object), "active", - G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); - - /* update the rows limit */ -diff -Naur xfce4-panel-4.16.1-orig/plugins/pager/pager-dialog.glade xfce4-panel-4.16.1/plugins/pager/pager-dialog.glade ---- xfce4-panel-4.16.1-orig/plugins/pager/pager-dialog.glade 2021-01-31 22:04:20.023870874 +0100 -+++ xfce4-panel-4.16.1/plugins/pager/pager-dialog.glade 2021-01-31 22:18:31.664209323 +0100 -@@ -24,7 +24,7 @@ - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="can_focus">False</property> -- <property name="icon_name">org.xfce.workspaces</property> -+ <property name="icon_name">xfce4-workspaces</property> - </object> - <object class="GtkImage" id="image2"> - <property name="visible">True</property> -@@ -298,17 +298,54 @@ - </packing> - </child> - -- <!-- Invert scrolling toggle --> -+ <!-- Scroll options depending on workspace scrolling option --> - <child> -- <object class="GtkCheckButton" id="workspace-invert-scrolling"> -- <property name="label" translatable="yes">_Invert mouse wheel workspace switching direction</property> -- <property name="tooltip_text" translatable="yes">Invert the direction in which the workspaces are switched</property> -+ <object class="GtkBox" id="scroll-options"> - <property name="visible">True</property> -- <property name="can_focus">True</property> -- <property name="margin_left">24</property> -- <property name="receives_default">False</property> -- <property name="use_underline">True</property> -- <property name="draw_indicator">True</property> -+ <property name="can_focus">False</property> -+ <property name="spacing">6</property> -+ <property name="orientation">vertical</property> -+ -+ <!-- Invert scrolling toggle --> -+ <child> -+ <object class="GtkCheckButton" id="workspace-invert-scrolling"> -+ <property name="label" translatable="yes">_Invert mouse wheel workspace switching direction</property> -+ <property name="tooltip_text" translatable="yes">Invert the direction in which the workspaces are switched</property> -+ <property name="visible">True</property> -+ <property name="can_focus">True</property> -+ <property name="margin_left">24</property> -+ <property name="receives_default">False</property> -+ <property name="use_underline">True</property> -+ <property name="draw_indicator">True</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">0</property> -+ </packing> -+ </child> -+ -+ <!-- Wrap workspaces toggle --> -+ <child> -+ <object class="GtkCheckButton" id="wrap-workspaces"> -+ <property name="label" translatable="yes">Wrap workspaces</property> -+ <property name="tooltip_text" translatable="yes">When scrolling beyond the last/first workspace, wrap around to the first/last workspace</property> -+ <property name="visible">True</property> -+ <property name="sensitive">True</property> -+ <property name="can_focus">True</property> -+ <property name="margin_left">24</property> -+ <property name="receives_default">False</property> -+ <property name="use_underline">True</property> -+ <property name="draw_indicator">True</property> -+ </object> -+ <packing> -+ <property name="expand">False</property> -+ <property name="fill">True</property> -+ <property name="position">1</property> -+ </packing> -+ </child> -+ -+ - </object> - <packing> - <property name="expand">False</property> diff --git a/xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch b/xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch new file mode 100644 index 000000000000..2532f7af0d04 --- /dev/null +++ b/xfce4-panel-4.18.0-invert_scroll_workspaces-1.patch @@ -0,0 +1,265 @@ +diff -Naur xfce4-panel-4.18.0-orig/plugins/pager/Makefile.in xfce4-panel-4.18.0/plugins/pager/Makefile.in +--- xfce4-panel-4.18.0-orig/plugins/pager/Makefile.in 2022-12-15 09:55:01.000000000 +0100 ++++ xfce4-panel-4.18.0/plugins/pager/Makefile.in 2022-12-15 22:57:28.739326216 +0100 +@@ -886,8 +886,8 @@ + + @INTLTOOL_DESKTOP_RULE@ + +-@MAINTAINER_MODE_TRUE@pager-dialog_ui.h: pager-dialog.glade +-@MAINTAINER_MODE_TRUE@ $(AM_V_GEN) xdt-csource --static --strip-comments --strip-content --name=pager_dialog_ui $< >$@ ++pager-dialog_ui.h: pager-dialog.glade ++ $(AM_V_GEN) xdt-csource --static --strip-comments --strip-content --name=pager_dialog_ui $< >$@ + + # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: + +diff -Naur xfce4-panel-4.18.0-orig/plugins/pager/pager.c xfce4-panel-4.18.0/plugins/pager/pager.c +--- xfce4-panel-4.18.0-orig/plugins/pager/pager.c 2022-12-15 09:38:30.000000000 +0100 ++++ xfce4-panel-4.18.0/plugins/pager/pager.c 2022-12-15 22:57:28.739326216 +0100 +@@ -107,6 +107,7 @@ + + /* settings */ + guint scrolling : 1; ++ guint invert_scrolling : 1; + guint wrap_workspaces : 1; + guint miniature_view : 1; + guint rows; +@@ -122,6 +123,7 @@ + { + PROP_0, + PROP_WORKSPACE_SCROLLING, ++ PROP_INVERT_WORKSPACE_SCROLLING, + PROP_WRAP_WORKSPACES, + PROP_MINIATURE_VIEW, + PROP_ROWS, +@@ -178,6 +180,13 @@ + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ++ PROP_INVERT_WORKSPACE_SCROLLING, ++ g_param_spec_boolean ("workspace-invert-scrolling", ++ NULL, NULL, ++ TRUE, ++ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); ++ ++ g_object_class_install_property (gobject_class, + PROP_MINIATURE_VIEW, + g_param_spec_boolean ("miniature-view", + NULL, NULL, +@@ -208,6 +217,7 @@ + + plugin->wnck_screen = NULL; + plugin->scrolling = TRUE; ++ plugin->invert_scrolling = FALSE; + plugin->wrap_workspaces = FALSE; + plugin->miniature_view = TRUE; + plugin->numbering = FALSE; +@@ -241,6 +251,10 @@ + g_value_set_boolean (value, plugin->scrolling); + break; + ++ case PROP_INVERT_WORKSPACE_SCROLLING: ++ g_value_set_boolean (value, plugin->invert_scrolling); ++ break; ++ + case PROP_WRAP_WORKSPACES: + g_value_set_boolean (value, plugin->wrap_workspaces); + break; +@@ -280,6 +294,10 @@ + plugin->scrolling = g_value_get_boolean (value); + break; + ++ case PROP_INVERT_WORKSPACE_SCROLLING: ++ plugin->invert_scrolling = g_value_get_boolean (value); ++ break; ++ + case PROP_WRAP_WORKSPACES: + plugin->wrap_workspaces = g_value_get_boolean (value); + break; +@@ -418,31 +436,92 @@ + active_ws = wnck_screen_get_active_workspace (plugin->wnck_screen); + active_n = wnck_workspace_get_number (active_ws); + +- if (scrolling_direction == GDK_SCROLL_UP +- || scrolling_direction == GDK_SCROLL_LEFT) +- active_n--; +- else +- active_n++; +- + n_workspaces = wnck_screen_get_workspace_count (plugin->wnck_screen) - 1; + +- if (plugin->wrap_workspaces == TRUE) ++ if (n_workspaces == 0) + { +- /* wrap around */ +- if (active_n < 0) +- active_n = n_workspaces; +- else if (active_n > n_workspaces) +- active_n = 0; ++ /* do we have only one workspace or are we in viewport mode (compiz) */ ++ if (wnck_workspace_is_virtual (active_ws)) ++ { ++ /* viewport mode */ ++ int viewport_x; ++ int viewport_y; ++ int screen_width; //, screen_height; ++ int workspace_width; //, workspace_height; ++ int scroll_direction; ++ ++ /* total workspacesize, e.g. 5120x1024 (5120=4x1280) */ ++ /* only width is needed, virtual workspaces are stacked horizontally */ ++ workspace_width = wnck_workspace_get_width (active_ws); ++ //workspace_height = wnck_workspace_get_height (active_ws); ++ /* current screensize, e.g. 1280x1024 */ ++ screen_width = wnck_screen_get_width (plugin->wnck_screen); ++ //screen_height = wnck_screen_get_height (plugin->wnck_screen); ++ /* current viewportcoordinates, e.g. 0,0 or 1280,0 */ ++ viewport_x = wnck_workspace_get_viewport_x (active_ws); ++ viewport_y = wnck_workspace_get_viewport_y (active_ws); ++ ++ if (scrolling_direction == GDK_SCROLL_UP ++ || scrolling_direction == GDK_SCROLL_LEFT) ++ scroll_direction = (plugin->invert_scrolling ? +1 : -1); ++ else ++ scroll_direction = (plugin->invert_scrolling ? -1 : +1); ++ ++ /* viewportscroll is only in x-direction */ ++ viewport_x = viewport_x + (scroll_direction * screen_width); ++ ++ if (plugin->wrap_workspaces == TRUE) ++ { ++ /* wrap if needed */ ++ if (viewport_x > workspace_width) ++ viewport_x = 0; ++ if (viewport_x < 0) ++ viewport_x = workspace_width - screen_width; ++ } ++ else if (viewport_x < 0 || viewport_x >= workspace_width) ++ { ++ /* we do not need to do anything */ ++ return TRUE; ++ } ++ ++ wnck_screen_move_viewport (plugin->wnck_screen, ++ viewport_x, viewport_y); ++ } ++ else ++ { ++ /* only one workspace, no need to do anything */ ++ return TRUE; ++ } ++ ++ + } +- else if (active_n < 0 || active_n > n_workspaces ) ++ else + { +- /* we do not need to do anything */ +- return TRUE; +- } ++ /* real workspaces */ ++ if (scrolling_direction == GDK_SCROLL_UP ++ || scrolling_direction == GDK_SCROLL_LEFT) ++ active_n = active_n + (plugin->invert_scrolling ? +1 : -1); ++ else ++ active_n = active_n + (plugin->invert_scrolling ? -1 : +1); ++ ++ if (plugin->wrap_workspaces == TRUE) ++ { ++ /* wrap around */ ++ if (active_n < 0) ++ active_n = n_workspaces; ++ else if (active_n > n_workspaces) ++ active_n = 0; ++ } ++ else if (active_n < 0 || active_n > n_workspaces ) ++ { ++ /* we do not need to do anything */ ++ return TRUE; ++ } + +- new_ws = wnck_screen_get_workspace (plugin->wnck_screen, active_n); +- if (new_ws != NULL && active_ws != new_ws) +- wnck_workspace_activate (new_ws, event->time); ++ new_ws = wnck_screen_get_workspace (plugin->wnck_screen, active_n); ++ if (new_ws != NULL && active_ws != new_ws) ++ wnck_workspace_activate (new_ws, event->time); ++ } + + return TRUE; + } +@@ -643,6 +722,7 @@ + const PanelProperty properties[] = + { + { "workspace-scrolling", G_TYPE_BOOLEAN }, ++ { "workspace-invert-scrolling", G_TYPE_BOOLEAN }, + { "wrap-workspaces", G_TYPE_BOOLEAN }, + { "miniature-view", G_TYPE_BOOLEAN }, + { "rows", G_TYPE_UINT }, +@@ -861,6 +941,12 @@ + G_OBJECT (object), "active", + G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + ++ object = gtk_builder_get_object (builder, "workspace-invert-scrolling"); ++ panel_return_if_fail (GTK_IS_SWITCH (object)); ++ g_object_bind_property (G_OBJECT (plugin), "workspace-invert-scrolling", ++ G_OBJECT (object), "active", ++ G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); ++ + /* update the rows limit */ + pager_plugin_configure_n_workspaces_changed (plugin->wnck_screen, NULL, builder); + +diff -Naur xfce4-panel-4.18.0-orig/plugins/pager/pager-dialog.glade xfce4-panel-4.18.0/plugins/pager/pager-dialog.glade +--- xfce4-panel-4.18.0-orig/plugins/pager/pager-dialog.glade 2022-12-10 18:00:54.000000000 +0100 ++++ xfce4-panel-4.18.0/plugins/pager/pager-dialog.glade 2022-12-15 22:57:28.739326216 +0100 +@@ -190,6 +190,20 @@ + </packing> + </child> + <child> ++ <object class="GtkSwitch" id="workspace-invert-scrolling"> ++ <property name="visible">True</property> ++ <property name="can_focus">True</property> ++ <property name="halign">end</property> ++ <property name="valign">center</property> ++ <property name="sensitive" bind-source="workspace-scrolling" ++ bind-property="active" bind-flags="G_BINDING_SYNC_CREATE"/> ++ </object> ++ <packing> ++ <property name="left_attach">1</property> ++ <property name="top_attach">5</property> ++ </packing> ++ </child> ++ <child> + <object class="GtkLabel" id="numbering-label"> + <property name="visible">True</property> + <property name="can_focus">False</property> +@@ -219,7 +233,7 @@ + <object class="GtkLabel" id="wrap-workspaces-label"> + <property name="visible">True</property> + <property name="can_focus">False</property> +- <property name="margin_left">12</property> ++ <property name="margin_left">24</property> + <property name="label" translatable="yes">Wrap around workspaces</property> + <property name="xalign">0</property> + <property name="sensitive" bind-source="workspace-scrolling" +@@ -231,6 +245,21 @@ + </packing> + </child> + <child> ++ <object class="GtkLabel" id="workspace-invert-scrolling-label"> ++ <property name="visible">True</property> ++ <property name="can_focus">False</property> ++ <property name="margin_left">24</property> ++ <property name="label" translatable="yes">Invert mouse wheel workspace switching direction</property> ++ <property name="xalign">0</property> ++ <property name="sensitive" bind-source="workspace-scrolling" ++ bind-property="active" bind-flags="G_BINDING_SYNC_CREATE"/> ++ </object> ++ <packing> ++ <property name="left_attach">0</property> ++ <property name="top_attach">5</property> ++ </packing> ++ </child> ++ <child> + <object class="GtkBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> |