summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsandmann <sandmann@fedoraproject.org>2006-09-18 23:50:15 +0000
committersandmann <sandmann@fedoraproject.org>2006-09-18 23:50:15 +0000
commit01af8708d78a360bf34757c64c5c6ed0c86063c1 (patch)
treedd385771d631a04d945d3333947f5132b74b6fa8
parentfb8843ad0359417150c8b2d036758244b3ddeb98 (diff)
downloadgnome-panel-01af8708d78a360bf34757c64c5c6ed0c86063c1.tar.gz
gnome-panel-01af8708d78a360bf34757c64c5c6ed0c86063c1.tar.xz
gnome-panel-01af8708d78a360bf34757c64c5c6ed0c86063c1.zip
Actually add the patchgnome-panel-2_16_0-2_fc6
-rw-r--r--gnome-panel-2.16.0-compiz-support.patch1147
1 files changed, 1147 insertions, 0 deletions
diff --git a/gnome-panel-2.16.0-compiz-support.patch b/gnome-panel-2.16.0-compiz-support.patch
new file mode 100644
index 0000000..6aa821b
--- /dev/null
+++ b/gnome-panel-2.16.0-compiz-support.patch
@@ -0,0 +1,1147 @@
+? birnan
+Index: applets/wncklet/workspace-switcher.c
+===================================================================
+RCS file: /cvs/gnome/gnome-panel/applets/wncklet/workspace-switcher.c,v
+retrieving revision 1.77
+diff -u -r1.77 workspace-switcher.c
+--- applets/wncklet/workspace-switcher.c 7 Aug 2006 23:49:19 -0000 1.77
++++ applets/wncklet/workspace-switcher.c 18 Sep 2006 23:28:00 -0000
+@@ -26,6 +26,9 @@
+ #include <libwnck/libwnck.h>
+ #include <gconf/gconf-client.h>
+ #include <libgnomeui/gnome-help.h>
++#include <gdk/gdkx.h>
++#include <X11/Xlib.h>
++#include <X11/Xatom.h>
+
+ #include "workspace-switcher.h"
+
+@@ -48,6 +51,9 @@
+
+ /* Properties: */
+ GtkWidget *properties_dialog;
++ GtkWidget *notebook;
++ GtkWidget *viewport_child;
++ GtkWidget *workspace_child;
+ GtkWidget *display_workspaces_toggle;
+ GtkWidget *all_workspaces_radio;
+ GtkWidget *current_only_radio;
+@@ -56,6 +62,8 @@
+ GtkWidget *num_workspaces_spin;
+ GtkWidget *workspaces_tree;
+ GtkWidget *about;
++ GtkWidget *width_spinbutton;
++ GtkWidget *height_spinbutton;
+
+ GtkListStore *workspaces_store;
+
+@@ -780,6 +788,37 @@
+ }
+
+ static void
++spinbutton_changed (GtkWidget *widget,
++ gpointer data)
++{
++ GConfClient *client = gconf_client_get_default ();
++ const char *key = data;
++
++ int value = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget));
++
++ gconf_client_set_int (client, key, value, NULL);
++}
++
++static void
++setup_spinbutton (GtkSpinButton *spin,
++ const char *key,
++ int minimum)
++{
++ GConfClient *client = gconf_client_get_default ();
++ int value;
++
++ if (!gconf_client_key_is_writable (client, key, NULL))
++ gtk_widget_set_sensitive (GTK_WIDGET (spin), FALSE);
++
++ value = gconf_client_get_int (client, key, NULL);
++
++ gtk_spin_button_set_range (spin, minimum, G_MAXINT);
++ gtk_spin_button_set_value (spin, value);
++
++ g_signal_connect (spin, "value_changed", G_CALLBACK (spinbutton_changed), (gpointer)key);
++}
++
++static void
+ setup_dialog (GladeXML *xml,
+ PagerData *pager)
+ {
+@@ -910,6 +949,114 @@
+ pager,
+ pager->applet);
+ }
++
++ gtk_notebook_set_show_tabs (GTK_NOTEBOOK (pager->notebook), FALSE);
++ gtk_notebook_set_show_border (GTK_NOTEBOOK (pager->notebook), FALSE);
++
++ setup_spinbutton (pager->width_spinbutton, "/apps/compiz/general/screen0/options/size", 1);
++ setup_spinbutton (pager->height_spinbutton, "/apps/compiz/general/screen0/options/vsize", 1);
++}
++
++/* get_wm_window() and current_window_manager() are essentially cutted and pasted
++ * from gnome-wm.c from gnome-control-center.
++ */
++static Window
++get_wm_window (void)
++{
++ Window *xwindow;
++ Atom type;
++ gint format;
++ gulong nitems;
++ gulong bytes_after;
++ Window result;
++
++ XGetWindowProperty (GDK_DISPLAY (), GDK_ROOT_WINDOW (),
++ XInternAtom (GDK_DISPLAY (), "_NET_SUPPORTING_WM_CHECK", False),
++ 0, G_MAXLONG, False, XA_WINDOW, &type, &format,
++ &nitems, &bytes_after, (guchar **) &xwindow);
++
++ if (type != XA_WINDOW)
++ {
++ return None;
++ }
++
++ gdk_error_trap_push ();
++ XSelectInput (GDK_DISPLAY (), *xwindow, StructureNotifyMask | PropertyChangeMask);
++ XSync (GDK_DISPLAY (), False);
++
++ if (gdk_error_trap_pop ())
++ {
++ XFree (xwindow);
++ return None;
++ }
++
++ result = *xwindow;
++ XFree (xwindow);
++
++ return result;
++}
++
++static char*
++get_current_window_manager (void)
++{
++ Atom utf8_string, atom, type;
++ int result;
++ char *retval;
++ int format;
++ gulong nitems;
++ gulong bytes_after;
++ gchar *val;
++ Window wm_window = get_wm_window ();
++
++ utf8_string = XInternAtom (GDK_DISPLAY (), "UTF8_STRING", False);
++ atom = XInternAtom (GDK_DISPLAY (), "_NET_WM_NAME", False);
++
++ gdk_error_trap_push ();
++
++ result = XGetWindowProperty (GDK_DISPLAY (),
++ wm_window,
++ atom,
++ 0, G_MAXLONG,
++ False, utf8_string,
++ &type, &format, &nitems,
++ &bytes_after, (guchar **)&val);
++
++ if (gdk_error_trap_pop () || result != Success)
++ return NULL;
++
++ if (type != utf8_string ||
++ format !=8 ||
++ nitems == 0)
++ {
++ if (val)
++ XFree (val);
++ return NULL;
++ }
++
++ if (!g_utf8_validate (val, nitems, NULL))
++ {
++ XFree (val);
++ return NULL;
++ }
++
++ retval = g_strndup (val, nitems);
++
++ XFree (val);
++
++ return retval;
++}
++
++static gboolean
++compiz_is_running (void)
++{
++ gboolean result;
++ char *wm = get_current_window_manager ();
++
++ result = wm && strcmp (wm, "compiz") == 0;
++
++ g_free (wm);
++
++ return result;
+ }
+
+ static void
+@@ -917,23 +1064,50 @@
+ PagerData *pager,
+ const gchar *verbname)
+ {
+- if (pager->properties_dialog == NULL) {
+- GladeXML *xml;
++ gboolean using_compiz;
++
++ if (pager->properties_dialog == NULL) {
++ GladeXML *xml = glade_xml_new (PAGER_GLADEDIR "/workspace-switcher.glade", NULL, NULL);
+
+- xml = glade_xml_new (PAGER_GLADEDIR "/workspace-switcher.glade", NULL, NULL);
+ pager->properties_dialog = glade_xml_get_widget (xml, "pager_properties_dialog");
+-
++ pager->notebook = glade_xml_get_widget (xml, "notebook");
++ pager->viewport_child = glade_xml_get_widget (xml, "viewport-child");
++ pager->workspace_child = glade_xml_get_widget (xml, "workspace-child");
++ pager->width_spinbutton = glade_xml_get_widget (xml, "width-spinbutton");
++ pager->height_spinbutton = glade_xml_get_widget (xml, "height-spinbutton");
++
++ g_object_ref (pager->viewport_child);
++ g_object_ref (pager->workspace_child);
++
+ g_object_add_weak_pointer (G_OBJECT (pager->properties_dialog),
+ (gpointer *) &pager->properties_dialog);
+
+ setup_dialog (xml, pager);
+-
+- g_object_unref (G_OBJECT (xml));
++
++ g_object_unref (G_OBJECT (xml));
+ }
+
++ using_compiz = compiz_is_running();
++
++ if (using_compiz) {
++ gtk_widget_hide (pager->workspace_child);
++ gtk_widget_show (pager->viewport_child);
++ gtk_window_set_resizable (GTK_WINDOW (pager->properties_dialog), FALSE);
++ }
++ else {
++ gtk_widget_show (pager->workspace_child);
++ gtk_widget_hide (pager->viewport_child);
++ gtk_window_set_resizable (GTK_WINDOW (pager->properties_dialog), TRUE);
++ }
++
+ gtk_window_set_icon_name (GTK_WINDOW (pager->properties_dialog),
+ "gnome-panel-workspace-switcher");
+ gtk_window_set_screen (GTK_WINDOW (pager->properties_dialog),
+ gtk_widget_get_screen (pager->applet));
+ gtk_window_present (GTK_WINDOW (pager->properties_dialog));
++
++ if (using_compiz) {
++ gtk_widget_grab_focus (pager->width_spinbutton);
++ gtk_editable_select_region (GTK_EDITABLE (pager->width_spinbutton), 0, -1);
++ }
+ }
+Index: applets/wncklet/workspace-switcher.glade
+===================================================================
+RCS file: /cvs/gnome/gnome-panel/applets/wncklet/workspace-switcher.glade,v
+retrieving revision 1.23
+diff -u -r1.23 workspace-switcher.glade
+--- applets/wncklet/workspace-switcher.glade 13 Oct 2003 20:11:52 -0000 1.23
++++ applets/wncklet/workspace-switcher.glade 18 Sep 2006 23:28:00 -0000
+@@ -12,6 +12,13 @@
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
++ <property name="decorated">True</property>
++ <property name="skip_taskbar_hint">False</property>
++ <property name="skip_pager_hint">False</property>
++ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
++ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
++ <property name="focus_on_map">True</property>
++ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+
+ <child internal-child="vbox">
+@@ -33,6 +40,7 @@
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
+ <property name="response_id">-11</property>
+ </widget>
+ </child>
+@@ -46,6 +54,7 @@
+ <property name="label">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ </child>
+@@ -59,58 +68,45 @@
+ </child>
+
+ <child>
+- <widget class="GtkVBox" id="vbox2">
+- <property name="border_width">5</property>
++ <widget class="GtkNotebook" id="notebook">
+ <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">18</property>
++ <property name="can_focus">True</property>
++ <property name="show_tabs">True</property>
++ <property name="show_border">False</property>
++ <property name="tab_pos">GTK_POS_TOP</property>
++ <property name="scrollable">False</property>
++ <property name="enable_popup">False</property>
+
+ <child>
+- <widget class="GtkVBox" id="vbox3">
++ <widget class="GtkVBox" id="workspace-child">
++ <property name="border_width">5</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label4">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">&lt;b&gt;Switcher&lt;/b&gt;</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
++ <property name="spacing">18</property>
+
+ <child>
+- <widget class="GtkHBox" id="hbox5">
++ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
++ <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkLabel" id="label5">
++ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
++ <property name="label" translatable="yes">&lt;b&gt;Switcher&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
++ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
++ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -120,21 +116,28 @@
+ </child>
+
+ <child>
+- <widget class="GtkVBox" id="vbox5">
++ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
++ <property name="spacing">0</property>
+
+ <child>
+- <widget class="GtkRadioButton" id="current_only_radio">
++ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Show _only the current workspace</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
++ <property name="label" translatable="yes"> </property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -144,22 +147,22 @@
+ </child>
+
+ <child>
+- <widget class="GtkHBox" id="hbox9">
++ <widget class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
++ <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkRadioButton" id="all_workspaces_radio">
++ <widget class="GtkRadioButton" id="current_only_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Show _all workspaces in:</property>
++ <property name="label" translatable="yes">Show _only the current workspace</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+- <property name="group">current_only_radio</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -169,22 +172,81 @@
+ </child>
+
+ <child>
+- <widget class="GtkHBox" id="hbox10">
++ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
++ <property name="spacing">12</property>
+
+ <child>
+- <widget class="GtkSpinButton" id="num_rows_spin">
++ <widget class="GtkRadioButton" id="all_workspaces_radio">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">True</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">1 1 16 1 10 10</property>
++ <property name="label" translatable="yes">Show _all workspaces in:</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">current_only_radio</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkHBox" id="hbox10">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++
++ <child>
++ <widget class="GtkSpinButton" id="num_rows_spin">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">True</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">1 1 16 1 10 10</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label_row_col">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">rows</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_CENTER</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">num_rows_spin</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -192,12 +254,114 @@
+ <property name="fill">True</property>
+ </packing>
+ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkVBox" id="vbox4">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++
++ <child>
++ <widget class="GtkLabel" id="label6">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">&lt;b&gt;Workspaces&lt;/b&gt;</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">True</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkHBox" id="hbox8">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">0</property>
++
++ <child>
++ <widget class="GtkLabel" id="label7">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"> </property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkVBox" id="vbox1">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++
++ <child>
++ <widget class="GtkHBox" id="hbox4">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">12</property>
+
+ <child>
+- <widget class="GtkLabel" id="label_row_col">
++ <widget class="GtkLabel" id="num_workspaces_label">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">rows</property>
+- <property name="use_underline">False</property>
++ <property name="label" translatable="yes">Number of _workspaces:</property>
++ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+@@ -206,7 +370,11 @@
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+- <property name="mnemonic_widget">num_rows_spin</property>
++ <property name="mnemonic_widget">num_workspaces_spin</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -214,6 +382,83 @@
+ <property name="fill">False</property>
+ </packing>
+ </child>
++
++ <child>
++ <widget class="GtkSpinButton" id="num_workspaces_spin">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">True</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">1 1 36 1 10 10</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="workspaces_label">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Workspace na_mes:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">workspaces_tree_view</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkScrolledWindow" id="scrolledwindow1">
++ <property name="height_request">100</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
++ <property name="shadow_type">GTK_SHADOW_IN</property>
++ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
++
++ <child>
++ <widget class="GtkTreeView" id="workspaces_tree_view">
++ <property name="visible">True</property>
++ <property name="tooltip" translatable="yes">Workspace Names</property>
++ <property name="can_focus">True</property>
++ <property name="headers_visible">False</property>
++ <property name="rules_hint">False</property>
++ <property name="reorderable">False</property>
++ <property name="enable_search">True</property>
++ <property name="fixed_height_mode">False</property>
++ <property name="hover_selection">False</property>
++ <property name="hover_expand">False</property>
++ </widget>
++ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -221,6 +466,25 @@
+ <property name="fill">True</property>
+ </packing>
+ </child>
++
++ <child>
++ <widget class="GtkCheckButton" id="workspace_name_toggle">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">Show workspace _names in switcher</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -244,22 +508,45 @@
+ </child>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
++ <property name="tab_expand">False</property>
++ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkVBox" id="vbox4">
++ <widget class="GtkLabel" id="label7">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">label7</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="type">tab</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkVBox" id="viewport-child">
++ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkLabel" id="label6">
++ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">&lt;b&gt;Workspaces&lt;/b&gt;</property>
++ <property name="label" translatable="yes">&lt;b&gt;Desktop Size&lt;/b&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+@@ -269,6 +556,10 @@
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -278,13 +569,13 @@
+ </child>
+
+ <child>
+- <widget class="GtkHBox" id="hbox8">
++ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+- <widget class="GtkLabel" id="label7">
++ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"> </property>
+ <property name="use_underline">False</property>
+@@ -296,6 +587,10 @@
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+@@ -305,129 +600,178 @@
+ </child>
+
+ <child>
+- <widget class="GtkVBox" id="vbox1">
++ <widget class="GtkVBox" id="vbox7">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkHBox" id="hbox4">
++ <widget class="GtkTable" id="table1">
+ <property name="visible">True</property>
++ <property name="n_rows">2</property>
++ <property name="n_columns">3</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
++ <property name="row_spacing">6</property>
++ <property name="column_spacing">6</property>
+
+ <child>
+- <widget class="GtkLabel" id="num_workspaces_label">
++ <widget class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">Number of _workspaces:</property>
+- <property name="use_underline">True</property>
++ <property name="label" translatable="yes">Width:</property>
++ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+- <property name="mnemonic_widget">num_workspaces_spin</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label12">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Height:</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">1</property>
++ <property name="bottom_attach">2</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkSpinButton" id="num_workspaces_spin">
++ <widget class="GtkLabel" id="label13">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">columns</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">2</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label14">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">rows</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">2</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">1</property>
++ <property name="bottom_attach">2</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkSpinButton" id="width-spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+- <property name="numeric">True</property>
++ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+- <property name="adjustment">1 1 36 1 10 10</property>
++ <property name="adjustment">1 0 100 1 10 10</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="left_attach">1</property>
++ <property name="right_attach">2</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="workspaces_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Workspace na_mes:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">workspaces_tree_view</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkScrolledWindow" id="scrolledwindow1">
+- <property name="height_request">100</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+- <property name="shadow_type">GTK_SHADOW_IN</property>
+- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+ <child>
+- <widget class="GtkTreeView" id="workspaces_tree_view">
++ <widget class="GtkSpinButton" id="height-spinbutton">
+ <property name="visible">True</property>
+- <property name="tooltip" translatable="yes">Workspace Names</property>
+ <property name="can_focus">True</property>
+- <property name="headers_visible">False</property>
+- <property name="rules_hint">False</property>
+- <property name="reorderable">False</property>
+- <property name="enable_search">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">False</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">1 0 100 1 10 10</property>
+ </widget>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="right_attach">2</property>
++ <property name="top_attach">1</property>
++ <property name="bottom_attach">2</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkCheckButton" id="workspace_name_toggle">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Show workspace _names in switcher</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+@@ -448,9 +792,31 @@
+ </child>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="tab_expand">False</property>
++ <property name="tab_fill">True</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label8">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">label8</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="type">tab</property>
+ </packing>
+ </child>
+ </widget>