diff options
Diffstat (limited to 'xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch')
-rw-r--r-- | xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch | 698 |
1 files changed, 698 insertions, 0 deletions
diff --git a/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch b/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch new file mode 100644 index 000000000000..282abd41ca0e --- /dev/null +++ b/xfce4-panel-4.16.1-invert_scroll_workspaces-1.patch @@ -0,0 +1,698 @@ +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> |